TenantAtlas/specs/067-rbac-troubleshooting/contracts/tenant-diagnostics.openapi.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)