1.9 KiB
1.9 KiB
CycloneDX 1.7 Native Evidence Field Population
Module
Scanner
Status
IMPLEMENTED
Description
Replaces custom stellaops:evidence[n] properties with spec-compliant CycloneDX 1.7 component.evidence.* structures (Identity, Occurrences, Licenses, Copyright). Ensures SBOM evidence data uses standard fields instead of vendor extensions.
Implementation Details
- Evidence Builders:
src/Scanner/__Libraries/StellaOps.Scanner.Emit/Evidence/IdentityEvidenceBuilder.cs- Buildscomponent.evidence.identityfieldssrc/Scanner/__Libraries/StellaOps.Scanner.Emit/Evidence/OccurrenceEvidenceBuilder.cs- Buildscomponent.evidence.occurrencesfieldssrc/Scanner/__Libraries/StellaOps.Scanner.Emit/Evidence/LicenseEvidenceBuilder.cs- Buildscomponent.evidence.licensesfieldssrc/Scanner/__Libraries/StellaOps.Scanner.Emit/Evidence/CallstackEvidenceBuilder.cs- Builds callstack evidence fields
- Evidence Mapping:
src/Scanner/__Libraries/StellaOps.Scanner.Emit/Evidence/CycloneDxEvidenceMapper.cs- Maps internal evidence data to CycloneDX 1.7 evidence structures
- Composition Integration:
src/Scanner/__Libraries/StellaOps.Scanner.Emit/Composition/CycloneDxComposer.cs- Composes evidence into CycloneDX outputsrc/Scanner/__Libraries/StellaOps.Scanner.Emit/Composition/CycloneDxLayerWriter.cs- Per-layer CycloneDX writer with evidence fields
E2E Test Plan
- Scan a container image and export as CycloneDX 1.7 JSON
- Verify
component.evidence.identityfields are populated for components with identity evidence - Verify
component.evidence.occurrencesfields contain file location evidence - Verify
component.evidence.licensesfields contain license evidence - Verify no custom
stellaops:evidence[n]properties remain in the output - Validate the output against the CycloneDX 1.7 JSON schema