3.3 KiB
3.3 KiB
StellaVerdict Unified Artifact with JSON-LD Context
Module
__Libraries
Status
IMPLEMENTED
Description
Consolidates multiple verdict-related artifacts (score, evidence, attestation, policy trace) into a single unified StellaVerdict schema with JSON-LD context. Includes VerdictAssemblyService for composing verdicts from PolicyVerdict + ProofBundle + KnowledgeInputs, content-addressable verdictId (urn:stella:verdict:sha256:...), and comprehensive sub-models for subjects, claims, inputs, evidence graphs, policy paths, results, provenance, and signatures.
Implementation Details
- StellaVerdict:
src/__Libraries/StellaOps.Verdict/Schema/StellaVerdict.cs-- sealed record with JSON-LD@context("https://stella-ops.org/schema/verdict/v1") and@type("StellaVerdict");VerdictId(urn:stella:verdict:sha256:...),SchemaVersion("1.0"),VerdictVersion(int); nested records:VerdictSubject(NodeId, Purl, ImageRef, Digest, Environment),VerdictClaim(VerdictStatus enum: Pass/Fail/Warn/Error/Unknown, Confidence 0-1, Summary, Details),VerdictInputs(Advisories, VexStatements, CvssScores, EpssScores, KevEntries, ReachabilityResults, PolicyRules, SbomComponents),VerdictEvidenceGraph(RootId, Nodes list, Edges list),VerdictPolicyStep(RuleId, RuleName, Input, Output, Decision enum: Allow/Block/Warn/Skip),VerdictResult(Verdict, PolicyPath list, Timestamp, Expiry, Deterministic bool),VerdictProvenance(GeneratorId, GeneratorVersion, BuildId, SourceCommit, Environment, GeneratedAt),VerdictSignature(Algorithm, KeyId, Value, Certificate, Timestamp) - VerdictAssemblyService:
src/__Libraries/StellaOps.Verdict/Services/VerdictAssemblyService.cs-- implementsIVerdictAssemblyService;AssembleVerdict(context)orchestrates composition via:BuildSubject(context),BuildClaim(context),BuildInputs(context),BuildEvidenceGraph(context),BuildPolicyPath(context),BuildResult(context),BuildProvenance(context); takesVerdictAssemblyContextwithPolicyVerdict,ProofBundle,KnowledgeInputs(VerdictKnowledgeInputsrecord with advisory/VEX/CVSS/EPSS/KEV/reachability/policy/SBOM data); generates content-addressedVerdictIdvia SHA-256 of canonical JSON - IVerdictAssemblyService:
src/__Libraries/StellaOps.Verdict/Services/VerdictAssemblyService.cs-- interface:AssembleVerdict(VerdictAssemblyContext)returnsStellaVerdict - VerdictAssemblyContext:
src/__Libraries/StellaOps.Verdict/Services/VerdictAssemblyService.cs-- record withPolicyVerdict,ProofBundle,KnowledgeInputs(VerdictKnowledgeInputs) - Source: SPRINT_1227_0014_0001_BE_stellaverdict_consolidation.md
E2E Test Plan
- Verify StellaVerdict includes JSON-LD @context and @type fields
- Test VerdictId is content-addressed (same inputs produce same urn:stella:verdict:sha256:...)
- Verify VerdictAssemblyService composes verdict from PolicyVerdict + ProofBundle + KnowledgeInputs
- Test VerdictClaim.VerdictStatus enum covers Pass/Fail/Warn/Error/Unknown
- Verify VerdictInputs captures all knowledge sources (advisories, VEX, CVSS, EPSS, KEV, reachability)
- Test VerdictEvidenceGraph contains linked nodes and edges
- Verify VerdictPolicyStep records policy evaluation path with decisions
- Test VerdictProvenance captures generator, build, and source commit information