@cdxgen/cdxgen 13.0.1 → 13.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +26 -13
- package/bin/audit.js +6 -0
- package/bin/cdxgen.js +125 -4
- package/bin/evinse.js +1 -1
- package/data/component-tags.json +8 -1
- package/data/frameworks-list.json +86 -1
- package/data/remediations.json +1144 -0
- package/data/rules/asar-archives.yaml +1 -1
- package/data/rules/build-fidelity.yaml +782 -0
- package/data/rules/package-integrity.yaml +13 -13
- package/lib/audit/index.js +48 -4
- package/lib/audit/scoring.js +2 -8
- package/lib/cli/bomAssembly.js +20 -1
- package/lib/cli/cliOptions.js +94 -7
- package/lib/cli/index.js +76 -48
- package/lib/cli/jsBom.js +32 -3
- package/lib/cli/jvmBom.js +1494 -1315
- package/lib/cli/managedBom.js +97 -28
- package/lib/cli/nativeBom.js +189 -10
- package/lib/core/buildLedger.js +799 -0
- package/lib/core/deferredExit.js +141 -0
- package/lib/core/env.js +69 -1
- package/lib/core/fs.js +60 -0
- package/lib/core/logger.js +12 -99
- package/lib/core/severity.js +16 -0
- package/lib/core/syncFileWriter.js +106 -0
- package/lib/ecosystems/ecosystems.js +9 -0
- package/lib/ecosystems/gradleutils.js +355 -15
- package/lib/ecosystems/parsers-js.js +26 -0
- package/lib/ecosystems/parsers-jvm.js +9 -0
- package/lib/ecosystems/parsers-misc.js +16 -2
- package/lib/ecosystems/parsers-python.js +171 -35
- package/lib/ecosystems/parsers-rust.js +12 -2
- package/lib/ecosystems/pypiClassifiers.js +326 -0
- package/lib/ecosystems/pythonutils.js +49 -1
- package/lib/ecosystems/rubyutils.js +13 -0
- package/lib/evinser/evinser.js +30 -12
- package/lib/helpers/remote/dependency-track.js +81 -14
- package/lib/inventory/auditCategories.js +9 -0
- package/lib/inventory/depsUtils.js +72 -0
- package/lib/inventory/dosai.js +431 -22
- package/lib/inventory/envcontext.js +206 -18
- package/lib/inventory/fetchBatch.js +57 -0
- package/lib/inventory/jvmToolEnv.js +593 -0
- package/lib/inventory/osinfo.js +1 -0
- package/lib/inventory/toolRequirements.js +903 -0
- package/lib/managers/binary.js +24 -0
- package/lib/managers/docker.js +26 -5
- package/lib/server/server.js +1 -1
- package/lib/stages/postgen/annotationBuilder.js +97 -0
- package/lib/stages/postgen/auditBom.js +76 -79
- package/lib/stages/postgen/introspection/annotate.js +320 -0
- package/lib/stages/postgen/introspection/commandFacts.js +293 -0
- package/lib/stages/postgen/introspection/emit.js +192 -0
- package/lib/stages/postgen/introspection/formulationEvidence.js +427 -0
- package/lib/stages/postgen/introspection/markers.js +227 -0
- package/lib/stages/postgen/introspection/reflect.js +1214 -0
- package/lib/stages/postgen/introspection/report.js +1208 -0
- package/lib/stages/postgen/introspection/score.js +1067 -0
- package/lib/stages/postgen/introspection/shapeCommand.js +304 -0
- package/lib/stages/postgen/parentEdge.js +156 -0
- package/lib/stages/postgen/postgen.js +115 -2
- package/lib/stages/postgen/ruleEngine.js +17 -0
- package/lib/stages/pregen/envAudit.js +42 -2
- package/lib/stages/pregen/pregen.js +1171 -6
- package/lib/validator/bomValidator.js +11 -2
- package/package.json +14 -14
- package/types/lib/audit/index.d.ts.map +1 -1
- package/types/lib/audit/scoring.d.ts +2 -8
- package/types/lib/audit/scoring.d.ts.map +1 -1
- package/types/lib/cli/bomAssembly.d.ts.map +1 -1
- package/types/lib/cli/cliOptions.d.ts +2 -1
- package/types/lib/cli/cliOptions.d.ts.map +1 -1
- package/types/lib/cli/index.d.ts +8 -0
- package/types/lib/cli/index.d.ts.map +1 -1
- package/types/lib/cli/jsBom.d.ts.map +1 -1
- package/types/lib/cli/jvmBom.d.ts.map +1 -1
- package/types/lib/cli/managedBom.d.ts.map +1 -1
- package/types/lib/cli/nativeBom.d.ts.map +1 -1
- package/types/lib/core/buildLedger.d.ts +272 -0
- package/types/lib/core/buildLedger.d.ts.map +1 -0
- package/types/lib/core/deferredExit.d.ts +84 -0
- package/types/lib/core/deferredExit.d.ts.map +1 -0
- package/types/lib/core/env.d.ts +22 -1
- package/types/lib/core/env.d.ts.map +1 -1
- package/types/lib/core/fs.d.ts +21 -0
- package/types/lib/core/fs.d.ts.map +1 -1
- package/types/lib/core/logger.d.ts +2 -11
- package/types/lib/core/logger.d.ts.map +1 -1
- package/types/lib/core/severity.d.ts +11 -0
- package/types/lib/core/severity.d.ts.map +1 -0
- package/types/lib/core/syncFileWriter.d.ts +33 -0
- package/types/lib/core/syncFileWriter.d.ts.map +1 -0
- package/types/lib/ecosystems/ecosystems.d.ts.map +1 -1
- package/types/lib/ecosystems/gradleutils.d.ts +33 -0
- package/types/lib/ecosystems/gradleutils.d.ts.map +1 -1
- package/types/lib/ecosystems/parsers-js.d.ts.map +1 -1
- package/types/lib/ecosystems/parsers-jvm.d.ts.map +1 -1
- package/types/lib/ecosystems/parsers-misc.d.ts.map +1 -1
- package/types/lib/ecosystems/parsers-python.d.ts.map +1 -1
- package/types/lib/ecosystems/parsers-rust.d.ts.map +1 -1
- package/types/lib/ecosystems/pypiClassifiers.d.ts +80 -0
- package/types/lib/ecosystems/pypiClassifiers.d.ts.map +1 -0
- package/types/lib/ecosystems/pythonutils.d.ts +20 -0
- package/types/lib/ecosystems/pythonutils.d.ts.map +1 -1
- package/types/lib/ecosystems/rubyutils.d.ts.map +1 -1
- package/types/lib/evinser/evinser.d.ts +5 -1
- package/types/lib/evinser/evinser.d.ts.map +1 -1
- package/types/lib/helpers/remote/dependency-track.d.ts +45 -4
- package/types/lib/helpers/remote/dependency-track.d.ts.map +1 -1
- package/types/lib/inventory/auditCategories.d.ts +8 -0
- package/types/lib/inventory/auditCategories.d.ts.map +1 -1
- package/types/lib/inventory/depsUtils.d.ts.map +1 -1
- package/types/lib/inventory/dosai.d.ts +20 -0
- package/types/lib/inventory/dosai.d.ts.map +1 -1
- package/types/lib/inventory/envcontext.d.ts.map +1 -1
- package/types/lib/inventory/fetchBatch.d.ts +9 -0
- package/types/lib/inventory/fetchBatch.d.ts.map +1 -1
- package/types/lib/inventory/jvmToolEnv.d.ts +189 -0
- package/types/lib/inventory/jvmToolEnv.d.ts.map +1 -0
- package/types/lib/inventory/osinfo.d.ts.map +1 -1
- package/types/lib/inventory/toolRequirements.d.ts +216 -0
- package/types/lib/inventory/toolRequirements.d.ts.map +1 -0
- package/types/lib/managers/binary.d.ts.map +1 -1
- package/types/lib/managers/docker.d.ts.map +1 -1
- package/types/lib/stages/postgen/annotationBuilder.d.ts +53 -0
- package/types/lib/stages/postgen/annotationBuilder.d.ts.map +1 -0
- package/types/lib/stages/postgen/auditBom.d.ts.map +1 -1
- package/types/lib/stages/postgen/introspection/annotate.d.ts +81 -0
- package/types/lib/stages/postgen/introspection/annotate.d.ts.map +1 -0
- package/types/lib/stages/postgen/introspection/commandFacts.d.ts +32 -0
- package/types/lib/stages/postgen/introspection/commandFacts.d.ts.map +1 -0
- package/types/lib/stages/postgen/introspection/emit.d.ts +71 -0
- package/types/lib/stages/postgen/introspection/emit.d.ts.map +1 -0
- package/types/lib/stages/postgen/introspection/formulationEvidence.d.ts +154 -0
- package/types/lib/stages/postgen/introspection/formulationEvidence.d.ts.map +1 -0
- package/types/lib/stages/postgen/introspection/markers.d.ts +57 -0
- package/types/lib/stages/postgen/introspection/markers.d.ts.map +1 -0
- package/types/lib/stages/postgen/introspection/reflect.d.ts +77 -0
- package/types/lib/stages/postgen/introspection/reflect.d.ts.map +1 -0
- package/types/lib/stages/postgen/introspection/report.d.ts +85 -0
- package/types/lib/stages/postgen/introspection/report.d.ts.map +1 -0
- package/types/lib/stages/postgen/introspection/score.d.ts +149 -0
- package/types/lib/stages/postgen/introspection/score.d.ts.map +1 -0
- package/types/lib/stages/postgen/introspection/shapeCommand.d.ts +79 -0
- package/types/lib/stages/postgen/introspection/shapeCommand.d.ts.map +1 -0
- package/types/lib/stages/postgen/parentEdge.d.ts +35 -0
- package/types/lib/stages/postgen/parentEdge.d.ts.map +1 -0
- package/types/lib/stages/postgen/postgen.d.ts +2 -2
- package/types/lib/stages/postgen/postgen.d.ts.map +1 -1
- package/types/lib/stages/postgen/ruleEngine.d.ts.map +1 -1
- package/types/lib/stages/pregen/envAudit.d.ts.map +1 -1
- package/types/lib/stages/pregen/pregen.d.ts +131 -0
- package/types/lib/stages/pregen/pregen.d.ts.map +1 -1
- package/types/lib/validator/bomValidator.d.ts.map +1 -1
|
@@ -0,0 +1,1144 @@
|
|
|
1
|
+
{
|
|
2
|
+
"jvm.maven.build-first": {
|
|
3
|
+
"ecosystem": "java",
|
|
4
|
+
"kind": "fallback.engaged",
|
|
5
|
+
"impact": "transitive-deps",
|
|
6
|
+
"title": "Maven could not resolve dependencies; build the project before invoking cdxgen",
|
|
7
|
+
"targetTier": "resolved",
|
|
8
|
+
"actions": [
|
|
9
|
+
{
|
|
10
|
+
"kind": "install",
|
|
11
|
+
"tool": "java",
|
|
12
|
+
"versionFrom": "expected",
|
|
13
|
+
"via": "sdkman",
|
|
14
|
+
"command": "sdk install java {{version}}",
|
|
15
|
+
"windows": "winget install --id EclipseAdoptium.Temurin.{{major}}.JDK"
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"kind": "install",
|
|
19
|
+
"tool": "maven",
|
|
20
|
+
"versionFrom": "expected",
|
|
21
|
+
"via": "sdkman",
|
|
22
|
+
"command": "sdk install maven {{version}}",
|
|
23
|
+
"windows": "winget install --id Apache.Maven"
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"kind": "build",
|
|
27
|
+
"command": "{{mvn}} -q package -DskipTests"
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"kind": "rerun"
|
|
31
|
+
}
|
|
32
|
+
],
|
|
33
|
+
"verify": {
|
|
34
|
+
"rules": [
|
|
35
|
+
"BF-JVM-001",
|
|
36
|
+
"BF-JVM-002"
|
|
37
|
+
],
|
|
38
|
+
"expectTier": "resolved"
|
|
39
|
+
},
|
|
40
|
+
"docs": "https://cyclonedx.github.io/cdxgen/#/PROJECT_TYPES?id=java"
|
|
41
|
+
},
|
|
42
|
+
"jvm.maven.manifest-fallback": {
|
|
43
|
+
"ecosystem": "java",
|
|
44
|
+
"kind": "fallback.engaged",
|
|
45
|
+
"impact": "transitive-deps",
|
|
46
|
+
"title": "Maven build failed; only the direct dependencies declared in pom.xml were captured",
|
|
47
|
+
"targetTier": "resolved",
|
|
48
|
+
"actions": [
|
|
49
|
+
{
|
|
50
|
+
"kind": "install",
|
|
51
|
+
"tool": "java",
|
|
52
|
+
"versionFrom": "expected",
|
|
53
|
+
"via": "sdkman",
|
|
54
|
+
"command": "sdk install java {{version}}",
|
|
55
|
+
"windows": "winget install --id EclipseAdoptium.Temurin.{{major}}.JDK"
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"kind": "install",
|
|
59
|
+
"tool": "maven",
|
|
60
|
+
"versionFrom": "expected",
|
|
61
|
+
"via": "sdkman",
|
|
62
|
+
"command": "sdk install maven {{version}}",
|
|
63
|
+
"windows": "winget install --id Apache.Maven"
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
"kind": "build",
|
|
67
|
+
"command": "{{mvn}} -q package -DskipTests"
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
"kind": "rerun"
|
|
71
|
+
}
|
|
72
|
+
],
|
|
73
|
+
"verify": {
|
|
74
|
+
"rules": [
|
|
75
|
+
"BF-JVM-001",
|
|
76
|
+
"BF-JVM-002"
|
|
77
|
+
],
|
|
78
|
+
"expectTier": "resolved"
|
|
79
|
+
},
|
|
80
|
+
"docs": "https://cyclonedx.github.io/cdxgen/#/PROJECT_TYPES?id=java"
|
|
81
|
+
},
|
|
82
|
+
"jvm.maven.tree-unparseable": {
|
|
83
|
+
"ecosystem": "java",
|
|
84
|
+
"kind": "command.failed",
|
|
85
|
+
"impact": "transitive-deps",
|
|
86
|
+
"title": "Maven dependency:tree JSON output could not be parsed",
|
|
87
|
+
"targetTier": "resolved",
|
|
88
|
+
"actions": [
|
|
89
|
+
{
|
|
90
|
+
"kind": "install",
|
|
91
|
+
"tool": "maven",
|
|
92
|
+
"versionFrom": "expected",
|
|
93
|
+
"via": "sdkman",
|
|
94
|
+
"command": "sdk install maven {{version}}",
|
|
95
|
+
"windows": "winget install --id Apache.Maven"
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
"kind": "build",
|
|
99
|
+
"command": "{{mvn}} -q package -DskipTests"
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
"kind": "rerun"
|
|
103
|
+
}
|
|
104
|
+
],
|
|
105
|
+
"verify": {
|
|
106
|
+
"rules": [
|
|
107
|
+
"BF-JVM-001",
|
|
108
|
+
"BF-JVM-002"
|
|
109
|
+
],
|
|
110
|
+
"expectTier": "resolved"
|
|
111
|
+
},
|
|
112
|
+
"docs": "https://cyclonedx.github.io/cdxgen/#/PROJECT_TYPES?id=java"
|
|
113
|
+
},
|
|
114
|
+
"jvm.gradle.unresolved-config": {
|
|
115
|
+
"ecosystem": "java",
|
|
116
|
+
"kind": "fallback.engaged",
|
|
117
|
+
"impact": "transitive-deps",
|
|
118
|
+
"title": "Gradle resolved no dependency configuration; project components carry no resolved dependencies",
|
|
119
|
+
"targetTier": "resolved",
|
|
120
|
+
"actions": [
|
|
121
|
+
{
|
|
122
|
+
"kind": "install",
|
|
123
|
+
"tool": "gradle",
|
|
124
|
+
"versionFrom": "expected",
|
|
125
|
+
"via": "sdkman",
|
|
126
|
+
"command": "sdk install gradle {{version}}",
|
|
127
|
+
"windows": "winget install --id Gradle.Gradle"
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
"kind": "build",
|
|
131
|
+
"command": "{{gradle}} -q build"
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
"kind": "rerun"
|
|
135
|
+
}
|
|
136
|
+
],
|
|
137
|
+
"verify": {
|
|
138
|
+
"rules": [
|
|
139
|
+
"BF-JVM-001",
|
|
140
|
+
"BF-JVM-002"
|
|
141
|
+
],
|
|
142
|
+
"expectTier": "resolved"
|
|
143
|
+
},
|
|
144
|
+
"docs": "https://cyclonedx.github.io/cdxgen/#/PROJECT_TYPES?id=java"
|
|
145
|
+
},
|
|
146
|
+
"jvm.gradle.invocation-failed": {
|
|
147
|
+
"ecosystem": "java",
|
|
148
|
+
"kind": "command.failed",
|
|
149
|
+
"impact": "transitive-deps",
|
|
150
|
+
"title": "The gradle invocation failed outright; gradle produced no dependency evidence at all",
|
|
151
|
+
"targetTier": "resolved",
|
|
152
|
+
"actions": [
|
|
153
|
+
{
|
|
154
|
+
"kind": "install",
|
|
155
|
+
"tool": "java",
|
|
156
|
+
"versionFrom": "expected",
|
|
157
|
+
"via": "sdkman",
|
|
158
|
+
"command": "sdk install java {{version}}",
|
|
159
|
+
"windows": "winget install --id EclipseAdoptium.Temurin.{{major}}.JDK"
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
"kind": "install",
|
|
163
|
+
"tool": "gradle",
|
|
164
|
+
"versionFrom": "expected",
|
|
165
|
+
"via": "sdkman",
|
|
166
|
+
"command": "sdk install gradle {{version}}",
|
|
167
|
+
"windows": "winget install --id Gradle.Gradle"
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
"kind": "build",
|
|
171
|
+
"command": "{{gradle}} -q build"
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
"kind": "rerun"
|
|
175
|
+
}
|
|
176
|
+
],
|
|
177
|
+
"verify": {
|
|
178
|
+
"rules": [
|
|
179
|
+
"BF-GEN-006"
|
|
180
|
+
],
|
|
181
|
+
"expectTier": "resolved"
|
|
182
|
+
},
|
|
183
|
+
"docs": "https://cyclonedx.github.io/cdxgen/#/PROJECT_TYPES?id=java"
|
|
184
|
+
},
|
|
185
|
+
"jvm.jar.heuristic": {
|
|
186
|
+
"ecosystem": "java",
|
|
187
|
+
"kind": "fallback.engaged",
|
|
188
|
+
"impact": "versions",
|
|
189
|
+
"title": "Components were inferred by scanning jar/war/ear files from disk",
|
|
190
|
+
"targetTier": "resolved",
|
|
191
|
+
"actions": [
|
|
192
|
+
{
|
|
193
|
+
"kind": "build",
|
|
194
|
+
"command": "{{mvn}} -q package -DskipTests"
|
|
195
|
+
},
|
|
196
|
+
{
|
|
197
|
+
"kind": "rerun"
|
|
198
|
+
}
|
|
199
|
+
],
|
|
200
|
+
"verify": {
|
|
201
|
+
"rules": [
|
|
202
|
+
"BF-JVM-003"
|
|
203
|
+
],
|
|
204
|
+
"expectTier": "resolved"
|
|
205
|
+
},
|
|
206
|
+
"docs": "https://cyclonedx.github.io/cdxgen/#/PROJECT_TYPES?id=java"
|
|
207
|
+
},
|
|
208
|
+
"jvm.sbt.project-discovery": {
|
|
209
|
+
"ecosystem": "java",
|
|
210
|
+
"kind": "fallback.engaged",
|
|
211
|
+
"impact": "components",
|
|
212
|
+
"title": "sbt project discovery fell back to the build-file heuristic",
|
|
213
|
+
"targetTier": "resolved",
|
|
214
|
+
"actions": [
|
|
215
|
+
{
|
|
216
|
+
"kind": "install",
|
|
217
|
+
"tool": "sbt",
|
|
218
|
+
"versionFrom": "expected",
|
|
219
|
+
"via": "sdkman",
|
|
220
|
+
"command": "sdk install sbt {{version}}",
|
|
221
|
+
"windows": "winget install --id sbt.sbt"
|
|
222
|
+
},
|
|
223
|
+
{
|
|
224
|
+
"kind": "build",
|
|
225
|
+
"command": "sbt -batch compile"
|
|
226
|
+
},
|
|
227
|
+
{
|
|
228
|
+
"kind": "rerun"
|
|
229
|
+
}
|
|
230
|
+
],
|
|
231
|
+
"verify": {
|
|
232
|
+
"rules": [
|
|
233
|
+
"BF-JVM-001"
|
|
234
|
+
],
|
|
235
|
+
"expectTier": "resolved"
|
|
236
|
+
},
|
|
237
|
+
"docs": "https://cyclonedx.github.io/cdxgen/#/PROJECT_TYPES?id=java"
|
|
238
|
+
},
|
|
239
|
+
"jvm.sbt.no-lockfile": {
|
|
240
|
+
"ecosystem": "java",
|
|
241
|
+
"kind": "evidence.degraded",
|
|
242
|
+
"impact": "versions",
|
|
243
|
+
"title": "sbt build failed; a build.sbt.lock would keep the SBOM deterministic",
|
|
244
|
+
"targetTier": "resolved",
|
|
245
|
+
"actions": [
|
|
246
|
+
{
|
|
247
|
+
"kind": "config",
|
|
248
|
+
"command": "Enable sbt dependency locking so the build writes build.sbt.lock"
|
|
249
|
+
},
|
|
250
|
+
{
|
|
251
|
+
"kind": "build",
|
|
252
|
+
"command": "sbt -batch compile"
|
|
253
|
+
},
|
|
254
|
+
{
|
|
255
|
+
"kind": "rerun"
|
|
256
|
+
}
|
|
257
|
+
],
|
|
258
|
+
"verify": {
|
|
259
|
+
"rules": [
|
|
260
|
+
"BF-JVM-001"
|
|
261
|
+
],
|
|
262
|
+
"expectTier": "resolved"
|
|
263
|
+
},
|
|
264
|
+
"docs": "https://cyclonedx.github.io/cdxgen/#/PROJECT_TYPES?id=java"
|
|
265
|
+
},
|
|
266
|
+
"js.no-lockfile": {
|
|
267
|
+
"ecosystem": "npm",
|
|
268
|
+
"kind": "evidence.degraded",
|
|
269
|
+
"impact": "versions",
|
|
270
|
+
"title": "No JavaScript lockfile was found; the SBOM is non-deterministic",
|
|
271
|
+
"targetTier": "lockfile",
|
|
272
|
+
"actions": [
|
|
273
|
+
{
|
|
274
|
+
"kind": "build",
|
|
275
|
+
"command": "npm install --package-lock-only"
|
|
276
|
+
},
|
|
277
|
+
{
|
|
278
|
+
"kind": "rerun"
|
|
279
|
+
}
|
|
280
|
+
],
|
|
281
|
+
"verify": {
|
|
282
|
+
"rules": [
|
|
283
|
+
"BF-JS-001",
|
|
284
|
+
"BF-JS-002"
|
|
285
|
+
],
|
|
286
|
+
"expectTier": "lockfile"
|
|
287
|
+
},
|
|
288
|
+
"docs": "https://cyclonedx.github.io/cdxgen/#/PROJECT_TYPES"
|
|
289
|
+
},
|
|
290
|
+
"js.git-dependency": {
|
|
291
|
+
"ecosystem": "npm",
|
|
292
|
+
"kind": "evidence.degraded",
|
|
293
|
+
"impact": "integrity",
|
|
294
|
+
"title": "npm install may fetch git dependencies without integrity guarantees",
|
|
295
|
+
"targetTier": "lockfile",
|
|
296
|
+
"actions": [
|
|
297
|
+
{
|
|
298
|
+
"kind": "env",
|
|
299
|
+
"command": "Re-run with the git command permitted for this trusted project by adding it to CDXGEN_ALLOWED_COMMANDS",
|
|
300
|
+
"windows": "The same CDXGEN_ALLOWED_COMMANDS variable applies on Windows"
|
|
301
|
+
},
|
|
302
|
+
{
|
|
303
|
+
"kind": "rerun"
|
|
304
|
+
}
|
|
305
|
+
],
|
|
306
|
+
"verify": {
|
|
307
|
+
"rules": [],
|
|
308
|
+
"expectTier": "lockfile",
|
|
309
|
+
"eventsCleared": [
|
|
310
|
+
"js.git-dependency"
|
|
311
|
+
]
|
|
312
|
+
},
|
|
313
|
+
"docs": "https://cyclonedx.github.io/cdxgen/#/ENV"
|
|
314
|
+
},
|
|
315
|
+
"js.no-node-modules": {
|
|
316
|
+
"ecosystem": "npm",
|
|
317
|
+
"kind": "evidence.degraded",
|
|
318
|
+
"impact": "transitive-deps",
|
|
319
|
+
"title": "node_modules is absent and no install was attempted",
|
|
320
|
+
"targetTier": "lockfile",
|
|
321
|
+
"actions": [
|
|
322
|
+
{
|
|
323
|
+
"kind": "build",
|
|
324
|
+
"command": "npm install"
|
|
325
|
+
},
|
|
326
|
+
{
|
|
327
|
+
"kind": "rerun"
|
|
328
|
+
}
|
|
329
|
+
],
|
|
330
|
+
"verify": {
|
|
331
|
+
"rules": [
|
|
332
|
+
"BF-JS-001"
|
|
333
|
+
],
|
|
334
|
+
"expectTier": "lockfile"
|
|
335
|
+
},
|
|
336
|
+
"docs": "https://cyclonedx.github.io/cdxgen/#/PROJECT_TYPES"
|
|
337
|
+
},
|
|
338
|
+
"js.lockfile-version": {
|
|
339
|
+
"ecosystem": "npm",
|
|
340
|
+
"kind": "fallback.engaged",
|
|
341
|
+
"impact": "transitive-deps",
|
|
342
|
+
"title": "package-lock.json could not be parsed with current npm semantics",
|
|
343
|
+
"targetTier": "lockfile",
|
|
344
|
+
"actions": [
|
|
345
|
+
{
|
|
346
|
+
"kind": "install",
|
|
347
|
+
"tool": "npm",
|
|
348
|
+
"versionFrom": "latest",
|
|
349
|
+
"via": "npm",
|
|
350
|
+
"command": "npm install -g npm@latest",
|
|
351
|
+
"windows": "npm install -g npm@latest"
|
|
352
|
+
},
|
|
353
|
+
{
|
|
354
|
+
"kind": "build",
|
|
355
|
+
"command": "npm install --package-lock-only"
|
|
356
|
+
},
|
|
357
|
+
{
|
|
358
|
+
"kind": "rerun"
|
|
359
|
+
}
|
|
360
|
+
],
|
|
361
|
+
"verify": {
|
|
362
|
+
"rules": [],
|
|
363
|
+
"expectTier": "lockfile",
|
|
364
|
+
"eventsCleared": [
|
|
365
|
+
"js.lockfile-version"
|
|
366
|
+
]
|
|
367
|
+
},
|
|
368
|
+
"docs": "https://cyclonedx.github.io/cdxgen/#/PROJECT_TYPES"
|
|
369
|
+
},
|
|
370
|
+
"js.pnpm-lock-unparseable": {
|
|
371
|
+
"ecosystem": "npm",
|
|
372
|
+
"kind": "evidence.degraded",
|
|
373
|
+
"impact": "transitive-deps",
|
|
374
|
+
"title": "pnpm-lock.yaml could not be parsed",
|
|
375
|
+
"targetTier": "lockfile",
|
|
376
|
+
"actions": [
|
|
377
|
+
{
|
|
378
|
+
"kind": "install",
|
|
379
|
+
"tool": "pnpm",
|
|
380
|
+
"versionFrom": "latest",
|
|
381
|
+
"via": "npm",
|
|
382
|
+
"command": "npm install -g pnpm@latest",
|
|
383
|
+
"windows": "npm install -g pnpm@latest"
|
|
384
|
+
},
|
|
385
|
+
{
|
|
386
|
+
"kind": "build",
|
|
387
|
+
"command": "pnpm install"
|
|
388
|
+
},
|
|
389
|
+
{
|
|
390
|
+
"kind": "rerun"
|
|
391
|
+
}
|
|
392
|
+
],
|
|
393
|
+
"verify": {
|
|
394
|
+
"rules": [],
|
|
395
|
+
"expectTier": "lockfile",
|
|
396
|
+
"eventsCleared": [
|
|
397
|
+
"js.pnpm-lock-unparseable"
|
|
398
|
+
]
|
|
399
|
+
},
|
|
400
|
+
"docs": "https://cyclonedx.github.io/cdxgen/#/PROJECT_TYPES"
|
|
401
|
+
},
|
|
402
|
+
"python.lockfile-unparseable": {
|
|
403
|
+
"ecosystem": "python",
|
|
404
|
+
"kind": "evidence.degraded",
|
|
405
|
+
"impact": "transitive-deps",
|
|
406
|
+
"title": "The python lock file could not be parsed",
|
|
407
|
+
"targetTier": "lockfile",
|
|
408
|
+
"actions": [
|
|
409
|
+
{
|
|
410
|
+
"kind": "build",
|
|
411
|
+
"command": "{{pythonManager}} lock"
|
|
412
|
+
},
|
|
413
|
+
{
|
|
414
|
+
"kind": "rerun"
|
|
415
|
+
}
|
|
416
|
+
],
|
|
417
|
+
"verify": {
|
|
418
|
+
"rules": [],
|
|
419
|
+
"expectTier": "lockfile",
|
|
420
|
+
"eventsCleared": [
|
|
421
|
+
"python.lockfile-unparseable"
|
|
422
|
+
]
|
|
423
|
+
},
|
|
424
|
+
"docs": "https://cyclonedx.github.io/cdxgen/#/PROJECT_TYPES"
|
|
425
|
+
},
|
|
426
|
+
"python.pyproject-unparseable": {
|
|
427
|
+
"ecosystem": "python",
|
|
428
|
+
"kind": "evidence.degraded",
|
|
429
|
+
"impact": "transitive-deps",
|
|
430
|
+
"title": "The pyproject.toml could not be parsed, so the workspace structure was not reconstructed",
|
|
431
|
+
"targetTier": "manifest",
|
|
432
|
+
"actions": [
|
|
433
|
+
{
|
|
434
|
+
"kind": "config",
|
|
435
|
+
"detail": "Check the file with a TOML 1.0 validator. cdxgen's TOML parser predates TOML 1.0 and rejects arrays that mix inline tables with strings, which PEP 735 `dependency-groups` produce when they use `include-group`."
|
|
436
|
+
},
|
|
437
|
+
{
|
|
438
|
+
"kind": "rerun"
|
|
439
|
+
}
|
|
440
|
+
],
|
|
441
|
+
"verify": {
|
|
442
|
+
"rules": [],
|
|
443
|
+
"expectTier": "manifest",
|
|
444
|
+
"eventsCleared": [
|
|
445
|
+
"python.pyproject-unparseable"
|
|
446
|
+
]
|
|
447
|
+
},
|
|
448
|
+
"docs": "https://cyclonedx.github.io/cdxgen/#/PROJECT_TYPES"
|
|
449
|
+
},
|
|
450
|
+
"python.lockfile-unparseable.uv": {
|
|
451
|
+
"ecosystem": "python",
|
|
452
|
+
"kind": "evidence.degraded",
|
|
453
|
+
"impact": "transitive-deps",
|
|
454
|
+
"title": "The uv lock file could not be parsed",
|
|
455
|
+
"targetTier": "lockfile",
|
|
456
|
+
"actions": [
|
|
457
|
+
{
|
|
458
|
+
"kind": "install",
|
|
459
|
+
"tool": "uv",
|
|
460
|
+
"versionFrom": "latest",
|
|
461
|
+
"via": "pip",
|
|
462
|
+
"command": "pip install uv",
|
|
463
|
+
"windows": "pip install uv"
|
|
464
|
+
},
|
|
465
|
+
{
|
|
466
|
+
"kind": "build",
|
|
467
|
+
"command": "{{pythonManager}} lock"
|
|
468
|
+
},
|
|
469
|
+
{
|
|
470
|
+
"kind": "rerun"
|
|
471
|
+
}
|
|
472
|
+
],
|
|
473
|
+
"verify": {
|
|
474
|
+
"rules": [],
|
|
475
|
+
"expectTier": "lockfile",
|
|
476
|
+
"eventsCleared": [
|
|
477
|
+
"python.lockfile-unparseable.uv"
|
|
478
|
+
]
|
|
479
|
+
},
|
|
480
|
+
"docs": "https://cyclonedx.github.io/cdxgen/#/PROJECT_TYPES"
|
|
481
|
+
},
|
|
482
|
+
"python.lockfile-unparseable.poetry": {
|
|
483
|
+
"ecosystem": "python",
|
|
484
|
+
"kind": "evidence.degraded",
|
|
485
|
+
"impact": "transitive-deps",
|
|
486
|
+
"title": "The poetry lock file could not be parsed",
|
|
487
|
+
"targetTier": "lockfile",
|
|
488
|
+
"actions": [
|
|
489
|
+
{
|
|
490
|
+
"kind": "install",
|
|
491
|
+
"tool": "poetry",
|
|
492
|
+
"versionFrom": "latest",
|
|
493
|
+
"via": "pip",
|
|
494
|
+
"command": "pip install poetry",
|
|
495
|
+
"windows": "pip install poetry"
|
|
496
|
+
},
|
|
497
|
+
{
|
|
498
|
+
"kind": "build",
|
|
499
|
+
"command": "{{pythonManager}} lock --no-interaction"
|
|
500
|
+
},
|
|
501
|
+
{
|
|
502
|
+
"kind": "rerun"
|
|
503
|
+
}
|
|
504
|
+
],
|
|
505
|
+
"verify": {
|
|
506
|
+
"rules": [],
|
|
507
|
+
"expectTier": "lockfile",
|
|
508
|
+
"eventsCleared": [
|
|
509
|
+
"python.lockfile-unparseable.poetry"
|
|
510
|
+
]
|
|
511
|
+
},
|
|
512
|
+
"docs": "https://cyclonedx.github.io/cdxgen/#/PROJECT_TYPES"
|
|
513
|
+
},
|
|
514
|
+
"python.lockfile-unparseable.pdm": {
|
|
515
|
+
"ecosystem": "python",
|
|
516
|
+
"kind": "evidence.degraded",
|
|
517
|
+
"impact": "transitive-deps",
|
|
518
|
+
"title": "The pdm lock file could not be parsed",
|
|
519
|
+
"targetTier": "lockfile",
|
|
520
|
+
"actions": [
|
|
521
|
+
{
|
|
522
|
+
"kind": "install",
|
|
523
|
+
"tool": "pdm",
|
|
524
|
+
"versionFrom": "latest",
|
|
525
|
+
"via": "pip",
|
|
526
|
+
"command": "pip install pdm",
|
|
527
|
+
"windows": "pip install pdm"
|
|
528
|
+
},
|
|
529
|
+
{
|
|
530
|
+
"kind": "build",
|
|
531
|
+
"command": "{{pythonManager}} lock"
|
|
532
|
+
},
|
|
533
|
+
{
|
|
534
|
+
"kind": "rerun"
|
|
535
|
+
}
|
|
536
|
+
],
|
|
537
|
+
"verify": {
|
|
538
|
+
"rules": [],
|
|
539
|
+
"expectTier": "lockfile",
|
|
540
|
+
"eventsCleared": [
|
|
541
|
+
"python.lockfile-unparseable.pdm"
|
|
542
|
+
]
|
|
543
|
+
},
|
|
544
|
+
"docs": "https://cyclonedx.github.io/cdxgen/#/PROJECT_TYPES"
|
|
545
|
+
},
|
|
546
|
+
"python.lockfile-unparseable.pipenv": {
|
|
547
|
+
"ecosystem": "python",
|
|
548
|
+
"kind": "evidence.degraded",
|
|
549
|
+
"impact": "transitive-deps",
|
|
550
|
+
"title": "The Pipfile.lock could not be parsed",
|
|
551
|
+
"targetTier": "lockfile",
|
|
552
|
+
"actions": [
|
|
553
|
+
{
|
|
554
|
+
"kind": "install",
|
|
555
|
+
"tool": "pipenv",
|
|
556
|
+
"versionFrom": "latest",
|
|
557
|
+
"via": "pip",
|
|
558
|
+
"command": "pip install pipenv",
|
|
559
|
+
"windows": "pip install pipenv"
|
|
560
|
+
},
|
|
561
|
+
{
|
|
562
|
+
"kind": "build",
|
|
563
|
+
"command": "{{pythonManager}} lock"
|
|
564
|
+
},
|
|
565
|
+
{
|
|
566
|
+
"kind": "rerun"
|
|
567
|
+
}
|
|
568
|
+
],
|
|
569
|
+
"verify": {
|
|
570
|
+
"rules": [],
|
|
571
|
+
"expectTier": "lockfile",
|
|
572
|
+
"eventsCleared": [
|
|
573
|
+
"python.lockfile-unparseable.pipenv"
|
|
574
|
+
]
|
|
575
|
+
},
|
|
576
|
+
"docs": "https://cyclonedx.github.io/cdxgen/#/PROJECT_TYPES"
|
|
577
|
+
},
|
|
578
|
+
"clojure.lein.missing": {
|
|
579
|
+
"ecosystem": "clojure",
|
|
580
|
+
"kind": "fallback.engaged",
|
|
581
|
+
"impact": "transitive-deps",
|
|
582
|
+
"title": "lein is unavailable; project.clj was parsed manually",
|
|
583
|
+
"targetTier": "manifest",
|
|
584
|
+
"actions": [
|
|
585
|
+
{
|
|
586
|
+
"kind": "install",
|
|
587
|
+
"tool": "lein",
|
|
588
|
+
"versionFrom": "latest",
|
|
589
|
+
"via": "manual",
|
|
590
|
+
"command": "Install leiningen following https://codeberg.org/leiningen/leiningen#installation",
|
|
591
|
+
"windows": "Download the lein.bat script from the leiningen repository into a PATH directory"
|
|
592
|
+
},
|
|
593
|
+
{
|
|
594
|
+
"kind": "rerun"
|
|
595
|
+
}
|
|
596
|
+
],
|
|
597
|
+
"verify": {
|
|
598
|
+
"rules": [],
|
|
599
|
+
"expectTier": "manifest",
|
|
600
|
+
"eventsCleared": [
|
|
601
|
+
"clojure.lein.missing"
|
|
602
|
+
]
|
|
603
|
+
},
|
|
604
|
+
"docs": "https://cyclonedx.github.io/cdxgen/#/PROJECT_TYPES"
|
|
605
|
+
},
|
|
606
|
+
"clojure.cli.missing": {
|
|
607
|
+
"ecosystem": "clojure",
|
|
608
|
+
"kind": "fallback.engaged",
|
|
609
|
+
"impact": "transitive-deps",
|
|
610
|
+
"title": "clojure CLI is unavailable; deps.edn was parsed manually",
|
|
611
|
+
"targetTier": "manifest",
|
|
612
|
+
"actions": [
|
|
613
|
+
{
|
|
614
|
+
"kind": "install",
|
|
615
|
+
"tool": "clojure",
|
|
616
|
+
"versionFrom": "latest",
|
|
617
|
+
"via": "manual",
|
|
618
|
+
"command": "Install the Clojure CLI following https://clojure.org/guides/install_clojure",
|
|
619
|
+
"windows": null,
|
|
620
|
+
"windowsReason": "The Clojure CLI ships a separate Windows installer; prefer the cdxgen container image there"
|
|
621
|
+
},
|
|
622
|
+
{
|
|
623
|
+
"kind": "rerun"
|
|
624
|
+
}
|
|
625
|
+
],
|
|
626
|
+
"verify": {
|
|
627
|
+
"rules": [],
|
|
628
|
+
"expectTier": "manifest",
|
|
629
|
+
"eventsCleared": [
|
|
630
|
+
"clojure.cli.missing"
|
|
631
|
+
]
|
|
632
|
+
},
|
|
633
|
+
"docs": "https://cyclonedx.github.io/cdxgen/#/PROJECT_TYPES"
|
|
634
|
+
},
|
|
635
|
+
"swift.toolchain.missing": {
|
|
636
|
+
"ecosystem": "swift",
|
|
637
|
+
"kind": "fallback.engaged",
|
|
638
|
+
"impact": "transitive-deps",
|
|
639
|
+
"title": "Swift toolchain could not resolve the package graph",
|
|
640
|
+
"targetTier": "lockfile",
|
|
641
|
+
"actions": [
|
|
642
|
+
{
|
|
643
|
+
"kind": "container",
|
|
644
|
+
"image": "ghcr.io/cyclonedx/cdxgen",
|
|
645
|
+
"command": "docker run --rm -v \"$PWD:/app\" -w /app ghcr.io/cyclonedx/cdxgen -t swift /app",
|
|
646
|
+
"windows": "docker run --rm -v \"%cd%:/app\" -w /app ghcr.io/cyclonedx/cdxgen -t swift %cd%"
|
|
647
|
+
}
|
|
648
|
+
],
|
|
649
|
+
"verify": {
|
|
650
|
+
"rules": [
|
|
651
|
+
"BF-SWIFT-001"
|
|
652
|
+
],
|
|
653
|
+
"expectTier": "lockfile"
|
|
654
|
+
},
|
|
655
|
+
"docs": "https://cyclonedx.github.io/cdxgen/#/PROJECT_TYPES"
|
|
656
|
+
},
|
|
657
|
+
"swift.package-command": {
|
|
658
|
+
"ecosystem": "swift",
|
|
659
|
+
"kind": "command.failed",
|
|
660
|
+
"impact": "transitive-deps",
|
|
661
|
+
"title": "swift package resolve did not produce a Package.resolved file",
|
|
662
|
+
"targetTier": "lockfile",
|
|
663
|
+
"actions": [
|
|
664
|
+
{
|
|
665
|
+
"kind": "build",
|
|
666
|
+
"command": "swift package resolve"
|
|
667
|
+
},
|
|
668
|
+
{
|
|
669
|
+
"kind": "rerun"
|
|
670
|
+
}
|
|
671
|
+
],
|
|
672
|
+
"verify": {
|
|
673
|
+
"rules": [],
|
|
674
|
+
"expectTier": "lockfile",
|
|
675
|
+
"eventsCleared": [
|
|
676
|
+
"swift.package-command"
|
|
677
|
+
]
|
|
678
|
+
},
|
|
679
|
+
"docs": "https://cyclonedx.github.io/cdxgen/#/PROJECT_TYPES"
|
|
680
|
+
},
|
|
681
|
+
"dotnet.sdk.missing": {
|
|
682
|
+
"ecosystem": "csharp",
|
|
683
|
+
"kind": "evidence.degraded",
|
|
684
|
+
"impact": "components",
|
|
685
|
+
"title": ".NET SDK is not installed, so dotnet slices are degraded",
|
|
686
|
+
"targetTier": "resolved",
|
|
687
|
+
"actions": [
|
|
688
|
+
{
|
|
689
|
+
"kind": "container",
|
|
690
|
+
"image": "ghcr.io/cyclonedx/cdxgen",
|
|
691
|
+
"command": "docker run --rm -v \"$PWD:/app\" -w /app ghcr.io/cyclonedx/cdxgen -t csharp /app",
|
|
692
|
+
"windows": "docker run --rm -v \"%cd%:/app\" -w /app ghcr.io/cyclonedx/cdxgen -t csharp %cd%"
|
|
693
|
+
},
|
|
694
|
+
{
|
|
695
|
+
"kind": "install",
|
|
696
|
+
"tool": "dotnet",
|
|
697
|
+
"versionFrom": "expected",
|
|
698
|
+
"via": "manual",
|
|
699
|
+
"command": "Install the .NET SDK {{version}} from https://dotnet.microsoft.com/download",
|
|
700
|
+
"windows": "winget install --id Microsoft.DotNet.SDK.{{major}}"
|
|
701
|
+
}
|
|
702
|
+
],
|
|
703
|
+
"verify": {
|
|
704
|
+
"rules": [],
|
|
705
|
+
"expectTier": "resolved",
|
|
706
|
+
"eventsCleared": [
|
|
707
|
+
"dotnet.sdk.missing"
|
|
708
|
+
]
|
|
709
|
+
},
|
|
710
|
+
"docs": "https://cyclonedx.github.io/cdxgen/#/PROJECT_TYPES"
|
|
711
|
+
},
|
|
712
|
+
"cocoa.pods.missing": {
|
|
713
|
+
"ecosystem": "cocoa",
|
|
714
|
+
"kind": "fallback.engaged",
|
|
715
|
+
"impact": "transitive-deps",
|
|
716
|
+
"title": "cocoapods is unavailable; the pod graph was not resolved",
|
|
717
|
+
"targetTier": "resolved",
|
|
718
|
+
"actions": [
|
|
719
|
+
{
|
|
720
|
+
"kind": "container",
|
|
721
|
+
"image": "ghcr.io/cyclonedx/cdxgen",
|
|
722
|
+
"command": "docker run --rm -v \"$PWD:/app\" -w /app ghcr.io/cyclonedx/cdxgen -t cocoa /app",
|
|
723
|
+
"windows": "docker run --rm -v \"%cd%:/app\" -w /app ghcr.io/cyclonedx/cdxgen -t cocoa %cd%"
|
|
724
|
+
}
|
|
725
|
+
],
|
|
726
|
+
"verify": {
|
|
727
|
+
"rules": [],
|
|
728
|
+
"expectTier": "resolved",
|
|
729
|
+
"eventsCleared": [
|
|
730
|
+
"cocoa.pods.missing"
|
|
731
|
+
]
|
|
732
|
+
},
|
|
733
|
+
"docs": "https://cyclonedx.github.io/cdxgen/#/PROJECT_TYPES"
|
|
734
|
+
},
|
|
735
|
+
"ruby.build-deps.missing": {
|
|
736
|
+
"ecosystem": "ruby",
|
|
737
|
+
"kind": "evidence.degraded",
|
|
738
|
+
"impact": "transitive-deps",
|
|
739
|
+
"title": "Building the required Ruby version needs development libraries",
|
|
740
|
+
"targetTier": "resolved",
|
|
741
|
+
"actions": [
|
|
742
|
+
{
|
|
743
|
+
"kind": "container",
|
|
744
|
+
"image": "ghcr.io/cyclonedx/cdxgen",
|
|
745
|
+
"command": "docker run --rm -v \"$PWD:/app\" -w /app ghcr.io/cyclonedx/cdxgen -t ruby /app",
|
|
746
|
+
"windows": "docker run --rm -v \"%cd%:/app\" -w /app ghcr.io/cyclonedx/cdxgen -t ruby %cd%"
|
|
747
|
+
}
|
|
748
|
+
],
|
|
749
|
+
"verify": {
|
|
750
|
+
"rules": [],
|
|
751
|
+
"expectTier": "resolved",
|
|
752
|
+
"eventsCleared": [
|
|
753
|
+
"ruby.build-deps.missing"
|
|
754
|
+
]
|
|
755
|
+
},
|
|
756
|
+
"docs": "https://cyclonedx.github.io/cdxgen/#/PROJECT_TYPES"
|
|
757
|
+
},
|
|
758
|
+
"ruby.version.unsupported-host": {
|
|
759
|
+
"ecosystem": "ruby",
|
|
760
|
+
"kind": "evidence.degraded",
|
|
761
|
+
"impact": "transitive-deps",
|
|
762
|
+
"title": "The required Ruby version needs a specific base image to build",
|
|
763
|
+
"targetTier": "resolved",
|
|
764
|
+
"actions": [
|
|
765
|
+
{
|
|
766
|
+
"kind": "container",
|
|
767
|
+
"image": "ghcr.io/cyclonedx/cdxgen",
|
|
768
|
+
"command": "docker run --rm -v \"$PWD:/app\" -w /app ghcr.io/cyclonedx/cdxgen -t ruby /app",
|
|
769
|
+
"windows": "docker run --rm -v \"%cd%:/app\" -w /app ghcr.io/cyclonedx/cdxgen -t ruby %cd%"
|
|
770
|
+
}
|
|
771
|
+
],
|
|
772
|
+
"verify": {
|
|
773
|
+
"rules": [],
|
|
774
|
+
"expectTier": "resolved",
|
|
775
|
+
"eventsCleared": [
|
|
776
|
+
"ruby.version.unsupported-host"
|
|
777
|
+
]
|
|
778
|
+
},
|
|
779
|
+
"docs": "https://cyclonedx.github.io/cdxgen/#/PROJECT_TYPES"
|
|
780
|
+
},
|
|
781
|
+
"go.toolchain.missing": {
|
|
782
|
+
"ecosystem": "go",
|
|
783
|
+
"kind": "evidence.degraded",
|
|
784
|
+
"impact": "transitive-deps",
|
|
785
|
+
"title": "The go toolchain could not be executed, so the module graph was not resolved",
|
|
786
|
+
"targetTier": "resolved",
|
|
787
|
+
"actions": [
|
|
788
|
+
{
|
|
789
|
+
"kind": "container",
|
|
790
|
+
"image": "ghcr.io/cyclonedx/cdxgen",
|
|
791
|
+
"command": "docker run --rm -v \"$PWD:/app\" -w /app ghcr.io/cyclonedx/cdxgen -t go /app",
|
|
792
|
+
"windows": "docker run --rm -v \"%cd%:/app\" -w /app ghcr.io/cyclonedx/cdxgen -t go %cd%"
|
|
793
|
+
},
|
|
794
|
+
{
|
|
795
|
+
"kind": "install",
|
|
796
|
+
"tool": "go",
|
|
797
|
+
"versionFrom": "latest",
|
|
798
|
+
"via": "manual",
|
|
799
|
+
"command": "Install Go following https://go.dev/dl/",
|
|
800
|
+
"windows": "winget install --id GoLang.Go"
|
|
801
|
+
},
|
|
802
|
+
{
|
|
803
|
+
"kind": "rerun"
|
|
804
|
+
}
|
|
805
|
+
],
|
|
806
|
+
"verify": {
|
|
807
|
+
"rules": [],
|
|
808
|
+
"expectTier": "resolved",
|
|
809
|
+
"eventsCleared": [
|
|
810
|
+
"go.toolchain.missing"
|
|
811
|
+
]
|
|
812
|
+
},
|
|
813
|
+
"docs": "https://cyclonedx.github.io/cdxgen/#/PROJECT_TYPES?id=go"
|
|
814
|
+
},
|
|
815
|
+
"go.mod-only-fallback": {
|
|
816
|
+
"ecosystem": "go",
|
|
817
|
+
"kind": "fallback.engaged",
|
|
818
|
+
"impact": "transitive-deps",
|
|
819
|
+
"title": "go.mod was parsed manually because the go toolchain could not resolve the module graph",
|
|
820
|
+
"targetTier": "resolved",
|
|
821
|
+
"actions": [
|
|
822
|
+
{
|
|
823
|
+
"kind": "install",
|
|
824
|
+
"tool": "go",
|
|
825
|
+
"versionFrom": "expected",
|
|
826
|
+
"via": "manual",
|
|
827
|
+
"command": "Install the Go version pinned in go.mod following https://go.dev/dl/",
|
|
828
|
+
"windows": "winget install --id GoLang.Go"
|
|
829
|
+
},
|
|
830
|
+
{
|
|
831
|
+
"kind": "build",
|
|
832
|
+
"command": "{{go}} mod download"
|
|
833
|
+
},
|
|
834
|
+
{
|
|
835
|
+
"kind": "rerun"
|
|
836
|
+
}
|
|
837
|
+
],
|
|
838
|
+
"verify": {
|
|
839
|
+
"rules": [
|
|
840
|
+
"BF-GEN-001"
|
|
841
|
+
],
|
|
842
|
+
"expectTier": "resolved"
|
|
843
|
+
},
|
|
844
|
+
"docs": "https://cyclonedx.github.io/cdxgen/#/PROJECT_TYPES?id=go"
|
|
845
|
+
},
|
|
846
|
+
"rust.toolchain.missing": {
|
|
847
|
+
"ecosystem": "rust",
|
|
848
|
+
"kind": "evidence.degraded",
|
|
849
|
+
"impact": "transitive-deps",
|
|
850
|
+
"title": "cargo could not be executed, so the lock file could not be generated",
|
|
851
|
+
"targetTier": "lockfile",
|
|
852
|
+
"actions": [
|
|
853
|
+
{
|
|
854
|
+
"kind": "container",
|
|
855
|
+
"image": "ghcr.io/cyclonedx/cdxgen",
|
|
856
|
+
"command": "docker run --rm -v \"$PWD:/app\" -w /app ghcr.io/cyclonedx/cdxgen -t rust /app",
|
|
857
|
+
"windows": "docker run --rm -v \"%cd%:/app\" -w /app ghcr.io/cyclonedx/cdxgen -t rust %cd%"
|
|
858
|
+
},
|
|
859
|
+
{
|
|
860
|
+
"kind": "install",
|
|
861
|
+
"tool": "rust",
|
|
862
|
+
"versionFrom": "latest",
|
|
863
|
+
"via": "manual",
|
|
864
|
+
"command": "Install rustup following https://rustup.rs",
|
|
865
|
+
"windows": "winget install --id Rustlang.Rustup"
|
|
866
|
+
},
|
|
867
|
+
{
|
|
868
|
+
"kind": "build",
|
|
869
|
+
"command": "{{cargo}} generate-lockfile"
|
|
870
|
+
},
|
|
871
|
+
{
|
|
872
|
+
"kind": "rerun"
|
|
873
|
+
}
|
|
874
|
+
],
|
|
875
|
+
"verify": {
|
|
876
|
+
"rules": [],
|
|
877
|
+
"expectTier": "lockfile",
|
|
878
|
+
"eventsCleared": [
|
|
879
|
+
"rust.toolchain.missing"
|
|
880
|
+
]
|
|
881
|
+
},
|
|
882
|
+
"docs": "https://cyclonedx.github.io/cdxgen/#/PROJECT_TYPES?id=rust"
|
|
883
|
+
},
|
|
884
|
+
"rust.cargo-lock-missing": {
|
|
885
|
+
"ecosystem": "rust",
|
|
886
|
+
"kind": "fallback.engaged",
|
|
887
|
+
"impact": "transitive-deps",
|
|
888
|
+
"title": "No Cargo.lock was found, so components carry the manifest's declared dependencies without locked versions",
|
|
889
|
+
"targetTier": "lockfile",
|
|
890
|
+
"actions": [
|
|
891
|
+
{
|
|
892
|
+
"kind": "build",
|
|
893
|
+
"command": "{{cargo}} generate-lockfile"
|
|
894
|
+
},
|
|
895
|
+
{
|
|
896
|
+
"kind": "rerun"
|
|
897
|
+
}
|
|
898
|
+
],
|
|
899
|
+
"verify": {
|
|
900
|
+
"rules": [
|
|
901
|
+
"BF-GEN-001",
|
|
902
|
+
"BF-RS-001"
|
|
903
|
+
],
|
|
904
|
+
"expectTier": "lockfile"
|
|
905
|
+
},
|
|
906
|
+
"docs": "https://cyclonedx.github.io/cdxgen/#/PROJECT_TYPES?id=rust"
|
|
907
|
+
},
|
|
908
|
+
"php.composer.missing": {
|
|
909
|
+
"ecosystem": "php",
|
|
910
|
+
"kind": "evidence.degraded",
|
|
911
|
+
"impact": "components",
|
|
912
|
+
"title": "composer is unavailable, so composer.lock could not be generated",
|
|
913
|
+
"targetTier": "resolved",
|
|
914
|
+
"actions": [
|
|
915
|
+
{
|
|
916
|
+
"kind": "install",
|
|
917
|
+
"tool": "composer",
|
|
918
|
+
"versionFrom": "latest",
|
|
919
|
+
"via": "manual",
|
|
920
|
+
"command": "Install Composer following https://getcomposer.org/doc/00-intro.md",
|
|
921
|
+
"windows": "winget install --id Composer.Composer"
|
|
922
|
+
},
|
|
923
|
+
{
|
|
924
|
+
"kind": "build",
|
|
925
|
+
"command": "{{composer}} install --ignore-platform-reqs"
|
|
926
|
+
},
|
|
927
|
+
{
|
|
928
|
+
"kind": "rerun"
|
|
929
|
+
}
|
|
930
|
+
],
|
|
931
|
+
"verify": {
|
|
932
|
+
"rules": [],
|
|
933
|
+
"expectTier": "resolved",
|
|
934
|
+
"eventsCleared": [
|
|
935
|
+
"php.composer.missing"
|
|
936
|
+
]
|
|
937
|
+
},
|
|
938
|
+
"docs": "https://cyclonedx.github.io/cdxgen/#/PROJECT_TYPES?id=php"
|
|
939
|
+
},
|
|
940
|
+
"php.no-lockfile": {
|
|
941
|
+
"ecosystem": "php",
|
|
942
|
+
"kind": "evidence.degraded",
|
|
943
|
+
"impact": "components",
|
|
944
|
+
"title": "No composer.lock was found or generated, so the Composer components could not be captured",
|
|
945
|
+
"targetTier": "resolved",
|
|
946
|
+
"actions": [
|
|
947
|
+
{
|
|
948
|
+
"kind": "build",
|
|
949
|
+
"command": "{{composer}} install --ignore-platform-reqs"
|
|
950
|
+
},
|
|
951
|
+
{
|
|
952
|
+
"kind": "rerun"
|
|
953
|
+
}
|
|
954
|
+
],
|
|
955
|
+
"verify": {
|
|
956
|
+
"rules": [],
|
|
957
|
+
"expectTier": "resolved",
|
|
958
|
+
"eventsCleared": [
|
|
959
|
+
"php.no-lockfile"
|
|
960
|
+
]
|
|
961
|
+
},
|
|
962
|
+
"docs": "https://cyclonedx.github.io/cdxgen/#/PROJECT_TYPES?id=php"
|
|
963
|
+
},
|
|
964
|
+
"dart.pub-get-needed": {
|
|
965
|
+
"ecosystem": "dart",
|
|
966
|
+
"kind": "evidence.degraded",
|
|
967
|
+
"impact": "versions",
|
|
968
|
+
"title": "pubspec.yaml was parsed without pubspec.lock, so components carry version constraints instead of locked versions",
|
|
969
|
+
"targetTier": "manifest",
|
|
970
|
+
"actions": [
|
|
971
|
+
{
|
|
972
|
+
"kind": "build",
|
|
973
|
+
"command": "{{dart}} pub get"
|
|
974
|
+
},
|
|
975
|
+
{
|
|
976
|
+
"kind": "rerun"
|
|
977
|
+
}
|
|
978
|
+
],
|
|
979
|
+
"verify": {
|
|
980
|
+
"rules": [
|
|
981
|
+
"BF-GEN-002"
|
|
982
|
+
],
|
|
983
|
+
"expectTier": "manifest",
|
|
984
|
+
"eventsCleared": [
|
|
985
|
+
"dart.pub-get-needed"
|
|
986
|
+
]
|
|
987
|
+
},
|
|
988
|
+
"docs": "https://cyclonedx.github.io/cdxgen/#/PROJECT_TYPES?id=dart"
|
|
989
|
+
},
|
|
990
|
+
"elixir.deps-not-fetched": {
|
|
991
|
+
"ecosystem": "elixir",
|
|
992
|
+
"kind": "evidence.degraded",
|
|
993
|
+
"impact": "components",
|
|
994
|
+
"title": "mix.exs was found without mix.lock, so the Hex dependencies were not captured",
|
|
995
|
+
"targetTier": "resolved",
|
|
996
|
+
"actions": [
|
|
997
|
+
{
|
|
998
|
+
"kind": "build",
|
|
999
|
+
"command": "{{mix}} deps get"
|
|
1000
|
+
},
|
|
1001
|
+
{
|
|
1002
|
+
"kind": "rerun"
|
|
1003
|
+
}
|
|
1004
|
+
],
|
|
1005
|
+
"verify": {
|
|
1006
|
+
"rules": [],
|
|
1007
|
+
"expectTier": "resolved",
|
|
1008
|
+
"eventsCleared": [
|
|
1009
|
+
"elixir.deps-not-fetched"
|
|
1010
|
+
]
|
|
1011
|
+
},
|
|
1012
|
+
"docs": "https://cyclonedx.github.io/cdxgen/#/PROJECT_TYPES?id=elixir"
|
|
1013
|
+
},
|
|
1014
|
+
"haskell.freeze-missing": {
|
|
1015
|
+
"ecosystem": "haskell",
|
|
1016
|
+
"kind": "evidence.degraded",
|
|
1017
|
+
"impact": "components",
|
|
1018
|
+
"title": "No cabal.project.freeze was found, so the Hackage package set was not captured",
|
|
1019
|
+
"targetTier": "resolved",
|
|
1020
|
+
"actions": [
|
|
1021
|
+
{
|
|
1022
|
+
"kind": "build",
|
|
1023
|
+
"command": "{{cabal}} freeze"
|
|
1024
|
+
},
|
|
1025
|
+
{
|
|
1026
|
+
"kind": "rerun"
|
|
1027
|
+
}
|
|
1028
|
+
],
|
|
1029
|
+
"verify": {
|
|
1030
|
+
"rules": [],
|
|
1031
|
+
"expectTier": "resolved",
|
|
1032
|
+
"eventsCleared": [
|
|
1033
|
+
"haskell.freeze-missing"
|
|
1034
|
+
]
|
|
1035
|
+
},
|
|
1036
|
+
"docs": "https://cyclonedx.github.io/cdxgen/#/PROJECT_TYPES?id=haskell"
|
|
1037
|
+
},
|
|
1038
|
+
"binary.paths.inferred": {
|
|
1039
|
+
"ecosystem": "generic",
|
|
1040
|
+
"kind": "fallback.engaged",
|
|
1041
|
+
"impact": "none",
|
|
1042
|
+
"title": "Image config carried no PATH; binary directories were inferred from disk",
|
|
1043
|
+
"targetTier": null,
|
|
1044
|
+
"actions": [
|
|
1045
|
+
{
|
|
1046
|
+
"kind": "config",
|
|
1047
|
+
"command": "Rebuild the image with an explicit PATH in the image config so binary directories are read instead of inferred"
|
|
1048
|
+
}
|
|
1049
|
+
],
|
|
1050
|
+
"verify": {
|
|
1051
|
+
"rules": [],
|
|
1052
|
+
"expectTier": null,
|
|
1053
|
+
"eventsCleared": [
|
|
1054
|
+
"binary.paths.inferred"
|
|
1055
|
+
]
|
|
1056
|
+
},
|
|
1057
|
+
"docs": "https://cyclonedx.github.io/cdxgen/#/PROJECT_TYPES"
|
|
1058
|
+
},
|
|
1059
|
+
"policy.secure-mode": {
|
|
1060
|
+
"ecosystem": "generic",
|
|
1061
|
+
"kind": "evidence.degraded",
|
|
1062
|
+
"impact": "versions",
|
|
1063
|
+
"title": "A policy restriction prevented command execution",
|
|
1064
|
+
"targetTier": null,
|
|
1065
|
+
"actions": [
|
|
1066
|
+
{
|
|
1067
|
+
"kind": "env",
|
|
1068
|
+
"command": "Set CDXGEN_ALLOWED_COMMANDS to the exact commands this project's build needs and re-run",
|
|
1069
|
+
"windows": "The same CDXGEN_ALLOWED_COMMANDS variable applies on Windows"
|
|
1070
|
+
}
|
|
1071
|
+
],
|
|
1072
|
+
"verify": {
|
|
1073
|
+
"rules": [],
|
|
1074
|
+
"expectTier": null,
|
|
1075
|
+
"eventsCleared": [
|
|
1076
|
+
"policy.secure-mode"
|
|
1077
|
+
]
|
|
1078
|
+
},
|
|
1079
|
+
"docs": "https://cyclonedx.github.io/cdxgen/#/ENV"
|
|
1080
|
+
},
|
|
1081
|
+
"policy.host-blocked": {
|
|
1082
|
+
"ecosystem": "generic",
|
|
1083
|
+
"kind": "evidence.degraded",
|
|
1084
|
+
"impact": "licenses",
|
|
1085
|
+
"title": "A remote host was blocked by the host allow-list",
|
|
1086
|
+
"targetTier": null,
|
|
1087
|
+
"actions": [
|
|
1088
|
+
{
|
|
1089
|
+
"kind": "env",
|
|
1090
|
+
"command": "Add the registry host that the run needed to CDXGEN_ALLOWED_HOSTS and re-run"
|
|
1091
|
+
}
|
|
1092
|
+
],
|
|
1093
|
+
"verify": {
|
|
1094
|
+
"rules": [],
|
|
1095
|
+
"expectTier": null,
|
|
1096
|
+
"eventsCleared": [
|
|
1097
|
+
"policy.host-blocked"
|
|
1098
|
+
]
|
|
1099
|
+
},
|
|
1100
|
+
"docs": "https://cyclonedx.github.io/cdxgen/#/ENV"
|
|
1101
|
+
},
|
|
1102
|
+
"policy.dry-run": {
|
|
1103
|
+
"ecosystem": "generic",
|
|
1104
|
+
"kind": "evidence.degraded",
|
|
1105
|
+
"impact": "none",
|
|
1106
|
+
"title": "Dry-run mode short-circuited an action",
|
|
1107
|
+
"targetTier": null,
|
|
1108
|
+
"actions": [
|
|
1109
|
+
{
|
|
1110
|
+
"kind": "env",
|
|
1111
|
+
"command": "Re-run without the --dry-run option to generate the full BOM"
|
|
1112
|
+
}
|
|
1113
|
+
],
|
|
1114
|
+
"verify": {
|
|
1115
|
+
"rules": [],
|
|
1116
|
+
"expectTier": null,
|
|
1117
|
+
"eventsCleared": [
|
|
1118
|
+
"policy.dry-run"
|
|
1119
|
+
]
|
|
1120
|
+
},
|
|
1121
|
+
"docs": "https://cyclonedx.github.io/cdxgen/#/ENV"
|
|
1122
|
+
},
|
|
1123
|
+
"policy.offline": {
|
|
1124
|
+
"ecosystem": "generic",
|
|
1125
|
+
"kind": "evidence.degraded",
|
|
1126
|
+
"impact": "licenses",
|
|
1127
|
+
"title": "A network request failed with a transport error",
|
|
1128
|
+
"targetTier": null,
|
|
1129
|
+
"actions": [
|
|
1130
|
+
{
|
|
1131
|
+
"kind": "env",
|
|
1132
|
+
"command": "Restore network access or point the registry environment variables at a reachable mirror, then re-run"
|
|
1133
|
+
}
|
|
1134
|
+
],
|
|
1135
|
+
"verify": {
|
|
1136
|
+
"rules": [],
|
|
1137
|
+
"expectTier": null,
|
|
1138
|
+
"eventsCleared": [
|
|
1139
|
+
"policy.offline"
|
|
1140
|
+
]
|
|
1141
|
+
},
|
|
1142
|
+
"docs": "https://cyclonedx.github.io/cdxgen/#/ENV"
|
|
1143
|
+
}
|
|
1144
|
+
}
|