1.5 KiB
1.5 KiB
SBOM Lineage Ledger Guide
Purpose
- Track historical SBOM versions per artifact with deterministic diffs and lineage edges.
- Support BYOS uploads for SPDX/CycloneDX inputs while preserving audit history.
Upload workflow
- Endpoint:
POST /sbom/uploadorPOST /api/v1/sbom/upload. - Required fields:
artifactRef,sbom(JSON object) orsbomBase64.
Example payload:
{
"artifactRef": "acme/app:1.0",
"sbom": { "bomFormat": "CycloneDX", "specVersion": "1.6", "components": [] },
"format": "cyclonedx",
"source": { "tool": "syft", "version": "1.0.0" }
}
Ledger queries
GET /sbom/ledger/history?artifact=...&limit=...&cursor=...GET /sbom/ledger/point?artifact=...&at=...GET /sbom/ledger/range?artifact=...&start=...&end=...&limit=...&cursor=...GET /sbom/ledger/diff?before=...&after=...GET /sbom/ledger/lineage?artifact=...
Lineage semantics
- Versions are chained per artifact; parent references create lineage edges.
- Graph Indexer maps ledger lineage into:
SBOM_VERSION_OFedges from SBOM to artifact.SBOM_LINEAGE_*edges (e.g.,SBOM_LINEAGE_PARENT).
Retention policy
- Apply with
POST /internal/sbom/retention/prune. - Settings:
SbomService:Ledger:MaxVersionsPerArtifact,MaxAgeDays,MinVersionsToKeep. - Audit is available via
GET /internal/sbom/ledger/audit.
Determinism
- Versions are ordered by sequence and UTC timestamps.
- Diffs are ordered by component key for stable output.