├── .editorconfig
├── .github
└── workflows
│ └── markdownlint.yml
├── .gitignore
├── .mdlrc
├── CODEOWNERS
├── Gemfile
├── Gemfile.lock
├── LICENSE
├── NOTICE
├── README.md
├── cdx.md
└── cdx
├── composer.md
├── device.md
├── gomod.md
├── lifecycle.md
├── maven.md
├── npm.md
├── pipenv.md
├── poetry.md
├── python.md
└── rustc.md
/.editorconfig:
--------------------------------------------------------------------------------
1 | # EditorConfig is awesome: https://editorconfig.org
2 |
3 | root = true
4 |
5 | [*]
6 | charset = utf-8
7 | end_of_line = lf
8 | trim_trailing_whitespace = true
9 | insert_final_newline = true
10 |
11 | [*.md]
12 | trim_trailing_whitespace = false
13 | indent_style = space
14 |
--------------------------------------------------------------------------------
/.github/workflows/markdownlint.yml:
--------------------------------------------------------------------------------
1 | name: markdownlint
2 |
3 | on:
4 | pull_request:
5 | paths: [ "**.md", ".github/workflows/markdownlint.yml" ]
6 | push:
7 | paths: [ "**.md", ".github/workflows/markdownlint.yml" ]
8 | workflow_dispatch:
9 |
10 | permissions: read-all
11 |
12 | jobs:
13 | lint-md:
14 | runs-on: ubuntu-latest
15 | steps:
16 | - name: checkout
17 | uses: actions/checkout@v4
18 | - name: Set up Ruby
19 | uses: ruby/setup-ruby@v1
20 | # see https://github.com/ruby/setup-ruby
21 | with:
22 | ruby-version: '3.3'
23 | bundler-cache: true # runs 'bundle install' and caches installed gems automatically
24 | - name: lint markdown
25 | run: >
26 | find
27 | -name '*.md'
28 | -not -path './.*'
29 | -not -path './vendor/*'
30 | -exec bundle exec mdl '{}' +
31 |
32 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 |
2 | /.vendor/
3 | /.bundle/
4 | /vendor/bundle
5 | /lib/bundler/man/
6 |
7 |
--------------------------------------------------------------------------------
/.mdlrc:
--------------------------------------------------------------------------------
1 | # https://github.com/markdownlint/markdownlint/blob/main/docs/configuration.md
2 |
3 | verbose false
4 | rules "~MD013", "~MD033"
5 |
6 |
--------------------------------------------------------------------------------
/CODEOWNERS:
--------------------------------------------------------------------------------
1 | # see https://docs.github.com/en/github/creating-cloning-and-archiving-repositories/about-code-owners
2 |
3 | # see the teams: https://github.com/orgs/CycloneDX/teams
4 |
5 | ## default
6 | * @CycloneDX/core-team
7 |
8 | ## CDX maintained: dedicated maintainer teams are the subject-matter experts.
9 | ## But @core-team is additional owner, as they are the only ones that can trigger a merge.
10 | ### Go
11 | /cdx/gomod.md @CycloneDX/go-maintainers @CycloneDX/core-team
12 | ### JS & Node
13 | /cdx/npm.md @CycloneDX/javascript-maintainers @CycloneDX/core-team
14 | ### Maven
15 | /cdx/maven.md @CycloneDX/java-maven-maintainers @CycloneDX/gradle-maintainers @CycloneDX/core-team
16 | ### PHP
17 | /cdx/composer.md @CycloneDX/php-maintainers @CycloneDX/core-team
18 | ### Pythpn
19 | /cdx/pipenv.md @CycloneDX/python-maintainers @CycloneDX/core-team
20 | /cdx/poetry.md @CycloneDX/python-maintainers @CycloneDX/core-team
21 | /cdx/python.md @CycloneDX/python-maintainers @CycloneDX/core-team
22 | ### Rust
23 | /cdx/rustc.md @CycloneDX/rust-maintainers @CycloneDX/core-team
24 |
--------------------------------------------------------------------------------
/Gemfile:
--------------------------------------------------------------------------------
1 | source "https://rubygems.org"
2 |
3 | group :test do
4 | gem "mdl"
5 | end
6 |
7 |
--------------------------------------------------------------------------------
/Gemfile.lock:
--------------------------------------------------------------------------------
1 | GEM
2 | remote: https://rubygems.org/
3 | specs:
4 | chef-utils (18.5.0)
5 | concurrent-ruby
6 | concurrent-ruby (1.3.4)
7 | kramdown (2.4.0)
8 | rexml
9 | kramdown-parser-gfm (1.1.0)
10 | kramdown (~> 2.0)
11 | mdl (0.13.0)
12 | kramdown (~> 2.3)
13 | kramdown-parser-gfm (~> 1.1)
14 | mixlib-cli (~> 2.1, >= 2.1.1)
15 | mixlib-config (>= 2.2.1, < 4)
16 | mixlib-shellout
17 | mixlib-cli (2.1.8)
18 | mixlib-config (3.0.27)
19 | tomlrb
20 | mixlib-shellout (3.2.8)
21 | chef-utils
22 | rexml (3.3.9)
23 | tomlrb (2.0.3)
24 |
25 | PLATFORMS
26 | x86_64-linux
27 |
28 | DEPENDENCIES
29 | mdl
30 |
31 | BUNDLED WITH
32 | 2.3.15
33 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | Apache License
2 | Version 2.0, January 2004
3 | http://www.apache.org/licenses/
4 |
5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6 |
7 | 1. Definitions.
8 |
9 | "License" shall mean the terms and conditions for use, reproduction,
10 | and distribution as defined by Sections 1 through 9 of this document.
11 |
12 | "Licensor" shall mean the copyright owner or entity authorized by
13 | the copyright owner that is granting the License.
14 |
15 | "Legal Entity" shall mean the union of the acting entity and all
16 | other entities that control, are controlled by, or are under common
17 | control with that entity. For the purposes of this definition,
18 | "control" means (i) the power, direct or indirect, to cause the
19 | direction or management of such entity, whether by contract or
20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the
21 | outstanding shares, or (iii) beneficial ownership of such entity.
22 |
23 | "You" (or "Your") shall mean an individual or Legal Entity
24 | exercising permissions granted by this License.
25 |
26 | "Source" form shall mean the preferred form for making modifications,
27 | including but not limited to software source code, documentation
28 | source, and configuration files.
29 |
30 | "Object" form shall mean any form resulting from mechanical
31 | transformation or translation of a Source form, including but
32 | not limited to compiled object code, generated documentation,
33 | and conversions to other media types.
34 |
35 | "Work" shall mean the work of authorship, whether in Source or
36 | Object form, made available under the License, as indicated by a
37 | copyright notice that is included in or attached to the work
38 | (an example is provided in the Appendix below).
39 |
40 | "Derivative Works" shall mean any work, whether in Source or Object
41 | form, that is based on (or derived from) the Work and for which the
42 | editorial revisions, annotations, elaborations, or other modifications
43 | represent, as a whole, an original work of authorship. For the purposes
44 | of this License, Derivative Works shall not include works that remain
45 | separable from, or merely link (or bind by name) to the interfaces of,
46 | the Work and Derivative Works thereof.
47 |
48 | "Contribution" shall mean any work of authorship, including
49 | the original version of the Work and any modifications or additions
50 | to that Work or Derivative Works thereof, that is intentionally
51 | submitted to Licensor for inclusion in the Work by the copyright owner
52 | or by an individual or Legal Entity authorized to submit on behalf of
53 | the copyright owner. For the purposes of this definition, "submitted"
54 | means any form of electronic, verbal, or written communication sent
55 | to the Licensor or its representatives, including but not limited to
56 | communication on electronic mailing lists, source code control systems,
57 | and issue tracking systems that are managed by, or on behalf of, the
58 | Licensor for the purpose of discussing and improving the Work, but
59 | excluding communication that is conspicuously marked or otherwise
60 | designated in writing by the copyright owner as "Not a Contribution."
61 |
62 | "Contributor" shall mean Licensor and any individual or Legal Entity
63 | on behalf of whom a Contribution has been received by Licensor and
64 | subsequently incorporated within the Work.
65 |
66 | 2. Grant of Copyright License. Subject to the terms and conditions of
67 | this License, each Contributor hereby grants to You a perpetual,
68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable
69 | copyright license to reproduce, prepare Derivative Works of,
70 | publicly display, publicly perform, sublicense, and distribute the
71 | Work and such Derivative Works in Source or Object form.
72 |
73 | 3. Grant of Patent License. Subject to the terms and conditions of
74 | this License, each Contributor hereby grants to You a perpetual,
75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable
76 | (except as stated in this section) patent license to make, have made,
77 | use, offer to sell, sell, import, and otherwise transfer the Work,
78 | where such license applies only to those patent claims licensable
79 | by such Contributor that are necessarily infringed by their
80 | Contribution(s) alone or by combination of their Contribution(s)
81 | with the Work to which such Contribution(s) was submitted. If You
82 | institute patent litigation against any entity (including a
83 | cross-claim or counterclaim in a lawsuit) alleging that the Work
84 | or a Contribution incorporated within the Work constitutes direct
85 | or contributory patent infringement, then any patent licenses
86 | granted to You under this License for that Work shall terminate
87 | as of the date such litigation is filed.
88 |
89 | 4. Redistribution. You may reproduce and distribute copies of the
90 | Work or Derivative Works thereof in any medium, with or without
91 | modifications, and in Source or Object form, provided that You
92 | meet the following conditions:
93 |
94 | (a) You must give any other recipients of the Work or
95 | Derivative Works a copy of this License; and
96 |
97 | (b) You must cause any modified files to carry prominent notices
98 | stating that You changed the files; and
99 |
100 | (c) You must retain, in the Source form of any Derivative Works
101 | that You distribute, all copyright, patent, trademark, and
102 | attribution notices from the Source form of the Work,
103 | excluding those notices that do not pertain to any part of
104 | the Derivative Works; and
105 |
106 | (d) If the Work includes a "NOTICE" text file as part of its
107 | distribution, then any Derivative Works that You distribute must
108 | include a readable copy of the attribution notices contained
109 | within such NOTICE file, excluding those notices that do not
110 | pertain to any part of the Derivative Works, in at least one
111 | of the following places: within a NOTICE text file distributed
112 | as part of the Derivative Works; within the Source form or
113 | documentation, if provided along with the Derivative Works; or,
114 | within a display generated by the Derivative Works, if and
115 | wherever such third-party notices normally appear. The contents
116 | of the NOTICE file are for informational purposes only and
117 | do not modify the License. You may add Your own attribution
118 | notices within Derivative Works that You distribute, alongside
119 | or as an addendum to the NOTICE text from the Work, provided
120 | that such additional attribution notices cannot be construed
121 | as modifying the License.
122 |
123 | You may add Your own copyright statement to Your modifications and
124 | may provide additional or different license terms and conditions
125 | for use, reproduction, or distribution of Your modifications, or
126 | for any such Derivative Works as a whole, provided Your use,
127 | reproduction, and distribution of the Work otherwise complies with
128 | the conditions stated in this License.
129 |
130 | 5. Submission of Contributions. Unless You explicitly state otherwise,
131 | any Contribution intentionally submitted for inclusion in the Work
132 | by You to the Licensor shall be under the terms and conditions of
133 | this License, without any additional terms or conditions.
134 | Notwithstanding the above, nothing herein shall supersede or modify
135 | the terms of any separate license agreement you may have executed
136 | with Licensor regarding such Contributions.
137 |
138 | 6. Trademarks. This License does not grant permission to use the trade
139 | names, trademarks, service marks, or product names of the Licensor,
140 | except as required for reasonable and customary use in describing the
141 | origin of the Work and reproducing the content of the NOTICE file.
142 |
143 | 7. Disclaimer of Warranty. Unless required by applicable law or
144 | agreed to in writing, Licensor provides the Work (and each
145 | Contributor provides its Contributions) on an "AS IS" BASIS,
146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
147 | implied, including, without limitation, any warranties or conditions
148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
149 | PARTICULAR PURPOSE. You are solely responsible for determining the
150 | appropriateness of using or redistributing the Work and assume any
151 | risks associated with Your exercise of permissions under this License.
152 |
153 | 8. Limitation of Liability. In no event and under no legal theory,
154 | whether in tort (including negligence), contract, or otherwise,
155 | unless required by applicable law (such as deliberate and grossly
156 | negligent acts) or agreed to in writing, shall any Contributor be
157 | liable to You for damages, including any direct, indirect, special,
158 | incidental, or consequential damages of any character arising as a
159 | result of this License or out of the use or inability to use the
160 | Work (including but not limited to damages for loss of goodwill,
161 | work stoppage, computer failure or malfunction, or any and all
162 | other commercial damages or losses), even if such Contributor
163 | has been advised of the possibility of such damages.
164 |
165 | 9. Accepting Warranty or Additional Liability. While redistributing
166 | the Work or Derivative Works thereof, You may choose to offer,
167 | and charge a fee for, acceptance of support, warranty, indemnity,
168 | or other liability obligations and/or rights consistent with this
169 | License. However, in accepting such obligations, You may act only
170 | on Your own behalf and on Your sole responsibility, not on behalf
171 | of any other Contributor, and only if You agree to indemnify,
172 | defend, and hold each Contributor harmless for any liability
173 | incurred by, or claims asserted against, such Contributor by reason
174 | of your accepting any such warranty or additional liability.
175 |
176 | END OF TERMS AND CONDITIONS
177 |
178 | APPENDIX: How to apply the Apache License to your work.
179 |
180 | To apply the Apache License to your work, attach the following
181 | boilerplate notice, with the fields enclosed by brackets "{}"
182 | replaced with your own identifying information. (Don't include
183 | the brackets!) The text should be enclosed in the appropriate
184 | comment syntax for the file format. We also recommend that a
185 | file or class name and description of purpose be included on the
186 | same "printed page" as the copyright notice for easier
187 | identification within third-party archives.
188 |
189 | Copyright OWASP Foundation
190 |
191 | Licensed under the Apache License, Version 2.0 (the "License");
192 | you may not use this file except in compliance with the License.
193 | You may obtain a copy of the License at
194 |
195 | http://www.apache.org/licenses/LICENSE-2.0
196 |
197 | Unless required by applicable law or agreed to in writing, software
198 | distributed under the License is distributed on an "AS IS" BASIS,
199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
200 | See the License for the specific language governing permissions and
201 | limitations under the License.
202 |
--------------------------------------------------------------------------------
/NOTICE:
--------------------------------------------------------------------------------
1 | CycloneDX Property Taxonomy
2 | Copyright (c) OWASP Foundation
3 |
4 | This product includes work developed by the
5 | CycloneDX community (https://cyclonedx.org/).
6 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # CycloneDX Property Taxonomy
2 |
3 | [![shield_license]][license_file]
4 | [![shield_website]][link_website]
5 | [![shield_slack]][link_slack]
6 | [![shield_groups]][link_discussion]
7 | [![shield_twitter-follow]][link_twitter]
8 |
9 | This is the official [CycloneDX][link_website] property namespace and name taxonomy.
10 |
11 | [shield_license]: https://img.shields.io/github/license/CycloneDX/cyclonedx-property-taxonomy?logo=open%20source%20initiative&logoColor=white "license"
12 | [shield_website]: https://img.shields.io/badge/https://-cyclonedx.org-blue.svg "homepage"
13 | [shield_slack]: https://img.shields.io/badge/slack-join-blue?logo=Slack&logoColor=white "slack join"
14 | [shield_groups]: https://img.shields.io/badge/discussion-groups.io-blue.svg "groups discussion"
15 | [shield_twitter-follow]: https://img.shields.io/badge/Twitter-follow-blue?logo=Twitter&logoColor=white "twitter follow"
16 | [license_file]: https://github.com/CycloneDX/cyclonedx-property-taxonomy/blob/main/LICENSE
17 | [link_website]: https://cyclonedx.org/
18 | [link_slack]: https://cyclonedx.org/slack/invite
19 | [link_discussion]: https://groups.io/g/CycloneDX
20 | [link_twitter]: https://twitter.com/CycloneDX_Spec
21 |
22 | ## Introduction
23 |
24 | With the v1.3 release of the [CycloneDX specification](https://github.com/CycloneDX/specification), custom properties have been added.
25 |
26 | Although the specification doesn't impose restrictions on the property names used,
27 | standardization can assist tool implementers and BOM consumers.
28 |
29 | The authoritative source of official namespaces and property names is
30 | [this repository](https://github.com/CycloneDX/cyclonedx-property-taxonomy).
31 |
32 | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD",
33 | "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be
34 | interpreted as described in [RFC2119](https://datatracker.ietf.org/doc/html/rfc2119).
35 |
36 | ## Namespace Syntax
37 |
38 | Namespaces are hierarchical and delimited with a ":".
39 | As such, ":" MUST NOT be used in property namespaces and names except as a delimiter.
40 |
41 | The only characters that SHALL be used in official property namespaces and names are alphanumerical characters, "-", "_" and " " from the US ASCII character set.
42 |
43 | Namespaces SHOULD be lower case. Base property names MAY use upper case.
44 |
45 | ### Examples
46 |
47 | ```text
48 | internal:information_security_classification
49 | internal:team_responsible
50 | ```
51 |
52 | ### ABNF for Official CycloneDX Property Names
53 |
54 | ```abnf
55 | property-name = 1*(namespace ":") name
56 |
57 | namespace = 1*namechar
58 |
59 | name = 1*namechar
60 |
61 | namechar = ALPHA / DIGIT / "-" / "_" / " "
62 | ```
63 |
64 | ABNF syntax as per [RFC5234: Augmented BNF for Syntax Specifications: ABNF](https://datatracker.ietf.org/doc/html/rfc5234).
65 |
66 | ## Registered Top Level Namespaces
67 |
68 | Regardless of other licensing attributes in this repository or document,
69 | the following table (called "registry") is marked with
70 |
71 | CC0 1.0
72 | 
73 |
77 |
78 |
79 | | Namespace | Description | Administered By | Taxonomy |
80 | |-----------|-------------|-----------------|----------|
81 | | `cdx` | Namespace for official CycloneDX namespaces and properties. Unofficial namespaces and properties MUST NOT be used under the `cdx` namespace. | [CycloneDX Core Working Group](https://github.com/orgs/CycloneDX) | [cdx taxonomy](cdx.md) |
82 | | `internal` | Namespace for internal use only. BOMs shared with 3rd parties SHOULD NOT include properties in this namespace. | N/A | N/A |
83 | | `urn` | Namespace blocked to prevent confusions with [Uniform Resource Name](https://datatracker.ietf.org/doc/html/rfc2141) | N/A | N/A |
84 | | `aboutcode` | Namespace for use by AboutCode projects. | [AboutCode.org](https://github.com/aboutcode-org) | [AboutCode taxonomy](https://github.com/aboutcode-org/aboutcode-cyclonedx-taxonomy#readme) |
85 | | `accellence` | Namespace for use by Accellence Technologies. | [AccellenceTechnologies](https://github.com/AccellenceTechnologies) | [Accellence taxonomy](https://github.com/AccellenceTechnologies/cyclonedx-property-taxonomy#readme) |
86 | | `amazon` | Namespace for use by Amazon. | [Amazon](https://github.com/amzn) | [Amazon Inspector](https://docs.aws.amazon.com/inspector/latest/user/cyclonedx-namespace.html) |
87 | | `appknox` | Namespace for use by Appknox Platform. | [Appknox](https://github.com/appknox) | [Appknox taxonomy](https://github.com/appknox/cyclonedx-property-taxonomy#readme) |
88 | | `aquasecurity` | Namespace for use by Aqua Security. | [Aqua Security](https://github.com/aquasecurity) | `RESERVED` |
89 | | `boschrexroth` | Namespace for use by Bosch Rexroth. | [Bosch Rexroth AG](https://github.com/boschrexroth) | [Bosch Rexroth taxonomy](https://github.com/boschrexroth/cyclonedx-property-taxonomy#readme) |
90 | | `bsi` | Namespace for use by BSI. | [BSI](https://github.com/BSI-Bund) | [BSI taxonomy](https://github.com/BSI-Bund/tr-03183-cyclonedx-property-taxonomy) |
91 | | `bytetrail` | Namespace for use by ByteTrail. | [ByteTrail](https://github.com/bytetrail) | `RESERVED` |
92 | | `codenotary` | Namespace for use by Codenotary platform. | [Codenotary](https://github.com/codenotary) | [Codenotary taxonomy](https://github.com/codenotary/cyclonedx-property-taxonomy#readme) |
93 | | `contact-software` | Namespace for use by Contact Software. | [Contact Software](https://github.com/cslab) | `RESERVED` |
94 | | `dependency-track` | Namespace for use by the OWASP Dependency-Track project. | [Dependency-Track Maintainers](https://github.com/DependencyTrack) | [Dependency-Track taxonomy](https://github.com/DependencyTrack/cyclonedx-property-taxonomy) |
95 | | `expliot` | Namespace for use by EXPLIoT. | [EXPLIoT](https://gitlab.com/expliot_framework) | [EXPLIoT taxonomy](https://gitlab.com/expliot_framework/expliot/-/blob/master/docs/compliance/cyclonedx.rst) |
96 | | `finitestate` | Namespace for the use by Finite State. | [Finite State](https://github.com/FiniteStateInc) | [finitestate taxonomy](https://github.com/FiniteStateInc/cyclonedx-property-taxonomy#readme) |
97 | | `fortify` | Namespace for use by Fortify. | [Micro Focus](https://github.com/MicroFocus) | `RESERVED` |
98 | | `gitlab` | Namespace for use by GitLab. | [GitLab](https://gitlab.com) | [GitLab taxonomy](https://docs.gitlab.com/ee/development/sec/cyclonedx_property_taxonomy.html) |
99 | | `grype` | Namespace for use by the Grype project. | [Grype Maintainers](https://github.com/anchore/grype) | `RESERVED` |
100 | | `hoppr` | Namespace for the use by the Hoppr project. | [Lockheed Martin](https://hoppr.dev) | [Hoppr Taxonomy Documentation](https://hoppr.dev/docs/architecture/cdx-taxonomy) |
101 | | `ibm` | Namespace for use by IBM. | [IBM](https://github.com/IBM) | `RESERVED` |
102 | | `interlynk` | Namespace for use by Interlynk. | [Interlynk](https://github.com/interlynk-io) | [Interlynk taxonomy](https://github.com/interlynk-io/cyclonedx-property-taxonomy) |
103 | | `jfrog` | Namespace for use by JFrog. | [JFrog](https://jfrog.com) | `RESERVED` |
104 | | `medical-aegis` | Namespace for use by Medical Aegis. | [Medical Aegis](https://github.com/Medical-Aegis) | `RESERVED` |
105 | | `nix` | Namespace for Nix properties. | [Nixpkgs Maintainers](https://github.com/NixOS/nixpkgs/) | [Nixpkgs Manual](https://nixos.org/manual/nixpkgs/unstable/#sec-interop.cylonedx-nix) |
106 | | `observer` | Namespace for use by SBOM Observer. | [Bitfront](https://github.com/bitfront-se) | [SBOM Observer Taxonomy](https://github.com/bitfront-se/cyclonedx-property-taxonomy) |
107 | | `rad` | Namespace for use by RAD Security. | [RAD Security](https://github.com/rad-security) | [RAD KBOM Taxonomy](https://github.com/rad-security/kbom/blob/main/docs/taxonomy.md) |
108 | | `recon` | Namespace for use by the Recon Project. | [Recon Project](https://github.com/rusty-ferris-club/recon) | `RESERVED` |
109 | | `redhat` | Namespace for use by Red Hat. | [Red Hat](https://github.com/RedHatOfficial/) | `RESERVED` |
110 | | `scribe` | Namespace for use by Scribe Security | [Scribe Security](https://github.com/scribe-security) | `RESERVED` |
111 | | `servicenow` | Namespace for use by ServiceNow. | [ServiceNow](https://github.com/ServiceNow) | `RESERVED` |
112 | | `siemens` | Namespace for use by Siemens. | [Siemens](https://github.com/siemens) | [Siemens taxonomy](https://github.com/siemens/cyclonedx-property-taxonomy#readme) |
113 | | `snyk` | Namespace for use by Snyk. | [Snyk](https://github.com/snyk) | [Snyk Taxonomy Documentation](https://docs.snyk.io/snyk-api-info/get-a-projects-sbom-document-endpoint#custom-cyclonedx-properties) |
114 | | `sonatype` | Namespace for use by Sonatype | [Sonatype](https://github.com/sonatype) | [Sonatype Taxonomy Documentation](https://help.sonatype.com/lift/open-source-vulnerability-analysis/dependency-view/cyclonedx-sonatype-namespace-taxonomy) |
115 | | `soos` | Namespace for use by SOOS. | [SOOS](https://github.com/soos-io) | [SOOS taxonomy](https://github.com/soos-io/cyclonedx-property-taxonomy) |
116 | | `spack` | Namespace for use by the Spack package manager. | [Spack Maintainers](https://github.com/spack) | [Spack SBOM Project](https://github.com/spack/spack-sbom#readme) |
117 | | `stackable` | Namespace for use by Stackable | [Stackable](https://github.com/stackabletech) | [Stackable taxonomy](https://github.com/stackabletech/cyclonedx-property-taxonomy) |
118 | | `syft` | Namespace for use by the Syft project. | [Syft Maintainers](https://github.com/anchore/syft) | `RESERVED` |
119 | | `tern` | Namespace for use by the Tern project. | [Tern Maintainers](https://github.com/tern-tools/tern) | `RESERVED` |
120 | | `veracode` | Namespace for use by Veracode. | [Veracode](https://github.com/veracode) | [Veracode taxonomy](https://github.com/veracode/cyclonedx-property-taxonomy#readme) |
121 |
122 | ## Registering New Top Level Namespaces
123 |
124 | It is RECOMMENDED that anyone creating custom properties outside of the `internal`
125 | namespace SHOULD register a new top level namespace.
126 |
127 | The process for registering a new top level namespace is to
128 | [create a new issue requesting it](https://github.com/CycloneDX/cyclonedx-property-taxonomy/issues/new).
129 |
130 | Top Level Namespaces are initially registered as `RESERVED`.
131 |
132 | Registered top level namespaces SHOULD be more than two characters long.
133 |
134 | Before using your `RESERVED` namespace, documentation for the taxonomy of the
135 | namespace SHOULD be publicly available. Failure to do so MAY result in the
136 | namespace reservation being revoked.
137 |
138 | An example is the [`cdx` taxonomy](cdx.md).
139 |
--------------------------------------------------------------------------------
/cdx.md:
--------------------------------------------------------------------------------
1 | # `cdx` Namespace Taxonomy
2 |
3 | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL"
4 | in this document are to be interpreted as described in [RFC2119](http://www.ietf.org/rfc/rfc2119.txt).
5 |
6 | _Boolean value_ are `true` or `false`. Case sensitive.
7 |
8 | | Property | Description |
9 | |----------|-------------|
10 | | `cdx:reproducible` | Whether the CycloneDX document has been generated in a reproducible manner: if so, then time- or random-based values MUST be omitted, and elements order SHOULD be reproducible.
_Boolean value_.
MAY appear only once. SHOULD be used in `$.metadata.properties`. |
11 |
12 | | Namespace | Description | Administered By | Taxonomy |
13 | |-----------|-------------|-----------------|----------|
14 | | `cdx:composer` | Namespace for properties specific to the PHP Composer ecosystem. | [CycloneDX PHP Maintainers] | [cdx:composer taxonomy](cdx/composer.md) |
15 | | `cdx:device` | Namespace for properties specific to hardware devices. | [CycloneDX Core Working Group] | [cdx:device taxonomy](cdx/device.md) |
16 | | `cdx:gomod` | Namespace for properties specific to the Go Module ecosystem. | [CycloneDX Go Maintainers] | [cdx:gomod taxonomy](cdx/gomod.md) |
17 | | `cdx:lifecycle` | Namespace for properties specific to component and service lifecycles. | [CycloneDX Core Working Group] | [cdx:lifecycle taxonomy](cdx/lifecycle.md) |
18 | | `cdx:maven` | Namespace for properties specific to the Maven ecosystem. | [CycloneDX Maven Maintainers] [CycloneDX Gradle Maintainers] | [cdx:maven taxonomy](cdx/maven.md) |
19 | | `cdx:npm` | Namespace for properties specific to the Node NPM ecosystem. | [CycloneDX JavaScript Maintainers] | [cdx:npm taxonomy](cdx/npm.md) |
20 | | `cdx:pipenv` | Namespace for properties specific to the Python Pipenv ecosystem. | [CycloneDX Python Maintainers] | [cdx:pipenv taxonomy](cdx/pipenv.md) |
21 | | `cdx:poetry` | Namespace for properties specific to the Python Poetry ecosystem. | [CycloneDX Python Maintainers] | [cdx:poetry taxonomy](cdx/poetry.md) |
22 | | `cdx:python` | Namespace for properties specific to the Python general packaging. | [CycloneDX Python Maintainers] | [cdx:python taxonomy](cdx/python.md) |
23 | | `cdx:rustc` | Namespace for properties specific to the Rust compiler, `rustc`. | [CycloneDX Rust Maintainers] | [cdx:rustc taxonomy](cdx/rustc.md) |
24 |
25 | ## Registering `cdx` Namespaces and Properties
26 |
27 | The process for registering new `cdx` namespaces and properties is to
28 | [create a new issue requesting it](https://github.com/CycloneDX/cyclonedx-property-taxonomy/issues/new).
29 |
30 | If you are requesting a new namespace directly under the `cdx` namespace,
31 | the request will be reviewed by the Core Working Group.
32 |
33 | If you are requesting a new namespace or property under one of the
34 | namespaces within `cdx`, it will be reviewed by the team identified in the
35 | table above.
36 |
37 | [CycloneDX Core Working Group]: https://github.com/orgs/CycloneDX/teams/core-team
38 | [CycloneDX PHP Maintainers]: https://github.com/orgs/CycloneDX/teams/php-maintainers
39 | [CycloneDX Go Maintainers]: https://github.com/orgs/CycloneDX/teams/go-maintainers
40 | [CycloneDX Python Maintainers]: https://github.com/orgs/CycloneDX/teams/python-maintainers
41 | [CycloneDX JavaScript Maintainers]: https://github.com/orgs/CycloneDX/teams/javascript-maintainers
42 | [CycloneDX Rust Maintainers]: https://github.com/orgs/CycloneDX/teams/rust-maintainers
43 | [CycloneDX Maven Maintainers]: https://github.com/orgs/CycloneDX/teams/maven-maintainers
44 | [CycloneDX Gradle Maintainers]: https://github.com/orgs/CycloneDX/teams/gradle-maintainers
45 |
--------------------------------------------------------------------------------
/cdx/composer.md:
--------------------------------------------------------------------------------
1 | # `cdx:composer` Namespace Taxonomy
2 |
3 | | Namespace | Description |
4 | |-----------|-------------|
5 | | `cdx:composer:package` | Namespace for package specific properties. |
6 |
7 | _Boolean value_ are `true` or `false`. Case sensitive.
8 |
9 | ## `cdx:composer:package` Namespace Taxonomy
10 |
11 | | Property | Description |
12 | |----------|-------------|
13 | | `cdx:composer:package:type` | The [package type][composer-schema-packageType] of the component. If the property is missing, then assume the value to be `library`. May appear once. |
14 | | `cdx:composer:package:isDevRequirement` | Whether the package was flagged as "dev requirement". _Boolean value_. If the property is missing, then assume the value to be `false`. May appear once. |
15 | | `cdx:composer:package:sourceReference` | The repository reference of this package, e.g. master, 1.0.0 or a commit hash for git. Values may be applied to [`externalReferences`][CDX-useCases-externalReferences] of type `vcs`. _Non-empty string value_. May appear once. |
16 | | `cdx:composer:package:distReference` | The reference of the distribution archive of this version, e.g. master, 1.0.0 or a commit hash for git. Values may be applied to [`externalReferences`][CDX-useCases-externalReferences] of type `distribution`. _Non-empty string value_. May appear once. |
17 |
18 | [composer-schema-packageType]: https://getcomposer.org/doc/04-schema.md#type
19 | [CDX-useCases-externalReferences]: https://cyclonedx.org/use-cases/#external-references
20 |
--------------------------------------------------------------------------------
/cdx/device.md:
--------------------------------------------------------------------------------
1 | # `cdx:device` Namespace Taxonomy
2 |
3 | | Namespace | Description |
4 | |-----------|-------------|
5 | | `cdx:device:quantity` | The total number of the specified component. |
6 | | `cdx:device:function` | The purpose of the component (Bluetooth, network, storage, microprocessor, connector, etc) |
7 | | `cdx:device:location` | The location on the board or related daughter-boards where the device exists. |
8 | | `cdx:device:deviceType` | The type of component such as SMD, thru-hole, etc |
9 | | `cdx:device:serialNumber` | Unique identifier using serial number if available |
10 | | `cdx:device:sku` | Internal inventory reference if available |
11 | | `cdx:device:lotNumber` | Lot or batch identification for the component |
12 | | `cdx:device:prodTimestamp` | Production timestamp for the component |
13 | | `cdx:device:macAddress` | Hardware address for network interfaces |
14 |
15 | ## `cdx:device:bom` Namespace Taxonomy
16 |
17 | | Property | Description |
18 | |----------|-------------|
19 | | `cdx:device:bom:ebom` | Location to the Engineering Bill of Materials. This BOM contains assembly-component structure with documents coming from the CAD systems along with information about how the product is engineered. |
20 | | `cdx:device:bom:mbom` | Location to the Manufacturing Bill of Materials. MBOM represents the data that is needed to perform product assembly. |
21 |
22 | ## `cdx:device:certifications` Namespace Taxonomy
23 |
24 | | Property | Description |
25 | |----------|-------------|
26 | | `cdx:device:certifications:` | ISO-3166-1 alpha-2 country code of a certifying authority |
27 | | `cdx:device:certifications::` | Abbreviation of the certifying authority (e.g. FCC, UL, and CE) |
28 | | `cdx:device:certifications:::id` | Identifier for radio components. |
29 | | `cdx:device:certifications:::url` | URL to certification details. |
30 |
31 | ## `cdx:device:gs1` Namespace Taxonomy
32 |
33 | | Property | Description |
34 | |----------|-------------|
35 | | `cdx:device:gs1:epcRfid` | Electronic Product Code - RFID (EPC Tag Data Standard) |
36 | | `cdx:device:gs1:giai` | Global Individual Asset Identifier (GIAI) |
37 | | `cdx:device:gs1:gln` | Global Location Number (GLN) |
38 | | `cdx:device:gs1:gmn` | Global Model Number (GMN) |
39 | | `cdx:device:gs1:gtin-8` | Global Trade Identification Number (GTIN-8 / EAN/UCC-8) |
40 | | `cdx:device:gs1:gtin-12` | Global Trade Identification Number (GTIN-12 / UPC-A) |
41 | | `cdx:device:gs1:gtin-13` | Global Trade Identification Number (GTIN-13 / EAN/UCC-13) |
42 | | `cdx:device:gs1:gtin-14` | Global Trade Identification Number (GTIN / EAN/UCC-14 or ITF-14) |
43 |
--------------------------------------------------------------------------------
/cdx/gomod.md:
--------------------------------------------------------------------------------
1 | # `cdx:gomod` Namespace Taxonomy
2 |
3 | | Namespace | Description |
4 | |-----------|-------------|
5 | | `cdx:gomod:binary` | Namespace for metadata of analyzed binaries. |
6 | | `cdx:gomod:build` | Namespace for build related information. |
7 | | `cdx:gomod:build:env` | Namespace for build constraints passed via environment variables. |
8 |
9 | ## `cdx:gomod:binary` Namespace Taxonomy
10 |
11 | | Property | Description |
12 | |----------|-------------|
13 | | `cdx:gomod:binary:name` | Name of the analyzed binary. |
14 | | `cdx:gomod:binary:hash:` | Hash of the analyzed binary. |
15 |
16 | ## `cdx:gomod:build` Namespace Taxonomy
17 |
18 | | Property | Description |
19 | |----------|-------------|
20 | | `cdx:gomod:build:tag` | Additional build tags |
21 |
22 | ## `cdx:gomod:build:env` Namespace Taxonomy
23 |
24 | | Property | Description |
25 | |----------|-------------|
26 | | `cdx:gomod:build:env:GOARCH` | The target architecture (386, amd64, etc.) |
27 | | `cdx:gomod:build:env:GOOS` | The target operating system (linux, windows, etc.) |
28 | | `cdx:gomod:build:env:CGO_ENABLED` | Whether or not CGO is enabled |
29 | | `cdx:gomod:build:env:GOVERSION` | Version of the Go compiler |
30 |
--------------------------------------------------------------------------------
/cdx/lifecycle.md:
--------------------------------------------------------------------------------
1 | # `cdx:lifecycle` Namespace Taxonomy
2 |
3 | | Namespace | Description |
4 | |-----------|-------------|
5 | | `cdx:lifecycle:milestone` | Namespace for milestone-specific information. |
6 |
7 | ## `cdx:lifecycle:milestone` Namespace Taxonomy
8 |
9 | | Property | Description |
10 | |----------|-------------|
11 | | `cdx:lifecycle:milestone:endOfDevelopment` | The ISO 8601 date or timestamp when the manufacturer ceases development of a component or service. |
12 | | `cdx:lifecycle:milestone:endOfSupport` | The ISO 8601 date or timestamp when the manufacturer ceases any and all support of a component or service. This point in time marks a transfer of risk from the manufacturer to the consuming organization or user of the component or service, encompassing all cybersecurity knowledge and known vulnerabilities, with no further assistance provided by the manufacturer. |
13 | | `cdx:lifecycle:milestone:endOfGuaranteedSupport` | The ISO 8601 date or timestamp when the manufacturer no longer provides assured services such as technical assistance, user training, repairs, spare parts, and software updates for a component or service. Beyond this period, any support offered is discretionary and may incur extra costs or have restrictions. |
14 | | `cdx:lifecycle:milestone:endOfLife` | The ISO 8601 date or timestamp when the manufacturer stops selling a product after its defined useful life and formally notifies users. It marks the conclusion of the product's lifecycle, following a structured EOL process. |
15 | | `cdx:lifecycle:milestone:endOfProduction` | The ISO 8601 date or timestamp when the manufacturer stops producing a component, often due to newer versions, unavailable parts, market changes, or strategic shifts. Existing units may still be available in warehouses, distribution channels, and for use, but no new units will be manufactured. |
16 | | `cdx:lifecycle:milestone:endOfMarketing` | The ISO 8601 date or timestamp when the manufacturer will cease actively promoting or advertising a component or service. While the component or service may still be available for purchase and support, it will no longer receive active marketing efforts from the manufacturer. |
17 | | `cdx:lifecycle:milestone:generalAvailability` | The ISO 8601 date or timestamp when a component or service is released and available to the general public. |
18 | | `cdx:lifecycle:milestone:endOfBusinessOperations` | The ISO 8601 date or timestamp when the manufacturer of a component or service has ceased business activities. It signifies that the company is no longer in operation, and therefore, no products, services, or support will be provided. |
19 |
--------------------------------------------------------------------------------
/cdx/maven.md:
--------------------------------------------------------------------------------
1 | # `cdx:maven` Namespace Taxonomy
2 |
3 | | Namespace | Description |
4 | |-----------|-------------|
5 | | `cdx:maven:package` | Namespace for package specific properties. |
6 |
7 | _Boolean value_ are `true` or `false`. Case sensitive.
8 |
9 | ## `cdx:maven:package` Namespace Taxonomy
10 |
11 | | Property | Description |
12 | |----------|-------------|
13 | | `cdx:maven:package:test` | Whether the package is used only within `test` scope for Maven and `test.*` configurations for Gradle. _Boolean value_. If the property is missing, then assume the value to be `false`. May appear once. |
14 |
--------------------------------------------------------------------------------
/cdx/npm.md:
--------------------------------------------------------------------------------
1 | # `cdx:npm` Namespace Taxonomy
2 |
3 | | Namespace | Description |
4 | |-----------|-------------|
5 | | `cdx:npm:package` | Namespace for package specific properties. |
6 | | `cdx:npm:package:constraint` | Namespace for package constraints. |
7 |
8 | _Boolean value_ are `true` or `false`. Case sensitive.
9 |
10 | ## `cdx:npm:package` Namespace Taxonomy
11 |
12 | | Property | Description |
13 | |----------|-------------|
14 | | `cdx:npm:package:bundled` | Whether the package was bundled(shipped) with its parent component. _Boolean value_. If the property is missing, then assume the value to be `false`. May appear once. |
15 | | `cdx:npm:package:extraneous` | Whether the package was installed extraneous. _Boolean value_. If the property is missing, then assume the value to be `false`. May appear once. |
16 | | `cdx:npm:package:private` | Whether the package was flagged as "private". _Boolean value_. If the property is missing, then assume the value to be `false`. May appear once. |
17 | | `cdx:npm:package:development` | Whether the package was flagged as "devDependency". _Boolean value_. If the property is missing, then assume the value to be `false`. May appear once. |
18 | | `cdx:npm:package:path` | A path the package is installed to. Posix-like path representation relative to the root directory of the project under analysis. To represent the root dir, an empty string is used. May appear multiple times with different values. Example value: `node_modules/cliui/node_modules/strip-ansi` |
19 |
20 | ## `cdx:npm:package:constraint` Namespace Taxonomy
21 |
22 | | Property | Description |
23 | |----------|-------------|
24 | | `cdx:npm:package:constraint:engine:` | Supported/required [engine marker](https://docs.npmjs.com/cli/v8/configuring-npm/package-json#engines). May appear once. Example: `cdx:npm:package:constraint:engine:node = >=12.2`|
25 | | `cdx:npm:package:constraint:engine-strict` | Whether the engine is a requirement, or an advice. _Boolean value_. If the property is missing, then assume the value to be `false`. May appear once. |
26 | | `cdx:npm:package:constraint:os` | Supported/required [operating system markers](https://docs.npmjs.com/cli/v8/configuring-npm/package-json#os). May appear multiple times with different values. |
27 |
--------------------------------------------------------------------------------
/cdx/pipenv.md:
--------------------------------------------------------------------------------
1 | # `cdx:pipenv` Namespace Taxonomy
2 |
3 | | Property | Description |
4 | |----------|-------------|
5 | | `cdx:pipenv:category` | Name of a [category](https://pipenv.pypa.io/en/latest/pipfile.html#package-category-groups) the component belongs to. Well-known categories are: "default", "develop". _Non-empty string value_. May appear multiple times with different values. |
6 |
7 | | Namespace | Description |
8 | |-----------|-------------|
9 | | `cdx:pipenv:package` | Namespace for package specific properties. |
10 |
--------------------------------------------------------------------------------
/cdx/poetry.md:
--------------------------------------------------------------------------------
1 | # `cdx:poetry` Namespace Taxonomy
2 |
3 | | Property | Description |
4 | |----------|-------------|
5 | | `cdx:poetry:group` | Name of a [dependency group](https://python-poetry.org/docs/managing-dependencies/#dependency-groups) the component belongs to. Well-known groups are: "main", "dev". _Non-empty string value_. May appear multiple times with different values. |
6 |
7 | | Namespace | Description |
8 | |-----------|-------------|
9 | | `cdx:poetry:package` | Namespace for package specific properties. |
10 |
11 | ## `cdx:poetry:package` Namespace Taxonomy
12 |
13 | | Namespace | Description |
14 | |-----------|-------------|
15 | | `cdx:poetry:package:source` | **Deprecated** namespace for package-source specific properties. |
16 |
17 | ## `cdx:poetry:package:source` Namespace Taxonomy
18 |
19 | This namespace is **deprecated** in favor of the more general [`cdx:python:package:source`](./python.md).
20 |
21 | | Property | Description |
22 | |----------|-------------|
23 | | `cdx:poetry:package:source:reference` | **Deprecated** in favor of the more general [`cdx:python:package:source:vcs:requested_revision`](./python.md).
The repository reference of this package, e.g. "master", "1.0.0" or a commit hash for git. Values may be applied to [`externalReferences`][CDX-useCases-externalReferences] of type `vcs`. _Non-empty string value_. May appear once. |
24 | | `cdx:poetry:package:source:resolved_reference` | **Deprecated** in favor of the more general [`cdx:python:package:source:vcs:commit_id`](./python.md).
The resolved repository reference of this package, e.g. a commit hash for git. Values may be applied to [`externalReferences`][CDX-useCases-externalReferences] of type `vcs`. _Non-empty string value_. May appear once. |
25 |
26 | | Namespace | Description |
27 | |-----------|-------------|
28 | | `cdx:poetry:package:source:vcs` | **DEPRECATED** namespace for package-source's VCS specific properties. |
29 |
30 | ## `cdx:poetry:package:source:vcs` Namespace Taxonomy
31 |
32 | This namespace is **deprecated** in favor of the more general [`cdx:python:package:source:vcs`](./python.md).
33 |
34 | | Property | Description |
35 | |----------|-------------|
36 | | `cdx:poetry:package:source:vcs:requested_revision` | **Deprecated** in favor of the more general [`cdx:python:package:source:vcs:requested_revision`](./python.md).
The repository reference of this package, e.g. "master", "1.0.0" or a commit hash for git. Values may be applied to [`externalReferences`][CDX-useCases-externalReferences] of type `vcs`. _Non-empty string value_. May appear once. |
37 | | `cdx:poetry:package:source:vcs:commit_id` | **Deprecated** in favor of the more general [`cdx:python:package:source:vcs:commit_id`](./python.md).
The resolved repository reference of this package, e.g. a commit hash for git. Values may be applied to [`externalReferences`][CDX-useCases-externalReferences] of type `vcs`. _Non-empty string value_. May appear once. |
38 |
39 | [CDX-useCases-externalReferences]: https://cyclonedx.org/use-cases/#external-references
40 |
--------------------------------------------------------------------------------
/cdx/python.md:
--------------------------------------------------------------------------------
1 | # `cdx:python` Namespace Taxonomy
2 |
3 | _Boolean value_ are `true` or `false`. Case sensitive.
4 |
5 | | Namespace | Description |
6 | |-----------|-------------|
7 | | `cdx:python:package` | Namespace for package specific properties. |
8 |
9 | ## `cdx:python:package` Namespace Taxonomy
10 |
11 | | Property | Description |
12 | |----------|-------------|
13 | | `cdx:python:package:required-extra` | The package's extra that was required. Value MAY be [normalized](https://packaging.python.org/en/latest/specifications/name-normalization/). _Non-empty string value_. May appear multiple times with different values. |
14 |
15 | | Namespace | Description |
16 | |-----------|-------------|
17 | | `cdx:python:package:source` | Namespace for package-source specific properties. |
18 |
19 | ## `cdx:python:package:source` Namespace Taxonomy
20 |
21 | In accordance with [PEP610](https://peps.python.org/pep-0610/)
22 | and [packaging's `direct-url`](https://packaging.python.org/en/latest/specifications/direct-url/)
23 | and [packaging's `direct-url` data structure](https://packaging.python.org/en/latest/specifications/direct-url-data-structure/)
24 | .
25 |
26 | | Property | Description |
27 | |----------|-------------|
28 | | `cdx:python:package:source:subdirectory` | Directory path, relative to the root of the VCS repository, source archive or local directory, to specify where `pyproject.toml` or `setup.py` is located. _Non-empty string value_. May appear once. |
29 |
30 | | Namespace | Description |
31 | |-----------|-------------|
32 | | `cdx:python:package:source:archive` | Namespace for package-source archive-specific properties. |
33 | | `cdx:python:package:source:vcs` | Namespace for package-source vcs-specific properties. |
34 | | `cdx:python:package:source:local` | Namespace for package-source local-specific properties. |
35 |
36 | ## `cdx:python:package:source:archive` Namespace Taxonomy
37 |
38 | In accordance with [packaging's `direct-url` data structure for Archive](https://packaging.python.org/en/latest/specifications/direct-url-data-structure/#vcs-urls).
39 |
40 | | Property | Description |
41 | |----------|-------------|
42 | | | |
43 |
44 | There are no properties regiestered so far.
45 | The `hashes` of an archive should be added to the [`ExternalReference`][CDX-useCases-externalReferences] that represents the package source.
46 |
47 | ## `cdx:python:package:source:vcs` Namespace Taxonomy
48 |
49 | In accordance with [packaging's `direct-url` data structure for VCS](https://packaging.python.org/en/latest/specifications/direct-url-data-structure/#vcs-urls)
50 |
51 | | Property | Description |
52 | |----------|-------------|
53 | | `cdx:python:package:source:vcs:requested_revision` | The repository reference of this package, e.g. "master", "1.0.0" or a commit hash for git. Values may be applied to [`externalReferences`][CDX-useCases-externalReferences] of type `vcs`. _Non-empty string value_. May appear once. |
54 | | `cdx:python:package:source:vcs:commit_id` | The resolved repository reference of this package, e.g. a commit hash for git. Values may be applied to [`externalReferences`][CDX-useCases-externalReferences] of type `vcs`. _Non-empty string value_. May appear once. |
55 |
56 | ## `cdx:python:package:source:local` Namespace Taxonomy
57 |
58 | In accordance with [packaging's `direct-url` data structure for Local](https://packaging.python.org/en/latest/specifications/direct-url-data-structure/#local-directories)
59 |
60 | | Property | Description |
61 | |----------|-------------|
62 | | `cdx:python:package:source:local:editable` | Wether this local package was installed in editable/developer mode. _Boolean value_. If the property is missing, then assume the value to be `false`. May appear once. |
63 |
64 | [CDX-useCases-externalReferences]: https://cyclonedx.org/use-cases/#external-references
65 |
--------------------------------------------------------------------------------
/cdx/rustc.md:
--------------------------------------------------------------------------------
1 | # `cdx:rustc` Namespace Taxonomy
2 |
3 | This namespace is used for recording information that is used by the Rust compiler, `rustc`, irrespective of the build system. For properties specific to the Rust build system, Cargo, please refer to the `cargo` namespace.
4 |
5 | _Boolean value_ are `true` or `false`. Case sensitive.
6 |
7 | _Target triple string_ is a case-sensitive string matching one of the Rust compilation target triples, e.g. `x86_64-unknown-linux-gnu`. All known targets are documented [here](https://doc.rust-lang.org/nightly/rustc/platform-support.html) and the list evolves over time, with targets being both added and removed. The list of target triples supported by the installed version of the Rust compiler can be obtained by running `rustc --print=target-list`.
8 |
9 | | Namespace | Description |
10 | |-----------|-------------|
11 | | `cdx:rustc:sbom` | Namespace for information about the SBOM. MAY only appear in the `$.metadata` field, and not in any other fields. |
12 |
13 | ## `cdx:rustc:sbom` Namespace Taxonomy
14 |
15 | | Namespace | Description |
16 | |-----------|-------------|
17 | | `cdx:rustc:sbom:target` | Records the information about the build target described by the SBOM. |
18 |
19 | ## `cdx:rustc:sbom:target` Namespace Taxonomy
20 |
21 | | Property | Description |
22 | |----------|-------------|
23 | | `cdx:rustc:sbom:target:triple` | Target triple string. Its presence indicates that the list of dependency packages in the `$.components` field will only include dependencies used for this target, matching the dependencies of the compiled binary for this target.
This property may appear multiple times, e.g. when describing MacOS fat binaries that merge builds for several different architectures into a single file, or to record the list of specific platforms considered when producing the SBOM without actually performing a build.
Mutually exclusive with `cdx:rustc:sbom:target:all_targets`. |
24 | | `cdx:rustc:sbom:target:all_targets` | _Boolean value_ indicating that the SBOM includes dependency packages from all possible targets in the `$.components` field, rather than for a single specific target.
Mutually exclusive with `cdx:rustc:sbom:target:triple`. MAY appear at most once. |
25 |
26 | If neither `:triple` nor `:all_targets` properties are present, the platform coverage of the SBOM SHOULD be assumed to be unknown.
27 |
--------------------------------------------------------------------------------