# UI Contracts — Tenant UI Polish This feature does not introduce HTTP APIs. These contracts describe UI routing, filters, and definitions that must remain stable. ## Routes (tenant-scoped) - Dashboard: tenant dashboard page (new custom page; replaces default dashboard entry). - Inventory hub: Inventory cluster root (routes to first page/resource in cluster). - Inventory items: Inventory items resource index, under cluster prefix. - Inventory sync runs: Inventory sync runs resource index, under cluster prefix. - Inventory coverage: Inventory coverage page, under cluster prefix. - Operations index: `OperationRunResource` index (`/operations`). - Operation run detail: `OperationRunResource` view page. ## Operations Tabs (FR-009) Tabs filter the Operations table by: - All: no extra constraints. - Active: `status IN ('queued','running')` - Succeeded: `status = 'completed' AND outcome = 'succeeded'` - Partial: `status = 'completed' AND outcome = 'partial'` - Failed: `status = 'completed' AND outcome = 'failed'` ## KPI Definitions - Inventory coverage % = Restorable / Total (Partial is separate, does not inflate %). - Drift stale threshold = 7 days. - “Recent” lists default size = 10. - “Active operations” shows two counts: - All active runs (queued + running) - Inventory-active runs (type = `inventory.sync`, queued + running)