warnings fixes, tests fixes, sprints completions

This commit is contained in:
Codex Assistant
2026-01-08 08:38:27 +02:00
parent 75611a505f
commit 0b5d786ddb
125 changed files with 14610 additions and 368 deletions

View File

@@ -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,

View File

@@ -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
{