docs(index): OtOpcUa master 5bbe1e3c — Heidenhain LSV2 driver, narrow-grant UNS access (#808), batch #803–#814

This commit is contained in:
Joseph Doherty
2026-11-11 00:49:29 -05:00
parent 2dabb07a59
commit 6cf69a00fb
2 changed files with 7 additions and 1 deletions
@@ -416,3 +416,9 @@ AddRoute of the dev Mac (`oee-tagdump-mac`, `10.181.206.245.1.1`) on the two tes
- **#796** test-oracle only (1.5.378.182 PercentGood counted Uncertain as Good); HistoryRead unaffected. **#809 (owner decision):** live AggregateFilter PercentGood/DurationGood still count Uncertain as Good, unlike HistoryRead — ScadaBridge uses neither.
- **#806** AdminUI OPC UA browser keeps the configured host/port behind NAT (shared `OpcUaEndpointUrlRewriter` with the runtime driver); live-gated on docker-dev.
- **#798** ScriptWorker shadow test made causal (barrier, not stopwatch). CLAUDE.md corrected: `Scripting:Runner` Shadow is implemented.
- **2026-11-11 issue batch #803/#804/#808/#810–#814 resolved (master `5bbe1e3c`).** Pushed and closed. Follow-ups #815–#833.
- **#808 — ScadaBridge-visible authorization change (ACL on only), completes #797.** The authority generation now carries `UnsFolderScopes` (opaque Area/Line/Equipment folder id → name path + folder-id chain); every data-plane decision places UNS folders, virtual tags (`s=EQ-…/Name`), scripted conditions + children and reference variables against it. **Area/Line/Equipment-scoped keys can now browse/read/subscribe/HistoryRead their subtree, receive scripted and native alarm events on i=2253 and folder subscriptions, and Ack/Confirm/AddComment with the EventId — a Cluster grant is no longer needed to ack.** Fail-closed: a moved equipment/alarm is denied under old and new line grants (and briefly to Cluster keys) until the rebuild lands; NUL ids rejected; removed opaque ids decided only by realm-wide grants; narrow grantees no longer get NodeDeleted model-change events for removed UNS folders/VTs/conditions. No NodeId/wire change; ACL-off unchanged. Independent review (4 gaps fixed) + docker-dev live gate PASS (Equipment-only key: own subtree only, sibling denied, i=2253 events, ack by EventId, move leg). Residual #826 (per-folder event items during the stale window).
- **#803 — new driver: Heidenhain LSV2 (read-only, native TCP 19000).** Payload-aware outbound allowlist (logins + reads only), no writable nodes, credentials only `secret:heidenhain/…` / `env:OTOPCUA_HEIDENHAIN_…` (closes a Test-Connect credential-exfiltration path; same class for Galaxy/OpcUaClient → #815). Simulator + Java golden vectors only; real-control commissioning #829. The docker-dev gate caught an eager `ISecretResolver` resolution in the probe that crash-looped every central node at boot — fixed in `5bbe1e3c` before push.
- **#804** MTConnect parity vs the ignitionoee Java driver: 9 gaps closed, notably cppagent 2.x HTTP 400/404 error documents were treated as network failures (buffer-overrun recovery never ran), silent Agent-restart adoption, unbounded XML recursion (process stack overflow). `IWritable` writes only the Agent's AllowPut surface (no controller path).
- **#812–#814** Client CLI/UI share the endpoint rewriter; shared rewriter no longer un-escapes percent-encoded paths. NAT opc-plc fixture on 10.100.0.35:50010 (`/opt/otopcua-opcuaclient-nat`), CI wired. **#810** Uncertain/partial conformance data (no backend defects; new SDK TimeAverage/Total divergence #821, relates to #809). **#811** shadow-test flake root-caused (worker soft deadline under load; test budget 2 s).
+1 -1
View File
File diff suppressed because one or more lines are too long