diff --git a/src/ServerMonitorManager.Control/NodeEnrollmentService.cs b/src/ServerMonitorManager.Control/NodeEnrollmentService.cs index b96c2f3..a9701e4 100644 --- a/src/ServerMonitorManager.Control/NodeEnrollmentService.cs +++ b/src/ServerMonitorManager.Control/NodeEnrollmentService.cs @@ -6,7 +6,7 @@ using ServerMonitorManager.Core; namespace ServerMonitorManager.Control; -public sealed class NodeEnrollmentService +public sealed class NodeEnrollmentService : IDisposable { private readonly IOptions _options; private readonly ControlStore _store; @@ -59,13 +59,9 @@ public sealed class NodeEnrollmentService _broker.Publish( "agent.enrollment_code.issued", nodeId, - JsonSerializer.Serialize(new - { - node_id = nodeId, - actor, - node_address = nodeAddress, - expires_at = expiresAt - })); + JsonSerializer.Serialize( + new NodeEnrollmentCodeIssuedDetails(nodeId, actor, nodeAddress, expiresAt), + SmmJsonContext.Default.NodeEnrollmentCodeIssuedDetails)); var code = string.Join(".", "SMMNODE2", @@ -220,4 +216,9 @@ public sealed class NodeEnrollmentService .Replace('+', '-') .Replace('/', '_'); } + + public void Dispose() + { + _meshLock.Dispose(); + } } diff --git a/src/ServerMonitorManager.Core/NodeEnrollmentModels.cs b/src/ServerMonitorManager.Core/NodeEnrollmentModels.cs index ab8a344..00415ab 100644 --- a/src/ServerMonitorManager.Core/NodeEnrollmentModels.cs +++ b/src/ServerMonitorManager.Core/NodeEnrollmentModels.cs @@ -5,3 +5,9 @@ public sealed record NodeEnrollmentCodeResponse( string Code, string CaFingerprint, DateTimeOffset ExpiresAt); + +public sealed record NodeEnrollmentCodeIssuedDetails( + string NodeId, + string Actor, + string NodeAddress, + DateTimeOffset ExpiresAt); diff --git a/src/ServerMonitorManager.Core/SmmJsonContext.cs b/src/ServerMonitorManager.Core/SmmJsonContext.cs index d0aeccf..3e2449e 100644 --- a/src/ServerMonitorManager.Core/SmmJsonContext.cs +++ b/src/ServerMonitorManager.Core/SmmJsonContext.cs @@ -58,4 +58,5 @@ namespace ServerMonitorManager.Core; [JsonSerializable(typeof(ProvisioningEvent))] [JsonSerializable(typeof(ProvisioningEvent[]))] [JsonSerializable(typeof(NodeEnrollmentCodeResponse))] +[JsonSerializable(typeof(NodeEnrollmentCodeIssuedDetails))] public sealed partial class SmmJsonContext : JsonSerializerContext;