tests fixes and sprints work
This commit is contained in:
@@ -0,0 +1,59 @@
|
||||
// SPDX-License-Identifier: BUSL-1.1
|
||||
// Copyright (c) 2026 stella-ops.org
|
||||
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using StellaOps.Concelier.SbomIntegration.Parsing;
|
||||
using StellaOps.Platform.Analytics.Options;
|
||||
using StellaOps.Platform.Analytics.Services;
|
||||
|
||||
namespace StellaOps.Platform.Analytics;
|
||||
|
||||
public static class ServiceCollectionExtensions
|
||||
{
|
||||
/// <summary>
|
||||
/// Registers analytics ingestion services (SBOM, vulnerability correlation, attestation).
|
||||
/// </summary>
|
||||
/// <param name="services">The service collection.</param>
|
||||
/// <param name="configuration">The configuration root.</param>
|
||||
/// <returns>The service collection for chaining.</returns>
|
||||
public static IServiceCollection AddAnalyticsIngestion(
|
||||
this IServiceCollection services,
|
||||
IConfiguration configuration,
|
||||
string? defaultConnectionString = null)
|
||||
{
|
||||
// Bind options
|
||||
services.AddOptions<AnalyticsIngestionOptions>()
|
||||
.Bind(configuration.GetSection(AnalyticsIngestionOptions.SectionName))
|
||||
.PostConfigure(options =>
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(options.PostgresConnectionString) &&
|
||||
!string.IsNullOrWhiteSpace(defaultConnectionString))
|
||||
{
|
||||
options.PostgresConnectionString = defaultConnectionString;
|
||||
}
|
||||
|
||||
options.Normalize();
|
||||
})
|
||||
.ValidateOnStart();
|
||||
|
||||
// Data source and CAS reader
|
||||
services.AddSingleton<AnalyticsIngestionDataSource>();
|
||||
services.AddSingleton<ICasContentReader, FileCasContentReader>();
|
||||
|
||||
// SBOM parser (from Concelier.SbomIntegration)
|
||||
services.AddSingleton<IParsedSbomParser, ParsedSbomParser>();
|
||||
|
||||
// Vulnerability correlation service (also a BackgroundService)
|
||||
services.AddSingleton<IVulnerabilityCorrelationService, VulnerabilityCorrelationService>();
|
||||
services.AddHostedService(sp => (VulnerabilityCorrelationService)sp.GetRequiredService<IVulnerabilityCorrelationService>());
|
||||
|
||||
// SBOM ingestion service
|
||||
services.AddHostedService<AnalyticsIngestionService>();
|
||||
|
||||
// Attestation ingestion service
|
||||
services.AddHostedService<AttestationIngestionService>();
|
||||
|
||||
return services;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user