|
3 | 3 | "$id": "https://cyclonedx.org/schema/2.0/model/cyclonedx-requirement-2.0.schema.json", |
4 | 4 | "type": "null", |
5 | 5 | "title": "CycloneDX Engineering Requirement Model", |
6 | | - "$comment" : "OWASP CycloneDX is an Ecma International standard (ECMA-424) developed in collaboration between the OWASP Foundation and Ecma Technical Committee 54 (TC54). The standard is published under a royalty-free patent policy. This JSON schema is the reference implementation and is licensed under the Apache License 2.0.", |
| 6 | + "$comment": "OWASP CycloneDX is an Ecma International standard (ECMA-424) developed in collaboration between the OWASP Foundation and Ecma Technical Committee 54 (TC54). The standard is published under a royalty-free patent policy. This JSON schema is the reference implementation and is licensed under the Apache License 2.0.", |
7 | 7 | "$defs": { |
8 | 8 | "requirements": { |
9 | 9 | "type": "array", |
|
91 | 91 | } |
92 | 92 | }, |
93 | 93 | "parent": { |
94 | | - "type": "string", |
| 94 | + "$ref": "cyclonedx-common-2.0.schema.json#/$defs/refLinkType", |
95 | 95 | "title": "Parent BOM Reference", |
96 | | - "description": "The optional `bom-ref` to a parent requirement. This establishes a hierarchy of requirements." |
| 96 | + "description": "Optional reference using bom-link or bom-ref to a parent requirement. Establishes a hierarchy of requirements." |
97 | 97 | }, |
98 | 98 | "rationale": { |
99 | 99 | "type": "string", |
|
274 | 274 | "description": "A description of the dependency relationship." |
275 | 275 | } |
276 | 276 | } |
| 277 | + }, |
| 278 | + "requirementAssertions": { |
| 279 | + "type": "array", |
| 280 | + "title": "Requirement Assertions", |
| 281 | + "description": "A list of assertions describing how a component relates to specific requirements.", |
| 282 | + "uniqueItems": true, |
| 283 | + "items": { |
| 284 | + "type": "object", |
| 285 | + "title": "Requirement Assertion", |
| 286 | + "description": "An assertion linking one or more requirements to a component, specifying the nature of the relationship.", |
| 287 | + "required": [ |
| 288 | + "assertionType", |
| 289 | + "requirementRefs" |
| 290 | + ], |
| 291 | + "additionalProperties": false, |
| 292 | + "properties": { |
| 293 | + "bom-ref": { |
| 294 | + "$ref": "cyclonedx-common-2.0.schema.json#/$defs/refType", |
| 295 | + "title": "BOM Reference", |
| 296 | + "description": "An identifier which can be used to reference the assertion elsewhere in the BOM. Every `bom-ref` must be unique within the BOM." |
| 297 | + }, |
| 298 | + "assertionType": { |
| 299 | + "type": "string", |
| 300 | + "title": "Assertion Type", |
| 301 | + "description": "The type of assertion being made about the relationship between the component and the requirement.", |
| 302 | + "enum": [ |
| 303 | + "conflicts", |
| 304 | + "not-applicable", |
| 305 | + "not-assessed", |
| 306 | + "other", |
| 307 | + "partially-satisfies", |
| 308 | + "satisfies", |
| 309 | + "violates" |
| 310 | + ], |
| 311 | + "meta:enum": { |
| 312 | + "conflicts": "The component is in tension with the requirement but a definitive determination of violation has not been made. This may indicate partial incompatibility, competing constraints, or an unresolved evaluation.", |
| 313 | + "not-applicable": "The requirement does not pertain to this component. The evaluator has reviewed the requirement and determined it is irrelevant.", |
| 314 | + "not-assessed": "The relationship between the component and the requirement has not yet been evaluated.", |
| 315 | + "other": "A relationship that does not fit into the other predefined assertion types.", |
| 316 | + "partially-satisfies": "The component partially meets the requirement but does not fully satisfy all of its conditions or acceptance criteria.", |
| 317 | + "satisfies": "The component fully satisfies the requirement, meeting all of its conditions and acceptance criteria.", |
| 318 | + "violates": "The component has been evaluated and conclusively determined to not meet the requirement, breaching one or more of its conditions or acceptance criteria." |
| 319 | + } |
| 320 | + }, |
| 321 | + "requirementRefs": { |
| 322 | + "type": "array", |
| 323 | + "title": "Requirement References", |
| 324 | + "description": "A list of BOM references linking to requirement objects defined in the BOM.", |
| 325 | + "uniqueItems": true, |
| 326 | + "items": { |
| 327 | + "$ref": "cyclonedx-common-2.0.schema.json#/$defs/refLinkType" |
| 328 | + } |
| 329 | + }, |
| 330 | + "description": { |
| 331 | + "type": "string", |
| 332 | + "title": "Description", |
| 333 | + "description": "Additional context or clarification regarding the assertion." |
| 334 | + } |
| 335 | + } |
| 336 | + } |
277 | 337 | } |
278 | 338 | } |
279 | 339 | } |
0 commit comments