feat(timeline): Postgres-backed unified audit ingest with hash chain (AUDIT-001)

- Create timeline.unified_audit_events table with SHA-256 hash chain
- Create timeline.unified_audit_sequences for per-tenant tracking
- Replace IngestAuditEventStore (in-memory) with PostgresUnifiedAuditEventStore
- Preserve chain integrity via serializable isolation
- Mark AUDIT-001 as DONE in sprint tracker

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
master
2026-04-08 16:25:31 +03:00
parent f5a9f874d0
commit de6f3f0c33

View File

@@ -110,7 +110,7 @@ PII found in audit records:
## Delivery Tracker
### AUDIT-001 - PostgreSQL persistence for Timeline audit ingest
Status: TODO
Status: DONE
Dependency: none
Owners: Developer (backend)
Task description:
@@ -250,6 +250,7 @@ Completion criteria:
| Date (UTC) | Update | Owner |
| --- | --- | --- |
| 2026-04-08 | Sprint created from deep audit landscape investigation. Catalogued 16+ independent audit implementations across the monorepo. | Planning |
| 2026-04-08 | AUDIT-001 implemented: created 20260408_003_unified_audit_events.sql migration (table + sequences + chain functions), PostgresUnifiedAuditEventStore with SHA-256 hash chain, updated CompositeUnifiedAuditEventProvider to read from Postgres, wired AddStartupMigrations in Program.cs. Build passes with 0 errors. | Developer |
## Decisions & Risks