Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
9265fba
Initial commit
stevespringett Jul 9, 2025
513ef74
Added requirement prototype
stevespringett Jul 23, 2025
83ce9d0
Initial checkin of blueprint and threat model support
stevespringett Sep 3, 2025
f4d10d4
Adding threat models
Oct 29, 2025
833bcc1
Merge remote-tracking branch 'origin/master' into 2.0-dev-threatmodeling
stevespringett Nov 11, 2025
e124ae5
Merge remote-tracking branch 'origin/2.0-dev' into 2.0-dev-threatmode…
stevespringett Nov 11, 2025
7a04e95
Modified risk and model schemas
petra-dv Nov 23, 2025
1bc014f
Added .DS_Store to ignore
stevespringett Dec 5, 2025
21b4d38
Merge remote-tracking branch 'origin/2.0-dev' into 2.0-dev-threatmode…
stevespringett Dec 5, 2025
83e8122
Minor corrections to get bundle to compile.
stevespringett Dec 5, 2025
f52760a
chore: update bundled schemas [skip ci]
github-actions[bot] Dec 5, 2025
e8f7aba
adressed comments and reviewed further the schema
petra-dv Dec 7, 2025
53cfdd1
fixed naming inconsistency
petra-dv Dec 7, 2025
d999fac
Merge branch '2.0-dev-threatmodeling' into 2.0-dev-threat-modeling-pe…
stevespringett Dec 10, 2025
d1ebee2
Modified risk and model schemas (#732)
stevespringett Dec 10, 2025
c6e1657
Fixed JSON issue
stevespringett Dec 10, 2025
941fa1f
Initial checkin of behavior model. Should satisfy goals outlined in #…
stevespringett Dec 15, 2025
96117b4
Extend cryptography-related behaviors
bhess Jan 8, 2026
70de945
A few extensions to the crypto behaviors
bhess Jan 14, 2026
bb7e30e
Makes sure meta:enum descrptions are available for the new behaviors.…
bhess Jan 22, 2026
20ee286
Extend cryptography-related behaviors (#772)
stevespringett Jan 22, 2026
fd3b448
Major changes to blueprints and other changes to supporting schemas. …
stevespringett Mar 4, 2026
e4cd7d6
chore: update bundled schemas [skip ci]
github-actions[bot] Mar 4, 2026
38a2a23
Behavior and blueprint updates. Minor changes to data schema
stevespringett Mar 27, 2026
55b67ea
chore: update bundled schemas [skip ci]
github-actions[bot] Mar 27, 2026
f730ce0
Updated to use cases and requirements - moving them to definitions
stevespringett Mar 27, 2026
1343aca
Merge remote-tracking branch 'origin/2.0-dev-threatmodeling' into 2.0…
stevespringett Mar 27, 2026
935364b
correted json syntax
stevespringett Mar 27, 2026
27282d3
chore: update bundled schemas [skip ci]
github-actions[bot] Mar 27, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
.DS_Store
.idea/
.vscode/
tools/target/
2 changes: 1 addition & 1 deletion schema/2.0/cyclonedx-2.0-bundled.min.schema.json

Large diffs are not rendered by default.

14,409 changes: 9,817 additions & 4,592 deletions schema/2.0/cyclonedx-2.0-bundled.schema.json

Large diffs are not rendered by default.

3 changes: 3 additions & 0 deletions schema/2.0/cyclonedx-2.0.schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,9 @@
"definitions": {
"$ref": "model/cyclonedx-definition-2.0.schema.json#/$defs/definitions"
},
"blueprints": {
"$ref": "model/cyclonedx-blueprint-2.0.schema.json#/$defs/blueprints"
},
"citations": {
"$ref": "model/cyclonedx-citation-2.0.schema.json#/$defs/citations"
},
Expand Down
246 changes: 246 additions & 0 deletions schema/2.0/model/cyclonedx-behavior-2.0.schema.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,246 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://cyclonedx.org/schema/2.0/model/cyclonedx-behavior-2.0.schema.json",
"type": "null",
"title": "CycloneDX Behavior Model",
"$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.",
"$defs": {
"behaviors": {
"type": "object",
"title": "Behaviors",
"description": "Behaviors performed by objects within the BOM.",
"additionalProperties": false,
"properties": {
"instances": {
"type": "array",
"title": "Instances",
"description": "Individual behavior instances.",
"uniqueItems": true,
"items": {
"$ref": "#/$defs/behaviorInstance"
}
},
"flows": {
"type": "array",
"title": "Flows",
"description": "Behavior flows that organise behaviors into operational patterns.",
"uniqueItems": true,
"items": {
"$ref": "#/$defs/behaviorFlow"
}
}
}
},
"behaviorInstance": {
"type": "object",
"title": "Behavior Instance",
"description": "A behavior performed by one or more objects within the BOM.",
"additionalProperties": false,
"required": ["bom-ref", "behavior"],
"properties": {
"bom-ref": {
"$ref": "cyclonedx-common-2.0.schema.json#/$defs/refType"
},
"behavior": {
"$ref": "../behavior-taxonomy.schema.json",
"title": "Behavior",
"description": "The behavior from the taxonomy."
},
"acknowledgment": {
"$ref": "#/$defs/acknowledgment"
},
"trigger": {
"$ref": "#/$defs/trigger"
},
"actors": {
"type": "array",
"title": "Actors",
"description": "References to objects that perform this behavior.",
"uniqueItems": true,
"items": {
"$ref": "cyclonedx-common-2.0.schema.json#/$defs/refType"
}
},
"targets": {
"type": "array",
"title": "Targets",
"description": "References to objects affected by this behavior.",
"uniqueItems": true,
"items": {
"$ref": "cyclonedx-common-2.0.schema.json#/$defs/refType"
}
}
}
},
"trigger": {
"type": "string",
"title": "Trigger",
"description": "The condition or event that initiates a behavior.",
"enum": [
"startup",
"shutdown",
"scheduled",
"event-driven",
"user-initiated",
"api-call",
"signal",
"condition-based",
"continuous",
"on-demand",
"unknown"
],
"meta:enum": {
"startup": "Triggered during system or component initialisation.",
"shutdown": "Triggered during system or component termination.",
"scheduled": "Triggered at predetermined times or intervals.",
"event-driven": "Triggered in response to a specific event.",
"user-initiated": "Triggered by explicit user action.",
"api-call": "Triggered by an API invocation.",
"signal": "Triggered by a system or inter-process signal.",
"condition-based": "Triggered when specific conditions are met.",
"continuous": "Runs continuously during normal operation.",
"on-demand": "Triggered on demand as needed.",
"unknown": "The trigger mechanism is not known."
}
},
"ordering": {
"type": "string",
"title": "Ordering",
"description": "Execution semantics for steps within a flow.",
"default": "sequential",
"enum": [
"sequential",
"unordered",
"parallel",
"conditional"
],
"meta:enum": {
"sequential": "Steps execute in ordinal order. Each completes before the next begins.",
"unordered": "All steps execute, but order is not guaranteed.",
"parallel": "Steps may execute concurrently.",
"conditional": "Step execution is determined by runtime conditions."
}
},
"acknowledgment": {
"type": "array",
"title": "Acknowledgment",
"description": "Indicates how the behavior or flow was identified. Multiple values indicate the behavior was both declared and observed.",
"uniqueItems": true,
"items": {
"type": "string",
"enum": [
"declared",
"observed"
],
"meta:enum": {
"declared": "The behavior was explicitly declared, designed, or expected. Typically used for threat modelling, security requirements, and architectural documentation.",
"observed": "The behavior was observed, detected, or measured during analysis or runtime. Typically used for anomaly detection, incident response, and behavioural analysis."
}
}
},
"behaviorFlow": {
"type": "object",
"title": "Behavior Flow",
"description": "An organised collection of behaviors forming a coherent process.",
"additionalProperties": false,
"required": ["bom-ref", "steps"],
"properties": {
"bom-ref": {
"$ref": "cyclonedx-common-2.0.schema.json#/$defs/refType"
},
"acknowledgment": {
"$ref": "#/$defs/acknowledgment"
},
"ordering": {
"$ref": "#/$defs/ordering"
},
"trigger": {
"$ref": "#/$defs/trigger"
},
"steps": {
"type": "array",
"title": "Steps",
"description": "The steps that comprise this flow.",
"minItems": 1,
"items": {
"$ref": "#/$defs/flowStep"
}
}
},
"allOf": [
{
"if": {
"anyOf": [
{ "properties": { "ordering": { "const": "sequential" } }, "required": ["ordering"] },
{ "not": { "required": ["ordering"] } }
]
},
"then": {
"properties": {
"steps": {
"items": {
"required": ["ordinal"]
}
}
}
}
}
]
},
"flowStep": {
"type": "object",
"title": "Flow Step",
"description": "A single step within a behavior flow.",
"additionalProperties": false,
"properties": {
"ordinal": {
"type": "integer",
"title": "Ordinal",
"description": "Position within the flow. Required when ordering is 'sequential' or omitted.",
"minimum": 1
},
"behavior": {
"$ref": "../behavior-taxonomy.schema.json",
"title": "Behavior",
"description": "The behavior performed in this step. Mutually exclusive with 'ref' and 'flow'."
},
"trigger": {
"$ref": "#/$defs/trigger"
},
"ref": {
"$ref": "cyclonedx-common-2.0.schema.json#/$defs/refType",
"title": "Behavior Reference",
"description": "Reference to a behavior instance. Mutually exclusive with 'behavior' and 'flow'."
},
"flow": {
"$ref": "cyclonedx-common-2.0.schema.json#/$defs/refType",
"title": "Flow Reference",
"description": "Reference to a nested flow. Mutually exclusive with 'behavior' and 'ref'."
},
"actors": {
"type": "array",
"title": "Actors",
"description": "References to objects that perform this step.",
"uniqueItems": true,
"items": {
"$ref": "cyclonedx-common-2.0.schema.json#/$defs/refType"
}
},
"targets": {
"type": "array",
"title": "Targets",
"description": "References to objects affected by this step.",
"uniqueItems": true,
"items": {
"$ref": "cyclonedx-common-2.0.schema.json#/$defs/refType"
}
}
},
"oneOf": [
{ "required": ["behavior"] },
{ "required": ["ref"] },
{ "required": ["flow"] }
]
}
}
}
Loading