sbom-nexus/INTENT.md
tegwick d61698ea51 feat: establish sbom nexus extraction slice
Assistant: codex
Assistant-Model: gpt-5.6-sol
Assistant-Session: 01a028f0-a42f-7582-89a8-ebaad7343834
2026-08-22 12:50:08 +02:00

112 lines
5.7 KiB
Markdown

# Intent — SBOM Nexus
## Enduring purpose
SBOM Nexus exists to make the software composition of every managed product
knowable, historically traceable, and operationally maintainable.
Its job is not merely to generate an SBOM file. It turns repository and build
evidence into a durable product surface: versioned component inventories,
provenance, licence evaluation, freshness signals, and bounded work queues that
keep coverage improving without flooding people or task systems.
## Problem
Software composition evidence is currently split across repository lockfiles,
an interim Repo Manager scanner, and State Hub tables, routes, scripts, MCP
tools, and dashboards. State Hub is being retired and is the wrong permanent
owner for a supply-chain product. Its fleet-wide freshness automation also
demonstrated the wrong control shape: one weekly evaluation created dozens of
tasks while updating no SBOMs.
Without a dedicated owner, the fleet risks stale inventories, lost history,
inconsistent parser behavior, vague licence findings, and automation that
measures a backlog instead of reducing it.
## Product responsibility
SBOM Nexus is the authoritative service for:
- normalized SBOM snapshots and their immutable history;
- package/component entries and source provenance;
- repository scanning and ingestion of supported evidence formats;
- licence inventory and clearly qualified risk signals;
- SBOM freshness, coverage, and deterministic oldest-first catch-up ranking;
- explicit terminal outcomes for scans that cannot run or find no manifests;
- stable HTTP and operator interfaces for fleet consumers;
- migration of historical State Hub SBOM records without erasing provenance.
## Authority boundaries
| Concern | Authority |
| --- | --- |
| Dependency declarations, lockfiles, reviewed `sbom-tools.yaml`, supplied SPDX/CycloneDX documents | The owning repository or build output |
| Normalized snapshot history, scan attempts, entries, evaluation, freshness, catch-up order | SBOM Nexus |
| Repository identity, classification, active status, and checkout representation | Repo Manager |
| Scheduling and bounded recurring execution | Activity Core |
| Cross-domain work coordination and transitional `last_sbom_at` projection | State Hub during cutover only |
| Large immutable source documents or attestations | Artifact Store when introduced |
Repo Manager may observe dependency sources and invoke SBOM Nexus, but it does
not remain a second SBOM product or historical store. State Hub may proxy Nexus
responses during migration, but it must not regain permanent SBOM ownership.
## Operating principles
1. **Evidence before assertion.** Every component is traceable to a source path,
source digest, submitted document, and—when available—source revision.
2. **History is append-only.** A new scan creates a snapshot. It does not mutate
a prior view of the repository.
3. **Absence is explicit.** No checkout, no supported manifest, and parser
failure are recorded outcomes, not indistinguishable missing data.
4. **Automation reduces queues.** Catch-up selects at most N oldest eligible
repositories and advances every selected item through success or a recorded
skip; it never emits a task per stale repository.
5. **Compatibility is temporary and testable.** Existing State Hub callers get
a pinned compatibility contract while they are retargeted.
6. **Standards are interchange boundaries.** SPDX and CycloneDX import/export
are first-class targets; the internal model is not presented as either
standard unless it satisfies that standard.
7. **Risk signals remain qualified.** Licence-family pattern matching is a
triage signal, not legal advice or a complete SPDX policy engine.
8. **Repository sources remain reconstructable authority.** Derived current
snapshots can be rebuilt from current source evidence; imported historical
snapshots retain their original source and timestamps.
## Intended users and outcomes
- Operators can see which repositories have current evidence and safely catch
up a bounded number each day.
- Developers can scan a checkout locally and understand the exact source and
parser behind each component.
- Compliance and security consumers can query fleet composition and licence
signals without coupling to State Hub internals.
- Automation can distinguish successful ingest, empty evidence, unavailable
checkout, and ingest error, and can report each deterministically.
- Future vulnerability, policy, signing, and attestation capabilities have a
coherent SBOM history on which to build.
## Success horizon
SBOM Nexus succeeds first when the existing State Hub SBOM surface is served by
this repository with preserved history and the daily oldest-N workflow operates
without task floods. It succeeds durably when SBOM evidence is current by
policy, standard documents can move in and out without information loss, and no
other service acts as a competing SBOM authority.
## Non-goals
- Owning repository lifecycle, workplans, inboxes, or general task management.
- Acting as a package registry, artifact store, or source-code host.
- Claiming that lockfile parsing alone is a complete runtime or deployable SBOM.
- Providing legal conclusions from licence identifiers.
- Building a general vulnerability database in the extraction milestone.
- Scanning an unbounded fleet in one recurring activity.
## Change test
A change belongs here when it improves the capture, preservation, evaluation,
exchange, or operational freshness of software-composition evidence. If it is
primarily about repository control, scheduling, artifact bytes, work
coordination, or authorization, SBOM Nexus should integrate with the owning
component instead of absorbing that responsibility.