diff --git a/docs/plans/2026-05-20-audit-log-code-roadmap.md b/docs/plans/2026-05-20-audit-log-code-roadmap.md index 5662e5d..aa64509 100644 --- a/docs/plans/2026-05-20-audit-log-code-roadmap.md +++ b/docs/plans/2026-05-20-audit-log-code-roadmap.md @@ -1245,6 +1245,15 @@ The design for both is merged on `main` (`alog.md` cached-call tracking section; ## M7 — Central UI: new Audit Log page + drill-ins + KPI tiles +> **M6 realities to honor:** +> - **`IAuditCentralHealthSnapshot`** (M6 Bundle E) exists as the central aggregator for `CentralAuditWriteFailures`, `AuditRedactionFailure`, and per-site `SiteAuditTelemetryStalled`. M7's Health dashboard tiles should read this snapshot. +> - **`SiteHealthReport.SiteAuditBacklog`** (`SiteAuditBacklogSnapshot` — count + age + bytes) is on the existing per-site report. M7's per-site tiles can surface this without new wiring. +> - **`IAuditLogRepository.QueryAsync`** (M1 Bundle D) is the data source for the Audit Log page; uses keyset paging on (OccurredAtUtc desc, EventId desc). +> - **`IAuditLogRepository.GetPartitionBoundariesOlderThanAsync`** (M6 Bundle C) — surfaces existing partitions; M7 Export feature could leverage but isn't required. +> - **Pre-existing `Components/Pages/Monitoring/AuditLog.razor`** (the IAuditService config-change viewer from before M1) must be renamed in code to `ConfigurationAuditLog.razor` with URL `/audit/configuration` — the doc-renaming was completed pre-M1 but the .razor file rename hasn't been verified. +> - **Permissions**: `OperationalAudit` (read) and `AuditExport` (export) permission strings need to exist in the security model — verify before M7. +> - **Real gRPC pull client still deferred from M6** — M7 doesn't depend on it. + **Goal:** User-visible Audit Log: filter bar, results grid (custom Blazor + Bootstrap, no third-party grid), drilldown drawer with cURL / "show all events" / redaction indicators / pretty-printed payloads. 6 drill-in entry points from existing pages. 3 KPI tiles on Health dashboard. **Affected projects:** `CentralUI`, `CentralUI.Tests`, `CentralUI.PlaywrightTests`.