TenantAtlas/specs/186-tenant-registry-recovery-triage/contracts/tenant-registry-recovery-triage.openapi.yaml
ahmido 9fbd3e5ec7 Spec 186: implement tenant registry recovery triage (#217)
## Summary
- turn the tenant registry into a workspace-scoped recovery triage surface with backup posture and recovery evidence columns
- preserve workspace overview backup and recovery drilldown intent by routing multi-tenant cases into filtered tenant registry slices
- add the Spec 186 planning artifacts, focused regression coverage, and shared triage presentation helpers

## Testing
- `cd apps/platform && ./vendor/bin/sail bin pint --dirty --format agent`
- `cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Feature/Filament/TenantRegistryRecoveryTriageTest.php tests/Feature/Filament/WorkspaceOverviewSummaryMetricsTest.php tests/Feature/Filament/WorkspaceOverviewDrilldownContinuityTest.php tests/Feature/Filament/TenantResourceIndexIsWorkspaceScopedTest.php tests/Feature/Filament/WorkspaceOverviewAuthorizationTest.php tests/Feature/Guards/ActionSurfaceContractTest.php tests/Feature/Guards/FilamentTableStandardsGuardTest.php`

## Notes
- no schema change
- no new persisted recovery truth
- branch includes the full Spec 186 spec, plan, research, data model, contract, quickstart, and tasks artifacts

Co-authored-by: Ahmed Darrazi <ahmed.darrazi@live.de>
Reviewed-on: #217
2026-04-09 19:20:48 +00:00

119 lines
3.7 KiB
YAML

openapi: 3.1.0
info:
title: Tenant Registry Recovery Triage Route Contract
version: 0.1.0
summary: Internal navigation contract for workspace backup and recovery drilldowns into the tenant registry.
servers:
- url: /
paths:
/admin/tenants:
get:
operationId: openTenantRegistryTriage
summary: Open the tenant registry with exact triage intent preserved.
description: |
Multi-tenant workspace backup and recovery drilldowns open this route with exact posture filter semantics.
The route renders HTML, stays scoped to the current visible workspace slice, and must not reveal out-of-scope tenants.
parameters:
- name: backup_posture
in: query
required: false
description: Exact backup-posture filter values to apply on initial registry load.
style: form
explode: true
schema:
type: array
items:
type: string
enum:
- absent
- stale
- degraded
- healthy
- name: recovery_evidence
in: query
required: false
description: Exact recovery-evidence filter values to apply on initial registry load.
style: form
explode: true
schema:
type: array
items:
type: string
enum:
- weakened
- unvalidated
- no_recent_issues_visible
- name: triage_sort
in: query
required: false
description: Optional registry ordering mode. Workspace drilldowns default to worst-first.
schema:
type: string
enum:
- default
- worst_first
responses:
'200':
description: Tenant registry HTML rendered with the requested exact triage intent over the visible tenant set.
content:
text/html:
schema:
type: string
'404':
description: Workspace scope or tenant visibility is not established.
/admin/t/{tenant}:
get:
operationId: openSingleTenantDashboardTriage
summary: Open the tenant dashboard as the single-tenant triage destination.
description: |
Workspace backup or recovery drilldowns may resolve directly here when exactly one visible tenant is affected.
This route remains the canonical safe fallback when deeper backup or restore surfaces are not appropriate.
parameters:
- name: tenant
in: path
required: true
description: Tenant external route key.
schema:
type: string
responses:
'200':
description: Tenant dashboard HTML rendered inside the current workspace and tenant scope.
content:
text/html:
schema:
type: string
'404':
description: Tenant is not visible in the current workspace or the actor is not a member.
components:
schemas:
TenantRegistryTriageIntent:
type: object
additionalProperties: false
properties:
backup_posture:
type: array
items:
type: string
enum:
- absent
- stale
- degraded
- healthy
recovery_evidence:
type: array
items:
type: string
enum:
- weakened
- unvalidated
- no_recent_issues_visible
triage_sort:
type: string
enum:
- default
- worst_first
description: Exact filter and ordering intent used to open the tenant registry in recovery-triage mode.