dohertj2 dohertj2
  • Joined on 2026-02-20
dohertj2 merged pull request dohertj2/lmxopcua#38 2026-04-18 19:31:31 -04:00
Phase 3 PR 39 — LiveStackFixture skip-with-reason for elevated shells
dohertj2 created pull request dohertj2/lmxopcua#38 2026-04-18 19:31:29 -04:00
Phase 3 PR 39 — LiveStackFixture skip-with-reason for elevated shells
dohertj2 created branch phase-3-pr39-elevated-shell-skip in dohertj2/lmxopcua 2026-04-18 19:19:21 -04:00
dohertj2 pushed to phase-3-pr39-elevated-shell-skip at dohertj2/lmxopcua 2026-04-18 19:19:21 -04:00
8fb3dbe53b Phase 3 PR 39 — LiveStackFixture pre-flight detect for elevated shell. The OtOpcUaGalaxyHost named-pipe ACL allows the configured SID but explicitly DENIES Administrators per decision #76 / PipeAcl.cs (production-hardening — keeps an admin shell on a deployed box from connecting to the IPC channel without going through the configured service principal). A test process running with a high-integrity elevated token carries the Administrators group in its security context regardless of whose user it 'is', so the deny rule trumps the user's allow and the pipe connect returns UnauthorizedAccessException at the prerequisite-probe stage. Functionally correct but operationally confusing — when this hit during the PR 38 install workflow it took five steps to diagnose ('the user IS in the allow list, why is the pipe denying access?'). The pre-existing ParityFixture (PR 18) already documents this with an explicit early-skip; LiveStackFixture (PR 37) didn't.
a61e637411 Gitignore .local/ directory for dev-only secrets like the Galaxy.Host shared secret. Created during the PR 38 / install-services workflow to keep per-install secrets out of the repo.
Compare 2 commits »
dohertj2 pushed to v2 at dohertj2/lmxopcua 2026-04-18 17:53:28 -04:00
e4885aadd0 Merge pull request 'Phase 3 PR 38 — DriverNodeManager HistoryRead override (LMX #1 finish)' (#37) from phase-3-pr38-historyread-servicehandler into v2
52a29100b1 Phase 3 PR 38 — DriverNodeManager HistoryRead override (LMX #1 finish). Wires the OPC UA HistoryRead service through CustomNodeManager2's four protected per-kind hooks — HistoryReadRawModified / HistoryReadProcessed / HistoryReadAtTime / HistoryReadEvents — each dispatching to the driver's IHistoryProvider capability (PR 35 for ReadAtTime + ReadEvents on top of PR 19-era ReadRaw + ReadProcessed). Was the last missing piece of the end-to-end HistoryRead path: PR 10 + PR 11 shipped the Galaxy.Host IPC contracts, PR 35 surfaced them on IHistoryProvider + GalaxyProxyDriver, but no server-side handler bridged OPC UA HistoryRead service requests onto the capability interface. Now it does.
Compare 2 commits »
dohertj2 merged pull request dohertj2/lmxopcua#37 2026-04-18 17:53:26 -04:00
Phase 3 PR 38 — DriverNodeManager HistoryRead override (LMX #1 finish)
dohertj2 created pull request dohertj2/lmxopcua#37 2026-04-18 17:53:23 -04:00
Phase 3 PR 38 — DriverNodeManager HistoryRead override (LMX #1 finish)
dohertj2 created branch phase-3-pr38-historyread-servicehandler in dohertj2/lmxopcua 2026-04-18 17:52:01 -04:00
dohertj2 pushed to phase-3-pr38-historyread-servicehandler at dohertj2/lmxopcua 2026-04-18 17:52:01 -04:00
52a29100b1 Phase 3 PR 38 — DriverNodeManager HistoryRead override (LMX #1 finish). Wires the OPC UA HistoryRead service through CustomNodeManager2's four protected per-kind hooks — HistoryReadRawModified / HistoryReadProcessed / HistoryReadAtTime / HistoryReadEvents — each dispatching to the driver's IHistoryProvider capability (PR 35 for ReadAtTime + ReadEvents on top of PR 19-era ReadRaw + ReadProcessed). Was the last missing piece of the end-to-end HistoryRead path: PR 10 + PR 11 shipped the Galaxy.Host IPC contracts, PR 35 surfaced them on IHistoryProvider + GalaxyProxyDriver, but no server-side handler bridged OPC UA HistoryRead service requests onto the capability interface. Now it does.
dohertj2 merged pull request dohertj2/lmxopcua#36 2026-04-18 16:56:52 -04:00
Phase 3 PR 37 — End-to-end live-stack Galaxy smoke test
dohertj2 pushed to v2 at dohertj2/lmxopcua 2026-04-18 16:56:52 -04:00
19bcf20fbe Merge pull request 'Phase 3 PR 37 — End-to-end live-stack Galaxy smoke test' (#36) from phase-3-pr37-live-stack-smoke into v2
8adc8f5ab8 Phase 3 PR 37 — End-to-end live-stack Galaxy smoke test. Closes the code side of LMX follow-up #5; once OtOpcUaGalaxyHost is installed + started on the dev box, the suite exercises the full topology GalaxyProxyDriver in-process → named-pipe IPC → running OtOpcUaGalaxyHost Windows service → MxAccessGalaxyBackend → live MXAccess runtime → real deployed Galaxy objects. Never spawns the Host process itself — connects to the already-running service per project_galaxy_host_service.md, which is the only way to exercise the production COM-apartment + service-account + pipe-ACL configuration.
Compare 2 commits »
dohertj2 created pull request dohertj2/lmxopcua#36 2026-04-18 16:56:49 -04:00
Phase 3 PR 37 — End-to-end live-stack Galaxy smoke test
dohertj2 created branch phase-3-pr37-live-stack-smoke in dohertj2/lmxopcua 2026-04-18 16:51:27 -04:00
dohertj2 pushed to phase-3-pr37-live-stack-smoke at dohertj2/lmxopcua 2026-04-18 16:51:27 -04:00
8adc8f5ab8 Phase 3 PR 37 — End-to-end live-stack Galaxy smoke test. Closes the code side of LMX follow-up #5; once OtOpcUaGalaxyHost is installed + started on the dev box, the suite exercises the full topology GalaxyProxyDriver in-process → named-pipe IPC → running OtOpcUaGalaxyHost Windows service → MxAccessGalaxyBackend → live MXAccess runtime → real deployed Galaxy objects. Never spawns the Host process itself — connects to the already-running service per project_galaxy_host_service.md, which is the only way to exercise the production COM-apartment + service-account + pipe-ACL configuration.
dohertj2 pushed to v2 at dohertj2/lmxopcua 2026-04-18 16:44:43 -04:00
261869d84e Merge pull request 'Phase 3 PR 36 — AVEVA prerequisites test-support library' (#35) from phase-3-pr36-aveva-prerequisites into v2
08c90d19fd Phase 3 PR 36 — AVEVA prerequisites test-support library. New tests/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.TestSupport multi-targeted class library (net10.0 + net48 so both the modern and the MXAccess-COM x86 test projects can consume it) that probes every piece of the AVEVA System Platform + OtOpcUa stack a live-Galaxy test depends on and returns a structured PrerequisiteReport. Closes the gap where live-smoke tests silently returned 'unreachable' without telling operators which specific piece failed.
Compare 2 commits »
dohertj2 merged pull request dohertj2/lmxopcua#35 2026-04-18 16:44:42 -04:00
Phase 3 PR 36 — AVEVA prerequisites test-support library
dohertj2 created pull request dohertj2/lmxopcua#35 2026-04-18 16:44:39 -04:00
Phase 3 PR 36 — AVEVA prerequisites test-support library
dohertj2 created branch phase-3-pr36-aveva-prerequisites in dohertj2/lmxopcua 2026-04-18 16:37:50 -04:00
dohertj2 pushed to phase-3-pr36-aveva-prerequisites at dohertj2/lmxopcua 2026-04-18 16:37:50 -04:00
08c90d19fd Phase 3 PR 36 — AVEVA prerequisites test-support library. New tests/ZB.MOM.WW.OtOpcUa.Driver.Galaxy.TestSupport multi-targeted class library (net10.0 + net48 so both the modern and the MXAccess-COM x86 test projects can consume it) that probes every piece of the AVEVA System Platform + OtOpcUa stack a live-Galaxy test depends on and returns a structured PrerequisiteReport. Closes the gap where live-smoke tests silently returned 'unreachable' without telling operators which specific piece failed.
dohertj2 pushed to v2 at dohertj2/lmxopcua 2026-04-18 16:12:46 -04:00
5cc120d836 Merge pull request 'Phase 3 PR 35 — IHistoryProvider gains ReadAtTime + ReadEvents; Proxy implements both' (#34) from phase-3-pr35-history-readtime-readevents into v2
bf329b05d8 Phase 3 PR 35 — IHistoryProvider gains ReadAtTimeAsync + ReadEventsAsync; GalaxyProxyDriver implements both. Extends Core.Abstractions.IHistoryProvider with two new methods that round out the OPC UA Part 11 HistoryRead surface (HistoryReadAtTime + HistoryReadEvents are the last two modes not covered by the PR 19-era ReadRawAsync + ReadProcessedAsync) and wires GalaxyProxyDriver to call the existing PR-10/PR-11 IPC contracts the Host already implements.
Compare 2 commits »