Files
scadaproj/docs/plans/2026-07-18-secrets-0.2.0-upgrade-and-clustering.md.tasks.json
T
Joseph Doherty 62a96e5f22 docs(secrets): reconcile 0.2.1 adoption - what was proven vs merely built
- All 4 apps on 0.2.1 (local branches, unpushed).
- Records the corrected security story: the version bump closed NO advisory (all four
  repos already resolved patched 2.1.12); the real live vulnerability was in ScadaBridge,
  masked by a NuGetAuditSuppress, and was fixed by separate work.
- Records the upstream 0.2.0 inert-Akka-replicator defect, its root cause (DI extensions
  with no container-building test - third instance of that class), and the 0.2.1 fix.
- Marks clustered topology WIRED-but-default-OFF and explicitly NOT live-validated;
  Task 9 remains open and the topology is not 'adopted' until it passes.
2026-07-18 12:21:31 -04:00

128 lines
3.1 KiB
JSON

{
"planPath": "docs/plans/2026-07-18-secrets-0.2.0-upgrade-and-clustering.md",
"tasks": [
{
"id": 1,
"nativeId": "7",
"subject": "Task 1: HistorianGateway bump 0.1.2 -> 0.2.0",
"status": "completed",
"classification": "trivial",
"parallelizableWith": [
2,
3,
4
]
},
{
"id": 2,
"nativeId": "8",
"subject": "Task 2: MxAccessGateway bump 0.1.2 -> 0.2.0",
"status": "completed",
"classification": "trivial",
"parallelizableWith": [
1,
3,
4
]
},
{
"id": 3,
"nativeId": "9",
"subject": "Task 3: OtOpcUa bump 0.1.2 -> 0.2.0 (CPM)",
"status": "completed",
"classification": "trivial",
"parallelizableWith": [
1,
2,
4
]
},
{
"id": 4,
"nativeId": "10",
"subject": "Task 4: ScadaBridge bump 0.1.2 -> 0.2.0 (CPM)",
"status": "completed",
"classification": "trivial",
"parallelizableWith": [
1,
2,
3
]
},
{
"id": 5,
"nativeId": "11",
"subject": "Task 5: OtOpcUa add Akka replicator package",
"status": "completed",
"classification": "small",
"blockedBy": [
3
],
"parallelizableWith": [
7
]
},
{
"id": 6,
"nativeId": "12",
"subject": "Task 6: OtOpcUa wire Akka replication + shared KEK",
"status": "completed",
"classification": "high-risk",
"blockedBy": [
5
]
},
{
"id": 7,
"nativeId": "13",
"subject": "Task 7: ScadaBridge add SqlServer replicator package",
"status": "completed",
"classification": "standard",
"blockedBy": [
4
],
"parallelizableWith": [
5
]
},
{
"id": 8,
"nativeId": "14",
"subject": "Task 8: ScadaBridge wire hub replication + per-node config",
"status": "completed",
"classification": "high-risk",
"blockedBy": [
7
]
},
{
"id": 9,
"nativeId": "15",
"subject": "Task 9: Live convergence gate (both clustered apps)",
"status": "pending",
"classification": "high-risk",
"blockedBy": [
6,
8
]
},
{
"id": 10,
"nativeId": "16",
"subject": "Task 10: Docs reconcile",
"status": "pending",
"classification": "small",
"blockedBy": [
9
]
}
],
"checkpoints": [
{
"afterTask": 4,
"note": "All four apps on 0.2.0, advisory closed family-wide. Independently shippable \u2014 FF-merge and push each repo before Task 5."
}
],
"lastUpdated": "2026-07-18",
"notes": "Tasks 1-8 complete on local feat/secrets-0.2.0 branches in 4 repos (not pushed). Apps ended on Secrets 0.2.1, not 0.2.0: adoption uncovered that 0.2.0's Akka replicator was silently inert (TryAdd order); fixed and republished. Task 9 (live gate) NOT done - needs 2-node rigs. Replication is default-OFF everywhere, so nothing ships enabled."
}