513fa1aa16
docs(tests): fix CommentChecker findings across tests/ — 13,392 → 0 (repo-wide scan clean)
main
Joseph Doherty
2026-10-07 15:05:49 -04:00
0ffd4bdbea
docs(src): fix CommentChecker findings across src/ — 1,032 → 5 (all false positives)
Joseph Doherty
2026-10-07 14:12:25 -04:00
3a217b9484
fix(site-secrets): keep a live node's mirror-status row from losing a race with the peer's prune
Joseph Doherty
2026-09-29 11:06:26 -04:00
55e1741075
fix(site-secrets): prune secret_mirror_status rows of decommissioned or renamed nodes
Joseph Doherty
2026-09-29 10:56:53 -04:00
2650f79472
test(rig): site secrets gate covers the follow-ups — standby KEK mismatch on the health report, removal audit, CLI exit codes — PASS 9/9
Joseph Doherty
2026-09-28 21:46:49 -04:00
4e6409184c
Merge branch 'fix/standby-secret-mirror-status' (M1: standby mirror failures on the health report)
Joseph Doherty
2026-09-28 21:37:03 -04:00
f5756affef
docs(site-secrets): document secret_mirror_status and standby mirror failures on the health report (M1)
Joseph Doherty
2026-09-28 21:33:10 -04:00
0289d51137
fix(site-secrets): report every site node's secret mirror failures on the health report (M1)
Joseph Doherty
2026-09-28 21:33:10 -04:00
253939cd5d
docs(site-secrets): Secrets 0.6.3 is published (not consumed by ScadaBridge)
Joseph Doherty
2026-09-28 21:31:05 -04:00
29049c4ef6
fix(site-secrets): contain secret-store outages per site; audit removal-only deploys
Joseph Doherty
2026-09-28 21:23:52 -04:00
ef03a0dca7
fix(cli): artifact-deploy commands exit 1 when any site failed
Joseph Doherty
2026-09-28 21:23:52 -04:00
23a139a46c
test(rig): site secrets live gate re-run after final-review fixes — PASS 8/8
Joseph Doherty
2026-09-28 21:11:37 -04:00
67a3950f74
fix(site-secrets): one shared secret: reference parser for scanner and MxGateway adapter
Joseph Doherty
2026-09-28 21:08:34 -04:00
b1b49bb36c
fix(site-secrets): mirror secrets before pushing artifact data connections to the DCL
Joseph Doherty
2026-09-28 21:08:34 -04:00
6f1787abe1
fix(site-secrets): mirror heals same-revision local drift and isolates unreadable rows
Joseph Doherty
2026-09-28 21:08:34 -04:00
9835ef8be3
test(rig): site secrets artifact-deploy live gate PASS 8/8
Joseph Doherty
2026-09-28 20:47:57 -04:00
ad19d4b158
fix(site-secrets): ship an empty Secrets list, not null, when a site references no secrets
Joseph Doherty
2026-09-28 20:43:36 -04:00
1444f85919
fix(site-secrets): ManagementActorTests build the ArtifactDeploymentService proxy with the new SiteSecretsCollector ctor arg
Joseph Doherty
2026-09-28 20:32:26 -04:00
0ccf68951d
docs: site secrets ride the artifact deploy; gRPC hub retired in ScadaBridge
Joseph Doherty
2026-09-28 20:22:45 -04:00
bc29dc412b
fix(secrets): review round 1 — pre-host expander reads the same store the runtime serves, raw-string Replication:Enabled parse, leftover-key warning
Joseph Doherty
2026-09-28 20:10:17 -04:00
2bac13170c
feat(secrets)!: retire the gRPC secrets hub in ScadaBridge — sites get secrets via Deploy Artifacts; rig central on the shared SQL store
Joseph Doherty
2026-09-28 19:52:26 -04:00
52cd4fb096
feat(site): artifact apply writes deployed secrets and answers SecretsApplied
Joseph Doherty
2026-09-28 19:29:55 -04:00
838fb4177b
fix(site): DeployedSecretsMirror — ledger-owned rows recover past clock skew; real-cipher recovery test
Joseph Doherty
2026-09-28 19:19:22 -04:00
437b02a43c
test(artifacts): cover RetryForSiteAsync secrets reconciliation and DeploySiteSecrets audit row (fix round 1)
Joseph Doherty
2026-09-28 18:28:27 -04:00
00c89aff12
feat(artifacts): never stamp a site current unless it applied every secret; DeploySiteSecrets audit row
Joseph Doherty
2026-09-28 18:20:54 -04:00
75b2a7244c
feat(artifacts): central ships each site's referenced secrets (ciphertext) and fails closed on a missing one
Joseph Doherty
2026-09-28 18:07:17 -04:00
a57c36f504
fix(secrets): review round 1 — gate the clustered-central secrets warning on Replication:Enabled, name the real trigger in the shared-store connection-string message, pin Grpc-vs-Store:Provider precedence
Joseph Doherty
2026-09-28 17:56:30 -04:00
35235ecfed
feat(secrets): Secrets:Store:Provider=SqlServer — central pair shares one SQL secret store without the hub
Joseph Doherty
2026-09-28 17:44:14 -04:00
ebc55c5f72
feat(artifacts): secrets and missing-secret markers in the artifact revision hash
Joseph Doherty
2026-09-28 17:32:42 -04:00
738e458755
test(secrets): cover ReferencedBy dedup within one connection and case-insensitive bootstrap exclusion
Joseph Doherty
2026-09-28 17:29:52 -04:00
01cb1f5652
feat(secrets): SecretReferenceScanner derives a site's secret refs from its data-connection configs
Joseph Doherty
2026-09-28 17:27:28 -04:00
bf7d2db0b1
feat(artifacts): additive Secrets list + SecretsApplied on the artifact deploy contract (proto field 9)
Joseph Doherty
2026-09-28 17:22:57 -04:00
b6287ae307
docs(plans): site secrets ride the artifact deploy — design + implementation plan
Joseph Doherty
2026-09-28 17:17:05 -04:00
2aede140e2
deploy(qa): b3021e7c to vq03/vq04 (55->57, artifacts deployed); SimpleAlarmStatusRequest copied from vd03; register row 126 closed
Joseph Doherty
2026-09-28 11:12:05 -04:00
5cc09b08ef
deploy(vd03): b3021e7c — script file access live (AllowedRoots E:\ApiInstall\ScadaBridge\recipes); gate 31/31, rig 8/8
Joseph Doherty
2026-09-28 10:45:54 -04:00
b3021e7c5f
feat(scripts): read-only, allow-listed Files global for site scripts; Delmia test receiver parses recipe files
Joseph Doherty
2026-09-28 10:36:42 -04:00
0af0672597
deploy(vd03): fe89363b + migrations 56/57; in-memory MES/Delmia/alarm-API test machines
Joseph Doherty
2026-09-28 10:10:17 -04:00
fe89363b1a
docs(claude): winrm re-enabled for deployment activities only (2026-09-28)
Joseph Doherty
2026-09-28 09:25:10 -04:00
fad833e8d1
docs(former-api-specs): legacy MES alarm API — code-verified behaviour notes
Joseph Doherty
2026-09-28 09:25:10 -04:00
fb54ed428b
docs(register): row 126 — TODO roll migrations 56/57 (AddAlarmMesReportable, AddSiteArtifactRevision) to vd03/vq03/vq04 with the 55→57 delta script
Joseph Doherty
2026-09-14 14:43:18 -04:00
ac833f5ace
docs: pending-updates plan — all 12 tasks completed; rig gate 13/13 + Playwright 3/3 on the merged tip
Joseph Doherty
2026-09-14 14:38:32 -04:00
3a21cfc2f5
fix(central-ui): pending-updates indicator starts polling once the async auth resolve completes
Joseph Doherty
2026-09-14 14:29:36 -04:00
623c6d0fe8
fix(rig): verify-pending-updates.sh cannot pass on an empty site list; numeric-safe comparison; earlier cleanup trap
Joseph Doherty
2026-09-14 14:20:15 -04:00
af9f14a668
fix(central-ui): pending-updates indicator resolves roles/scope once per auth state, not per poll
Joseph Doherty
2026-09-14 14:15:49 -04:00
6dc784bca4
docs(cli): site list omits the artifact-revision fields until the first deploy (not null)
Joseph Doherty
2026-09-14 14:13:01 -04:00
a672f91d90
test(rig): verify-pending-updates.sh + Playwright smoke for the indicator and Sites badge
Joseph Doherty
2026-09-14 14:10:24 -04:00
94e1d71ba2
fix(central-ui): Sites page re-check no longer holds the deploy controls; pluralise; clear stale caption on error
Joseph Doherty
2026-09-14 14:08:52 -04:00
d8979664f1
docs: site artifact revision, pending-updates indicator, rail scroll pane
Joseph Doherty
2026-09-14 14:01:07 -04:00
c724ed6ee2
feat(central-ui): rail-footer pending-updates indicator
Joseph Doherty
2026-09-14 14:00:16 -04:00
5d6bd03868
feat(central-ui): Sites page shows whether a site's deployed artifacts are current
Joseph Doherty
2026-09-14 13:59:54 -04:00
3d22f272d3
refactor(deploy): evaluator groups instances by site once; doc corrections
Joseph Doherty
2026-09-14 13:55:26 -04:00
ada91bb82c
feat(central-ui): process-wide single-flight cache for the pending-updates snapshot
Joseph Doherty
2026-09-14 13:52:54 -04:00
0287f8f64f
fix(deploy): persist the artifact deployment record before the best-effort site stamp
Joseph Doherty
2026-09-14 13:51:34 -04:00
fc48db480c
feat(deploy): PendingUpdatesEvaluator — one fleet snapshot of stale instances and stale-artifact sites
Joseph Doherty
2026-09-14 13:49:54 -04:00
3b55d60ef9
fix(deploy): staleness batch logs one Warning per batch, not one per instance
Joseph Doherty
2026-09-14 13:48:06 -04:00
5214932447
feat(deploy): hash the per-site artifact set and stamp it on a successful artifact deploy
Joseph Doherty
2026-09-14 13:42:51 -04:00
dc60ba1212
feat(deploy): batch instance staleness over one flatten session
Joseph Doherty
2026-09-14 13:40:19 -04:00
dd202e5dde
feat(sites): record the artifact revision last deployed to a site
Joseph Doherty
2026-09-14 13:33:59 -04:00
0762d69132
fix(central-ui): rail nav scrolls in its own pane so the footer stays pinned
Joseph Doherty
2026-09-14 13:31:19 -04:00
47e20dd8a8
docs(plans): pending-updates design + plan (site artifact staleness, rail indicator, scrollable nav)
Joseph Doherty
2026-09-14 13:28:49 -04:00
9d529b82b2
fix(central-ui): nest Flow Debugger inside the Deployment nav section
Joseph Doherty
2026-09-11 12:28:42 -04:00
18ebfe7194
docs(design): MES-reportable alarm flag — status merged + rig gate PASS
Joseph Doherty
2026-09-11 10:46:26 -04:00
4cfa645bfb
docs: MES-reportable alarm flag plan — all 16 tasks completed
Joseph Doherty
2026-09-11 10:46:05 -04:00
6ac95ea888
fix(template-engine): carry IsMesReportable onto derived-template placeholder alarms and through descendant reconcile; final-review doc fixes
Joseph Doherty
2026-09-11 10:45:09 -04:00
421d2d305e
feat(docker): seed + verify scripts for the MES-reportable alarm demo — rig live gate PASS
Joseph Doherty
2026-09-11 10:33:40 -04:00
17d9a4cd2c
feat(scripts): ScriptAlarm.IsMesReportable + Alarms.MesReportableAsync() mirrored on both compile surfaces
Joseph Doherty
2026-09-11 10:12:47 -04:00
ce8fc092c8
docs: MES-reportable alarm flag — component docs, CLAUDE.md, register rows 121–122
Joseph Doherty
2026-09-11 10:16:47 -04:00
f1a7c34b69
feat(cli): --mes-reportable on template alarm add/update and instance alarm-override set
Joseph Doherty
2026-09-11 10:08:28 -04:00
c259614a78
fix(ui): Task 11 review — verify false override end-to-end, move HasOverrideDelta to the partial, label wording
Joseph Doherty
2026-09-11 10:11:53 -04:00
cbb5e83633
feat(site-runtime): stamp IsMesReportable on the Instance Actor alarm snapshot
Joseph Doherty
2026-09-11 09:59:27 -04:00
735534a455
feat(ui): tri-state MES reportable override on Instance Configure (reportable-only override is a delta)
Joseph Doherty
2026-09-11 10:05:05 -04:00
63ec226582
feat(management): IsMesReportable on alarm commands, IsMesReportableOverride on SetInstanceAlarmOverride
Joseph Doherty
2026-09-11 10:04:17 -04:00
c8a1bcef98
feat(ui): MES reportable checkbox on the template alarm dialog + MES column on the Alarms tab
Joseph Doherty
2026-09-11 10:03:49 -04:00
43973d34de
feat(transport): carry IsMesReportable / IsMesReportableOverride through bundles (round-trip guard extended)
Joseph Doherty
2026-09-11 10:00:00 -04:00
af10af1573
feat(template-engine): persist IsMesReportable on alarm update; IsMesReportableOverride on SetAlarmOverrideAsync
Joseph Doherty
2026-09-11 09:56:54 -04:00
54e21a8107
feat(template-engine): flatten IsMesReportable with null-inherits override semantics
Joseph Doherty
2026-09-11 09:55:11 -04:00
b07394447f
feat(commons): IsMesReportable on TemplateAlarm, ResolvedAlarm; IsMesReportableOverride on InstanceAlarmOverride
Joseph Doherty
2026-09-11 09:52:34 -04:00
73f2a032e0
docs: MES-reportable alarm flag — design + 16-task implementation plan
Joseph Doherty
2026-09-11 09:50:54 -04:00
da0084886a
docs: note that psbridge and winrm remote access to the wonder boxes are disabled (2026-09-11)
Joseph Doherty
2026-09-11 09:05:36 -04:00
31b1b8db76
docs(#36): design doc §8/§10 — live-gate results and the String-node retarget
Joseph Doherty
2026-09-10 15:54:11 -04:00
29ca6b15ab
docs(#36): rig live gate PASS (two runs, reset echo held 751 ms on run 2); seed retargeted to String nodes; register row 120 — OPC UA scalar writes go out as String variants
Joseph Doherty
2026-09-10 15:53:51 -04:00
3595f00dad
test(site-runtime): HandshakeResetEchoTests — label the legacy pin as permanent behaviour (#36 review)
Joseph Doherty
2026-09-10 15:36:28 -04:00
17d5d3e639
fix(scripts): reset-aware handshake refuses a null reset value; document additive timeouts (#36 review)
Joseph Doherty
2026-09-10 15:35:50 -04:00
637da6c020
docker(seed-handshake-demo): System.-qualify TimeSpan/StringComparison to match the sibling seed (#36 review)
Joseph Doherty
2026-09-10 15:30:40 -04:00
465a9d711a
docker: seed-handshake-demo.sh — live gate for the reset-aware handshake over real OPC UA flags (#36)
Joseph Doherty
2026-09-10 15:28:00 -04:00
4e335891b4
test(site-runtime): traced reset-aware handshake emits four ordered step rows (#36)
Joseph Doherty
2026-09-10 15:27:25 -04:00