Migrate Audit evidence interfaces
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
# Audit Interface Pattern Migration
|
||||
|
||||
Audit contributes two read-only administration surfaces through the shared
|
||||
`admin.sections` capability. Both use the platform's monitoring and evidence
|
||||
archetype.
|
||||
|
||||
## Surface Map
|
||||
|
||||
| Surface | Authority | Pattern | Consequence class |
|
||||
| --- | --- | --- | --- |
|
||||
| `audit.admin.system` | `system:audit:read` | Server-filtered evidence grid and event inspector | Read-only evidence disclosure |
|
||||
| `audit.admin.tenant` | `audit:read` for the active tenant | Server-filtered evidence grid and event inspector | Read-only evidence disclosure |
|
||||
|
||||
Audit does not expose mutation or destructive actions in these panels. The
|
||||
only row action opens an inspection dialog; reload preserves the stable shell
|
||||
and existing evidence while a newer projection is requested.
|
||||
|
||||
## Interaction Contract
|
||||
|
||||
- Core owns the admin layout, DataGrid, dialog, action group, loading/error
|
||||
treatment, disabled-action explanation, and documentation link.
|
||||
- Filtering, sorting, counts, and paging are server-owned. The first page may
|
||||
apply bounded delta updates using an opaque watermark; a full response
|
||||
remains authoritative when the delta contract cannot be used.
|
||||
- System and tenant panels remain distinct and are registered only with their
|
||||
respective read scopes. Tenant selection is never accepted as a free-form
|
||||
client override.
|
||||
- The event inspector renders stable actor, action, object, tenant, timestamp,
|
||||
and structured detail rows. It does not add editing, replay, export, or raw
|
||||
credential access.
|
||||
- Contextual help resolves through `audit.read-authorized-evidence`; operational
|
||||
recording, retention, and outbox guidance remains in the separate admin
|
||||
topic.
|
||||
|
||||
## Verification
|
||||
|
||||
Run the Audit backend suite and `npm run test:interface-patterns` in `webui`.
|
||||
The structural test guards shared components, localized labels, contextual
|
||||
help, server paging, readable detail projection, and absence of private sibling
|
||||
imports or browser-native dialogs.
|
||||
Reference in New Issue
Block a user