feat: Add initial implementation of Vulnerability Resolver Jobs
Some checks failed
Docs CI / lint-and-preview (push) Has been cancelled

- Created project for StellaOps.Scanner.Analyzers.Native.Tests with necessary dependencies.
- Documented roles and guidelines in AGENTS.md for Scheduler module.
- Implemented IResolverJobService interface and InMemoryResolverJobService for handling resolver jobs.
- Added ResolverBacklogNotifier and ResolverBacklogService for monitoring job metrics.
- Developed API endpoints for managing resolver jobs and retrieving metrics.
- Defined models for resolver job requests and responses.
- Integrated dependency injection for resolver job services.
- Implemented ImpactIndexSnapshot for persisting impact index data.
- Introduced SignalsScoringOptions for configurable scoring weights in reachability scoring.
- Added unit tests for ReachabilityScoringService and RuntimeFactsIngestionService.
- Created dotnet-filter.sh script to handle command-line arguments for dotnet.
- Established nuget-prime project for managing package downloads.
This commit is contained in:
master
2025-11-18 07:52:15 +02:00
parent e69b57d467
commit 8355e2ff75
299 changed files with 13293 additions and 2444 deletions

View File

@@ -0,0 +1,87 @@
namespace StellaOps.SbomService.Models;
public sealed record SbomPathQuery(
string Purl,
string? Artifact,
string? Scope,
string? Environment,
int Limit = 50,
int Offset = 0);
public sealed record SbomPathNode(string Name, string Kind);
public sealed record SbomPath(
IReadOnlyList<SbomPathNode> Nodes,
bool RuntimeFlag,
string? BlastRadius,
string? NearestSafeVersion);
public sealed record SbomPathResult(
string Purl,
string? Artifact,
string? Scope,
string? Environment,
IReadOnlyList<SbomPath> Paths,
string? NextCursor);
public sealed record SbomTimelineQuery(
string Artifact,
int Limit = 50,
int Offset = 0);
public sealed record SbomVersion(
string Version,
string Digest,
DateTimeOffset CreatedAt,
string SourceBundleHash,
string? Provenance);
public sealed record SbomTimelineResult(
string Artifact,
IReadOnlyList<SbomVersion> Versions,
string? NextCursor);
public sealed record SbomCatalogQuery(
string? Artifact,
string? License,
string? Scope,
string? AssetTag,
int Limit = 50,
int Offset = 0);
public sealed record SbomCatalogItem(
string Artifact,
string SbomVersion,
string Digest,
string? License,
string Scope,
IReadOnlyDictionary<string, string> AssetTags,
DateTimeOffset CreatedAt,
string ProjectionHash,
string EvaluationMetadata);
public sealed record SbomCatalogResult(
IReadOnlyList<SbomCatalogItem> Items,
string? NextCursor);
public sealed record QueryResult<T>(T Result, bool CacheHit);
public sealed record ComponentLookupQuery(
string Purl,
string? Artifact,
int Limit = 50,
int Offset = 0);
public sealed record ComponentNeighbor(
string Purl,
string Relationship,
string? License,
string Scope,
bool RuntimeFlag);
public sealed record ComponentLookupResult(
string Purl,
string? Artifact,
IReadOnlyList<ComponentNeighbor> Neighbors,
string? NextCursor,
string CacheHint);