Joseph Doherty
09d6676e1f
feat(runtime): WithOtOpcUaRuntimeActors extension for driver-role node startup (F19)
...
Mirrors WithOtOpcUaControlPlaneSingletons for the driver role. Spawns
DriverHostActor + DbHealthProbeActor on the host's ActorSystem and
registers both under marker keys. Host's Program.cs now calls it when
the node carries the driver role, so driver-only and admin+driver
deployments both auto-bootstrap the per-node actors.
Integration test covers the registration round-trip via Microsoft.Extensions.Hosting
+ Akka.Hosting AddAkka.
2026-05-26 06:09:37 -04:00
Joseph Doherty
698709a578
docs(plans): mark Tasks 56+57 complete
2026-05-26 05:39:07 -04:00
Joseph Doherty
76310b8829
chore(cleanup): delete OtOpcUa.Server, OtOpcUa.Admin, and obsolete v1 tests
...
Task 56: removes the legacy in-process Server + Admin Web project + their test
projects (Server.Tests, Admin.Tests, Admin.E2ETests). The fused OtOpcUa.Host
binary built across Phases 1-9 is now the sole production entry point.
What happened to the 47 legacy Admin Blazor pages: per follow-up F15, the
v1 architecture's draft/publish UX is replaced by v2's live-edit + snapshot-
deploy model, so a 1:1 migration is not meaningful. The mechanical move via
git mv preserves the history; service classes + page bodies that referenced
removed v1 types (ConfigGeneration, RedundancyRole, GenerationId) were
deleted. AdminUI now ships a minimal Home page + the v2 Deployments page.
Per-page rebuild against the v2 surface is tracked as F15. The v2 Deployments
page (Task 52) is the only first-party UI shipping in this PR.
Task 57: solution build green; 84+ tests green across active v2 + legacy
driver test projects.
2026-05-26 05:38:31 -04:00
Joseph Doherty
2b75ce3876
docs(plans): mark Phase 9 tasks 53-55 complete; track F19/F20 follow-ups
2026-05-26 05:23:48 -04:00
Joseph Doherty
8b4de8080b
feat(runtime): DEV-STUB mode for Windows-only drivers on non-Windows or dev role
2026-05-26 05:23:02 -04:00
Joseph Doherty
fa1d685ccd
feat(host): health endpoints + per-environment appsettings layout
2026-05-26 05:23:01 -04:00
Joseph Doherty
e2b357f89a
feat(host): role-gated Program.cs composes all v2 components
2026-05-26 05:22:59 -04:00
Joseph Doherty
eb4280b7eb
docs(plans): add F15-F18 follow-ups for Phase 8 deferred scope
2026-05-26 05:19:02 -04:00
Joseph Doherty
8a1f97b27f
docs(plans): mark Phase 8 tasks 48-52 complete; track F15-F18 follow-ups
2026-05-26 05:18:37 -04:00
Joseph Doherty
f167808a2c
feat(adminui): Deployments page with drift indicator and Deploy button
2026-05-26 05:18:00 -04:00
Joseph Doherty
b83f099394
feat(adminui): IFleetDiagnosticsClient skeleton (Akka round-trip tracked as F17)
2026-05-26 05:17:59 -04:00
Joseph Doherty
f022499e7f
feat(adminui): IAdminOperationsClient backed by ClusterSingletonProxy
2026-05-26 05:17:58 -04:00
Joseph Doherty
26d8f2f620
feat(adminui): FleetStatusHub + AlertHub + MapOtOpcUaHubs (broadcaster bridge tracked as F16)
2026-05-26 05:17:56 -04:00
Joseph Doherty
1a067e609c
refactor(adminui): MapAdminUI extension + AddAdminUI DI (47-component migration tracked as F15)
2026-05-26 05:17:55 -04:00
Joseph Doherty
5e31449529
docs(plans): mark Phase 7 tasks 46+47 complete; track F13/F14 full-extraction follow-ups
2026-05-26 05:15:18 -04:00
Joseph Doherty
b7c117ab31
feat(opcua): pure Phase7Composer + purity tests (side-effects tracked as F14)
2026-05-26 05:14:45 -04:00
Joseph Doherty
2877a883cd
feat(opcua): OpcUaApplicationHost facade in OpcUaServer (full extraction tracked as F13)
2026-05-26 05:14:39 -04:00
Joseph Doherty
2e4f1399bb
docs(plans): mark Phase 6 tasks 39-45 complete (race-recovered commit)
2026-05-26 05:10:21 -04:00
Joseph Doherty
e31547d00e
docs(plans): mark Phase 6 tasks 37-45 complete; track F7-F12 engine-wiring follow-ups
2026-05-26 05:09:52 -04:00
Joseph Doherty
28639cb14d
feat(runtime): HistorianAdapter + PeerOpcUaProbe + DbHealthProbe actors (engine wiring tracked as F11/F12)
2026-05-26 05:09:06 -04:00
Joseph Doherty
e115f13104
feat(runtime): OpcUaPublishActor on synchronized dispatcher (SDK wiring tracked as F10)
2026-05-26 05:09:04 -04:00
Joseph Doherty
95ef533822
feat(runtime): ScriptedAlarmActor state machine (engine wiring tracked as F9)
2026-05-26 05:09:03 -04:00
Joseph Doherty
39729bfe21
feat(runtime): VirtualTagActor skeleton (engine wiring tracked as F8)
2026-05-26 05:09:01 -04:00
Joseph Doherty
64c627f8d6
feat(runtime): DriverInstanceActor state machine with Connecting/Connected/Reconnecting
2026-05-26 05:05:36 -04:00
Joseph Doherty
ed130135ca
feat(runtime): DriverHostActor state machine with PreStart recovery + DispatchDeployment + stale fallback
2026-05-26 05:02:42 -04:00
Joseph Doherty
ea6f972e96
docs(plans): mark Phase 5 tasks 30-36 complete with commit hashes
2026-05-26 04:57:37 -04:00
Joseph Doherty
52bf4b3371
feat(controlplane): WithOtOpcUaControlPlaneSingletons registration extension (admin role)
2026-05-26 04:57:09 -04:00
Joseph Doherty
dd122c4ca9
feat(controlplane): FleetStatusBroadcaster push-driven from cluster events + heartbeats
2026-05-26 04:57:07 -04:00
Joseph Doherty
f193872891
feat(controlplane): ConfigPublishCoordinator deadline timeout + failover PreStart recovery
2026-05-26 04:57:05 -04:00
Joseph Doherty
bad2aef137
docs(plans): track F5 multi-node coordinator test + F6 RedundancyState publisher refactor
2026-05-26 04:53:32 -04:00
Joseph Doherty
6b37f997ad
feat(controlplane): RedundancyStateActor with debounced topology publish
2026-05-26 04:53:31 -04:00
Joseph Doherty
62e12dab95
feat(controlplane): ConfigPublishCoordinator happy path with NodeDeploymentState seeding
2026-05-26 04:53:29 -04:00
Joseph Doherty
ef683f5073
feat(controlplane): AdminOperationsActor + ConfigComposer + StartDeployment flow
2026-05-26 04:53:28 -04:00
Joseph Doherty
9f61cd5989
test(controlplane): self-join cluster + DistributedPubSub extension in test harness
2026-05-26 04:53:25 -04:00
Joseph Doherty
9582e448d5
docs(plans): track F4 WrapDetails JSON hardening follow-up
2026-05-26 04:46:18 -04:00
Joseph Doherty
1955bc5f4d
docs(plans): mark Task 33+35 partial complete; track F3 audit-idempotency follow-up
2026-05-26 04:44:37 -04:00
Joseph Doherty
23f669c376
feat(controlplane): AuditWriterActor with batched in-buffer-dedup insert
2026-05-26 04:44:01 -04:00
Joseph Doherty
14acab5a58
feat(controlplane): ServiceLevelCalculator + ControlPlane.Tests harness
2026-05-26 04:43:59 -04:00
Joseph Doherty
32574b3e4e
docs(plans): track JwtBearer DI antipattern as follow-up F2
2026-05-26 04:39:10 -04:00
Joseph Doherty
fc22d4f7b6
docs(plans): track AuthEndpoints integration tests as follow-up F1
2026-05-26 04:37:49 -04:00
Joseph Doherty
973a3d1b9a
docs(plans): mark Tasks 24-29 complete in tasks.json
2026-05-26 04:36:17 -04:00
Joseph Doherty
38ea0c5086
test(security): cookie+JWT roundtrip, role mapper, LDAP escape/RDN helpers
2026-05-26 04:35:51 -04:00
Joseph Doherty
e38f22e3c2
feat(security): CookieAuthenticationStateProvider for Blazor circuit expiry detection
2026-05-26 04:35:50 -04:00
Joseph Doherty
8be84ba27b
feat(security): /auth/login, /auth/ping, /auth/token endpoints
2026-05-26 04:35:49 -04:00
Joseph Doherty
207fc6aba9
feat(security): cookie+JWT hybrid auth via AddOtOpcUaAuth
2026-05-26 04:35:48 -04:00
Joseph Doherty
93316e3431
feat(security): JwtTokenService with HS256 + 15-min expiry
2026-05-26 04:35:46 -04:00
Joseph Doherty
567b8cac1d
refactor(security): move LdapAuthService into OtOpcUa.Security library
2026-05-26 04:35:42 -04:00
Joseph Doherty
f35925b57e
docs(plans): mark Tasks 19-23 complete in tasks.json
2026-05-26 04:31:28 -04:00
Joseph Doherty
e0b6d5680b
test(cluster): HOCON parses, role parser truth table
2026-05-26 04:31:08 -04:00
Joseph Doherty
c217c49f69
feat(cluster): ClusterRoleInfo wraps Akka.Cluster for app-facing role queries
2026-05-26 04:31:07 -04:00