Human Readable SBOM
Every component in this project version, with its licensing and origin{% if show_findings %} and finding counts{% endif %}. Nothing is truncated.
-
{% for note in notes %}
- {{ note }} {% endfor %}
{{ fs.panel_head(
"Components",
meta=("{:,}".format(data | length)) ~ " component" ~ ("s" if (data | length) != 1 else "")
) }}
{% include "_columns_schema.html" ignore missing %}
{% if data and data | length > 0 %}
{% else %}
| Name | Version | {% if show_policy %}Policy | {% endif %} {% if show_findings %}Findings | C | H | M | L | {% endif %}Type | Supplier | Licenses | Release Date | Source | Status | Component ID |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| {{ row.get('component_name') or '—' }} | {{ row.get('version') or '—' }} | {% if show_policy %}{% set v = row.get('violations', 0) or 0 %} {% set w = row.get('warnings', 0) or 0 %} {# Zero renders as 0, not an em dash: these are count columns, and CSV/JSON carry 0 here. An em dash would make "no violations" indistinguishable from "not measured" in the primary human-readable artifact. #} {{ "{:,}".format(v) }} {{ "{:,}".format(w) }} | {% endif %} {% if show_findings %}{{ "{:,}".format(row.get('findings', 0) or 0) }} | {% for key, cls in [('critical', 'sbom-sev-critical'), ('high', 'sbom-sev-high'), ('medium', 'sbom-sev-medium'), ('low', 'sbom-sev-low')] %} {% set n = row.get(key, 0) or 0 %}{{ "{:,}".format(n) }} | {% endfor %} {% endif %}{{ row.get('component_type') or '—' }} | {{ row.get('supplier') or '—' }} | {{ row.get('licenses') or '—' }} | {{ row.get('release_date') or '—' }} | {{ row.get('source') or '—' }} | {{ row.get('status') or '—' }} | {{ row.get('component_id') or '—' }} |
No components were returned for this project version.
{% if not sbom.get('include_file_components', False) %}
File-type components are excluded by default — pass
--include-file-components if this version contains only
file entries.
{% endif %}