Files
scadalink-design/ScadaLink.slnx
Joseph Doherty d38356efdb Phase 1 WP-11–22: Host infrastructure, Blazor Server UI, and integration tests
Host infrastructure (WP-11–17):
- StartupValidator with 19 validation rules
- /health/ready endpoint with DB + Akka health checks
- Akka.NET bootstrap via AkkaHostedService (HOCON config, cluster, remoting, SBR)
- Serilog with SiteId/NodeHostname/NodeRole enrichment
- DeadLetterMonitorActor with count tracking
- CoordinatedShutdown wiring (no Environment.Exit)
- Windows Service support (UseWindowsService)

Central UI (WP-18–21):
- Blazor Server shell with Bootstrap 5, role-aware NavMenu
- Login/logout flow (LDAP auth → JWT → HTTP-only cookie)
- CookieAuthenticationStateProvider with idle timeout
- LDAP group mapping CRUD page (Admin role)
- Route guards with Authorize attributes per role
- SignalR reconnection overlay for failover

Integration tests (WP-22):
- Startup validation, auth flow, audit transactions, readiness gating
186 tests pass (1 skipped: LDAP integration), zero warnings.
2026-03-16 19:50:59 -04:00

42 lines
3.2 KiB
Plaintext

<Solution>
<Folder Name="/src/">
<Project Path="src/ScadaLink.Commons/ScadaLink.Commons.csproj" />
<Project Path="src/ScadaLink.Host/ScadaLink.Host.csproj" />
<Project Path="src/ScadaLink.TemplateEngine/ScadaLink.TemplateEngine.csproj" />
<Project Path="src/ScadaLink.DeploymentManager/ScadaLink.DeploymentManager.csproj" />
<Project Path="src/ScadaLink.SiteRuntime/ScadaLink.SiteRuntime.csproj" />
<Project Path="src/ScadaLink.DataConnectionLayer/ScadaLink.DataConnectionLayer.csproj" />
<Project Path="src/ScadaLink.Communication/ScadaLink.Communication.csproj" />
<Project Path="src/ScadaLink.StoreAndForward/ScadaLink.StoreAndForward.csproj" />
<Project Path="src/ScadaLink.ExternalSystemGateway/ScadaLink.ExternalSystemGateway.csproj" />
<Project Path="src/ScadaLink.NotificationService/ScadaLink.NotificationService.csproj" />
<Project Path="src/ScadaLink.CentralUI/ScadaLink.CentralUI.csproj" />
<Project Path="src/ScadaLink.Security/ScadaLink.Security.csproj" />
<Project Path="src/ScadaLink.HealthMonitoring/ScadaLink.HealthMonitoring.csproj" />
<Project Path="src/ScadaLink.SiteEventLogging/ScadaLink.SiteEventLogging.csproj" />
<Project Path="src/ScadaLink.ClusterInfrastructure/ScadaLink.ClusterInfrastructure.csproj" />
<Project Path="src/ScadaLink.InboundAPI/ScadaLink.InboundAPI.csproj" />
<Project Path="src/ScadaLink.ConfigurationDatabase/ScadaLink.ConfigurationDatabase.csproj" />
</Folder>
<Folder Name="/tests/">
<Project Path="tests/ScadaLink.Commons.Tests/ScadaLink.Commons.Tests.csproj" />
<Project Path="tests/ScadaLink.Host.Tests/ScadaLink.Host.Tests.csproj" />
<Project Path="tests/ScadaLink.TemplateEngine.Tests/ScadaLink.TemplateEngine.Tests.csproj" />
<Project Path="tests/ScadaLink.DeploymentManager.Tests/ScadaLink.DeploymentManager.Tests.csproj" />
<Project Path="tests/ScadaLink.SiteRuntime.Tests/ScadaLink.SiteRuntime.Tests.csproj" />
<Project Path="tests/ScadaLink.DataConnectionLayer.Tests/ScadaLink.DataConnectionLayer.Tests.csproj" />
<Project Path="tests/ScadaLink.Communication.Tests/ScadaLink.Communication.Tests.csproj" />
<Project Path="tests/ScadaLink.StoreAndForward.Tests/ScadaLink.StoreAndForward.Tests.csproj" />
<Project Path="tests/ScadaLink.ExternalSystemGateway.Tests/ScadaLink.ExternalSystemGateway.Tests.csproj" />
<Project Path="tests/ScadaLink.NotificationService.Tests/ScadaLink.NotificationService.Tests.csproj" />
<Project Path="tests/ScadaLink.CentralUI.Tests/ScadaLink.CentralUI.Tests.csproj" />
<Project Path="tests/ScadaLink.Security.Tests/ScadaLink.Security.Tests.csproj" />
<Project Path="tests/ScadaLink.HealthMonitoring.Tests/ScadaLink.HealthMonitoring.Tests.csproj" />
<Project Path="tests/ScadaLink.SiteEventLogging.Tests/ScadaLink.SiteEventLogging.Tests.csproj" />
<Project Path="tests/ScadaLink.ClusterInfrastructure.Tests/ScadaLink.ClusterInfrastructure.Tests.csproj" />
<Project Path="tests/ScadaLink.InboundAPI.Tests/ScadaLink.InboundAPI.Tests.csproj" />
<Project Path="tests/ScadaLink.ConfigurationDatabase.Tests/ScadaLink.ConfigurationDatabase.Tests.csproj" />
<Project Path="tests/ScadaLink.IntegrationTests/ScadaLink.IntegrationTests.csproj" />
</Folder>
</Solution>