@page "/clusters/{ClusterId}/namespaces" @attribute [Microsoft.AspNetCore.Authorization.Authorize] @rendermode RenderMode.InteractiveServer @using Microsoft.EntityFrameworkCore @using ZB.MOM.WW.OtOpcUa.Configuration @using ZB.MOM.WW.OtOpcUa.Configuration.Entities @inject IDbContextFactory DbFactory

Namespaces · @ClusterId

New namespace
@if (_rows is null) {

Loading…

} else {
Namespaces are content (decision #123) — they're served at the OPC UA endpoint and bound to driver instances. NamespaceUri must be unique fleet-wide. Live editing lands in a Phase C.2 follow-up.
@_rows.Count namespace@(_rows.Count == 1 ? "" : "s")
@if (_rows.Count == 0) {
No namespaces defined for this cluster.
} else {
@foreach (var n in _rows) { }
NamespaceId Kind URI Status Notes
@n.NamespaceId @n.Kind @n.NamespaceUri @if (n.Enabled) { Enabled } else { Disabled } @(n.Notes ?? "") Edit
}
} @code { [Parameter] public string ClusterId { get; set; } = ""; private List? _rows; protected override async Task OnInitializedAsync() { await using var db = await DbFactory.CreateDbContextAsync(); _rows = await db.Namespaces.AsNoTracking() .Where(n => n.ClusterId == ClusterId) .OrderBy(n => n.NamespaceId) .ToListAsync(); } }