{ "planPath": "docs/plans/2026-08-07-secrets-central-shared-sql-store.md", "tasks": [ {"id": 1, "subject": "Task 1: Library — FallbackEndpoints + failover hub reader", "status": "completed", "classification": "high-risk", "parallelizableWith": [2], "note": "FailoverSecretsHubReader + FallbackEndpoints validation + DI composition, zero-fallback shape byte-identical; scadaproj main @ 7a2980e."}, {"id": 2, "subject": "Task 2: ScadaBridge — central shared SQL store + Layer-A expander", "status": "completed", "classification": "high-risk", "parallelizableWith": [1], "note": "AddZbSecretsSqlServerStore on central + EnsureCentralSharedStoreConnectionString fail-closed pre-checks + expander swap; 472 offline tests; ScadaBridge main @ 68f812ea."}, {"id": 3, "subject": "Task 3: Publish family 0.5.0", "status": "completed", "classification": "small", "blockedBy": [1], "note": "0.5.0 published (6 pkgs, restore-verified) @ e62b4a5; 0.5.1 followed @ 31ca940 (virgin-DB concurrent migrator race fix found by the live gate)."}, {"id": 4, "subject": "Task 4: ScadaBridge — pin bump 0.5.0 + fallback endpoint wiring", "status": "completed", "classification": "standard", "blockedBy": [2, 3], "note": "Pins + FallbackEndpoints wiring in 68f812ea; bumped to 0.5.1 @ e697477c after the gate. All pushed."}, {"id": 5, "subject": "Task 5: Live gate on the docker cluster", "status": "completed", "classification": "high-risk", "blockedBy": [4], "note": "PASS 5/5 + 0.5.1 virgin-DB re-drill (ScadaBridge/docs/plans/2026-08-07-secrets-central-shared-store-live-gate.md, @ 4d7f09d5/e697477c); found the 0.5.1 migrator race + the pre-Serilog wedge (ScadaBridge#34)."}, {"id": 6, "subject": "Task 6: Closeout — #4 close, runbook, GAPS, index", "status": "completed", "classification": "small", "blockedBy": [5], "note": "scadaproj#4 CLOSED (issuecomment-5751); wedge filed as ScadaBridge#34; clustered-secrets.md rewrap/topology rewrite; GAPS.md + CLAUDE.md Secrets row updated."} ], "lastUpdated": "2026-08-07" }