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)