From 672ac5ff04359b3967dc5cda3d90ebc08d18fd85 Mon Sep 17 00:00:00 2001 From: Joseph Doherty Date: Tue, 2 Jun 2026 13:07:32 -0400 Subject: [PATCH] plan(2.5): ScadaBridge audit C3 done+reviewed (record swap keystone); C4 (site sidecar) in progress --- docs/plans/2026-06-02-scadabridge-audit-rearch.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/plans/2026-06-02-scadabridge-audit-rearch.md b/docs/plans/2026-06-02-scadabridge-audit-rearch.md index d8aa278..e54993e 100644 --- a/docs/plans/2026-06-02-scadabridge-audit-rearch.md +++ b/docs/plans/2026-06-02-scadabridge-audit-rearch.md @@ -68,5 +68,6 @@ Delivery: `feat/adopt-zb-audit` (stacked on auth), local-only. Each stage = one ## Stage status (live) - **✅ C1 DONE** `3d77dc0` (code ✅) — `AuditDetails` + deterministic `AuditDetailsCodec` (pinned byte-exact) + `AuditOutcomeProjector` + `AuditFieldBuilders` + Commons→`ZB.MOM.WW.Audit` ref; 56 tests. - **✅ C2 DONE** `adfb4d3` + fix `5aaf9e2` (spec ✅, code ✅ after fix) — `ScadaBridgeAuditRedactor`/`SafeDefaultAuditRedactor : IAuditRedactor` on the canonical record; redaction primitives extracted into shared `AuditRedactionPrimitives`/`AuditRegexCache` (old filter delegates, behaviour-preserved); cap-selection reads `d.Status` (faithful to legacy `IsErrorStatus`); fast-path + never-throws; review-fix hardened `OverRedact` to scrub ALL free-text fields + marker alignment + outer-catch never-leak test. 61 redaction + 44 payload + 88 commons-audit green. -- **⏳ C3 IN PROGRESS** (background implementer) — atomic record swap across seams/emitters/DTO/redactor-wiring + transitional 24-col storage shim. -- ⏳ C4/C5/C6/C7 pending C3. +- **✅ C3 DONE** `db707bb` + fix `c27b2c3` (spec ✅, code ✅; independently re-verified build 0/0 + AuditLog 241/Communication 201). Atomic record swap across all seams/emitters/gRPC DTO/redactor-wiring (127 files); `ScadaBridgeAuditEventFactory` single emit point; `AuditRowProjection` Decompose/Recompose transitional 24-col shim (lossless round-trip verified); proto unchanged; old `IAuditPayloadFilter` classes deleted (C7 pulled forward). Fix: safe enum-parse fallback in `MapRow`+`FromDto`. +- **⏳ C4 IN PROGRESS** — site SQLite → `audit_event` (canonical) + `audit_forward_state` sidecar; forwarding on the sidecar; `IsCachedKind` drain split. +- ⏳ C5/C6/C7 pending.