feat(sessions): record OwnerKeyId on session creation

Add a nullable string? OwnerKeyId property to GatewaySession that captures
the API key identifier (KeyId) of the authenticated caller that opened the
session. Wire it through ISessionManager.OpenSessionAsync → SessionManager
→ GatewaySession constructor. The gRPC service passes identityAccessor
.Current?.KeyId; internal callers (GatewayAlarmMonitor, DashboardLiveDataService)
pass null. Covers the positive and null cases with two new TDD-first tests.
This commit is contained in:
Joseph Doherty
2026-06-15 12:24:29 -04:00
parent 00c849e63b
commit f5479f3ca3
16 changed files with 88 additions and 24 deletions
@@ -884,10 +884,12 @@ public sealed class MxAccessGatewayServiceConstraintTests
/// <summary>Opens a test session asynchronously.</summary>
/// <param name="request">The session open request.</param>
/// <param name="clientIdentity">The client identity, if any.</param>
/// <param name="ownerKeyId">The API key identifier of the caller, if any.</param>
/// <param name="cancellationToken">Token to observe for cancellation.</param>
public Task<GatewaySession> OpenSessionAsync(
SessionOpenRequest request,
string? clientIdentity,
string? ownerKeyId,
CancellationToken cancellationToken) =>
Task.FromResult(seededSessions.Values.First());