Commit Graph

  • 9cf7c0f007 feat(localdb): enable replication on the site-a rig pair Joseph Doherty 2026-07-19 09:43:04 -04:00
  • 3c395d794a test(localdb): two-node site-pair convergence over a real gRPC transport Joseph Doherty 2026-07-19 09:42:21 -04:00
  • 98b94771ae feat(localdb): one-time migrator for the pre-Phase-1 site databases Joseph Doherty 2026-07-19 09:36:38 -04:00
  • 59c695191c feat(localdb): fail-closed auth on the sync endpoint + replication health signal Joseph Doherty 2026-07-19 09:29:22 -04:00
  • e62b076f2e docs(localdb): record wave 4 completion (Tasks 4, 5a, 7) + known flakes Joseph Doherty 2026-07-19 09:15:52 -04:00
  • a560e9eaf9 feat(localdb): wire 2-node replication for the site database, default OFF Joseph Doherty 2026-07-19 09:15:26 -04:00
  • 0d8a80aa27 feat(localdb): rewire SiteEventLogger onto the consolidated site database Joseph Doherty 2026-07-19 09:07:49 -04:00
  • 0b5e9b44f6 feat(localdb): rewire OperationTrackingStore onto the consolidated site database Joseph Doherty 2026-07-19 08:59:38 -04:00
  • 2bff527247 docs(localdb): record Task 3 completion Joseph Doherty 2026-07-19 03:37:03 -04:00
  • 2977e6c45c feat(localdb): register the consolidated site database in the composition root Joseph Doherty 2026-07-19 03:36:54 -04:00
  • 2742d54c9f docs(localdb): record Task 1/2/5b completion + prerequisite commits Joseph Doherty 2026-07-19 03:15:50 -04:00
  • 727fa48cba feat(localdb): move site_events to application-minted GUID ids Joseph Doherty 2026-07-19 03:15:17 -04:00
  • f056b67e9a fix(build): suppress AngleSharp advisory instead of pinning (corrects ecf6b628) Joseph Doherty 2026-07-19 03:14:58 -04:00
  • 7370b33186 feat(localdb): reference ZB.MOM.WW.LocalDb 0.1.0 packages Joseph Doherty 2026-07-19 02:39:52 -04:00
  • 4715f2f921 chore(deps): raise gRPC stack 2.71.0 -> 2.76.0 (Protobuf 3.34.1) Joseph Doherty 2026-07-19 02:39:11 -04:00
  • ecf6b62850 fix(build): pin AngleSharp 1.5.2 to unbreak the solution build Joseph Doherty 2026-07-19 02:37:50 -04:00
  • 1556ae04e4 docs(localdb): amend Phase 1 plan - split Task 5 (event-log id change) Joseph Doherty 2026-07-19 02:34:38 -04:00
  • 84170b63ec docs(localdb): verify lib assumptions against source (CreateConnection open+UDF, ReplicationOptions binding) Joseph Doherty 2026-07-19 02:02:42 -04:00
  • b0d4e2edac docs(localdb): parallel-wave execution config, Opus implementers Joseph Doherty 2026-07-19 02:00:05 -04:00
  • ed9644fa3d docs(localdb): Phase 1 implementation plan for LocalDb adoption Joseph Doherty 2026-07-19 01:57:53 -04:00
  • 6351077898 chore(secrets): bump to Secrets 0.2.3 - visible delete modal (scadaproj#2) Joseph Doherty 2026-07-19 01:09:17 -04:00
  • fc86e8bfe1 fix(secrets): bridge the shared audit seam so /admin/secrets renders (#22) Joseph Doherty 2026-07-19 00:57:50 -04:00
  • 0083ce3560 fix(secrets): consume Secrets 0.2.1 feat/secrets-0.2.0 Joseph Doherty 2026-07-18 12:19:55 -04:00
  • 8e12f99432 feat(secrets): opt-in SQL-Server hub replication for the host secret store Joseph Doherty 2026-07-18 11:10:48 -04:00
  • 59805f8551 feat(secrets): add ZB.MOM.WW.Secrets.Replicator.SqlServer 0.2.0 package reference Joseph Doherty 2026-07-18 05:36:02 -04:00
  • 2a0faeab6f fix(security): actually fix GHSA-2m69-gcr7-jv3q instead of suppressing it Joseph Doherty 2026-07-18 05:30:56 -04:00
  • 86d48ff8a5 chore(secrets): bump ZB.MOM.WW.Secrets 0.1.2 -> 0.2.0 Joseph Doherty 2026-07-18 05:22:10 -04:00
  • 50d79ed1c0 fix(deps): bump ZB.MOM.WW.Auth 0.1.3 -> 0.1.5 for the SQLitePCLRaw security fix Joseph Doherty 2026-07-18 03:20:14 -04:00
  • b1b4874090 fix(siteruntime): injectable ScriptExecutionScheduler + un-leakable expression-fault test Joseph Doherty 2026-07-17 15:36:39 -04:00
  • 3e84eee195 fix(dcl): route native OPC UA alarms by binding identity, not event name Joseph Doherty 2026-07-17 14:02:27 -04:00
  • 30196d1ab8 feat(dcl): bind OPC UA nodes by namespace URI, not baked index Joseph Doherty 2026-07-17 00:13:47 -04:00
  • 4d869de9c2 docs: sister-repo index update + working notes Joseph Doherty 2026-07-16 23:31:34 -04:00
  • d2a6107cdb test(host): serialize Central-boot fixtures to close env-var race Joseph Doherty 2026-07-16 23:31:28 -04:00
  • 9110a4eb01 fix(auditlog,health): harden hosted-service shutdown against disposed CTS Joseph Doherty 2026-07-16 23:31:19 -04:00
  • 128f159692 feat(secrets): resolve MxGateway ApiKey secret: refs at connect time (ScadaBridge G-3 T9) Joseph Doherty 2026-07-16 15:29:03 -04:00
  • 56b428d2ef docs(secrets): clustered master-key posture runbook + Central pointer (ScadaBridge G-5 T8) Joseph Doherty 2026-07-16 15:21:54 -04:00
  • 41e17d2ff8 feat(secrets): mount /admin/secrets + register secrets authz in CentralUI (ScadaBridge G-6 T7) Joseph Doherty 2026-07-16 15:09:34 -04:00
  • fbb3867cb3 chore(secrets): remove committed dev plaintext from docker central nodes + loose login files (ScadaBridge G-4 T5) Joseph Doherty 2026-07-16 14:55:31 -04:00
  • cf715b813b feat(secrets): switch Central config secrets to ${secret:} tokens (ScadaBridge G-4 T4) Joseph Doherty 2026-07-16 14:42:28 -04:00
  • abc9c96af0 feat(secrets): register runtime AddZbSecrets on Central + Site roles (ScadaBridge T3) Joseph Doherty 2026-07-16 14:26:16 -04:00
  • ae62e650e9 feat(secrets): pre-host ${secret:} config expander (ScadaBridge G-4 T2) Joseph Doherty 2026-07-16 14:13:53 -04:00
  • 481d6d7265 build(secrets): add ZB.MOM.WW.Secrets 0.1.2 package refs (ScadaBridge G-3/4/5/6 T1) Joseph Doherty 2026-07-16 14:09:44 -04:00
  • 040cd9a66c docs(docker): record live failover-drill results — standby PASS (27s removal, 0 routing blips), active outage 9s + 4s recovery (R2-01 live drill on 99544985) Joseph Doherty 2026-07-13 12:01:00 -04:00
  • 9954498548 docs(archreview): mark round-2 initiative COMPLETE — 8 plans merged to main @ 1930f19b (2026-07-13) Joseph Doherty 2026-07-13 11:49:58 -04:00
  • 1930f19b1a fix(test): relax exact compile-cache hit-count assertion to >= 1 Joseph Doherty 2026-07-13 11:24:06 -04:00
  • 53889aec9f fix(test): set ScadaBridge:Node:NodeName in IntegrationTests host-boot config Joseph Doherty 2026-07-13 11:24:06 -04:00
  • ccee558ca7 merge(r2): r2-plan08 Joseph Doherty 2026-07-13 11:10:15 -04:00
  • ca4b0dd849 merge(r2): r2-plan04 Joseph Doherty 2026-07-13 11:09:36 -04:00
  • 699af8fc16 merge(r2): r2-plan06 Joseph Doherty 2026-07-13 11:09:24 -04:00
  • 84fdea60cf merge(r2): r2-plan05 Joseph Doherty 2026-07-13 11:08:27 -04:00
  • 3ad5ad0d7e merge(r2): r2-plan03 Joseph Doherty 2026-07-13 11:08:27 -04:00
  • 774e3918db merge(r2): PLAN-R2-07 UI/Management/Security Joseph Doherty 2026-07-13 11:08:10 -04:00
  • b7f5470666 merge(r2): PLAN-R2-01 Cluster/Host/Failover Joseph Doherty 2026-07-13 11:08:10 -04:00
  • 9b8ce0f51e merge(r2): PLAN-R2-02 Communication & S&F (Critical N1) Joseph Doherty 2026-07-13 11:08:10 -04:00
  • 2751a6dba9 test(management): freeze scrubber fragment coverage over DataConnection config types + document array-merge limit (plan R2-07 T12) Joseph Doherty 2026-07-13 11:05:19 -04:00
  • 1b88ca1296 fix(security): amortize LoginThrottle.Prune off the failed-bind hot path (plan R2-07 T11) Joseph Doherty 2026-07-13 11:03:26 -04:00
  • 5b16429635 fix(sitestream): deathwatch resets live-cache liveness on aggregator termination (plan R2-07 T10) Joseph Doherty 2026-07-13 11:01:54 -04:00
  • 56d39b5fce fix(host): site singletons (deployment-manager, event-log-handler) via SingletonRegistrar — PhaseClusterLeave drains for site SQLite writes (plan R2-01 T11) Joseph Doherty 2026-07-13 11:01:44 -04:00
  • 4f39cfd6c6 docs(plans): re-consolidate deferral tracking — SBR gap + wonder-app overlay rows into the register, prune landed Fix-now rows, repoint the fired perf-envelope trigger at PLAN-R2-01 (plan R2-08 T10, arch-review 08r2 NF5) Joseph Doherty 2026-07-13 11:00:11 -04:00
  • 80b967681e chore(hygiene): fix stale area-export comment in EntitySerializer.FromBundleContent — areas travel by name since PLAN-05 (plan R2-08 T12, arch-review 08r2 NF6) Joseph Doherty 2026-07-13 10:58:52 -04:00
  • 76ef97f729 fix(ui): disposal guard on Alarm Summary live callback, matching the DebugView pattern (plan R2-07 T9) Joseph Doherty 2026-07-13 10:58:50 -04:00
  • 7943d73e71 fix(options): canonicalize Communication/DataConnection config sections to ScadaBridge:*; drop the duplicate Host bindings that were masking the drift (plan R2-08 T9, arch-review 08r2 NF8) Joseph Doherty 2026-07-13 10:58:28 -04:00
  • 925c869826 fix(ui): Alarm Summary poll defers row rebuilds to the live path while IsLive (plan R2-07 T8) Joseph Doherty 2026-07-13 10:57:09 -04:00
  • d33337a834 fix(ui): drop stale-site poll results on Alarm Summary site switch (plan R2-07 T7) Joseph Doherty 2026-07-13 10:55:25 -04:00
  • 973e59de84 fix(options): bind + validate OperationTrackingOptions; register the site IOperationTrackingStore that two comments claimed AddSiteRuntime provides (plan R2-08 T8, arch-review 08r2 NF4) Joseph Doherty 2026-07-13 10:53:27 -04:00
  • 1fcfa4fb16 fix(security): scope-filter secured-write listing + align spec with enforced site scoping (plan R2-07 T6) Joseph Doherty 2026-07-13 10:53:16 -04:00
  • 80e5b36852 refactor(host): CentralSingletonRegistrar -> SingletonRegistrar with optional role scope — unblocks site-singleton drains (plan R2-01 T10) Joseph Doherty 2026-07-13 10:49:49 -04:00
  • 4a0462e4d0 fix(options): validate Host Node/Database/Logging options at startup — empty NodeName fails fast instead of NULLing SourceNode (plan R2-08 T7, arch-review 08r2 NF4) Joseph Doherty 2026-07-13 10:49:42 -04:00
  • 92936747b7 fix(security): additive permitted-sites filter on secured-write query/count (plan R2-07 T5) Joseph Doherty 2026-07-13 10:48:45 -04:00
  • c2707fdcf8 docs(health): CentralHealthReportLoop comments say oldest-member, not cluster leader — stop re-teaching the S2 conflation (plan R2-01 T9) Joseph Doherty 2026-07-13 10:46:18 -04:00
  • 9b9222d223 fix(security): enforce LDAP-mapping site scope on secured-write submit/approve/reject (plan R2-07 T4) Joseph Doherty 2026-07-13 10:46:08 -04:00
  • 11efe4be05 fix(health): flag metrics-stale for never-reported sites via FirstSeenAt anchor — null LastReportReceivedAt no longer skips the check (plan R2-01 T8) Joseph Doherty 2026-07-13 10:45:22 -04:00
  • e4765b2eed docs(tracker): correct the wonder-app-vd03 deferral record — artifact is present (gitignored); overlay edits applied on-disk by R2-01 T5/T6 (plan R2-01 T7) Joseph Doherty 2026-07-13 10:42:38 -04:00
  • 24c2097ec3 fix(security): ship trusted-proxy ForwardedHeaders config for Traefik topologies + document lockout-DoS trade-off (plan R2-07 T3) Joseph Doherty 2026-07-13 10:42:37 -04:00
  • f85f036b09 fix(options): eager startup validation for AuditLog central sub-options — PartitionMaintenance, Purge, Reconciliation (plan R2-08 T6, arch-review 08r2 NF4) Joseph Doherty 2026-07-13 10:39:03 -04:00
  • b532a1e30e fix(security): trusted-proxy ForwardedHeaders so LoginThrottle keys on the real client IP (plan R2-07 T2) Joseph Doherty 2026-07-13 10:38:41 -04:00
  • 65e0f770d1 test(failover): unskip FailoverTimingTests on the two-node rig at production timings — measured 33.7s vs ~25s design envelope (plan R2-01 T4; covers report-08 NF2) Joseph Doherty 2026-07-13 10:38:19 -04:00
  • e0dddac0be fix(options): eager startup validation for AuditLog site sub-options — SiteWriter, SiteTelemetry, SiteRetention (plan R2-08 T5, arch-review 08r2 NF4) Joseph Doherty 2026-07-13 10:36:46 -04:00
  • e1a692016e fix(security): throttle DebugStreamHub LDAP bind via ManagementAuthenticator + correct coverage doc (plan R2-07 T1) Joseph Doherty 2026-07-13 10:36:32 -04:00
  • 30356803e7 docs(docker): mark failover-drill results table PENDING — live drill run (plan R2-01 T3) deferred to avoid disrupting the running docker cluster Joseph Doherty 2026-07-13 10:34:24 -04:00
  • d536450611 docs(cluster): per-direction failover truth — first-seed bootstrap constraint + operator recovery actions; drop the undeliverable ~25s active-crash promise (plan R2-01 T2) Joseph Doherty 2026-07-13 10:33:56 -04:00
  • 8ddcbbd6f4 docs(changelog): refresh to reality — fix false Operator/Engineer claim, summarize arch-review initiative + M7/M8 (plan R2-08 T4) Joseph Doherty 2026-07-13 10:33:24 -04:00
  • badc97afe8 fix(docker): failover drill kills the STANDBY by default; active mode measures the registered keep-oldest outage instead of pretending recovery (plan R2-01 T1) Joseph Doherty 2026-07-13 10:32:54 -04:00
  • c573d8cac6 fix(audit-log): retention loop absorbs shutdown cancellation instead of faulting host StopAsync (plan R2-04 T12) Joseph Doherty 2026-07-13 10:28:03 -04:00
  • c83b51fe9c fix(comm): single-gRPC-endpoint sites can go live (flip degenerates to same-node reconnect) (plan R2-02 T15) Joseph Doherty 2026-07-13 10:26:43 -04:00
  • 8f46b6cec2 fix(sitecallaudit): time-sliced terminal purge replaces the single year-scale DELETE (plan R2-04 T11) Joseph Doherty 2026-07-13 10:26:33 -04:00
  • 41ffe42de3 docs(comm): accept + document standby aggregators and deleted-site viewer behavior; fix aggregator e2e ctor call for new params (plan R2-02 T14) Joseph Doherty 2026-07-13 10:25:10 -04:00
  • 3d6973cc89 perf(sitecallaudit): filtered IX_SiteCalls_Terminal index backs the retention purge predicate (plan R2-04 T10) Joseph Doherty 2026-07-13 10:23:19 -04:00
  • 4e228110ec fix(comm): site delete disposes the site's cached gRPC channels via RemoveSiteAsync (plan R2-02 T13) Joseph Doherty 2026-07-13 10:22:56 -04:00
  • 439dee52d3 fix(kpi): classify the failover fold-race pass loss as a self-healing Information event (plan R2-04 T9) Joseph Doherty 2026-07-13 10:21:02 -04:00
  • b7f8632db8 chore(comm): ctor-inject aggregator reconnect/stability tuning, remove process-global statics (plan R2-02 T12) Joseph Doherty 2026-07-13 10:19:51 -04:00
  • c29e588905 fix(comm): queue failover re-seed behind in-flight fan-out; stamp stream generation on gRPC errors (plan R2-02 T11) Joseph Doherty 2026-07-13 10:18:16 -04:00
  • cd93ad3976 fix(kpi): promote catalog metric literals to shared KpiMetrics constants — drift becomes a compile error (plan R2-04 T8) Joseph Doherty 2026-07-13 10:15:40 -04:00
  • bb8be55382 perf(comm): coalesce live-alarm delta publishes (250ms window, 0 = legacy) (plan R2-02 T10) Joseph Doherty 2026-07-13 10:14:54 -04:00
  • 1c8b2bc745 docs(kpi): trend charts state per-bucket-total semantics for rate metrics (plan R2-04 T7) Joseph Doherty 2026-07-13 10:12:58 -04:00
  • cc4ff7029d chore(saf): eagerly validate SweepBatchLimit/SweepTargetParallelism (plan R2-02 T9) Joseph Doherty 2026-07-13 10:10:34 -04:00
  • 9a1b160e79 fix(kpi): query service applies catalog aggregation at the bucketer — rate charts keep one unit across the raw/rollup boundary (plan R2-04 T6) Joseph Doherty 2026-07-13 10:10:30 -04:00
  • 61442b5f81 fix(saf): publish _sweepTask only on CAS win so StopAsync drains the real in-flight sweep (plan R2-02 T8) Joseph Doherty 2026-07-13 10:09:40 -04:00
  • 3ee98c8af6 docs: sync Transport/ScriptAnalysis/TemplateEngine specs + CLAUDE.md with the round-2 fix wave (plan R2-05 T9) Joseph Doherty 2026-07-13 10:08:51 -04:00
  • 54417e1ae4 fix(kpi): per-metric bucket reduction — Rate series sum per bucket instead of keeping one delta (plan R2-04 T5) Joseph Doherty 2026-07-13 10:07:56 -04:00