Fix auth, Bootstrap, Blazor nav, LDAP, and deployment pipeline for working Central UI

Bootstrap served locally with absolute paths and <base href="/">.
LDAP auth uses search-then-bind with service account for GLAuth compatibility.
CookieAuthenticationStateProvider reads HttpContext.User instead of parsing JWT.
Login/logout forms opt out of Blazor enhanced nav (data-enhance="false").
Nav links use absolute paths; seed data includes Design/Deployment group mappings.
DataConnections page loads all connections (not just site-assigned).
Site appsettings configured for Test Plant A; Site registers with Central on startup.
DeploymentService resolves string site identifier for Akka routing.
Instances page gains Create Instance form.
This commit is contained in:
Joseph Doherty
2026-03-17 10:03:06 -04:00
parent 6fa4c101ab
commit 4879c4e01e
21 changed files with 265 additions and 92 deletions

View File

@@ -15,19 +15,19 @@
<Authorized Context="adminContext">
<li class="nav-section-header">Admin</li>
<li class="nav-item">
<NavLink class="nav-link" href="admin/ldap-mappings">LDAP Mappings</NavLink>
<NavLink class="nav-link" href="/admin/ldap-mappings">LDAP Mappings</NavLink>
</li>
<li class="nav-item">
<NavLink class="nav-link" href="admin/sites">Sites</NavLink>
<NavLink class="nav-link" href="/admin/sites">Sites</NavLink>
</li>
<li class="nav-item">
<NavLink class="nav-link" href="admin/data-connections">Data Connections</NavLink>
<NavLink class="nav-link" href="/admin/data-connections">Data Connections</NavLink>
</li>
<li class="nav-item">
<NavLink class="nav-link" href="admin/areas">Areas</NavLink>
<NavLink class="nav-link" href="/admin/areas">Areas</NavLink>
</li>
<li class="nav-item">
<NavLink class="nav-link" href="admin/api-keys">API Keys</NavLink>
<NavLink class="nav-link" href="/admin/api-keys">API Keys</NavLink>
</li>
</Authorized>
</AuthorizeView>
@@ -37,13 +37,13 @@
<Authorized Context="designContext">
<li class="nav-section-header">Design</li>
<li class="nav-item">
<NavLink class="nav-link" href="design/templates">Templates</NavLink>
<NavLink class="nav-link" href="/design/templates">Templates</NavLink>
</li>
<li class="nav-item">
<NavLink class="nav-link" href="design/shared-scripts">Shared Scripts</NavLink>
<NavLink class="nav-link" href="/design/shared-scripts">Shared Scripts</NavLink>
</li>
<li class="nav-item">
<NavLink class="nav-link" href="design/external-systems">External Systems</NavLink>
<NavLink class="nav-link" href="/design/external-systems">External Systems</NavLink>
</li>
</Authorized>
</AuthorizeView>
@@ -53,13 +53,13 @@
<Authorized Context="deploymentContext">
<li class="nav-section-header">Deployment</li>
<li class="nav-item">
<NavLink class="nav-link" href="deployment/instances">Instances</NavLink>
<NavLink class="nav-link" href="/deployment/instances">Instances</NavLink>
</li>
<li class="nav-item">
<NavLink class="nav-link" href="deployment/deployments">Deployments</NavLink>
<NavLink class="nav-link" href="/deployment/deployments">Deployments</NavLink>
</li>
<li class="nav-item">
<NavLink class="nav-link" href="deployment/debug-view">Debug View</NavLink>
<NavLink class="nav-link" href="/deployment/debug-view">Debug View</NavLink>
</li>
</Authorized>
</AuthorizeView>
@@ -67,20 +67,20 @@
@* Monitoring — visible to all authenticated users *@
<li class="nav-section-header">Monitoring</li>
<li class="nav-item">
<NavLink class="nav-link" href="monitoring/health">Health Dashboard</NavLink>
<NavLink class="nav-link" href="/monitoring/health">Health Dashboard</NavLink>
</li>
<li class="nav-item">
<NavLink class="nav-link" href="monitoring/event-logs">Event Logs</NavLink>
<NavLink class="nav-link" href="/monitoring/event-logs">Event Logs</NavLink>
</li>
<li class="nav-item">
<NavLink class="nav-link" href="monitoring/parked-messages">Parked Messages</NavLink>
<NavLink class="nav-link" href="/monitoring/parked-messages">Parked Messages</NavLink>
</li>
@* Audit Log — Admin only *@
<AuthorizeView Policy="@AuthorizationPolicies.RequireAdmin">
<Authorized Context="auditContext">
<li class="nav-item">
<NavLink class="nav-link" href="monitoring/audit-log">Audit Log</NavLink>
<NavLink class="nav-link" href="/monitoring/audit-log">Audit Log</NavLink>
</li>
</Authorized>
</AuthorizeView>
@@ -92,7 +92,7 @@
<Authorized>
<div class="border-top border-secondary p-2">
<span class="d-block text-light small px-2">@context.User.FindFirst("DisplayName")?.Value</span>
<form method="post" action="/auth/logout">
<form method="post" action="/auth/logout" data-enhance="false">
<button type="submit" class="btn btn-link btn-sm text-muted text-decoration-none px-2">Sign Out</button>
</form>
</div>