This reference document describes all quality checks performed by sbomqs, organized by category.
- NTIA-minimum-elements: Compliance with NTIA's minimum element guidelines
- Structural: SBOM format and specification compliance
- Semantic: Correctness and validity of SBOM field meanings
- Quality: Data completeness and accuracy metrics
- Sharing: Distribution and consumption readiness
- BSI: German BSI TR-03183-2 compliance checks (v1.1, v2.0, v2.1)
- Each quality check has equal weight with a score range of 0.0 - 10.0
- Checks applied to lists average scores across all elements
- Category scores are averaged across all checks in that category
- Overall score is the weighted average of all enabled categories
| Check ID | Description | Required |
|---|---|---|
comp_with_name |
Components have names | Yes |
comp_with_supplier |
Components have supplier names | Yes |
comp_with_uniq_ids |
Components have unique identifiers | Yes |
comp_with_version |
Components have versions | Yes |
sbom_authors |
SBOM has author information | Yes |
sbom_creation_timestamp |
SBOM has creation timestamp | Yes |
sbom_dependencies |
Dependencies are documented | Yes |
| Check ID | Description | Impact |
|---|---|---|
spec_compliant |
Valid SPDX/CycloneDX specification | Critical |
spec_parsable |
SBOM can be parsed without errors | Critical |
spec_file_format |
Supported file format (JSON, XML, etc.) | High |
sbom_required_fields |
All required spec fields present | High |
| Check ID | Description | Impact |
|---|---|---|
comp_valid_licenses |
Valid SPDX expression syntax (accepts LicenseRef-*) | High |
comp_spdx_listed_license |
SPDX standard listed licenses only | High |
comp_with_checksums |
Components have integrity checksums | Medium |
comp_with_primary_purpose |
Component type/purpose specified | Low |
sbom_with_primary_component |
Primary component identified | Medium |
| Check ID | Description | Impact |
|---|---|---|
comp_with_cpes |
CPE identifiers for vulnerability lookup | High |
comp_with_purls |
Package URLs for ecosystem identification | High |
comp_with_multi_vuln_lookup_id |
Multiple vulnerability identifiers | Medium |
comp_with_source_code_uri |
Source code repository links | Medium |
comp_with_executable_uri |
Binary/executable download locations | Low |
comp_no_deprecated_licenses |
No deprecated license usage | Medium |
comp_no_restrictive_licenses |
No highly restrictive licenses | Medium |
| Check ID | Description | Impact |
|---|---|---|
sbom_sharable |
SBOM has unencumbered license | High |
sbom_with_uri |
SBOM has unique identifier/namespace | Medium |
Features that evaluate individual components:
comp_with_name: Component has a namecomp_with_version: Component has a versioncomp_with_supplier: Component has supplier informationcomp_with_uniq_ids: Component has unique identifierscomp_valid_licenses: Valid SPDX expression syntax (accepts LicenseRef-*)comp_spdx_listed_license: SPDX standard listed licenses onlycomp_with_any_vuln_lookup_id: CPE or PURL presentcomp_with_deprecated_licenses: Uses deprecated licensescomp_with_multi_vuln_lookup_id: Both CPE and PURL presentcomp_with_primary_purpose: Component purpose specifiedcomp_with_restrictive_licenses: Uses restrictive licensescomp_with_checksums: Has integrity checksumscomp_with_licenses: Has license informationcomp_with_checksums_sha256: SHA-256 checksum presentcomp_with_source_code_uri: Source repository linkcomp_with_source_code_hash: Source code integrity hashcomp_with_executable_uri: Binary download locationcomp_with_associated_license: Associated license presentcomp_with_concluded_license: Concluded license specifiedcomp_with_declared_license: Declared license specified
Features that evaluate document-level properties:
sbom_creation_timestamp: Creation timestamp presentsbom_authors: Author information includedsbom_with_creator_and_version: Creator tool and versionsbom_with_primary_component: Primary component identifiedsbom_dependencies: Dependency relationships documentedsbom_sharable: Has shareable licensesbom_parsable: Can be parsed successfullysbom_spec: Valid specification formatsbom_spec_file_format: Supported file formatsbom_spec_version: Specification versionspec_with_version_compliant: Version compliancesbom_with_uri: Has unique URI/namespacesbom_with_vuln: Contains vulnerability datasbom_build_process: Build process documentedsbom_with_bomlinks: External SBOM references
- Missing component versions - Required for vulnerability scanning
- No unique identifiers - Prevents component tracking
- Invalid specification format - Blocks SBOM usage
- Missing supplier information - Supply chain transparency
- No license information - Legal compliance risk
- Missing checksums - Integrity verification
- No CPE/PURL identifiers - Limited vulnerability matching
- Missing dependency relationships - Incomplete understanding
- No source code links - Reduced transparency
- Missing build information - Process documentation
- No external references - Limited context
- Component purpose not specified - Usage clarity
To customize which checks are performed, generate a configuration file:
sbomqs generate features > custom-checks.yamlEdit the file to enable/disable specific checks and adjust weights, then use:
sbomqs score sbom.json --configpath custom-checks.yaml- Compliance Standards Reference - Detailed compliance mappings
- Score Command - How to run quality checks
- Customization Guide - Creating custom profiles