Who ships this component?
Search by name or exact package URL and get every release that contains it, with the environments each is currently deployed to. This is the screen you open when an advisory lands.
Software bill of materials
Publish a CycloneDX SBOM per release and the register does the rest: components deduplicated across the estate, joined to what is deployed, scanned against advisory feeds, and kept as evidence you can hand to an assessor.
Five steps, each of which exists because skipping it is how the previous tool stopped being useful.
Search by name or exact package URL and get every release that contains it, with the environments each is currently deployed to. This is the screen you open when an advisory lands.
Download the exact document your build published, with its digest, or a regenerated view labelled as such. A regulator asking "send us what you shipped" gets the artefact rather than a reconstruction.
One CycloneDX document covering every component currently deployed across the estate, or only production. "What are you running" in one file.
Verdicts per SPDX identifier with rationale and attributable waivers, coverage stated as a percentage, and a warning when a forbidden licence reaches a deployed release.
CycloneDX, versions 1.2 through 1.6, as JSON. Anything else is refused with a message naming the supported set rather than accepted and quietly mangled. SPDX is not accepted today — if your generator emits SPDX, convert it or emit CycloneDX; most modern tools can do either. The document you publish is stored verbatim and returned byte-exact, so what you get back is your file and not a re-rendering of it.
Nothing here generates an SBOM. It ingests one, whatever produced it — a language-level scan of your source tree, or an image scan of a built container. If your pipeline already emits CycloneDX for a container image, that is a release like any other and its components deduplicate by purl alongside everything else. The advantage of taking the document rather than scanning for you is that the register holds what you actually shipped, not what a scan thought it saw afterwards.
Software supply chain security spans build integrity, artefact signing, provenance attestations and the inventory of what you depend on. This platform is the inventory half and the exposure question that follows from it. It does not sign artefacts, does not verify build provenance in the SLSA sense, and does not gate a pipeline. Those are real and separate problems, and a register that pretended to solve them would be the wrong tool in two places instead of the right one in one.
Every component carries the licences its SBOM declared, deduplicated across the estate, so "does anything we ship use AGPL" is a lookup. A verdict is recorded per licence — allowed, review, forbidden — and a forbidden licence in a deployed release is separated from the same licence in something nobody runs. Components declaring no licence at all are counted and named rather than assumed permissive, which is the failure mode that matters in open source license compliance: the gap is never the licence you can see.
A CVE matters to you only if you ship the affected component, and it is urgent only if that release is deployed. Findings are recorded per component occurrence and ranked by that, so CVE management here means a list ordered by real exposure rather than by how many hosts a scanner happened to see it on.
We would sooner you read this here than find it in your first hour. Each of these is actively on the roadmap, and none of it is implied anywhere else on this site.
CycloneDX JSON, posted as the raw document against a release. SPDX ingest is on the roadmap and is not available today, so an SPDX document cannot be submitted yet. We would rather say that than let you find out during onboarding.
By package URL (purl), which names the ecosystem, the package and the version unambiguously. Components are deduplicated by purl across the whole estate, so thirty products sharing a base image is one row and thirty occurrences. That is what turns "who ships this" into a single lookup instead of a sweep through every SBOM you hold.
Both, and the difference is labelled. The exact bytes you published are retained with their SHA-256 digest and served back as the attested original. A second form is regenerated from the register for "what do we now believe this release contains", and it says so in its own metadata. If the original was never retained, the export refuses and says so; it will not quietly hand you the lookalike.
It shows no findings, and the interface marks it unknown, so an empty row never reads as clean. A release that cannot produce findings is not thereby safe, and conflating the two is how an estate looks green while nobody has ever looked at it.
Not yet. VEX positions are authored in the platform, where the author is recorded and a suppression on a critical finding needs a second person to approve it. Importing CycloneDX VEX or OpenVEX from a supplier is on the roadmap.
Every licence declared by a component in the estate is listed against the verdict recorded for it: allowed, review or forbidden, with a rationale and an attributable waiver. A licence with no verdict reports as unreviewed and is never treated as allowed, because an empty policy table must not read as a clean estate.
A scoped key, one POST per release, and the rest is the register's job. The API is documented for people and for agents at /llms.txt.