Stabilzie modules

This commit is contained in:
master
2026-02-16 07:32:38 +02:00
parent ab794e167c
commit 45c0f1bb59
45 changed files with 3055 additions and 156 deletions

View File

@@ -12,6 +12,7 @@ using StellaOps.Cli.Commands.Scan;
using StellaOps.Cli.Configuration;
using StellaOps.Cli.Services;
using StellaOps.Cli.Telemetry;
using StellaOps.Concelier.Core.Sources;
using StellaOps.Configuration;
using StellaOps.Doctor.DependencyInjection;
using StellaOps.Doctor.Plugin.BinaryAnalysis.DependencyInjection;
@@ -191,6 +192,9 @@ internal static class Program
services.AddSingleton<IEvidenceCacheService, LocalEvidenceCacheService>();
services.AddVexEvidenceLinking(configuration);
// CLI-SRC-001: Advisory source registry for sources management commands
services.AddSourcesRegistry(configuration);
// Doctor diagnostics engine
services.AddDoctorEngine();
services.AddDoctorCorePlugin();
@@ -232,6 +236,11 @@ internal static class Program
services.AddHttpClient<IPromotionAssembler, PromotionAssembler>(client =>
{
client.Timeout = TimeSpan.FromMinutes(5);
if (!string.IsNullOrWhiteSpace(options.BackendUrl) &&
Uri.TryCreate(options.BackendUrl, UriKind.Absolute, out var backendUri))
{
client.BaseAddress = backendUri;
}
});
// CLI-DETER-70-003: Determinism harness (local only, executes docker)
@@ -241,36 +250,66 @@ internal static class Program
services.AddHttpClient<IObservabilityClient, ObservabilityClient>(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", "observability-api");
// CLI-PACKS-42-001: Pack client for Task Pack operations
services.AddHttpClient<IPackClient, PackClient>(client =>
{
client.Timeout = TimeSpan.FromMinutes(10); // Pack operations may take longer
if (!string.IsNullOrWhiteSpace(options.BackendUrl) &&
Uri.TryCreate(options.BackendUrl, UriKind.Absolute, out var backendUri))
{
client.BaseAddress = backendUri;
}
}).AddEgressPolicyGuard("stellaops-cli", "packs-api");
// CLI-EXC-25-001: Exception client for exception governance operations
services.AddHttpClient<IExceptionClient, ExceptionClient>(client =>
{
client.Timeout = TimeSpan.FromSeconds(60);
if (!string.IsNullOrWhiteSpace(options.BackendUrl) &&
Uri.TryCreate(options.BackendUrl, UriKind.Absolute, out var backendUri))
{
client.BaseAddress = backendUri;
}
}).AddEgressPolicyGuard("stellaops-cli", "exceptions-api");
// CLI-ORCH-32-001: Orchestrator client for source/job management
services.AddHttpClient<IOrchestratorClient, OrchestratorClient>(client =>
{
client.Timeout = TimeSpan.FromSeconds(60);
if (!string.IsNullOrWhiteSpace(options.BackendUrl) &&
Uri.TryCreate(options.BackendUrl, UriKind.Absolute, out var backendUri))
{
client.BaseAddress = backendUri;
}
}).AddEgressPolicyGuard("stellaops-cli", "orchestrator-api");
// CLI-PARITY-41-001: SBOM client for SBOM explorer
services.AddHttpClient<ISbomClient, SbomClient>(client =>
{
client.Timeout = TimeSpan.FromSeconds(60);
if (!string.IsNullOrWhiteSpace(options.BackendUrl) &&
Uri.TryCreate(options.BackendUrl, UriKind.Absolute, out var backendUri))
{
client.BaseAddress = backendUri;
}
}).AddEgressPolicyGuard("stellaops-cli", "sbom-api");
// VRR-021: Rationale client for verdict rationale
services.AddHttpClient<IRationaleClient, RationaleClient>(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", "triage-api");
// CLI-VERIFY-43-001: OCI registry client for verify image
@@ -308,19 +347,34 @@ internal static class Program
// CLI-PARITY-41-002: Notify client for notification management
services.AddHttpClient<INotifyClient, NotifyClient>(client =>
{
client.Timeout = TimeSpan.FromSeconds(60);
}).AddEgressPolicyGuard("stellaops-cli", "notify-api");
client.Timeout = TimeSpan.FromSeconds(60);
if (!string.IsNullOrWhiteSpace(options.BackendUrl) &&
Uri.TryCreate(options.BackendUrl, UriKind.Absolute, out var backendUri))
{
client.BaseAddress = backendUri;
}
}).AddEgressPolicyGuard("stellaops-cli", "notify-api");
// CLI-SBOM-60-001: Sbomer client for layer/compose operations
services.AddHttpClient<ISbomerClient, SbomerClient>(client =>
{
client.Timeout = TimeSpan.FromMinutes(5); // Composition may take longer
if (!string.IsNullOrWhiteSpace(options.BackendUrl) &&
Uri.TryCreate(options.BackendUrl, UriKind.Absolute, out var backendUri))
{
client.BaseAddress = backendUri;
}
}).AddEgressPolicyGuard("stellaops-cli", "sbomer-api");
// CLI-CVSS-190-010: CVSS receipt client (talks to Policy Gateway /api/cvss)
services.AddHttpClient<ICvssClient, CvssClient>(client =>
{
client.Timeout = TimeSpan.FromSeconds(60);
if (!string.IsNullOrWhiteSpace(options.BackendUrl) &&
Uri.TryCreate(options.BackendUrl, UriKind.Absolute, out var backendUri))
{
client.BaseAddress = backendUri;
}
}).AddEgressPolicyGuard("stellaops-cli", "cvss-api");
services.AddSingleton<ICvssV4Engine, CvssV4Engine>();