Skip to content

Commit 9265fba

Browse files
Initial commit
Signed-off-by: Steve Springett <[email protected]>
1 parent eac0ac6 commit 9265fba

File tree

2 files changed

+256
-0
lines changed

2 files changed

+256
-0
lines changed
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
{
2+
"$schema": "https://json-schema.org/draft/2020-12/schema",
3+
"$id": "http://localhost:8080/schema/2.0/cyclonedx-threat-2.0.schema.json",
4+
"type": "null",
5+
"title": "CycloneDX Transparency Expression Language: Threat",
6+
"$comment": "CycloneDX JSON schema is published under the terms of the Apache License 2.0.",
7+
"$defs": {
8+
"riskAttributes": {
9+
"type": "string",
10+
"description": "A classification of security and privacy attributes that represent potential impact areas when a threat is realised. These attributes help identify what is at risk, and can also be used to prioritise which attributes are most important to protect for a given application, system, or threat model.",
11+
"enum": [
12+
"accountability",
13+
"authentication",
14+
"authorization",
15+
"authenticity",
16+
"availability",
17+
"compliance",
18+
"confidentiality",
19+
"connectivity",
20+
"control",
21+
"data_subject_rights",
22+
"integrity",
23+
"minimisation",
24+
"non-repudiation",
25+
"possession",
26+
"privacy",
27+
"purpose_limitation",
28+
"transparency",
29+
"utility"
30+
],
31+
"meta:enum": {
32+
"accountability": "Assigning responsibility for actions and decisions to individuals or entities.",
33+
"authentication": "Verifying the identity of users, devices, or systems before granting access.",
34+
"authorization": "Granting permissions based on identity and roles to perform specific actions or access resources.",
35+
"authenticity": "Ensuring that data, communications, or entities are genuine and can be verified.",
36+
"availability": "Ensuring systems, data, and services are accessible and operational when needed.",
37+
"compliance": "Adherence to applicable laws, regulations, policies, and standards.",
38+
"confidentiality": "Preventing unauthorised access to or disclosure of information.",
39+
"connectivity": "Maintaining secure and reliable communication between systems or components.",
40+
"control": "Enabling individuals to manage how their personal data is used and shared.",
41+
"data_subject_rights": "Guaranteeing individuals' rights to access, correct, delete, or restrict their personal data.",
42+
"integrity": "Ensuring information is accurate, complete, and unaltered by unauthorised actors.",
43+
"minimisation": "Limiting data collection and retention to what is strictly necessary for the intended purpose.",
44+
"non-repudiation": "Providing proof of origin and delivery to prevent denial of actions or communications.",
45+
"possession": "Ensuring control or custody over data or assets, regardless of ownership.",
46+
"privacy": "Protecting individuals' personal information in accordance with legal and ethical standards.",
47+
"purpose_limitation": "Ensuring that personal data is only used for the purpose explicitly specified at collection.",
48+
"transparency": "Ensuring individuals are informed about data practices, including collection, use, and sharing.",
49+
"utility": "Ensuring data is usable and in a format suitable for the intended purpose."
50+
}
51+
}
52+
}
53+
}
Lines changed: 203 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,203 @@
1+
{
2+
"$schema": "https://json-schema.org/draft/2020-12/schema",
3+
"$id": "http://localhost:8080/schema/2.0/cyclonedx-usecase-2.0.schema.json",
4+
"type": "object",
5+
"title": "CycloneDX Transparency Expression Language: Use Case",
6+
"$comment": "CycloneDX JSON schema is published under the terms of the Apache License 2.0.",
7+
"additionalProperties": false,
8+
"properties": {
9+
"bom-ref": {
10+
"type": "string",
11+
"title": "BOM Reference",
12+
"description": "An optional identifier which can be used to reference the use case elsewhere in the BOM. Every bom-ref must be unique within the BOM."
13+
},
14+
"name": {
15+
"type": "string",
16+
"title": "Name",
17+
"description": "The name or title of the use case."
18+
},
19+
"description": {
20+
"type": "string",
21+
"title": "Description",
22+
"description": "A detailed description of the use case."
23+
},
24+
"actors": {
25+
"type": ,"array",
26+
"title": "Actors",
27+
"description": "The stakeholders or users who interact with the system in this use case.",
28+
"items": {
29+
"type": "string"
30+
}
31+
},
32+
"preconditions": {
33+
"type": "array",
34+
"title": "Preconditions",
35+
"description": "Conditions that must be true before the use case can be executed.",
36+
"items": {
37+
"type": "string"
38+
}
39+
},
40+
"postconditions": {
41+
"type": "array",
42+
"title": "Postconditions",
43+
"description": "Conditions that will be true after the use case has been successfully executed.",
44+
"items": {
45+
"type": "string"
46+
}
47+
},
48+
"mainFlow": {
49+
"type": "array",
50+
"title": "Main Flow",
51+
"description": "The primary sequence of steps that describe the use case.",
52+
"items": {
53+
"$ref": "#/$defs/step"
54+
}
55+
},
56+
"alternativeFlows": {
57+
"type": "array",
58+
"title": "Alternative Flows",
59+
"description": "Alternative sequences of steps that may occur in the use case.",
60+
"items": {
61+
"$ref": "#/$defs/flow"
62+
}
63+
},
64+
"exceptions": {
65+
"type": "array",
66+
"title": "Exceptions",
67+
"description": "Error scenarios that may occur during the execution of the use case.",
68+
"items": {
69+
"$ref": "#/$defs/exception"
70+
}
71+
},
72+
"successCriteria": {
73+
"type": "array",
74+
"title": "Success Criteria",
75+
"description": "Criteria that determine whether the use case has been successfully executed.",
76+
"items": {
77+
"type": "string"
78+
}
79+
},
80+
"notes": {
81+
"type": "array",
82+
"title": "Notes",
83+
"description": "Additional information or comments about the use case.",
84+
"items": {
85+
"type": "string"
86+
}
87+
},
88+
"properties": {
89+
"type": "array",
90+
"title": "Properties",
91+
"description": "Provides the ability to document properties in a name-value store. This provides flexibility to include data not officially supported in the standard.",
92+
"items": {
93+
"$ref": "#/$defs/property"
94+
}
95+
}
96+
},
97+
"$defs": {
98+
"step": {
99+
"type": "object",
100+
"title": "Step",
101+
"description": "A single step in a use case flow.",
102+
"additionalProperties": false,
103+
"properties": {
104+
"number": {
105+
"type": "integer",
106+
"title": "Number",
107+
"description": "The sequence number of the step."
108+
},
109+
"description": {
110+
"type": "string",
111+
"title": "Description",
112+
"description": "A description of the step."
113+
},
114+
"actor": {
115+
"type": "string",
116+
"title": "Actor",
117+
"description": "The actor who performs this step."
118+
}
119+
}
120+
},
121+
"flow": {
122+
"type": "object",
123+
"title": "Flow",
124+
"description": "A sequence of steps in a use case.",
125+
"additionalProperties": false,
126+
"properties": {
127+
"name": {
128+
"type": "string",
129+
"title": "Name",
130+
"description": "The name of the flow."
131+
},
132+
"description": {
133+
"type": "string",
134+
"title": "Description",
135+
"description": "A description of the flow."
136+
},
137+
"condition": {
138+
"type": "string",
139+
"title": "Condition",
140+
"description": "The condition under which this alternative flow is executed."
141+
},
142+
"steps": {
143+
"type": "array",
144+
"title": "Steps",
145+
"description": "The sequence of steps in the flow.",
146+
"items": {
147+
"$ref": "#/$defs/step"
148+
}
149+
}
150+
}
151+
},
152+
"exception": {
153+
"type": "object",
154+
"title": "Exception",
155+
"description": "An error scenario in a use case.",
156+
"additionalProperties": false,
157+
"properties": {
158+
"name": {
159+
"type": "string",
160+
"title": "Name",
161+
"description": "The name of the exception."
162+
},
163+
"description": {
164+
"type": "string",
165+
"title": "Description",
166+
"description": "A description of the exception."
167+
},
168+
"condition": {
169+
"type": "string",
170+
"title": "Condition",
171+
"description": "The condition under which this exception occurs."
172+
},
173+
"handling": {
174+
"type": "string",
175+
"title": "Handling",
176+
"description": "How the exception is handled."
177+
}
178+
}
179+
},
180+
"property": {
181+
"type": "object",
182+
"title": "Property",
183+
"description": "A name-value property.",
184+
"additionalProperties": false,
185+
"required": [
186+
"name",
187+
"value"
188+
],
189+
"properties": {
190+
"name": {
191+
"type": "string",
192+
"title": "Name",
193+
"description": "The name of the property."
194+
},
195+
"value": {
196+
"type": "string",
197+
"title": "Value",
198+
"description": "The value of the property."
199+
}
200+
}
201+
}
202+
}
203+
}

0 commit comments

Comments
 (0)