3.1 KiB
3.1 KiB
Native VEX Ingestion and Decisioning
Module
Attestor
Status
IMPLEMENTED
Description
Full VEX pipeline with ingestion (Excititor), hub for VEX document management, lens for analysis, override system with DSSE-signed decisions, merge trace for conflict resolution, and multiple UI views (studio, hub, timeline).
Implementation Details
- VEX Override Predicate System:
src/Attestor/__Libraries/StellaOps.Attestor.StandardPredicates/VexOverride/-- complete VEX override system:VexOverridePredicate.cs-- VEX override predicate model.VexOverrideDecision.cs-- override decision (status, justification, impact statement).VexOverridePredicateBuilder.cs(with.Build,.Serialize,.WithMethods) -- fluent builder for constructing VEX overrides.VexOverridePredicateParser.cs(with.ParsePredicate,.DecisionValidation,.FieldValidation,.ExtractMetadata,.Helpers,.Validation) -- parser with comprehensive validation.EvidenceReference.cs-- links override decisions to supporting evidence.ToolInfo.cs-- metadata about the tool that produced the VEX data.
- VEX Proof Integrator:
__Libraries/StellaOps.Attestor.ProofChain/Generators/VexProofIntegrator.cs(with.Helpers,.Metadata) -- integrates VEX decisions into proof chain with supporting evidence. - VEX Verdict Proof Payload:
Generators/VexVerdictProofPayload.cs-- combined VEX verdict + proof payload. - VEX Verdict Statement:
__Libraries/StellaOps.Attestor.ProofChain/Statements/VexVerdictStatement.cs-- in-toto statement wrapping VEX verdicts. - VEX Predicates:
Predicates/VexDeltaChange.cs,VexDeltaStatement.cs,VexDeltaSummary.cs,VexDocumentReference.cs,VexMergeTrace.cs,VexStatusCounts.cs,VexVerdictSummary.cs-- VEX delta tracking, merge traces, and summaries. - VEX Verdict ID:
Identifiers/VexVerdictId.cs-- content-addressed ID for VEX verdicts. - DSSE Signing:
Signing/ProofChainSigner.cs-- signs VEX decisions into DSSE envelopes. - Tests:
__Tests/StellaOps.Attestor.StandardPredicates.Tests/VexOverrideTests.cs,__Tests/StellaOps.Attestor.ProofChain.Tests/VexProofIntegratorTests.cs
E2E Test Plan
- Build a VEX override via
VexOverridePredicateBuilderwith status "not_affected", justification, and evidence references; verify the predicate structure - Parse a VEX override JSON via
VexOverridePredicateParserand verify all fields (decision, evidence, tool info) are extracted - Validate a VEX override decision via
.DecisionValidationand verify it rejects invalid statuses - Integrate a VEX verdict with proof chain evidence via
VexProofIntegratorand verify theVexVerdictProofPayloadcombines both - Create a
VexVerdictStatementand sign it into a DSSE envelope; verify the envelope is valid - Build a
VexMergeTracefrom two conflicting VEX documents and verify conflict resolution is recorded - Verify
VexStatusCountscorrectly aggregates counts by VEX status (affected, not_affected, under_investigation, fixed) - Round-trip: build a VEX override via builder, serialize, parse back, and verify semantic equivalence