style(adminui): btn-groups + prose trim on top-level ops pages
Group related action buttons into btn-group/btn-group-sm on Alerts, Certificates, ApiKeys and ScriptEdit; promote the RoleGrants Delete from btn-link to btn-outline-danger. Replace the two inline style="border-color:var(--alert)" no-ops with the .notice-alert class, and the undefined --surface-2 token in Scripts with the theme's shipped --zebra-bg. Delete unconditional documentation prose now covered by docs/ (Redundancy, Telemetry, AlarmTracking, security, Reservations, AlarmHistorian, ScriptEditor), keeping state banners and live captions. Correct the LDAP config key on RoleGrants to Security:Ldap:GroupToRole (LdapOptions.SectionName) and drop the same wrong key from Account with its deleted block; reword the stale "Engine emit (F8/F9) is pending" script-log empty state.
This commit is contained in:
@@ -9,19 +9,6 @@
|
||||
<h4 class="mb-0">OPC UA API keys</h4>
|
||||
</div>
|
||||
|
||||
<div class="alert alert-info" role="alert">
|
||||
The OPC UA data plane is machine-to-machine. A client connects with an OPC UA
|
||||
<strong>UserName</strong> token whose username is the literal <span class="mono">apikey</span> and
|
||||
whose password is the key below. The key resolves to a <strong>principal</strong>; ACL rows naming
|
||||
that principal are what grant it permissions.
|
||||
<br />
|
||||
<strong>Revocation is not uniform across the fleet.</strong> A node with a config database (a fused
|
||||
admin+driver node such as this one) applies it <em>immediately</em>, because it reads keys per
|
||||
request. A <strong>driver-only</strong> node has no config database, so its keys travel inside the
|
||||
deployment artifact and a revocation reaches it only on the <strong>next deployment</strong>.
|
||||
Assume the slower behaviour when revoking a compromised key.
|
||||
</div>
|
||||
|
||||
@if (_created is not null)
|
||||
{
|
||||
<div class="alert alert-success" role="alert">
|
||||
@@ -111,12 +98,14 @@
|
||||
<td>@k.CreatedUtc.ToString("yyyy-MM-dd HH:mm")</td>
|
||||
<td>@(k.ExpiresUtc?.ToString("yyyy-MM-dd") ?? "—")</td>
|
||||
<td class="text-end">
|
||||
<button class="btn btn-sm btn-outline-secondary"
|
||||
@onclick="() => SetEnabledAsync(k.ApiKeyId, !k.Enabled)" disabled="@_busy">
|
||||
@(k.Enabled ? "Revoke" : "Re-enable")
|
||||
</button>
|
||||
<button class="btn btn-sm btn-outline-danger"
|
||||
@onclick="() => DeleteAsync(k.ApiKeyId)" disabled="@_busy">Delete</button>
|
||||
<div class="btn-group btn-group-sm" role="group">
|
||||
<button class="btn btn-sm btn-outline-secondary"
|
||||
@onclick="() => SetEnabledAsync(k.ApiKeyId, !k.Enabled)" disabled="@_busy">
|
||||
@(k.Enabled ? "Revoke" : "Re-enable")
|
||||
</button>
|
||||
<button class="btn btn-sm btn-outline-danger"
|
||||
@onclick="() => DeleteAsync(k.ApiKeyId)" disabled="@_busy">Delete</button>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user