Safeguard
Developer Tools•

What should you name an SBOM file? bom.json, cdx.json and media types

CycloneDX conventions are bom.json, bom.xml, and the patterns cdx.json and cdx.xml. How to name, store and label SBOM files so tools can find them.

Safeguard Security Team
3 min read

For CycloneDX, the conventional names are bom.json and bom.xml, plus the patterns with cdx in the name, such as app.cdx.json. A media type can carry a version parameter, for example version equals 1.7. Use stable names so tools and people can find files.

What the spec says

The CycloneDX specification overview lists the conventional file names as bom.json and bom.xml, plus the patterns star dot cdx dot json and star dot cdx dot xml. It also says media types take an optional version parameter, such as version=1.7.

I could not confirm a comparable naming convention for SPDX files from the sources I fetched, so check the SPDX specification before you standardize those names.

A naming scheme that works

A file called bom.json in ten repositories is easy to confuse. Add the thing it describes and the version.

  1. Use the cdx pattern so tools recognize it: orders-service-2.4.1.cdx.json.
  2. Put the product or component name first.
  3. Put the release version second, not a build date alone.
  4. Keep one SBOM per released artifact.
  5. Keep the same pattern for every team.

Where to put the file

Common places, each with tradeoffs:

  • Next to the artifact in the release or registry entry. Easy to find, travels with the artifact.
  • In a central store keyed by product and version. Better for search and governance.
  • As an attached attestation to the artifact. Better for integrity, since the file can be signed.

Do not bury the only copy in a CI job log that expires.

Label the type

The file name does not tell a reader what type of SBOM it is. Add that to the metadata or the cover note. The CISA types document names design, source, build, analyzed, deployed and runtime, and a reader needs to know which one they hold. See the six SBOM types.

Versioned media types

If you serve SBOMs over an API, send a media type with the format version, so clients can pick the right parser. Without a version, a client may try to read a 1.7 file with a 1.4 schema and fail in confusing ways.

Quick check

Is bom.json required?

No, it is a convention. Using it or the cdx patterns helps tools find files without configuration.

Should the file name include the version?

Yes. It prevents confusion when several releases are in circulation.

Sources

Last reviewed: 19 October 2026.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.