|
|
|
|
@@ -30,88 +30,88 @@ Consolidate reachability data from Scanner, Signals, and Attestor into a single,
|
|
|
|
|
### Component Diagram
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
┌──────────────────────────────────────────────────────────────────┐
|
|
|
|
|
│ ReachGraph Module │
|
|
|
|
|
├──────────────────────────────────────────────────────────────────┤
|
|
|
|
|
│ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │
|
|
|
|
|
│ │ Schema Layer │ │ Serialization │ │ Signing Layer │ │
|
|
|
|
|
│ │ │ │ │ │ │ │
|
|
|
|
|
│ │ ReachGraphMin │ │ Canonical JSON │ │ DSSE Wrapper │ │
|
|
|
|
|
│ │ EdgeExplanation │ │ BLAKE3 Digest │ │ Verification │ │
|
|
|
|
|
│ │ Provenance │ │ Compression │ │ │ │
|
|
|
|
|
│ └────────┬────────┘ └────────┬────────┘ └────────┬────────┘ │
|
|
|
|
|
│ │ │ │ │
|
|
|
|
|
│ ┌────────▼────────────────────▼────────────────────▼────────┐ │
|
|
|
|
|
│ │ Store Layer │ │
|
|
|
|
|
│ │ │ │
|
|
|
|
|
│ │ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ │
|
|
|
|
|
│ │ │ Repository │ │ Slice Engine │ │ Replay Driver│ │ │
|
|
|
|
|
│ │ └──────────────┘ └──────────────┘ └──────────────┘ │ │
|
|
|
|
|
│ └────────────────────────────────────────────────────────────┘ │
|
|
|
|
|
│ │ │
|
|
|
|
|
│ ┌───────────────────────────▼───────────────────────────────┐ │
|
|
|
|
|
│ │ Persistence Layer │ │
|
|
|
|
|
│ │ │ │
|
|
|
|
|
│ │ ┌──────────────┐ ┌──────────────┐ │ │
|
|
|
|
|
│ │ │ PostgreSQL │ │ Valkey │ │ │
|
|
|
|
|
│ │ │ (primary) │ │ (cache) │ │ │
|
|
|
|
|
│ │ └──────────────┘ └──────────────┘ │ │
|
|
|
|
|
│ └────────────────────────────────────────────────────────────┘ │
|
|
|
|
|
└──────────────────────────────────────────────────────────────────┘
|
|
|
|
|
????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
|
|
|
|
|
??? ReachGraph Module ???
|
|
|
|
|
????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
|
|
|
|
|
??? ????????????????????????????????????????????????????????? ????????????????????????????????????????????????????????? ????????????????????????????????????????????????????????? ???
|
|
|
|
|
??? ??? Schema Layer ??? ??? Serialization ??? ??? Signing Layer ??? ???
|
|
|
|
|
??? ??? ??? ??? ??? ??? ??? ???
|
|
|
|
|
??? ??? ReachGraphMin ??? ??? Canonical JSON ??? ??? DSSE Wrapper ??? ???
|
|
|
|
|
??? ??? EdgeExplanation ??? ??? BLAKE3 Digest ??? ??? Verification ??? ???
|
|
|
|
|
??? ??? Provenance ??? ??? Compression ??? ??? ??? ???
|
|
|
|
|
??? ????????????????????????????????????????????????????????? ????????????????????????????????????????????????????????? ????????????????????????????????????????????????????????? ???
|
|
|
|
|
??? ??? ??? ??? ???
|
|
|
|
|
??? ??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ???
|
|
|
|
|
??? ??? Store Layer ??? ???
|
|
|
|
|
??? ??? ??? ???
|
|
|
|
|
??? ??? ???????????????????????????????????????????????? ???????????????????????????????????????????????? ???????????????????????????????????????????????? ??? ???
|
|
|
|
|
??? ??? ??? Repository ??? ??? Slice Engine ??? ??? Replay Driver??? ??? ???
|
|
|
|
|
??? ??? ???????????????????????????????????????????????? ???????????????????????????????????????????????? ???????????????????????????????????????????????? ??? ???
|
|
|
|
|
??? ?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ???
|
|
|
|
|
??? ??? ???
|
|
|
|
|
??? ??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ???
|
|
|
|
|
??? ??? Persistence Layer ??? ???
|
|
|
|
|
??? ??? ??? ???
|
|
|
|
|
??? ??? ???????????????????????????????????????????????? ???????????????????????????????????????????????? ??? ???
|
|
|
|
|
??? ??? ??? PostgreSQL ??? ??? Valkey ??? ??? ???
|
|
|
|
|
??? ??? ??? (primary) ??? ??? (cache) ??? ??? ???
|
|
|
|
|
??? ??? ???????????????????????????????????????????????? ???????????????????????????????????????????????? ??? ???
|
|
|
|
|
??? ?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ???
|
|
|
|
|
????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### Project Structure
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
src/__Libraries/StellaOps.ReachGraph/
|
|
|
|
|
├── Schema/
|
|
|
|
|
│ ├── ReachGraphMinimal.cs # Top-level graph structure
|
|
|
|
|
│ ├── ReachGraphNode.cs # Node with metadata
|
|
|
|
|
│ ├── ReachGraphEdge.cs # Edge with explanation
|
|
|
|
|
│ ├── EdgeExplanation.cs # Why the edge exists
|
|
|
|
|
│ └── ReachGraphProvenance.cs # Input tracking
|
|
|
|
|
├── Serialization/
|
|
|
|
|
│ ├── CanonicalReachGraphSerializer.cs
|
|
|
|
|
│ ├── SortedKeysJsonConverter.cs
|
|
|
|
|
│ └── DeterministicArraySortConverter.cs
|
|
|
|
|
├── Hashing/
|
|
|
|
|
│ ├── ReachGraphDigestComputer.cs
|
|
|
|
|
│ └── Blake3HashProvider.cs
|
|
|
|
|
├── Signing/
|
|
|
|
|
│ ├── IReachGraphSignerService.cs
|
|
|
|
|
│ └── ReachGraphSignerService.cs
|
|
|
|
|
├── Store/
|
|
|
|
|
│ ├── IReachGraphRepository.cs
|
|
|
|
|
│ ├── PostgresReachGraphRepository.cs
|
|
|
|
|
│ └── SliceQueryEngine.cs
|
|
|
|
|
├── Cache/
|
|
|
|
|
│ ├── IReachGraphCache.cs
|
|
|
|
|
│ └── ValkeyReachGraphCache.cs
|
|
|
|
|
├── Replay/
|
|
|
|
|
│ ├── IReplayDriver.cs
|
|
|
|
|
│ └── DeterministicReplayDriver.cs
|
|
|
|
|
└── StellaOps.ReachGraph.csproj
|
|
|
|
|
????????? Schema/
|
|
|
|
|
??? ????????? ReachGraphMinimal.cs # Top-level graph structure
|
|
|
|
|
??? ????????? ReachGraphNode.cs # Node with metadata
|
|
|
|
|
??? ????????? ReachGraphEdge.cs # Edge with explanation
|
|
|
|
|
??? ????????? EdgeExplanation.cs # Why the edge exists
|
|
|
|
|
??? ????????? ReachGraphProvenance.cs # Input tracking
|
|
|
|
|
????????? Serialization/
|
|
|
|
|
??? ????????? CanonicalReachGraphSerializer.cs
|
|
|
|
|
??? ????????? SortedKeysJsonConverter.cs
|
|
|
|
|
??? ????????? DeterministicArraySortConverter.cs
|
|
|
|
|
????????? Hashing/
|
|
|
|
|
??? ????????? ReachGraphDigestComputer.cs
|
|
|
|
|
??? ????????? Blake3HashProvider.cs
|
|
|
|
|
????????? Signing/
|
|
|
|
|
??? ????????? IReachGraphSignerService.cs
|
|
|
|
|
??? ????????? ReachGraphSignerService.cs
|
|
|
|
|
????????? Store/
|
|
|
|
|
??? ????????? IReachGraphRepository.cs
|
|
|
|
|
??? ????????? PostgresReachGraphRepository.cs
|
|
|
|
|
??? ????????? SliceQueryEngine.cs
|
|
|
|
|
????????? Cache/
|
|
|
|
|
??? ????????? IReachGraphCache.cs
|
|
|
|
|
??? ????????? ValkeyReachGraphCache.cs
|
|
|
|
|
????????? Replay/
|
|
|
|
|
??? ????????? IReplayDriver.cs
|
|
|
|
|
??? ????????? DeterministicReplayDriver.cs
|
|
|
|
|
????????? StellaOps.ReachGraph.csproj
|
|
|
|
|
|
|
|
|
|
src/__Libraries/StellaOps.ReachGraph.Persistence/
|
|
|
|
|
├── Migrations/
|
|
|
|
|
│ └── 001_reachgraph_store.sql
|
|
|
|
|
├── Models/
|
|
|
|
|
│ └── SubgraphEntity.cs
|
|
|
|
|
└── StellaOps.ReachGraph.Persistence.csproj
|
|
|
|
|
????????? Migrations/
|
|
|
|
|
??? ????????? 001_reachgraph_store.sql
|
|
|
|
|
????????? Models/
|
|
|
|
|
??? ????????? SubgraphEntity.cs
|
|
|
|
|
????????? StellaOps.ReachGraph.Persistence.csproj
|
|
|
|
|
|
|
|
|
|
src/ReachGraph/
|
|
|
|
|
├── StellaOps.ReachGraph.WebService/
|
|
|
|
|
│ ├── Endpoints/
|
|
|
|
|
│ │ ├── ReachGraphEndpoints.cs
|
|
|
|
|
│ │ └── SliceQueryEndpoints.cs
|
|
|
|
|
│ ├── Contracts/
|
|
|
|
|
│ │ ├── UpsertRequest.cs
|
|
|
|
|
│ │ ├── SliceQueryRequest.cs
|
|
|
|
|
│ │ └── ReplayRequest.cs
|
|
|
|
|
│ ├── Program.cs
|
|
|
|
|
│ └── openapi.yaml
|
|
|
|
|
└── __Tests/
|
|
|
|
|
└── StellaOps.ReachGraph.WebService.Tests/
|
|
|
|
|
????????? StellaOps.ReachGraph.WebService/
|
|
|
|
|
??? ????????? Endpoints/
|
|
|
|
|
??? ??? ????????? ReachGraphEndpoints.cs
|
|
|
|
|
??? ??? ????????? SliceQueryEndpoints.cs
|
|
|
|
|
??? ????????? Contracts/
|
|
|
|
|
??? ??? ????????? UpsertRequest.cs
|
|
|
|
|
??? ??? ????????? SliceQueryRequest.cs
|
|
|
|
|
??? ??? ????????? ReplayRequest.cs
|
|
|
|
|
??? ????????? Program.cs
|
|
|
|
|
??? ????????? openapi.yaml
|
|
|
|
|
????????? __Tests/
|
|
|
|
|
????????? StellaOps.ReachGraph.WebService.Tests/
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
@@ -357,9 +357,9 @@ reachgraph:
|
|
|
|
|
|
|
|
|
|
## Related Documentation
|
|
|
|
|
|
|
|
|
|
- `docs/implplan/SPRINT_1227_0012_0001_LB_reachgraph_core.md`
|
|
|
|
|
- `docs/implplan/SPRINT_1227_0012_0002_BE_reachgraph_store.md`
|
|
|
|
|
- `docs/implplan/SPRINT_1227_0012_0003_FE_reachgraph_integration.md`
|
|
|
|
|
- `docs-archived/implplan/SPRINT_1227_0012_0001_LB_reachgraph_core.md`
|
|
|
|
|
- `docs-archived/implplan/SPRINT_1227_0012_0002_BE_reachgraph_store.md`
|
|
|
|
|
- `docs-archived/implplan/SPRINT_1227_0012_0003_FE_reachgraph_integration.md`
|
|
|
|
|
- `src/Attestor/POE_PREDICATE_SPEC.md` (predecessor schema)
|
|
|
|
|
- `docs/modules/scanner/architecture.md`
|
|
|
|
|
- `docs/modules/signals/architecture.md`
|
|
|
|
|
@@ -367,3 +367,4 @@ reachgraph:
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
_Module created: 2025-12-27. Owner: ReachGraph Guild._
|
|
|
|
|
|
|
|
|
|
|