# SBOM lineage ledger ## Overview - Tracks immutable SBOM versions per artifact reference. - Exposes history, temporal queries, and deterministic diffs. - Emits lineage edges to support graph joins and audit trails. ## Endpoints - `GET /sbom/ledger/history?artifact=&limit=50&cursor=0` - `GET /sbom/ledger/point?artifact=&at=` - `GET /sbom/ledger/range?artifact=&start=&end=` - `GET /sbom/ledger/diff?before=&after=` - `GET /sbom/ledger/lineage?artifact=` ## Lineage relationships - `parent`: explicit parent version link (supplied at ingest). - `build`: versions emitted from the same CI build ID (from upload provenance). ## Example lineage response ```json { "artifactRef": "example.com/app:1.2.3", "nodes": [{ "versionId": "v1", "sequenceNumber": 1, "digest": "sha256:..." }], "edges": [{ "fromVersionId": "v1", "toVersionId": "v2", "relationship": "build" }] } ``` ## Notes - Ledger storage is in-memory until PostgreSQL-backed persistence is wired. - Ordering is deterministic by sequence number, then timestamp.