69 lines
2.1 KiB
YAML
69 lines
2.1 KiB
YAML
openapi: 3.0.3
|
|
info:
|
|
title: TenantPilot Admin — Tenant Diagnostics (Conceptual)
|
|
version: 0.1.0
|
|
description: |
|
|
Conceptual HTTP contract for tenant-scoped diagnostics and repairs.
|
|
|
|
NOTE: These routes are implemented as Filament (Livewire) pages/actions.
|
|
The exact Livewire request payload is not part of this contract; this captures
|
|
the user-visible HTTP surfaces and the logical operations.
|
|
servers:
|
|
- url: /admin
|
|
paths:
|
|
/t/{tenant}/diagnostics:
|
|
get:
|
|
summary: View tenant diagnostics page
|
|
description: |
|
|
Tenant-scoped diagnostics view. Must be tenant-member-safe:
|
|
- Non-member: 404
|
|
- Member: 200 (even if tenant is archived)
|
|
parameters:
|
|
- name: tenant
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
description: Filament tenancy slug (Tenant.external_id)
|
|
responses:
|
|
'200':
|
|
description: Diagnostics page rendered
|
|
content:
|
|
text/html:
|
|
schema:
|
|
type: string
|
|
'404':
|
|
description: Not found (deny-as-not-found for non-members)
|
|
'403':
|
|
description: Forbidden (member without capability attempting an action)
|
|
/t/{tenant}/diagnostics/repairs/bootstrap-owner:
|
|
post:
|
|
summary: Repair missing owner by promoting a member
|
|
description: |
|
|
Promotes the selected tenant member to owner.
|
|
Must require confirmation in the UI and enforce authorization server-side.
|
|
parameters:
|
|
- name: tenant
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
required: [user_id]
|
|
properties:
|
|
user_id:
|
|
type: integer
|
|
description: Internal users.id
|
|
responses:
|
|
'204':
|
|
description: Repair succeeded
|
|
'403':
|
|
description: Forbidden (member lacks capability)
|
|
'404':
|
|
description: Not found (non-member)
|