docs consolidation and others
This commit is contained in:
@@ -18,15 +18,17 @@ namespace StellaOps.Verdict;
|
||||
public sealed class PolicyLockGenerator : IPolicyLockGenerator
|
||||
{
|
||||
private readonly ILogger<PolicyLockGenerator> _logger;
|
||||
private readonly TimeProvider _timeProvider;
|
||||
private const string SchemaVersion = "1.0";
|
||||
private const string EngineVersion = "1.0.0";
|
||||
|
||||
// TODO: Inject actual policy repository when available
|
||||
// private readonly IPolicyRepository _policyRepository;
|
||||
|
||||
public PolicyLockGenerator(ILogger<PolicyLockGenerator> logger)
|
||||
public PolicyLockGenerator(ILogger<PolicyLockGenerator> logger, TimeProvider? timeProvider = null)
|
||||
{
|
||||
_logger = logger;
|
||||
_timeProvider = timeProvider ?? TimeProvider.System;
|
||||
}
|
||||
|
||||
public async ValueTask<PolicyLock> GenerateAsync(
|
||||
@@ -41,10 +43,10 @@ public sealed class PolicyLockGenerator : IPolicyLockGenerator
|
||||
|
||||
var policyLock = new PolicyLock(
|
||||
SchemaVersion: SchemaVersion,
|
||||
PolicyVersion: $"{policyId}-{DateTimeOffset.UtcNow:yyyyMMddHHmmss}",
|
||||
PolicyVersion: $"{policyId}-{_timeProvider.GetUtcNow():yyyyMMddHHmmss}",
|
||||
RuleHashes: ruleHashes,
|
||||
EngineVersion: EngineVersion,
|
||||
GeneratedAt: DateTimeOffset.UtcNow
|
||||
GeneratedAt: _timeProvider.GetUtcNow()
|
||||
);
|
||||
|
||||
_logger.LogInformation(
|
||||
@@ -74,7 +76,7 @@ public sealed class PolicyLockGenerator : IPolicyLockGenerator
|
||||
PolicyVersion: version,
|
||||
RuleHashes: ruleHashes,
|
||||
EngineVersion: EngineVersion,
|
||||
GeneratedAt: DateTimeOffset.UtcNow
|
||||
GeneratedAt: _timeProvider.GetUtcNow()
|
||||
);
|
||||
|
||||
return policyLock;
|
||||
@@ -101,7 +103,7 @@ public sealed class PolicyLockGenerator : IPolicyLockGenerator
|
||||
if (policyLock.RuleHashes.Count == 0)
|
||||
errors.Add("At least one rule hash is required");
|
||||
|
||||
if (policyLock.GeneratedAt > DateTimeOffset.UtcNow.AddMinutes(5))
|
||||
if (policyLock.GeneratedAt > _timeProvider.GetUtcNow().AddMinutes(5))
|
||||
errors.Add("GeneratedAt timestamp is in the future");
|
||||
|
||||
// TODO: Validate rule hashes against stored policy configurations
|
||||
|
||||
Reference in New Issue
Block a user