188 lines
8.2 KiB
JSON
188 lines
8.2 KiB
JSON
{
|
|
"module": "reachgraph",
|
|
"featureCount": 9,
|
|
"lastUpdatedUtc": "2026-02-13T12:00:00Z",
|
|
"summary": {
|
|
"passed": 9,
|
|
"failed": 0,
|
|
"blocked": 0,
|
|
"skipped": 0,
|
|
"done": 9,
|
|
"queued": 0
|
|
},
|
|
"buildNote": "All 9 features verified. Two test projects: StellaOps.ReachGraph.WebService.Tests (26 passed) and StellaOps.Reachability.Core.Tests (224 passed). Total 250 tests, 0 failures. One transient FsCheck property test failure observed but not reproducible on retry.",
|
|
"features": {
|
|
"8-state-reachability-lattice": {
|
|
"status": "done",
|
|
"tier": 2,
|
|
"testProject": "src/__Libraries/__Tests/StellaOps.Reachability.Core.Tests/StellaOps.Reachability.Core.Tests.csproj",
|
|
"testsRun": 224,
|
|
"testsPassed": 224,
|
|
"testsFailed": 0,
|
|
"notes": [
|
|
"Full 8-state lattice model implemented: LatticeState enum, ReachabilityLattice state machine with FrozenDictionary transitions, ConfidenceCalculator with weighted scoring, confidence ranges per state."
|
|
],
|
|
"retryCount": 0,
|
|
"sourceVerified": true,
|
|
"buildVerified": true,
|
|
"e2eVerified": true,
|
|
"skipReason": null,
|
|
"lastRunId": null,
|
|
"lastUpdatedUtc": "2026-02-13T12:00:00Z",
|
|
"featureFile": "docs/features/checked/reachgraph/8-state-reachability-lattice.md"
|
|
},
|
|
"cve-to-symbol-mapping-service": {
|
|
"status": "done",
|
|
"tier": 2,
|
|
"testProject": "src/__Libraries/__Tests/StellaOps.Reachability.Core.Tests/StellaOps.Reachability.Core.Tests.csproj",
|
|
"testsRun": 224,
|
|
"testsPassed": 224,
|
|
"testsFailed": 0,
|
|
"notes": [
|
|
"Full CVE-symbol mapping service with CveMappingController at v1/cve-mappings. All 7 endpoints implemented: GET by CVE, GET by package, GET by symbol, POST upsert, POST analyze-patch, POST enrich, GET stats. Rate limiting and response caching in place."
|
|
],
|
|
"retryCount": 0,
|
|
"sourceVerified": true,
|
|
"buildVerified": true,
|
|
"e2eVerified": true,
|
|
"skipReason": null,
|
|
"lastRunId": null,
|
|
"lastUpdatedUtc": "2026-02-13T12:00:00Z",
|
|
"featureFile": "docs/features/checked/reachgraph/cve-to-symbol-mapping-service.md"
|
|
},
|
|
"reachability-analysis-with-call-graph-evidence": {
|
|
"status": "done",
|
|
"tier": 2,
|
|
"testProject": "src/ReachGraph/__Tests/StellaOps.ReachGraph.WebService.Tests/StellaOps.ReachGraph.WebService.Tests.csproj",
|
|
"testsRun": 26,
|
|
"testsPassed": 26,
|
|
"testsFailed": 0,
|
|
"notes": [
|
|
"ReachGraphController with slice queries returning call graph evidence. CVE slice returns CveSliceResponse with Sinks and Paths. Package/entrypoint/file slices supported. ReachabilityPath model includes hops and edges for evidence trace."
|
|
],
|
|
"retryCount": 0,
|
|
"sourceVerified": true,
|
|
"buildVerified": true,
|
|
"e2eVerified": true,
|
|
"skipReason": null,
|
|
"lastRunId": null,
|
|
"lastUpdatedUtc": "2026-02-13T12:00:00Z",
|
|
"featureFile": "docs/features/checked/reachgraph/reachability-analysis-with-call-graph-evidence.md"
|
|
},
|
|
"reachability-aware-vulnerability-analysis": {
|
|
"status": "done",
|
|
"tier": 2,
|
|
"testProject": "src/__Libraries/__Tests/StellaOps.Reachability.Core.Tests/StellaOps.Reachability.Core.Tests.csproj",
|
|
"testsRun": 224,
|
|
"testsPassed": 224,
|
|
"testsFailed": 0,
|
|
"notes": [
|
|
"Multi-layer reachability with IReachabilityIndex facade combining static (Layer 1-3) and runtime analysis. HybridReachabilityResult with lattice state, confidence, VEX recommendation. Symbol canonicalization across 4 languages (DotNet, Java, Native, Script). ReachabilityController exposes unified API at v1/reachability."
|
|
],
|
|
"retryCount": 0,
|
|
"sourceVerified": true,
|
|
"buildVerified": true,
|
|
"e2eVerified": true,
|
|
"skipReason": null,
|
|
"lastRunId": null,
|
|
"lastUpdatedUtc": "2026-02-13T12:00:00Z",
|
|
"featureFile": "docs/features/checked/reachgraph/reachability-aware-vulnerability-analysis.md"
|
|
},
|
|
"reachability-core-library-with-unified-query-interface": {
|
|
"status": "done",
|
|
"tier": 2,
|
|
"testProject": "src/ReachGraph/__Tests/StellaOps.ReachGraph.WebService.Tests/StellaOps.ReachGraph.WebService.Tests.csproj",
|
|
"testsRun": 26,
|
|
"testsPassed": 26,
|
|
"testsFailed": 0,
|
|
"notes": [
|
|
"IReachabilityIndex unified facade with QueryStaticAsync, QueryRuntimeAsync, QueryHybridAsync, QueryBatchAsync. ReachGraphStoreAdapter and InMemorySignalsAdapter bridge core library to web service. ReachabilityController at v1/reachability exposes all query types."
|
|
],
|
|
"retryCount": 0,
|
|
"sourceVerified": true,
|
|
"buildVerified": true,
|
|
"e2eVerified": true,
|
|
"skipReason": null,
|
|
"lastRunId": null,
|
|
"lastUpdatedUtc": "2026-02-13T12:00:00Z",
|
|
"featureFile": "docs/features/checked/reachgraph/reachability-core-library-with-unified-query-interface.md"
|
|
},
|
|
"reachability-fallback-mechanisms": {
|
|
"status": "done",
|
|
"tier": 2,
|
|
"testProject": "src/ReachGraph/__Tests/StellaOps.ReachGraph.WebService.Tests/StellaOps.ReachGraph.WebService.Tests.csproj",
|
|
"testsRun": 26,
|
|
"testsPassed": 26,
|
|
"testsFailed": 0,
|
|
"notes": [
|
|
"ReachGraphStoreService coordinates repository, cache, and signer. Cache-first retrieval with database fallback. Replay verification as determinism fallback. Idempotent upsert. PaginationService for large result sets."
|
|
],
|
|
"retryCount": 0,
|
|
"sourceVerified": true,
|
|
"buildVerified": true,
|
|
"e2eVerified": true,
|
|
"skipReason": null,
|
|
"lastRunId": null,
|
|
"lastUpdatedUtc": "2026-02-13T12:00:00Z",
|
|
"featureFile": "docs/features/checked/reachgraph/reachability-fallback-mechanisms.md"
|
|
},
|
|
"reachability-replay-verification": {
|
|
"status": "done",
|
|
"tier": 2,
|
|
"testProject": "src/ReachGraph/__Tests/StellaOps.ReachGraph.WebService.Tests/StellaOps.ReachGraph.WebService.Tests.csproj",
|
|
"testsRun": 26,
|
|
"testsPassed": 26,
|
|
"testsFailed": 0,
|
|
"notes": [
|
|
"ReachGraphReplayService recomputes digest from stored graph and compares. ReplayRequest/ReplayResponse with InputsVerified and Divergence. POST v1/reachgraphs/replay endpoint. NodeHashRecipe and PathHashRecipe for deterministic hashing."
|
|
],
|
|
"retryCount": 0,
|
|
"sourceVerified": true,
|
|
"buildVerified": true,
|
|
"e2eVerified": true,
|
|
"skipReason": null,
|
|
"lastRunId": null,
|
|
"lastUpdatedUtc": "2026-02-13T12:00:00Z",
|
|
"featureFile": "docs/features/checked/reachgraph/reachability-replay-verification.md"
|
|
},
|
|
"reachgraph-slice-query-rest-apis": {
|
|
"status": "done",
|
|
"tier": 2,
|
|
"testProject": "src/ReachGraph/__Tests/StellaOps.ReachGraph.WebService.Tests/StellaOps.ReachGraph.WebService.Tests.csproj",
|
|
"testsRun": 26,
|
|
"testsPassed": 26,
|
|
"testsFailed": 0,
|
|
"notes": [
|
|
"Full REST API at v1/reachgraphs with 9 endpoints: POST upsert, GET by digest (24h cache + ETag), GET slice by package/CVE/entrypoint/file, POST replay, GET by-artifact, DELETE. SliceQueryResponse and CveSliceResponse models. Cached slice computation with SHA256 keys."
|
|
],
|
|
"retryCount": 0,
|
|
"sourceVerified": true,
|
|
"buildVerified": true,
|
|
"e2eVerified": true,
|
|
"skipReason": null,
|
|
"lastRunId": null,
|
|
"lastUpdatedUtc": "2026-02-13T12:00:00Z",
|
|
"featureFile": "docs/features/checked/reachgraph/reachgraph-slice-query-rest-apis.md"
|
|
},
|
|
"static-sbom-call-graph-pruning": {
|
|
"status": "done",
|
|
"tier": 2,
|
|
"testProject": "src/__Libraries/__Tests/StellaOps.Reachability.Core.Tests/StellaOps.Reachability.Core.Tests.csproj",
|
|
"testsRun": 224,
|
|
"testsPassed": 224,
|
|
"testsFailed": 0,
|
|
"notes": [
|
|
"Static call-graph analysis determines SR or SU lattice state. SymbolCanonicalizer and SymbolMatcher for cross-language matching. ReachGraphStoreAdapter performs BFS traversal for reachability. QueryBatchAsync supports SBOM-wide pruning."
|
|
],
|
|
"retryCount": 0,
|
|
"sourceVerified": true,
|
|
"buildVerified": true,
|
|
"e2eVerified": true,
|
|
"skipReason": null,
|
|
"lastRunId": null,
|
|
"lastUpdatedUtc": "2026-02-13T12:00:00Z",
|
|
"featureFile": "docs/features/checked/reachgraph/static-sbom-call-graph-pruning.md"
|
|
}
|
|
}
|
|
}
|