2.2 KiB
2.2 KiB
Reachability Fallback Mechanisms
Module
ReachGraph
Status
IMPLEMENTED
Description
ReachGraph service with slice and replay capabilities for reachability analysis with deterministic replay support.
Implementation Details
- IReachGraphStoreService:
src/ReachGraph/StellaOps.ReachGraph.WebService/Services/IReachGraphStoreService.cs--UpsertAsync,GetByDigestAsync,ListByArtifactAsync,DeleteAsyncfor graph storage with fallback - ReachGraphStoreService:
src/ReachGraph/StellaOps.ReachGraph.WebService/Services/ReachGraphStoreService.cs-- coordinates betweenIReachGraphRepository(persistence),IReachGraphCache(caching), andIReachGraphSignerService(signing); supports digest-based idempotent upserts - IReachGraphSliceService:
src/ReachGraph/StellaOps.ReachGraph.WebService/Services/IReachGraphSliceService.cs-- multi-dimensional slice queries (by-package, by-CVE, by-entrypoint, by-file) with configurable depth and direction - ReachGraphSliceService:
src/ReachGraph/StellaOps.ReachGraph.WebService/Services/ReachGraphSliceService.cs-- cached slice computation; falls back to full graph loading when cache misses - IReachGraphReplayService:
src/ReachGraph/StellaOps.ReachGraph.WebService/Services/IReachGraphReplayService.cs-- deterministic replay as fallback verification mechanism - ReachGraphReplayService:
src/ReachGraph/StellaOps.ReachGraph.WebService/Services/ReachGraphReplayService.cs-- replays computation from SBOM, VEX, callgraph, and runtime facts inputs; compares computed digest against expected - PaginationService:
src/ReachGraph/StellaOps.ReachGraph.WebService/Services/PaginationService.cs-- cursor-based pagination for large result sets - Tests:
src/ReachGraph/__Tests/StellaOps.ReachGraph.WebService.Tests/ReachGraphApiIntegrationTests.cs - Source: Feature matrix scan
E2E Test Plan
- Verify graph retrieval falls back from cache to database when cache misses
- Test slice queries degrade gracefully when full graph is not available
- Verify replay verification provides fallback for determinism validation
- Test idempotent upsert handles concurrent writes without data loss
- Verify pagination handles large result sets with cursor-based navigation