CycloneDX/cyclonedx-property-taxonomy

A taxonomy of all official CycloneDX property namespaces and names

26

stars

310

commits

Ruby

primary language

Aug 31, 2026

updated

cyclonedx.github.io/cyclonedx-property-taxonomy/
cyclonedx
registry
taxonomy

README

CycloneDX Property Taxonomy

shield_license shield_website shield_slack shield_groups shield_twitter-follow

This is the official CycloneDX property namespace and name taxonomy.

Introduction

With the v1.3 release of the CycloneDX specification, custom properties have been added to enable even more extensibility.

Although the specification doesn't impose restrictions on the property names used, standardization can assist tool implementers and BOM consumers.

The authoritative source of official namespaces and property names is this repository.

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC2119.

Property Name Structure

A CycloneDX property name has two components:

  • Namespace (optional): an identifier that scopes or categorizes the property.
  • Name (required): the actual key or label for the property.

When a namespace is present it is separated from the name by a single colon.
A namespace is a hierarchical sequence of segments separated by colons. The first segment is the top-level namespace; subsequent segments are sub-namespaces.

Names and namespace segments MUST NOT contain ":".
The only characters that SHALL be used in official property namespace segments and names are alphanumerical characters, "-", "_" and " " from the US ASCII character set.

Namespaces SHOULD be lower case.
Names MAY use upper case.

Examples

internal:information_security_classification
internal:team_responsible
internal:project:guid

ABNF for Official CycloneDX Property Names

property-name     = [ namespace delimiter ] name

namespace         = namespace-segment           ; top-level namespace
                    *( delimiter namespace-segment ) ; sub-namespaces
namespace-segment = 1*namechar

name              = 1*namechar

namechar          = ALPHA / DIGIT / "-" / "_" / " "
delimiter         = ":"

ABNF syntax as per RFC5234: Augmented BNF for Syntax Specifications: ABNF.

Registered Top-Level Namespaces

Regardless of other licensing attributes in this repository or document,
the following table (called "registry") is marked with CC0 1.0

TL NamespaceDescriptionAdministered ByTaxonomy
cdxNamespace for official CycloneDX sub-namespaces and properties. Unofficial sub-namespaces and names MUST NOT be used under the cdx top-level namespace.CycloneDX Core Working Groupcdx taxonomy
internalNamespace for internal use only. BOMs shared with 3rd parties SHOULD NOT include properties in this namespace.N/AN/A
urnNamespace blocked to prevent confusions with Uniform Resource NameN/AN/A
aboutcodeNamespace for use by AboutCode projects.AboutCode.orgAboutCode taxonomy
accellenceNamespace for use by Accellence Technologies.AccellenceTechnologiesAccellence taxonomy
amazonNamespace for use by Amazon.AmazonAmazon Inspector
appknoxNamespace for use by Appknox Platform.AppknoxAppknox taxonomy
aquasecurityNamespace for use by Aqua Security.Aqua SecurityRESERVED
atisNamespace for use by Alliance for Telecommunications Industry Solutions (ATIS)ATISATIS taxonomy
boschrexrothNamespace for use by Bosch Rexroth.Bosch Rexroth AGBosch Rexroth taxonomy
bsiNamespace for use by BSI.BSIBSI taxonomy
bytetrailNamespace for use by ByteTrail.ByteTrailRESERVED
codenotaryNamespace for use by Codenotary platform.CodenotaryCodenotary taxonomy
contact-softwareNamespace for use by Contact Software.Contact SoftwareRESERVED
cybeatsNamespace for use by CyBeats SBOM Studio.CyBeatsCyBeats Taxonomy
dependency-trackNamespace for use by the OWASP Dependency-Track project.Dependency-Track MaintainersDependency-Track taxonomy
expliotNamespace for use by EXPLIoT.EXPLIoTEXPLIoT taxonomy
finitestateNamespace for the use by Finite State.Finite Statefinitestate taxonomy
fortifyNamespace for use by Fortify.Micro FocusRESERVED
gitlabNamespace for use by GitLab.GitLabGitLab taxonomy
grypeNamespace for use by the Grype project.Grype MaintainersRESERVED
hopprNamespace for the use by the Hoppr project.Lockheed MartinHoppr Taxonomy Documentation
ibmNamespace for use by IBM.IBMRESERVED
interlynkNamespace for use by Interlynk.InterlynkInterlynk taxonomy
jfrogNamespace for use by JFrog.JFrogRESERVED
medical-aegisNamespace for use by Medical Aegis.Medical AegisRESERVED
nixNamespace for Nix properties.Nixpkgs MaintainersNixpkgs Manual
nvidiaNamespace for NVIDIA properties.NVIDIANVIDIA Taxonomy Documentation
observerNamespace for use by SBOM Observer.BitfrontSBOM Observer Taxonomy
ortNamespace for use by the OSS Review Toolkit.OSS Review ToolkitORT taxonomy
radNamespace for use by RAD Security.RAD SecurityRAD KBOM Taxonomy
reconNamespace for use by the Recon Project.Recon ProjectRESERVED
redhatNamespace for use by Red Hat.Red HatRESERVED
relizaNamespace for use by Reliza.RelizaReliza Taxonomy
scribeNamespace for use by Scribe SecurityScribe SecurityRESERVED
servicenowNamespace for use by ServiceNow.ServiceNowRESERVED
siemensNamespace for use by Siemens.SiemensSiemens taxonomy
snykNamespace for use by Snyk.SnykSnyk Taxonomy Documentation
sonatypeNamespace for use by SonatypeSonatypeSonatype Taxonomy Documentation
soosNamespace for use by SOOS.SOOSSOOS taxonomy
spackNamespace for use by the Spack package manager.Spack MaintainersSpack SBOM Project
stackableNamespace for use by StackableStackableStackable taxonomy
syftNamespace for use by the Syft project.Syft MaintainersRESERVED
ternNamespace for use by the Tern project.Tern MaintainersRESERVED
veracodeNamespace for use by Veracode.VeracodeVeracode taxonomy

Registering new Top-Level Namespaces

It is RECOMMENDED that anyone creating custom properties outside of the internal namespace SHOULD register a new top-level namespace.

The process for registering a new top-level namespace is to create a new issue requesting it.

Top-level namespaces are initially registered as RESERVED.

Registered top-level namespaces SHOULD be more than two characters long.

Before using your RESERVED namespace, documentation for the taxonomy of the namespace SHOULD be publicly available. Failure to do so MAY result in the namespace reservation being revoked.

An example is the cdx taxonomy.

Contributors

(top 30 of 37)

jkowalleck

138 commits

mrutkows

47 commits

coderpatros

39 commits

stevespringett

28 commits

CycloneDX/cyclonedx-property-taxonomy

A taxonomy of all official CycloneDX property namespaces and names

26

stars

310

commits

Ruby

primary language

Aug 31, 2026

updated

cyclonedx.github.io/cyclonedx-property-taxonomy/
cyclonedx
registry
taxonomy

README

CycloneDX Property Taxonomy

shield_license shield_website shield_slack shield_groups shield_twitter-follow

This is the official CycloneDX property namespace and name taxonomy.

Introduction

With the v1.3 release of the CycloneDX specification, custom properties have been added to enable even more extensibility.

Although the specification doesn't impose restrictions on the property names used, standardization can assist tool implementers and BOM consumers.

The authoritative source of official namespaces and property names is this repository.

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC2119.

Property Name Structure

A CycloneDX property name has two components:

  • Namespace (optional): an identifier that scopes or categorizes the property.
  • Name (required): the actual key or label for the property.

When a namespace is present it is separated from the name by a single colon.
A namespace is a hierarchical sequence of segments separated by colons. The first segment is the top-level namespace; subsequent segments are sub-namespaces.

Names and namespace segments MUST NOT contain ":".
The only characters that SHALL be used in official property namespace segments and names are alphanumerical characters, "-", "_" and " " from the US ASCII character set.

Namespaces SHOULD be lower case.
Names MAY use upper case.

Examples

internal:information_security_classification
internal:team_responsible
internal:project:guid

ABNF for Official CycloneDX Property Names

property-name     = [ namespace delimiter ] name

namespace         = namespace-segment           ; top-level namespace
                    *( delimiter namespace-segment ) ; sub-namespaces
namespace-segment = 1*namechar

name              = 1*namechar

namechar          = ALPHA / DIGIT / "-" / "_" / " "
delimiter         = ":"

ABNF syntax as per RFC5234: Augmented BNF for Syntax Specifications: ABNF.

Registered Top-Level Namespaces

Regardless of other licensing attributes in this repository or document,
the following table (called "registry") is marked with CC0 1.0

TL NamespaceDescriptionAdministered ByTaxonomy
cdxNamespace for official CycloneDX sub-namespaces and properties. Unofficial sub-namespaces and names MUST NOT be used under the cdx top-level namespace.CycloneDX Core Working Groupcdx taxonomy
internalNamespace for internal use only. BOMs shared with 3rd parties SHOULD NOT include properties in this namespace.N/AN/A
urnNamespace blocked to prevent confusions with Uniform Resource NameN/AN/A
aboutcodeNamespace for use by AboutCode projects.AboutCode.orgAboutCode taxonomy
accellenceNamespace for use by Accellence Technologies.AccellenceTechnologiesAccellence taxonomy
amazonNamespace for use by Amazon.AmazonAmazon Inspector
appknoxNamespace for use by Appknox Platform.AppknoxAppknox taxonomy
aquasecurityNamespace for use by Aqua Security.Aqua SecurityRESERVED
atisNamespace for use by Alliance for Telecommunications Industry Solutions (ATIS)ATISATIS taxonomy
boschrexrothNamespace for use by Bosch Rexroth.Bosch Rexroth AGBosch Rexroth taxonomy
bsiNamespace for use by BSI.BSIBSI taxonomy
bytetrailNamespace for use by ByteTrail.ByteTrailRESERVED
codenotaryNamespace for use by Codenotary platform.CodenotaryCodenotary taxonomy
contact-softwareNamespace for use by Contact Software.Contact SoftwareRESERVED
cybeatsNamespace for use by CyBeats SBOM Studio.CyBeatsCyBeats Taxonomy
dependency-trackNamespace for use by the OWASP Dependency-Track project.Dependency-Track MaintainersDependency-Track taxonomy
expliotNamespace for use by EXPLIoT.EXPLIoTEXPLIoT taxonomy
finitestateNamespace for the use by Finite State.Finite Statefinitestate taxonomy
fortifyNamespace for use by Fortify.Micro FocusRESERVED
gitlabNamespace for use by GitLab.GitLabGitLab taxonomy
grypeNamespace for use by the Grype project.Grype MaintainersRESERVED
hopprNamespace for the use by the Hoppr project.Lockheed MartinHoppr Taxonomy Documentation
ibmNamespace for use by IBM.IBMRESERVED
interlynkNamespace for use by Interlynk.InterlynkInterlynk taxonomy
jfrogNamespace for use by JFrog.JFrogRESERVED
medical-aegisNamespace for use by Medical Aegis.Medical AegisRESERVED
nixNamespace for Nix properties.Nixpkgs MaintainersNixpkgs Manual
nvidiaNamespace for NVIDIA properties.NVIDIANVIDIA Taxonomy Documentation
observerNamespace for use by SBOM Observer.BitfrontSBOM Observer Taxonomy
ortNamespace for use by the OSS Review Toolkit.OSS Review ToolkitORT taxonomy
radNamespace for use by RAD Security.RAD SecurityRAD KBOM Taxonomy
reconNamespace for use by the Recon Project.Recon ProjectRESERVED
redhatNamespace for use by Red Hat.Red HatRESERVED
relizaNamespace for use by Reliza.RelizaReliza Taxonomy
scribeNamespace for use by Scribe SecurityScribe SecurityRESERVED
servicenowNamespace for use by ServiceNow.ServiceNowRESERVED
siemensNamespace for use by Siemens.SiemensSiemens taxonomy
snykNamespace for use by Snyk.SnykSnyk Taxonomy Documentation
sonatypeNamespace for use by SonatypeSonatypeSonatype Taxonomy Documentation
soosNamespace for use by SOOS.SOOSSOOS taxonomy
spackNamespace for use by the Spack package manager.Spack MaintainersSpack SBOM Project
stackableNamespace for use by StackableStackableStackable taxonomy
syftNamespace for use by the Syft project.Syft MaintainersRESERVED
ternNamespace for use by the Tern project.Tern MaintainersRESERVED
veracodeNamespace for use by Veracode.VeracodeVeracode taxonomy

Registering new Top-Level Namespaces

It is RECOMMENDED that anyone creating custom properties outside of the internal namespace SHOULD register a new top-level namespace.

The process for registering a new top-level namespace is to create a new issue requesting it.

Top-level namespaces are initially registered as RESERVED.

Registered top-level namespaces SHOULD be more than two characters long.

Before using your RESERVED namespace, documentation for the taxonomy of the namespace SHOULD be publicly available. Failure to do so MAY result in the namespace reservation being revoked.

An example is the cdx taxonomy.

Contributors

(top 30 of 37)

jkowalleck

138 commits

mrutkows

47 commits

coderpatros

39 commits

stevespringett

28 commits

Languages

Ruby

100.0%