@namespace ZB.MOM.WW.Secrets.Ui @implements IDisposable @inject ISecretStore Store @* Components/SecretsList.razor — metadata-only listing of secrets. Never renders a value or ciphertext. *@ @if (_secrets is null) {

Loading…

} else {
@if (_secrets.Count == 0) { } else { @foreach (SecretMetadata secret in _secrets) { } }
Name Description Content type KEK Revision Updated (UTC) Updated by
No secrets.
@secret.Name.Value @secret.Description @secret.ContentType @secret.KekId @secret.Revision @secret.UpdatedUtc.UtcDateTime.ToString("u") @secret.UpdatedBy @* Placeholder — actual reveal wiring is a later task. Gated so it renders only for principals holding the reveal policy. *@
}
@code { private readonly CancellationTokenSource _cts = new(); private IReadOnlyList? _secrets; /// protected override async Task OnInitializedAsync() { _secrets = await Store.ListAsync(includeDeleted: false, _cts.Token); } /// public void Dispose() { _cts.Cancel(); _cts.Dispose(); } }