sprints and audit work

This commit is contained in:
StellaOps Bot
2026-01-07 09:36:16 +02:00
parent 05833e0af2
commit ab364c6032
377 changed files with 64534 additions and 1627 deletions

View File

@@ -17,6 +17,7 @@ using StellaOps.Configuration;
using StellaOps.Policy.Scoring.Engine;
using StellaOps.ExportCenter.Client;
using StellaOps.ExportCenter.Core.EvidenceCache;
using StellaOps.Verdict;
#if DEBUG || STELLAOPS_ENABLE_SIMULATOR
using StellaOps.Cryptography.Plugin.SimRemote.DependencyInjection;
#endif
@@ -247,6 +248,12 @@ internal static class Program
client.Timeout = TimeSpan.FromSeconds(60);
}).AddEgressPolicyGuard("stellaops-cli", "sbom-api");
// VRR-021: Rationale client for verdict rationale
services.AddHttpClient<IRationaleClient, RationaleClient>(client =>
{
client.Timeout = TimeSpan.FromSeconds(30);
}).AddEgressPolicyGuard("stellaops-cli", "triage-api");
// CLI-VERIFY-43-001: OCI registry client for verify image
services.AddHttpClient<IOciRegistryClient, OciRegistryClient>(client =>
{
@@ -278,6 +285,32 @@ internal static class Program
services.AddSingleton<ICvssV4Engine, CvssV4Engine>();
// RPL-003: VerdictBuilder for replay infrastructure (SPRINT_20260105_002_001_REPLAY)
services.AddVerdictBuilderAirGap();
// RPL-016/017: Timeline and bundle store adapters for stella prove command
services.AddHttpClient<StellaOps.Cli.Commands.ITimelineQueryAdapter,
StellaOps.Cli.Replay.TimelineQueryAdapter>(client =>
{
client.Timeout = TimeSpan.FromSeconds(30);
if (!string.IsNullOrWhiteSpace(options.BackendUrl) &&
Uri.TryCreate(options.BackendUrl, UriKind.Absolute, out var backendUri))
{
client.BaseAddress = backendUri;
}
}).AddEgressPolicyGuard("stellaops-cli", "timeline-api");
services.AddHttpClient<StellaOps.Cli.Commands.IReplayBundleStoreAdapter,
StellaOps.Cli.Replay.ReplayBundleStoreAdapter>(client =>
{
client.Timeout = TimeSpan.FromMinutes(5); // Bundle downloads may take longer
if (!string.IsNullOrWhiteSpace(options.BackendUrl) &&
Uri.TryCreate(options.BackendUrl, UriKind.Absolute, out var backendUri))
{
client.BaseAddress = backendUri;
}
}).AddEgressPolicyGuard("stellaops-cli", "replay-bundle-api");
// CLI-AIRGAP-56-001: Mirror bundle import service for air-gap operations
services.AddSingleton<StellaOps.AirGap.Importer.Repositories.IBundleCatalogRepository,
StellaOps.AirGap.Importer.Repositories.InMemoryBundleCatalogRepository>();