Files
git.stella-ops.org/docs/features/checked/reachgraph/reachability-fallback-mechanisms.md
2026-02-14 09:11:48 +02:00

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, DeleteAsync for graph storage with fallback
  • ReachGraphStoreService: src/ReachGraph/StellaOps.ReachGraph.WebService/Services/ReachGraphStoreService.cs -- coordinates between IReachGraphRepository (persistence), IReachGraphCache (caching), and IReachGraphSignerService (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