Commit Graph

758 Commits

Author SHA1 Message Date
Joseph Doherty 23693ef66c docs(otopcua-history): #882 folder event history includes attribute alarms (da948e5f), consumer impact
Claude-Session: https://claude.ai/code/session_01GT67ACmpMR7b9LGRPLijMi
2026-11-12 10:37:20 -05:00
Joseph Doherty 7c3d40ff19 docs(otopcua-history): drop unverified consumer example from #881 note
Claude-Session: https://claude.ai/code/session_01GT67ACmpMR7b9LGRPLijMi
2026-11-12 10:33:07 -05:00
Joseph Doherty 2624b32b1c docs(otopcua-history): #881 HistoryServerCapabilities flags per backend (b27b5b9c)
Claude-Session: https://claude.ai/code/session_01GT67ACmpMR7b9LGRPLijMi
2026-11-12 10:32:49 -05:00
Joseph Doherty 3180b09659 docs(theme): Theme 0.5.3 published to the Gitea feed (unblocks ScadaBridge#61)
Claude-Session: https://claude.ai/code/session_01GT67ACmpMR7b9LGRPLijMi
2026-11-12 08:51:34 -05:00
Joseph Doherty 9f7d36e7dc docs(index): mxaccessgw Contracts/Client 0.4.0 published; OtOpcUa adopts the stream-attached ack (lmxopcua#877)
Claude-Session: https://claude.ai/code/session_01GT67ACmpMR7b9LGRPLijMi
2026-11-12 07:41:12 -05:00
Joseph Doherty ef1b835910 docs(index): mxaccessgw #227 stream-attached ack + #226 alarm UTC fix on main 2026-11-12 07:28:33 -05:00
Joseph Doherty d25b73bacd docs(deploy): vd03 HistorianGateway gRPC :5221 opened off-box (0.0.0.0 + firewall rule) 2026-11-12 07:04:47 -05:00
Joseph Doherty 24c2624ce5 docs(index): vd03 OtOpcUa #793 close-out — MaxRpm re-pointed (9adc5590), ACL off, no ScadaBridge OPC UA link 2026-11-12 06:16:30 -05:00
Joseph Doherty 1f23e8a965 docs(index): vd03 OtOpcUa upgraded to 5fb4b4db (#793); DEV inventory in deployment.md §9 2026-11-12 06:08:08 -05:00
Joseph Doherty 2e2ce62665 docs(history): correct vd03 Galaxy-ack note (no Galaxy driver deployed there) 2026-11-12 06:00:30 -05:00
Joseph Doherty 4735913cdc docs(history): OtOpcUa vd03 upgraded to 5fb4b4db (#793) 2026-11-12 06:00:23 -05:00
Joseph Doherty 2ff319197d docs(index): OtOpcUa master 31be927f — script-runner Windows pipe I/O (#789) 2026-11-11 21:11:23 -05:00
Joseph Doherty b322140b99 docs(index): OtOpcUa master f109e5f2 — Galaxy init budget (#875), #717 spec draft, gate F PASS 2026-11-11 19:01:36 -05:00
Joseph Doherty 81d8901bf0 docs(index): OtOpcUa master 43f8b8e8 — SDK server logging (#874), SDK2 clock-skew note (#873), integration CI green 2026-11-11 18:08:12 -05:00
Joseph Doherty 1c6fe5793b docs(index): vd03 DEV deploys 2026-11-11 — mxaccessgw 2b13564e, HistorianGateway ea9f21c, ScadaBridge 424db155 2026-11-11 16:50:58 -05:00
Joseph Doherty 601f7ae0e6 docs(index): OtOpcUa master 363f0d81 — Galaxy status mapping (#866/#872), ring event queue (#870) 2026-11-11 15:38:51 -05:00
Joseph Doherty d042890d50 docs(index): OtOpcUa master 7a27ef1f — Galaxy ack confirmation, host status, aggregates, folder events, hardware gates 2026-11-11 14:54:15 -05:00
Joseph Doherty d8147bd0fd docs(index): OtOpcUa master e857135e — Galaxy subscribe-reply race + reconnect fencing (#859/#861), #856–#862 batch 2026-11-11 11:29:07 -05:00
Joseph Doherty 2adcd75bdc docs(history): OtOpcUa #835–#854 docker-dev live gate PASS 2026-11-11 08:33:33 -05:00
Joseph Doherty 71b077c41b docs(index): OtOpcUa master 03e51457 — env: per-instance credentials, ConditionRefresh ordering (#848–#854) 2026-11-11 07:55:47 -05:00
Joseph Doherty 4ca420302f docs(index): OtOpcUa batches #815-#847 (credential lockout, scoped credential references) at d1b6cad2 2026-11-11 05:25:02 -05:00
Joseph Doherty b500618a55 index + history: OtOpcUa on HistorianGateway 1.0.0 (#131 closed) 2026-11-11 04:26:10 -05:00
Joseph Doherty 6cf69a00fb docs(index): OtOpcUa master 5bbe1e3c — Heidenhain LSV2 driver, narrow-grant UNS access (#808), batch #803–#814 2026-11-11 00:49:29 -05:00
Joseph Doherty 2dabb07a59 docs(index): OtOpcUa #796/#797/#798/#806 history — #797 scripted-alarm equipment-scope authorization 2026-11-10 22:31:37 -05:00
Joseph Doherty ed122145ed docs(index): record Linux OPC UA lifecycle diagnostic 2026-11-10 20:28:11 -05:00
Joseph Doherty 16418e48a0 docs(index): record SDK1 terminal server ownership repair 2026-11-10 17:14:53 -05:00
Joseph Doherty 805e3aac67 docs(index): record final SDK2 review and remaining release gates 2026-11-10 16:09:25 -05:00
Joseph Doherty aaa669f536 docs(index): mark historian TLS consumer migration verified 2026-11-10 14:52:08 -05:00
Joseph Doherty a33d8ecdfd docs(index): align current OtOpcUa master and gateway package pins 2026-11-10 14:50:56 -05:00
Joseph Doherty cbc7291f7b docs(index): record SDK2 candidate gates and HistorianGateway 1.0 consumer 2026-11-10 14:50:13 -05:00
Joseph Doherty 4c5a52d85f index + history: HistorianGateway Contracts/Client 1.0.0 released 2026-11-10 14:35:31 -05:00
Joseph Doherty 813ef65dbd historiangateway history: #58 closed (TLS secure by default), #131 filed 2026-11-10 14:13:45 -05:00
Joseph Doherty ccabcc68bc historiangateway history: #85 closed (rename-job polling) 2026-11-10 12:43:33 -05:00
Joseph Doherty 59bf74760c infra(glauth): enable LDAPS on :3894 alongside plain :3893 (#19, mxaccessgw#180)
Self-signed cert (SAN IP 10.100.0.35), public cert checked in, key host-only.
Deployed on 10.100.0.35: TLS chain verifies with the cert and fails without
it; raw LDAPS simple bind returns 0 for a good password and 49 for a bad one;
plain :3893 bind unchanged. README: thumbprint, client config, rotation; also
fixes the user-bind DN example (GLAuth puts users under their primary group OU).

Claude-Session: https://claude.ai/code/session_01GT67AEHd2Acv1YPwGfXEoV
2026-11-10 11:46:48 -05:00
Joseph Doherty 736158f2ad historiangateway history: #126 closed 2026-11-10 11:46:35 -05:00
Joseph Doherty bcbf1d006f historiangateway history: #115 live gate passed, #126 filed, #85/#58 status 2026-11-10 11:14:57 -05:00
Joseph Doherty e1ad6becb0 docs(index): record OtOpcUa HistorianGateway 0.4.0 consumption 2026-11-10 10:36:43 -05:00
Joseph Doherty 9f986e16e8 historiangateway history: CI not required to merge; #64 kit rail look 2026-11-10 10:27:31 -05:00
Joseph Doherty b3de2b7128 HistorianGateway: main branch protection + CI de-flake (historiangw#73) 2026-11-10 10:24:35 -05:00
Joseph Doherty fe5269208f HistorianGateway: native WriteLiveValues hardened (historiangw#25) 2026-11-10 10:00:56 -05:00
Joseph Doherty 92969c9c85 HistorianGateway: Java client 0.2.0 published; follow-ups #119/#120 2026-11-10 09:44:55 -05:00
Joseph Doherty 129d37f9e2 HistorianGateway: Contracts/Client 0.4.0 released (historiangw#79) 2026-11-10 09:39:57 -05:00
Joseph Doherty b9bcf33834 docs(index): HistorianGateway PRs #116/#117 merged (733eb25) 2026-11-10 09:35:54 -05:00
Joseph Doherty a5fd97b013 docs(index): HistorianGateway — ReadBlocks removed, datatype cast-or-reject, event id minting (historiangw 2026-11-10) 2026-11-10 09:35:07 -05:00
Joseph Doherty d430684322 docs(index): OtOpcUa, ScadaBridge, HistorianGateway tips after the 2026-11-10 issue waves
Claude-Session: https://claude.ai/code/session_01GT67AEHd2Acv1YPwGfXEoV
2026-11-10 06:16:05 -05:00
Joseph Doherty 48af177dce fix(theme): shell fills the dynamic viewport — drop calc(100vh - 3.3rem) (scadaproj#10)
.app-shell min-height is now 100vh with a 100dvh override (the 3.3rem was a
donor-app top-bar leftover; ThemeShell has no top bar) and the lg+ sticky
rail is 100vh/100dvh. Source bumped to 0.5.3, UNPUBLISHED. Adds a static
regression test and fixes the CS8602 in NavStateScriptTests (0 warnings).

Browser-checked via Overview on local 0.5.2 vs 0.5.3 packages: at 390x844 a
short page went from a 791px shell (53px gap) to 844px, no extra scroll;
1440x900 rail stays sticky full-height.

Claude-Session: https://claude.ai/code/session_01GT67AEHd2Acv1YPwGfXEoV
2026-11-09 22:36:20 -05:00
Joseph Doherty eab617f741 docs(index): LocalDb 0.3.7 fixes #16; Secrets Replicator.Grpc deprecated (scadaproj#16, #8)
Claude-Session: https://claude.ai/code/session_01GT67AEHd2Acv1YPwGfXEoV
2026-11-09 22:30:57 -05:00
Joseph Doherty ab1ad689df chore(secrets): deprecate Replicator.Grpc — out of the build and pack (scadaproj#8)
Owner chose option (b). ZB.MOM.WW.Secrets.Replicator.Grpc has had no consumer
since ScadaBridge retired the gRPC secrets hub (2026-09-28); OtOpcUa never used it.
- removed the project and its test project from ZB.MOM.WW.Secrets.slnx, so the
  family build/test and build/push.sh's `dotnet pack` skip it;
- csproj IsPackable=false (a direct pack of the project yields nothing);
- SecretsGrpcHubServerExtensions / SecretsGrpcHubClientExtensions [Obsolete];
- README, CHANGELOG (0.6.6 Deprecated), CLAUDE.md and clustered-secrets.md say so.
Source + tests stay in the tree and still build/run standalone (test csproj
suppresses CS0618): 200/200. Feed versions 0.4.1-0.6.3 are left for the owner
to unlist.

Also zeroes the solution's pre-existing warnings: CA1416 on two Unix-only
permission tests (guarded by Skip.IfNot, which the analyzer cannot see — now
[UnsupportedOSPlatform("windows")]) and two xUnit2031 Assert.Single(Where).
Build 0 warnings; tests 429 passed / 21 skipped / 0 failed; pack = 5 nupkgs.

Claude-Session: https://claude.ai/code/session_01GT67AEHd2Acv1YPwGfXEoV
2026-11-09 22:30:57 -05:00
Joseph Doherty be5e9fd436 fix(localdb): keep a tombstone until the peer holds it — no resurrection past TombstoneRetention (scadaproj#16)
0.3.7 (unpublished), owner-chosen option A. A tombstone is now pruned only when
it is past TombstoneRetention AND the peer is known to hold it:
- held while database-wide or per-table snapshot debt is outstanding (the
  snapshot is built from the row-version ledger, so a pruned tombstone is a
  delete it can no longer carry — the issue's second path);
- a local tombstone held while its delete is still in the unacked oplog.
Delivery (delta ack covering the delete, or snapshot debt discharged) restamps
tombstone_utc so retention runs from delivery. New optional
LocalDb:Replication:TombstoneHardCap (default off, >= TombstoneRetention)
bounds an undelivered tombstone's life. No proto, lib_schema_version or
on-disk schema change.

Regression test TombstoneResurrectionTests (two real nodes over loopback gRPC):
offline update on B, newer delete on A, A's clock +8 days (oplog age cap +
tombstone prune) -> reconnect. Fails on 0.3.6 (row resurrected), passes now;
plus a no-prune positive control and a pruned-after-delivery control, and five
controlled-clock OplogStore tests. Each guard clause mutation-killed. 259/259.

Claude-Session: https://claude.ai/code/session_01GT67AEHd2Acv1YPwGfXEoV
2026-11-09 22:27:46 -05:00
Joseph Doherty 3215d51154 docs(auth): record parked constraint-policy + JWT-helper decisions (scadaproj#20)
Claude-Session: https://claude.ai/code/session_01GT67AEHd2Acv1YPwGfXEoV
2026-11-09 22:13:46 -05:00