44 lines
2.5 KiB
Markdown
44 lines
2.5 KiB
Markdown
# Tenancy Interface Pattern Migration
|
|
|
|
This document records the bounded migration of Tenancy-owned WebUI surfaces to
|
|
the GovOPlaN interface pattern language. Core owns the shared components and the
|
|
Admin host; Tenancy owns the behavior and documentation described here.
|
|
|
|
## Surface Inventory
|
|
|
|
| Surface | Archetype | Consequence class | Contract |
|
|
| --- | --- | --- | --- |
|
|
| `tenancy.admin.system-tenants` | Administration directory and list-detail | Create, configure, suspend | Shared admin layout, DataGrid, stable row actions, adaptive create/edit dialog, lifecycle confirmation, contextual help |
|
|
| Tenant details dialog | Read-only evidence/detail | None | Stable labels, effective governance provenance, retained object counts |
|
|
| `tenancy.admin.tenant-settings` | Effective configuration | Configure | Shared admin layout, language selection, dirty-state guard, permission blocker, contextual help |
|
|
|
|
## Consequence And Availability Rules
|
|
|
|
- Creating a tenant establishes a new data and administration boundary and
|
|
provisions a protected initial owner.
|
|
- Tenant slugs are immutable after creation.
|
|
- System policy caps tenant governance overrides. A tenant can narrow an
|
|
allowance but cannot loosen a system denial.
|
|
- Suspension retains tenant-owned records and audit evidence. The active
|
|
tenant cannot be suspended until the operator changes context.
|
|
- Unavailable actions remain visible when they belong to the surface and state
|
|
the missing permission, inapplicable state, responsible actor, and
|
|
destination where applicable.
|
|
- Dirty dialogs and settings use the shared unsaved-change guard. Consequential
|
|
suspension continues to use the shared destructive confirmation dialog.
|
|
|
|
## State And Accessibility Evidence
|
|
|
|
The panels use Core loading, error, success, empty, disabled-action, blocker,
|
|
dialog, and status components. Row actions reserve a stable three-action area,
|
|
retain translated accessible labels, and do not disappear for row-specific
|
|
permission or lifecycle states. Dialog order follows identity, ownership,
|
|
locale/status, description, and governed capabilities. Shared dialogs own focus
|
|
containment and restoration, and the existing Admin shell provides responsive
|
|
composition.
|
|
|
|
Stable help references are contributed through the module manifest for the
|
|
tenant registry, tenant settings, lifecycle actions, and individual fields.
|
|
The WebUI structural test and backend documentation-contract test prevent those
|
|
references and state explanations from silently regressing.
|