This website requires JavaScript.
9f18badf02
build(host): declare ZB.MOM.WW.Theme directly (not transitively via CentralUI)
Joseph Doherty
2026-06-03 04:52:00 -04:00
837fb74ae5
chore(centralui): remove dead .sidebar shell CSS left by the theme cutover
Joseph Doherty
2026-06-03 04:37:23 -04:00
58352a67cb
fix(centralui): include AntiforgeryToken in LoginCard (match OtOpcUa + kit contract)
Joseph Doherty
2026-06-03 03:39:47 -04:00
b9516e6721
feat(centralui): LoginCard sign-in
Joseph Doherty
2026-06-03 03:34:12 -04:00
957203ec7b
feat(centralui): MainLayout/NavMenu delegate to ZB.MOM.WW.Theme ThemeShell + kit nav
Joseph Doherty
2026-06-03 03:31:10 -04:00
6fb545d75b
refactor(centralui): drop vendored theme.css/fonts/nav-state.js; keep app-only CSS in site.css
Joseph Doherty
2026-06-03 03:25:04 -04:00
6d75bdb372
feat(host): use ZB.MOM.WW.Theme ThemeHead + ThemeScripts
Joseph Doherty
2026-06-03 03:23:03 -04:00
e1589497f1
build(centralui): reference ZB.MOM.WW.Theme 0.2.0
Joseph Doherty
2026-06-03 03:21:44 -04:00
b3de8408fa
feat(audit): ScadaBridge IAuditActorAccessor + wire audit Actor from Auth principal at authenticated emit sites (Phase 3)
Joseph Doherty
2026-06-02 15:33:01 -04:00
bc0e5bfd37
docs(audit): ScadaBridge C7 review — correct 'six persisted' computed-col wording (5 persisted + IngestedAtUtc non-persisted) + stale perf iteration comment
Joseph Doherty
2026-06-02 15:08:49 -04:00
635461c0fd
chore(audit): ScadaBridge C7 — perf re-baseline + CollapseAuditLogToCanonical projection test + index-test fix + dead-cref cleanup (Task 2.5)
Joseph Doherty
2026-06-02 14:59:23 -04:00
68a6bd1720
feat(audit)!: ScadaBridge C5 — collapse central dbo.AuditLog to 10 canonical cols + persisted computed cols; CollapseAuditLogToCanonical migration; repo writes canonical directly (Task 2.5)
Joseph Doherty
2026-06-02 14:06:46 -04:00
1737d15f04
fix(audit): ScadaBridge C4 review — enable PRAGMA foreign_keys + MarkForwarded state guard (no Reconciled demotion) + test (Task 2.5)
Joseph Doherty
2026-06-02 13:23:36 -04:00
946d3e2aef
feat(audit): ScadaBridge C4 — site SQLite two-table (audit_event canonical + audit_forward_state sidecar), forwarding on sidecar, IsCachedKind drain split (Task 2.5)
Joseph Doherty
2026-06-02 13:11:20 -04:00
c27b2c3d5f
fix(audit): ScadaBridge C3 review — safe enum-parse (fallback) in SqliteAuditWriter.MapRow + AuditEventDtoMapper.FromDto (Task 2.5)
Joseph Doherty
2026-06-02 12:55:07 -04:00
db707bb0de
feat(audit)!: ScadaBridge C3 — swap to canonical ZB.MOM.WW.Audit.AuditEvent across seams/emitters/DTO/redactor wiring; transitional 24-col storage shim (Task 2.5)
Joseph Doherty
2026-06-02 12:37:50 -04:00
5aaf9e2923
fix(audit): ScadaBridge C2 review — over-redact scrubs all sensitive free-text fields + outer-catch never-leak test + marker alignment
Joseph Doherty
2026-06-02 11:12:18 -04:00
adfb4d385c
feat(audit): ScadaBridge C2 — ScadaBridgeAuditRedactor/SafeDefaultAuditRedactor : IAuditRedactor on canonical record (Task 2.5)
Joseph Doherty
2026-06-02 11:00:36 -04:00
3d77dc003c
feat(audit): ScadaBridge C1 — AuditDetails codec (deterministic) + AuditOutcome projection + canonical field builders + ZB.MOM.WW.Audit ref (Task 2.5)
Joseph Doherty
2026-06-02 10:42:51 -04:00
4118452e72
docs(auth): ScadaBridge Task 1.7 review — correct stale role-name prose in NavMenu comments (Admin/Design/Deployment/Audit→canonical)
Joseph Doherty
2026-06-02 08:13:38 -04:00
b104760b3a
feat(auth)!: ScadaBridge canonical roles + SoD collapse (Audit→Administrator, AuditReadOnly→Viewer) + config-DB migration (Task 1.7)
Joseph Doherty
2026-06-02 08:00:47 -04:00
6ae605160c
chore(auth): ScadaBridge unify dev LDAP base DN to dc=zb,dc=local (Task 1.6)
Joseph Doherty
2026-06-02 06:54:14 -04:00
c185a567f5
fix(auth): ScadaBridge Task 1.5 review — use JwtTokenService.RoleClaimType constant in CentralUI tests (canonical spelling)
Joseph Doherty
2026-06-02 06:29:16 -04:00
a0938f708b
feat(auth): ScadaBridge full canonical claims (ZbClaimTypes role/scope) + ZbCookieDefaults, keep cookie name (Task 1.5)
Joseph Doherty
2026-06-02 06:23:15 -04:00
afa55981d5
feat(auth)!: ScadaBridge retire SQL Server ApiKey entity + ApprovedApiKeyIds + legacy hashing; EF migration RetireInboundApiKeyStore; re-issue runbook + CHANGELOG (re-arch C5/E) — BREAKING: X-API-Key -> Bearer sbk_, keys re-issued
Joseph Doherty
2026-06-02 05:39:59 -04:00
b13d7b3d28
fix(auth): C4 review polish — document backward-compat JSON tolerance, shared BundleJsonOptions, PreviewAsync legacy-bundle test, doc fix (review I-2/I-3/M-1/M-2; I-1 intentionally skipped)
Joseph Doherty
2026-06-02 05:15:50 -04:00
731cfd3bfc
feat(auth): ScadaBridge TransportExport excludes inbound API keys (re-arch C4; methods-only, import ignores legacy key sections); keys re-issued per environment
Joseph Doherty
2026-06-02 05:06:40 -04:00
d1191fddf9
fix(auth): C3 review — surface seam not-found (no silent success), partial-reconcile-failure guidance, create validation order, concurrent-edit reconciler test
Joseph Doherty
2026-06-02 04:46:32 -04:00
107e524914
feat(auth): ScadaBridge CentralUI pages onto IInboundApiKeyAdmin seam (re-arch C3; string keyId, method-scopes replace ApprovedApiKeyIds, token-once display, approved-keys<->scopes inversion)
Joseph Doherty
2026-06-02 04:36:50 -04:00
8219b8ee18
fix(auth): C2 review — not-found throws (no spurious audit) on update/delete/set-methods, reject empty methods (unusable-key/stealth-disable), richer set-methods response, token advisory to stderr
Joseph Doherty
2026-06-02 04:21:28 -04:00
6518e93424
feat(auth): ScadaBridge ManagementActor + CLI + Commons messages onto IInboundApiKeyAdmin seam (re-arch C2; int->string keyId, +Methods, +SetApiKeyMethods)
Joseph Doherty
2026-06-02 04:11:44 -04:00
7f7ea3f3c9
fix(auth): C1 review polish — guard name at seam, document seam contract (throws/O(n)), explicit cookie test (review #1/#2/#3/#5/#8)
Joseph Doherty
2026-06-02 04:01:43 -04:00
55099b19f6
fix(auth): move AddZbLdapAuth to Host composition root so component-lib AddSecurity() drops IConfiguration param (satisfy OptionsTests arch rule; fix pre-existing ac34dac red); behaviour-preserving
Joseph Doherty
2026-06-02 03:50:16 -04:00
7e25efa790
test(host): supply Central test ApiKeyPepper so StartupValidator preflight passes (fix pre-existing 1fcc4f5 red); lock pepper-required behavior
Joseph Doherty
2026-06-02 03:40:56 -04:00
d09def2be0
feat(auth): ScadaBridge re-pin Auth 0.1.3 + add IInboundApiKeyAdmin seam over library admin facade (re-arch C1, additive)
Joseph Doherty
2026-06-02 03:32:25 -04:00
1fcc4f5c2b
fix(auth): ScadaBridge inbound auth review fixes — scope-before-DB, pinned 403 body, pepper fail-fast, log category
Joseph Doherty
2026-06-02 02:50:10 -04:00
a94558c289
feat(auth): ScadaBridge inbound API — adopt ZB.MOM.WW.Auth.ApiKeys verifier + Bearer + scope=method (re-arch A+B); additive, old path retired later
Joseph Doherty
2026-06-02 02:40:18 -04:00
4db8c373af
fix(auth): ScadaBridge 1.2 review fixes — secret-test repoint, checklist, Scope guard, 0.1.1 pin
Joseph Doherty
2026-06-02 01:23:52 -04:00
ac34dac479
feat(auth): cut ScadaBridge over to ZB.MOM.WW.Auth.Ldap; nest+rename Ldap config; roles+sitescope via IGroupRoleMapper (Task 1.2/1.4)
Joseph Doherty
2026-06-02 01:04:34 -04:00
9230afa25f
feat(auth): add IGroupRoleMapper<string> seam (Task 1.1)
Joseph Doherty
2026-06-02 00:30:42 -04:00
aaad38958e
build: add ZB.MOM.WW.Auth/Audit feed mapping + version pins
Joseph Doherty
2026-06-02 00:17:40 -04:00
145d2668e2
fix: wire ValidateOnStart for ScadaBridge HealthMonitoring + Cluster options (fail-fast at startup)
Joseph Doherty
2026-06-01 23:07:46 -04:00
9668a4e84a
refactor: ScadaBridge module options registration -> AddValidatedOptions; clarify De Morgan predicates
Joseph Doherty
2026-06-01 22:49:41 -04:00
6dbbc7ad04
refactor: ScadaBridge StartupValidator -> ConfigPreflight (byte-compatible)
Joseph Doherty
2026-06-01 19:04:13 -04:00
aac59c9fae
refactor: ScadaBridge validators onto OptionsValidatorBase (messages unchanged)
Joseph Doherty
2026-06-01 18:56:04 -04:00
9bca6aae61
build: add ZB.MOM.WW.Configuration feed mapping + version pin
Joseph Doherty
2026-06-01 18:10:29 -04:00
7d16f8f275
Merge feat/telemetry-followons: telemetry follow-ons for ScadaBridge
Joseph Doherty
2026-06-01 17:17:39 -04:00
ccf43312e8
feat(scadabridge): config-driven OTLP exporter opt-in (default Prometheus)
Joseph Doherty
2026-06-01 17:14:35 -04:00
a5f8651b0f
feat(scadabridge): track scadabridge.site.connection.up over site-stream lifetime (balanced open/close)
Joseph Doherty
2026-06-01 17:11:39 -04:00
15a626390b
fix(scadabridge): queue-depth seed uses Add (no lost concurrent enqueue) + clarify registration/discard comments
Joseph Doherty
2026-06-01 17:07:03 -04:00
782fb73015
feat(scadabridge): emit scadabridge.inbound_api.requests (by method) at inbound API entry
Joseph Doherty
2026-06-01 17:03:10 -04:00
547b685a42
feat(scadabridge): wire scadabridge.store_and_forward.queue.depth gauge to buffered count
Joseph Doherty
2026-06-01 16:58:09 -04:00
877f2e200b
feat(scadabridge): emit scadabridge.deployments.applied on deployment success
Joseph Doherty
2026-06-01 16:52:09 -04:00
c41cb41c7b
fix(scadabridge): default MetricsPort to 8084 (avoid site RemotingPort collision) + validate port distinctness
Joseph Doherty
2026-06-01 16:46:59 -04:00
fe25ac3e51
feat(scadabridge): add ScadaBridgeTelemetry meter + 4 instruments; register with OTel
Joseph Doherty
2026-06-01 16:41:52 -04:00
bbc9f09268
feat(scadabridge): add HTTP/1.1 metrics listener on site nodes (NodeOptions.MetricsPort=8082)
Joseph Doherty
2026-06-01 16:36:59 -04:00
43f5886024
Merge feat/adopt-zb-telemetry: adopt ZB.MOM.WW.Telemetry across ScadaBridge
Joseph Doherty
2026-06-01 16:05:49 -04:00
f743ffaad2
feat(scadabridge): add shared TraceContextEnricher to log pipeline (trace correlation)
Joseph Doherty
2026-06-01 15:40:42 -04:00
b3070c0bda
feat(scadabridge): wire AddZbTelemetry + /metrics in both composition roots
Joseph Doherty
2026-06-01 15:36:55 -04:00
20a31835cf
build(scadabridge): reference ZB.MOM.WW.Telemetry packages from Gitea feed
Joseph Doherty
2026-06-01 15:30:00 -04:00
59dca0d5fd
Merge feat/adopt-zb-health: adopt ZB.MOM.WW.Health shared probes (/healthz, canonical writer, ActorSystem DI bridge)
Joseph Doherty
2026-06-01 14:07:00 -04:00
adf1bd2693
build: drop orphaned AspNetCore.HealthChecks.UI.Client ref (UIResponseWriter removed)
Joseph Doherty
2026-06-01 13:56:12 -04:00
bbff1d19b5
feat: adopt shared ZB.MOM.WW.Health probes; add /healthz; canonical writer
Joseph Doherty
2026-06-01 13:46:49 -04:00
2a7ff03718
feat: bridge ActorSystem into DI (transient) for shared health checks
Joseph Doherty
2026-06-01 13:37:21 -04:00
38e48299a4
build: reference ZB.MOM.WW.Health packages from the Gitea feed
Joseph Doherty
2026-06-01 13:30:33 -04:00
43228185b4
docs: convert standard diagrams from draw.io PNGs to inline Mermaid
Joseph Doherty
2026-06-01 00:23:00 -04:00
e3ca5ac0cf
docs(spike): darken Mermaid label text for readability
Joseph Doherty
2026-06-01 00:08:08 -04:00
4c5e7eb917
docs(spike): inline Mermaid for store-and-forward lifecycle
Joseph Doherty
2026-05-31 23:53:04 -04:00
bdee12f4e9
docs: render architecture & flow diagrams as draw.io charts
Joseph Doherty
2026-05-31 23:32:53 -04:00
3763f6d2d8
docs: reframe README as the ScadaBridge implementation project
Joseph Doherty
2026-05-31 22:12:16 -04:00
300841b205
chore: mark rename plan complete (all 7 tasks done)
Joseph Doherty
2026-05-31 22:05:13 -04:00
3797af7f0f
chore: mark rename plan tasks 0-4 complete
Joseph Doherty
2026-05-31 21:59:57 -04:00
a47317d010
docs: record git-ignored deploy/ scrub gap + resolution (incl. LDAP directory rename)
Joseph Doherty
2026-05-31 21:58:49 -04:00
c899cb162c
refactor: scrub residual ScadaLink refs → ScadaBridge (env vars, config keys, assembly name, SQL login)
Joseph Doherty
2026-05-31 21:47:59 -04:00
d69031dd08
docs: reorganize CLAUDE.md project-structure section
Joseph Doherty
2026-05-31 21:41:29 -04:00
d317c07ea5
docs: add folder/repo rename implementation plan + task file
Joseph Doherty
2026-05-31 21:39:23 -04:00
e01f3bdabe
docs: add folder/repo rename design doc (scadalink-design → ScadaBridge)
Joseph Doherty
2026-05-31 21:32:07 -04:00
f428804bef
docs: close native-alarm spec gaps surfaced by docs audit
Joseph Doherty
2026-05-31 07:41:49 -04:00
9afcdc996e
chore(plans): native alarms COMPLETE (28/28) + T28 live-integration notes
Joseph Doherty
2026-05-31 03:29:37 -04:00
add7210d9e
fix(dcl): route native alarm subscribe/unsubscribe through DataConnectionManagerActor
Joseph Doherty
2026-05-31 03:25:28 -04:00
f4ae44aacc
fix(docker-env2): instance deploy uses --id (not --instance-id) in native alarm seed
Joseph Doherty
2026-05-31 03:15:09 -04:00
27d5701d99
test(dcl): OPC UA A&C live smoke (skippable) + test-infra A&C note
Joseph Doherty
2026-05-31 03:05:44 -04:00
d24c00ec2c
chore(plans): native alarms execution progress (27/28) + batch-8 notes
Joseph Doherty
2026-05-31 02:55:36 -04:00
003e54c1fb
docs: native alarm ingestion across component docs + CLAUDE.md
Joseph Doherty
2026-05-31 02:55:00 -04:00
2b7c765a58
chore(docker-env2): seed sample native alarm source binding + demo instance on site-x
Joseph Doherty
2026-05-31 02:50:38 -04:00
046797e699
feat(ui): instance configure native alarm source override panel
Joseph Doherty
2026-05-31 02:46:54 -04:00
b03ab11d8a
chore(plans): native alarms execution progress (24/28) + batch-7 notes
Joseph Doherty
2026-05-31 02:41:45 -04:00
60f8e2c9a7
feat(ui): template editor Native Alarm Sources subsection
Joseph Doherty
2026-05-31 02:40:52 -04:00
1f6c4207df
feat(ui): enrich DebugView alarm table with severity + condition state + native metadata
Joseph Doherty
2026-05-31 02:34:12 -04:00
a6dcbf62cd
feat(cli): native-alarm-source commands (template add/list/remove + instance set/clear)
Joseph Doherty
2026-05-31 02:30:05 -04:00
c4cea9eea5
chore(plans): native alarms execution progress (21/28) + batch-6 notes
Joseph Doherty
2026-05-31 02:23:50 -04:00
3bf1d26d79
feat(management): handlers for native alarm source CRUD
Joseph Doherty
2026-05-31 02:23:17 -04:00
b1df6d5beb
feat(commons): management command contracts for native alarm sources
Joseph Doherty
2026-05-31 02:18:37 -04:00
0c6f9a9cff
feat(communication): map enriched alarm fields across gRPC (server + client)
Joseph Doherty
2026-05-31 02:16:43 -04:00
50176765fe
chore(plans): native alarms execution progress (18/28) + batch-5 notes
Joseph Doherty
2026-05-31 02:11:11 -04:00
20b41b8965
feat(communication): extend AlarmStateUpdate proto with native alarm fields (regenerated)
Joseph Doherty
2026-05-31 02:10:12 -04:00
bca21ffb95
test(siteruntime): assert computed alarms carry unified condition state
Joseph Doherty
2026-05-31 02:07:54 -04:00
6d318586d1
feat(siteruntime): InstanceActor spawns NativeAlarmActors + enriched alarm snapshot; clear native state on redeploy/undeploy
Joseph Doherty
2026-05-31 02:06:39 -04:00
376dac4895
chore(plans): native alarms execution progress (15/28) + batch-4 notes
Joseph Doherty
2026-05-31 01:50:30 -04:00
fda7ac9c50
feat(siteruntime): NativeAlarmActor mirrors source alarms (snapshot swap, retention, persistence)
Joseph Doherty
2026-05-31 01:49:28 -04:00