Search

Search the docs, blog, and marketplace.

sbom

Last updated July 30, 2026View source (v0.21.1)

Bomly uses this chain when it finds sbom evidence.

PropertyValue
Package managersbom
Ecosystemsbom
Detector chainsbom-detector
Evidence patterns*.syft.json, *.bom.*, *.bom, bom, *.sbom.*, *.sbom, sbom, *.cdx.*, *.cdx, *.spdx.*, *.spdx
Ignored directories-
Ignored directory markers-
Multi-module resolutionNo
Install-first supportNo
Remediation hintsNone
Native command hints-

How sbom resolves

sbom-detector is a direct ingest — it accepts SPDX 2.3 JSON or CycloneDX 1.4–1.7 JSON as input and treats the SBOM as the source of truth for the graph. No subprocess runs, no other detector chains fire.

StepStrategyCommand
Resolve graphJSON ingestNone

Format is auto-detected by content. Bomly rejects SBOM input files larger than 256 MiB before decoding them.

Network behavior

Fully offline-safe. Ingest is a local read of the SBOM file.

Triggering ingest

Pass --sbom with --path pointing at the file:

bomly scan --sbom --path ./vendor.spdx.json

Without --sbom, files matching *.spdx, *.cdx.json, bom, etc. are still detected by their evidence patterns, but Bomly may run other detector chains on the surrounding directory. Use --sbom to be explicit.

--install-first

Not applicable.

Examples

Audit a vendor SBOM

bomly scan --sbom --path ./vendor.cdx.json \
  --enrich --audit --fail-on high

Convert SPDX to CycloneDX

bomly scan --sbom --path ./in.spdx.json -o cyclonedx=out.cdx.json

The scan pipeline is the conversion path; there is no separate convert command.

Diff two SBOMs

bomly diff --sbom --base ./v1.0.cdx.json --head ./v1.1.cdx.json

Reachability

Not applicable. Reachability analyzers need access to source code; an SBOM-only input cannot satisfy that. --analyze produces not_applicable for SBOM ingest.

Limitations

  • Relationship fidelity depends on the source SBOM. If the SBOM was produced by a tool that emits a flat package list (no DEPENDS_ON / dependencies edges), Bomly's graph is also flat. bomly explain cannot show paths that aren't recorded.
  • Vendor-specific extensions (custom properties, non-standard package types) are passed through to the JSON output but are not used for policy decisions.
  • SBOM ingest is exclusive — combining --sbom with --image or --url is rejected with exit 4.
  • Format versions other than SPDX 2.3 JSON and CycloneDX 1.4–1.7 JSON are rejected. SPDX 3.0 ingest is tracked for follow-up.
  • Tag-Value SPDX and XML CycloneDX are not currently ingested.