feat(secrets): default resolver with TTL cache + audit (never logs plaintext)

This commit is contained in:
Joseph Doherty
2026-07-15 16:55:24 -04:00
parent 10455ec53b
commit 79ebd14baa
7 changed files with 435 additions and 0 deletions
@@ -0,0 +1,17 @@
namespace ZB.MOM.WW.Secrets.Abstractions;
/// <summary>
/// Resolves the current principal (the ZB.MOM.WW.Auth identity) for audit attribution when a
/// secret is resolved. A consumer wires this to whatever surfaces the ambient caller — an HTTP
/// context accessor, an actor context, a CLI identity, etc. A <c>null</c> <see cref="CurrentActor"/>
/// (or no accessor at all) is treated as the <c>"system"</c> actor by the resolver, so keyless /
/// background resolutions are still attributed rather than left blank.
/// </summary>
public interface ISecretActorAccessor
{
/// <summary>
/// The current principal to record as the audit <c>Actor</c>, or <c>null</c> when no
/// principal is available (treated as <c>"system"</c>).
/// </summary>
string? CurrentActor { get; }
}