save checkpoint

This commit is contained in:
master
2026-02-14 09:11:48 +02:00
parent 9ca2de05df
commit e9aeadc040
1512 changed files with 30863 additions and 4728 deletions

View File

@@ -0,0 +1,42 @@
# SBOM Ledger + Lineage (Moat Score 3)
## Module
Attestor
## Status
VERIFIED
## Description
Versioned SBOM storage with advisory and feed snapshot repositories, plus comprehensive SBOM parsing and writing for multiple formats.
## Implementation Details
- **SBOM Persistence**: `src/Attestor/__Libraries/StellaOps.Attestor.Persistence/Entities/SbomEntryEntity.cs` -- persisted SBOM entry with version, format, digest, and tenant_id for versioned storage.
- **SBOM Linkage Statement**: `__Libraries/StellaOps.Attestor.ProofChain/Statements/SbomLinkageStatement.cs` -- in-toto statement linking SBOM versions to evidence chains.
- **SBOM Linkage Payload**: `Statements/SbomLinkagePayload.cs` -- payload containing SBOM descriptor, generator info, and linkage data.
- **SBOM Descriptor**: `Statements/SbomDescriptor.cs` -- descriptor with format (CycloneDX/SPDX), spec version, and content digest.
- **Generator Descriptor**: `Statements/GeneratorDescriptor.cs` -- metadata about the tool that generated the SBOM.
- **CycloneDX Parser/Writer**: `__Libraries/StellaOps.Attestor.StandardPredicates/Parsers/CycloneDxPredicateParser.cs`, `Writers/CycloneDxWriter.cs` -- full CycloneDX support.
- **SPDX Parser/Writer**: `Parsers/SpdxPredicateParser.cs`, `Writers/SpdxWriter.cs` -- full SPDX support.
- **Verdict Ledger**: `__Libraries/StellaOps.Attestor.VerdictLedger/VerdictLedgerService.cs` -- append-only ledger tracking SBOM-based verdicts over time.
- **Repository**: `__Libraries/StellaOps.Attestor.Persistence/Repositories/IProofChainRepository.cs` -- repository for SBOM entries.
- **Tests**: `__Tests/StellaOps.Attestor.Persistence.Tests/SbomEntryTests.cs`
## E2E Test Plan
- [ ] Persist an SBOM version via `SbomEntryEntity` and verify retrieval by digest and version
- [ ] Store multiple SBOM versions for the same image and verify version lineage (v1 -> v2 -> v3)
- [ ] Create an `SbomLinkageStatement` linking an SBOM version to its evidence chain and verify the linkage
- [ ] Verify `SbomDescriptor` correctly identifies format and spec version for both CycloneDX and SPDX
- [ ] Verify `GeneratorDescriptor` captures the tool name, version, and generation timestamp
- [ ] Record SBOM-based verdict via `VerdictLedgerService` and verify the ledger entry links to the SBOM version
- [ ] Query SBOM entries by tenant_id and verify tenant isolation
- [ ] Verify SBOM lineage: given an image digest, retrieve all SBOM versions in chronological order
## Verification
| Check | Result |
|-------|--------|
| Tier 0 - Source Verification | PASS |
| Tier 1 - Build + Code Review | PASS |
| Tier 2 - Behavioral Verification | PASS |
| Verified Date | 2026-02-13 |
| Run ID | run-001 |