diff --git a/src/Server/ZB.MOM.WW.OtOpcUa.AdminUI/Components/Pages/Clusters/AclEdit.razor b/src/Server/ZB.MOM.WW.OtOpcUa.AdminUI/Components/Pages/Clusters/AclEdit.razor index 47928dde..c541f38d 100644 --- a/src/Server/ZB.MOM.WW.OtOpcUa.AdminUI/Components/Pages/Clusters/AclEdit.razor +++ b/src/Server/ZB.MOM.WW.OtOpcUa.AdminUI/Components/Pages/Clusters/AclEdit.razor @@ -31,32 +31,6 @@ else if (!IsNew && _existing is null) } else { - - @@ -151,13 +125,12 @@ else
Bundles: - - · - - · - - · - +
+ + + + +
@@ -167,11 +140,13 @@ else
- @if (!string.IsNullOrWhiteSpace(_error)) {
@_error
} + @if (!string.IsNullOrWhiteSpace(_error)) {
@_error
}
- - Cancel +
+ + Cancel +
@if (!IsNew) { }
diff --git a/src/Server/ZB.MOM.WW.OtOpcUa.AdminUI/Components/Pages/Clusters/ClusterAcls.razor b/src/Server/ZB.MOM.WW.OtOpcUa.AdminUI/Components/Pages/Clusters/ClusterAcls.razor index 365fb3ac..8c1c63f4 100644 --- a/src/Server/ZB.MOM.WW.OtOpcUa.AdminUI/Components/Pages/Clusters/ClusterAcls.razor +++ b/src/Server/ZB.MOM.WW.OtOpcUa.AdminUI/Components/Pages/Clusters/ClusterAcls.razor @@ -21,49 +21,7 @@ } else { - -
- ACL rows grant principals specific NodePermissions on a scope - (the cluster, a namespace, an area, an equipment, a raw device, a tag). A principal is an API - key's principal, or the reserved anonymous principal that an - anonymous session authenticates as. -
The Scope target column resolves each row against the current configuration. A row marked unresolved points at nothing — it is shipped in every deployment artifact but authorizes nobody, and the deploy gate rejects it. Open it and @@ -75,10 +33,7 @@ else @if (_rows.Count == 0) {
- No ACL rows for this cluster. With Security:Acl:Enabled off, that - means writes and alarm acknowledges are refused while reads, browses, subscriptions and - history reads stay open to any admitted session. With it on, it means - every data-plane operation is refused here — a client can connect and see nothing. + No ACL rows for this cluster.
} else diff --git a/src/Server/ZB.MOM.WW.OtOpcUa.AdminUI/Components/Pages/Clusters/ClusterAudit.razor b/src/Server/ZB.MOM.WW.OtOpcUa.AdminUI/Components/Pages/Clusters/ClusterAudit.razor index 84e4f849..7ae6baa5 100644 --- a/src/Server/ZB.MOM.WW.OtOpcUa.AdminUI/Components/Pages/Clusters/ClusterAudit.razor +++ b/src/Server/ZB.MOM.WW.OtOpcUa.AdminUI/Components/Pages/Clusters/ClusterAudit.razor @@ -20,9 +20,7 @@ else {
- Latest @PageSize audit rows scoped to this cluster, newest first. EventId/CorrelationId - columns (F3) make cross-restart deduplication possible — Akka actors that retry an apply - won't insert duplicate rows. Details JSON is shown verbatim. + Latest @PageSize audit rows scoped to this cluster, newest first. Details JSON is shown verbatim.
diff --git a/src/Server/ZB.MOM.WW.OtOpcUa.AdminUI/Components/Pages/Clusters/ClusterEdit.razor b/src/Server/ZB.MOM.WW.OtOpcUa.AdminUI/Components/Pages/Clusters/ClusterEdit.razor index 5f1fa180..6aa69f5f 100644 --- a/src/Server/ZB.MOM.WW.OtOpcUa.AdminUI/Components/Pages/Clusters/ClusterEdit.razor +++ b/src/Server/ZB.MOM.WW.OtOpcUa.AdminUI/Components/Pages/Clusters/ClusterEdit.razor @@ -86,15 +86,17 @@ else @if (!string.IsNullOrWhiteSpace(_error)) { -
@_error
+
@_error
}
- - Cancel +
+ + Cancel +
diff --git a/src/Server/ZB.MOM.WW.OtOpcUa.AdminUI/Components/Pages/Clusters/ClusterNamespaces.razor b/src/Server/ZB.MOM.WW.OtOpcUa.AdminUI/Components/Pages/Clusters/ClusterNamespaces.razor index 6cbf39a8..f8d1d407 100644 --- a/src/Server/ZB.MOM.WW.OtOpcUa.AdminUI/Components/Pages/Clusters/ClusterNamespaces.razor +++ b/src/Server/ZB.MOM.WW.OtOpcUa.AdminUI/Components/Pages/Clusters/ClusterNamespaces.razor @@ -13,8 +13,7 @@
The Namespace entity has been removed. The v3 Raw/UNS split replaces it — raw driver folders and the unified namespace are managed on the /raw and - /uns pages, arriving in v3 Batch 2/3. This page is a placeholder so existing - links do not 404. + /uns pages. This page is a placeholder so existing links do not 404.
diff --git a/src/Server/ZB.MOM.WW.OtOpcUa.AdminUI/Components/Pages/Clusters/ClusterOverview.razor b/src/Server/ZB.MOM.WW.OtOpcUa.AdminUI/Components/Pages/Clusters/ClusterOverview.razor index 0d73b35e..051ff6db 100644 --- a/src/Server/ZB.MOM.WW.OtOpcUa.AdminUI/Components/Pages/Clusters/ClusterOverview.razor +++ b/src/Server/ZB.MOM.WW.OtOpcUa.AdminUI/Components/Pages/Clusters/ClusterOverview.razor @@ -26,7 +26,7 @@ else @_cluster.ClusterId @if (!_cluster.Enabled) { Disabled } -
+ diff --git a/src/Server/ZB.MOM.WW.OtOpcUa.AdminUI/Components/Pages/Clusters/ClusterRedundancy.razor b/src/Server/ZB.MOM.WW.OtOpcUa.AdminUI/Components/Pages/Clusters/ClusterRedundancy.razor index 7f1741f8..9e11a1c9 100644 --- a/src/Server/ZB.MOM.WW.OtOpcUa.AdminUI/Components/Pages/Clusters/ClusterRedundancy.razor +++ b/src/Server/ZB.MOM.WW.OtOpcUa.AdminUI/Components/Pages/Clusters/ClusterRedundancy.razor @@ -34,15 +34,6 @@ else -
- v2 redundancy is computed at runtime by RedundancyStateActor - on each admin node. The values below are the static configuration; the resolved live - ServiceLevel for each peer is broadcast on the - redundancy-state DPS topic and consumed by the OPC UA host's - ServerStatus publisher. See - docs/v2/Architecture-v2.md. -
-
Cluster redundancy
@@ -68,10 +59,7 @@ else

- Read live from cluster state on this node. The Primary shown is - this application Cluster's own Primary — since - the per-cluster mesh split, each cluster's redundant pair runs its own independent 2-node - Akka mesh and elects its own Primary. See docs/Redundancy.md. + Read live from cluster state on this node.

@@ -98,8 +86,10 @@ else
  • Its peer becomes Primary and advertises ServiceLevel 250.
  • Connected OPC UA clients re-select the new Primary.
  • - - +
    + + +
    } diff --git a/src/Server/ZB.MOM.WW.OtOpcUa.AdminUI/Components/Pages/Clusters/NamespaceEdit.razor b/src/Server/ZB.MOM.WW.OtOpcUa.AdminUI/Components/Pages/Clusters/NamespaceEdit.razor index 3649e207..3e0c1597 100644 --- a/src/Server/ZB.MOM.WW.OtOpcUa.AdminUI/Components/Pages/Clusters/NamespaceEdit.razor +++ b/src/Server/ZB.MOM.WW.OtOpcUa.AdminUI/Components/Pages/Clusters/NamespaceEdit.razor @@ -15,7 +15,7 @@
    The Namespace entity has been removed. The v3 Raw/UNS split replaces it — raw driver folders and the unified namespace are managed on the /raw and - /uns pages, arriving in v3 Batch 2/3. This editor no longer applies. + /uns pages. This editor no longer applies.
    diff --git a/src/Server/ZB.MOM.WW.OtOpcUa.AdminUI/Components/Pages/Clusters/NewCluster.razor b/src/Server/ZB.MOM.WW.OtOpcUa.AdminUI/Components/Pages/Clusters/NewCluster.razor index 4b9a89a5..66ced051 100644 --- a/src/Server/ZB.MOM.WW.OtOpcUa.AdminUI/Components/Pages/Clusters/NewCluster.razor +++ b/src/Server/ZB.MOM.WW.OtOpcUa.AdminUI/Components/Pages/Clusters/NewCluster.razor @@ -69,11 +69,13 @@ }
    - - Cancel +
    + + Cancel +
    diff --git a/src/Server/ZB.MOM.WW.OtOpcUa.AdminUI/Components/Pages/Clusters/NodeEdit.razor b/src/Server/ZB.MOM.WW.OtOpcUa.AdminUI/Components/Pages/Clusters/NodeEdit.razor index a246c14b..d8eae5a4 100644 --- a/src/Server/ZB.MOM.WW.OtOpcUa.AdminUI/Components/Pages/Clusters/NodeEdit.razor +++ b/src/Server/ZB.MOM.WW.OtOpcUa.AdminUI/Components/Pages/Clusters/NodeEdit.razor @@ -102,15 +102,17 @@ else @if (!string.IsNullOrWhiteSpace(_error)) { -
    @_error
    +
    @_error
    }
    - - Cancel +
    + + Cancel +
    @if (!IsNew) {