warnings fixes, tests fixes, sprints completions
This commit is contained in:
@@ -5,6 +5,7 @@ using System.Text.Encodings.Web;
|
||||
using System.Text.Json;
|
||||
using System.Text.Json.Serialization;
|
||||
using StellaOps.Attestor.Envelope;
|
||||
using StellaOps.Determinism.Abstractions;
|
||||
using StellaOps.Policy.Scoring.Engine;
|
||||
|
||||
namespace StellaOps.Policy.Scoring.Receipts;
|
||||
@@ -45,12 +46,16 @@ public sealed class ReceiptBuilder : IReceiptBuilder
|
||||
private readonly ICvssV4Engine _engine;
|
||||
private readonly IReceiptRepository _repository;
|
||||
private readonly EnvelopeSignatureService _signatureService;
|
||||
private readonly TimeProvider _timeProvider;
|
||||
private readonly IGuidProvider _guidProvider;
|
||||
|
||||
public ReceiptBuilder(ICvssV4Engine engine, IReceiptRepository repository)
|
||||
public ReceiptBuilder(ICvssV4Engine engine, IReceiptRepository repository, TimeProvider timeProvider, IGuidProvider guidProvider)
|
||||
{
|
||||
_engine = engine;
|
||||
_repository = repository;
|
||||
_signatureService = new EnvelopeSignatureService();
|
||||
_timeProvider = timeProvider;
|
||||
_guidProvider = guidProvider;
|
||||
}
|
||||
|
||||
public async Task<CvssScoreReceipt> CreateAsync(CreateReceiptRequest request, CancellationToken cancellationToken = default)
|
||||
@@ -60,7 +65,7 @@ public sealed class ReceiptBuilder : IReceiptBuilder
|
||||
|
||||
ValidateEvidence(request.Policy, request.Evidence);
|
||||
|
||||
var createdAt = request.CreatedAt ?? DateTimeOffset.UtcNow;
|
||||
var createdAt = request.CreatedAt ?? _timeProvider.GetUtcNow();
|
||||
|
||||
// Compute scores and vector
|
||||
var scores = _engine.ComputeScores(request.BaseMetrics, request.ThreatMetrics, request.EnvironmentalMetrics);
|
||||
@@ -83,7 +88,7 @@ public sealed class ReceiptBuilder : IReceiptBuilder
|
||||
|
||||
var receipt = new CvssScoreReceipt
|
||||
{
|
||||
ReceiptId = Guid.NewGuid().ToString("N"),
|
||||
ReceiptId = _guidProvider.NewGuid().ToString("N"),
|
||||
TenantId = request.TenantId,
|
||||
VulnerabilityId = request.VulnerabilityId,
|
||||
CreatedAt = createdAt,
|
||||
@@ -103,7 +108,7 @@ public sealed class ReceiptBuilder : IReceiptBuilder
|
||||
InputHash = ComputeInputHash(request, scores, policyRef, vector, evidence),
|
||||
History = ImmutableList<ReceiptHistoryEntry>.Empty.Add(new ReceiptHistoryEntry
|
||||
{
|
||||
HistoryId = Guid.NewGuid().ToString("N"),
|
||||
HistoryId = _guidProvider.NewGuid().ToString("N"),
|
||||
Timestamp = createdAt,
|
||||
Actor = request.CreatedBy,
|
||||
ChangeType = ReceiptChangeType.Created,
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using System.Collections.Immutable;
|
||||
using StellaOps.Attestor.Envelope;
|
||||
using StellaOps.Determinism.Abstractions;
|
||||
|
||||
namespace StellaOps.Policy.Scoring.Receipts;
|
||||
|
||||
@@ -25,10 +26,14 @@ public sealed class ReceiptHistoryService : IReceiptHistoryService
|
||||
{
|
||||
private readonly IReceiptRepository _repository;
|
||||
private readonly EnvelopeSignatureService _signatureService = new();
|
||||
private readonly TimeProvider _timeProvider;
|
||||
private readonly IGuidProvider _guidProvider;
|
||||
|
||||
public ReceiptHistoryService(IReceiptRepository repository)
|
||||
public ReceiptHistoryService(IReceiptRepository repository, TimeProvider timeProvider, IGuidProvider guidProvider)
|
||||
{
|
||||
_repository = repository;
|
||||
_timeProvider = timeProvider;
|
||||
_guidProvider = guidProvider;
|
||||
}
|
||||
|
||||
public async Task<CvssScoreReceipt> AmendAsync(AmendReceiptRequest request, CancellationToken cancellationToken = default)
|
||||
@@ -38,8 +43,8 @@ public sealed class ReceiptHistoryService : IReceiptHistoryService
|
||||
var existing = await _repository.GetAsync(request.TenantId, request.ReceiptId, cancellationToken)
|
||||
?? throw new InvalidOperationException($"Receipt '{request.ReceiptId}' not found.");
|
||||
|
||||
var now = DateTimeOffset.UtcNow;
|
||||
var historyId = Guid.NewGuid().ToString("N");
|
||||
var now = _timeProvider.GetUtcNow();
|
||||
var historyId = _guidProvider.NewGuid().ToString("N");
|
||||
|
||||
var newHistory = existing.History.Add(new ReceiptHistoryEntry
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user