8 bundles: page scaffold + rename, filter bar + grid, drilldown drawer, drill-ins, KPI tiles, CSV export, permissions, Playwright. UI memory constraints locked: Blazor Server + Bootstrap, no third-party libs.
2.2 KiB
2.2 KiB
Audit Log #23 — M7 Central UI Implementation Plan
For Claude: subagent-driven-development with bundled cadence.
Goal: User-visible Audit Log page in the Central UI: filter bar, results grid with keyset paging, drilldown drawer with JSON pretty-print + cURL + redaction badges, drill-ins from Notifications/Site Calls/External Systems/Inbound API Keys/Sites/Instances, 3 KPI tiles on Health dashboard, server-side streaming CSV export, OperationalAudit+AuditExport permission gating, Playwright E2E.
UI memory constraints (locked):
- Blazor Server + Bootstrap CSS only. NO third-party UI libraries (no Blazorise, MudBlazor, Radzen, Prism.js, Highlight.js, etc.).
- Custom Blazor components for tables/grids/forms.
- Clean corporate aesthetic.
- Form layout: vertical stacking, read-only fields first, subsections stacked, buttons at bottom.
- Use the frontend-design skill IF dispatched UI-design subagents need pattern guidance.
M6 realities baked in:
IAuditCentralHealthSnapshotaggregates CentralAuditWriteFailures + AuditRedactionFailure + per-site stalled. Health tiles read this.SiteHealthReport.SiteAuditBacklogready for per-site display.IAuditLogRepository.QueryAsynckeyset-paged; data source for the grid.- Pre-existing
Components/Pages/Monitoring/AuditLog.razor(IAuditService config-change viewer) must be renamed →Components/Pages/Audit/ConfigurationAuditLog.razorwith route/audit/configuration. Old route returns 404 (no redirect — internal tool, no external bookmarks). - Need to add
OperationalAudit+AuditExportpermission strings.
SQL highlighting decision: no third-party highlighter. Render <pre><code> block with language-sql class and let any future CSS theme it; semantic markup is preserved without JS dependency.
Bundles:
- Bundle A — Page scaffold + nav + ConfigurationAuditLog rename (T1, T9)
- Bundle B — Filter bar + results grid (T2, T3)
- Bundle C — Drilldown drawer (T4, T5, T6, T7, T8)
- Bundle D — Drill-ins from other pages (T10, T11, T12)
- Bundle E — Health dashboard KPI tiles (T13)
- Bundle F — CSV export (T14)
- Bundle G — Permissions (T15)
- Bundle H — Playwright E2E (T16)