Skip to content

Commit b29eff5

Browse files
authored
Merge pull request #1872 from markscott-ms/schema-flows
CALM Schema 1.1: revised 'flows' definition
2 parents 108f6ad + 8bd114e commit b29eff5

22 files changed

+1226
-10
lines changed

calm-ai/tools/flow-creation.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,8 @@ The complete flow schema from the FINOS CALM v1.0 specification:
4343
"$ref": "core.json#/defs/metadata"
4444
}
4545
},
46-
"required": ["unique-id", "name", "description", "transitions"]
46+
"required": ["unique-id", "name", "description", "transitions"],
47+
"additionalProperties": false
4748
},
4849
"transition": {
4950
"type": "object",

calm/release/1.1/RELEASE_NOTES.md

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# CALM Schema v1.1 Release Notes
2+
3+
CALM v1.1 is a minor revision of 1.0, fixing the definition of flows.
4+
5+
## Key Updates
6+
7+
### Flows
8+
9+
The schema for business flows has been revised to correct an error in the 1.0 definition.
10+
11+
Whilst not strictly backwards compatible, the changes are minor and should be straightforward to implement.
12+
13+
Specific changes are:
14+
15+
* Flows may not have any additional properties beyond those defined in the schema.
16+
* Users may make use of metadata for extensibility.
17+
* Flow transitions MUST contain `relationship-unique-id`, `sequence-number`, and `description` properties.
18+
* This requirement was incorrectly coded in the 1.0 schema.
19+
20+
## Question and Feedback
21+
22+
For questions or feedback, please engage with the CALM community through the appropriate channels.

calm/release/1.1/meta/calm.json

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
{
2+
"$schema": "https://json-schema.org/draft/2020-12/schema",
3+
"$id": "https://calm.finos.org/release/1.1/meta/calm.json",
4+
5+
"$vocabulary": {
6+
"https://json-schema.org/draft/2020-12/vocab/core": true,
7+
"https://json-schema.org/draft/2020-12/vocab/applicator": true,
8+
"https://json-schema.org/draft/2020-12/vocab/validation": true,
9+
"https://json-schema.org/draft/2020-12/vocab/meta-data": true,
10+
"https://json-schema.org/draft/2020-12/vocab/format-annotation": true,
11+
"https://json-schema.org/draft/2020-12/vocab/content": true,
12+
"https://calm.finos.org/release/1.1/meta/core.json": true
13+
},
14+
"$dynamicAnchor": "meta",
15+
16+
"title": "Common Architecture Language Model (CALM) Schema",
17+
"allOf": [
18+
{"$ref": "https://json-schema.org/draft/2020-12/schema"},
19+
{"$ref": "https://calm.finos.org/release/1.1/meta/core.json"}
20+
]
21+
}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
{
2+
"$schema": "https://json-schema.org/draft/2020-12/schema",
3+
"$id": "https://calm.finos.org/release/1.1/meta/control-requirement.json",
4+
"title": "Common Architecture Language Model Control Requirement",
5+
"description": "Schema for defining control requirements within the Common Architecture Language Model.",
6+
"type": "object",
7+
"properties": {
8+
"control-id": {
9+
"type": "string",
10+
"description": "The unique identifier of this control, which has the potential to be used for linking evidence"
11+
},
12+
"name": {
13+
"type": "string",
14+
"description": "The name of the control requirement that provides contextual meaning within a given domain"
15+
},
16+
"description": {
17+
"type": "string",
18+
"description": "A more detailed description of the control and information on what a developer needs to consider"
19+
}
20+
},
21+
"required": [
22+
"control-id",
23+
"name",
24+
"description"
25+
],
26+
"examples": [
27+
{
28+
"control-id": "CR-001",
29+
"name": "Access Control",
30+
"description": "Ensure that access to sensitive information is restricted."
31+
}
32+
]
33+
}

calm/release/1.1/meta/control.json

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
{
2+
"$schema": "https://json-schema.org/draft/2020-12/schema",
3+
"$id": "https://calm.finos.org/release/1.1/meta/control.json",
4+
"title": "Common Architecture Language Model Controls",
5+
"description": "Controls model requirements for domains. For example, a security domain contains a series of control requirements",
6+
"defs": {
7+
"control-detail": {
8+
"type": "object",
9+
"properties": {
10+
"requirement-url": {
11+
"type": "string",
12+
"description": "The requirement schema that specifies how a control should be defined"
13+
},
14+
"config-url": {
15+
"type": "string",
16+
"description": "The configuration of how the control requirement schema is met"
17+
},
18+
"config": {
19+
"type": "object",
20+
"description": "Inline configuration of how the control requirement schema is met"
21+
}
22+
},
23+
"required": [
24+
"requirement-url"
25+
],
26+
"oneOf": [
27+
{
28+
"required": ["config-url"]
29+
},
30+
{
31+
"required": ["config"]
32+
}
33+
]
34+
},
35+
"controls": {
36+
"type": "object",
37+
"patternProperties": {
38+
"^[a-zA-Z0-9-]+$": {
39+
"type": "object",
40+
"properties": {
41+
"description": {
42+
"type": "string",
43+
"description": "A description of a control and how it applies to a given architecture"
44+
},
45+
"requirements": {
46+
"type": "array",
47+
"items": {
48+
"$ref": "#/defs/control-detail"
49+
}
50+
}
51+
},
52+
"required": [
53+
"description",
54+
"requirements"
55+
]
56+
}
57+
}
58+
}
59+
}
60+
}

0 commit comments

Comments
 (0)