@cyberismo/assets 0.0.10 → 0.0.12
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/dist/index.js +130 -22
- package/dist/schemas.d.ts +267 -210
- package/dist/static/defaultGraphView/.schema +7 -0
- package/dist/static/defaultGraphView/parameterSchema.json +22 -0
- package/dist/static/defaultGraphView/view.lp.hbs +0 -0
- package/dist/static/defaultReport/parameterSchema.json +4 -4
- package/package.json +2 -2
- package/src/calculations/common/queryLanguage.lp +8 -1
- package/src/exportPdfReport/index.adoc.hbs +25 -6
- package/src/exportPdfReport/query.lp.hbs +112 -2
- package/src/hub/moduleList.json +34 -0
- package/src/schema/cardBaseSchema.json +4 -4
- package/src/schema/cardTreeDirectorySchema.json +179 -179
- package/src/schema/cardsConfigSchema.json +16 -4
- package/src/schema/csvSchema.json +3 -3
- package/src/schema/dotSchema.json +3 -3
- package/src/schema/hubSchema.json +58 -0
- package/src/schema/macros/createCardsMacroSchema.json +3 -3
- package/src/schema/macros/graphMacroBaseSchema.json +3 -3
- package/src/schema/macros/imageMacroSchema.json +3 -3
- package/src/schema/macros/includeMacroSchema.json +3 -3
- package/src/schema/macros/percentageMacroSchema.json +3 -3
- package/src/schema/macros/reportMacroBaseSchema.json +3 -3
- package/src/schema/macros/scoreCardMacroSchema.json +3 -3
- package/src/schema/macros/vegaLiteMacroSchema.json +8 -8
- package/src/schema/macros/vegaMacroSchema.json +10 -10
- package/src/schema/macros/xrefMacroSchema.json +3 -3
- package/src/schema/resources/cardTypeSchema.json +4 -4
- package/src/schema/resources/fieldTypeSchema.json +4 -4
- package/src/schema/resources/graphModelSchema.json +3 -3
- package/src/schema/resources/graphViewSchema.json +3 -3
- package/src/schema/resources/linkTypeSchema.json +4 -4
- package/src/schema/resources/reportSchema.json +3 -3
- package/src/schema/resources/templateSchema.json +4 -4
- package/src/schema/resources/workflowSchema.json +4 -4
- package/src/schema/schema.json +4 -4
- package/src/schemas.ts +2 -0
- package/src/static/defaultGraphView/.schema +7 -0
- package/src/static/defaultGraphView/parameterSchema.json +22 -0
- package/src/static/defaultGraphView/view.lp.hbs +0 -0
- package/src/static/defaultReport/parameterSchema.json +4 -4
|
@@ -132,18 +132,21 @@ childResult(Key, (Key, Field, Value), Field) :-
|
|
|
132
132
|
resultField((Key, Field, Value), "value", Value, "shortText") :-
|
|
133
133
|
childResult(Key, (Key, Field, Value), Field),
|
|
134
134
|
field(Key, Field, Value),
|
|
135
|
+
not resultField(Key, Field, Value, "list"),
|
|
135
136
|
dataType(Key, Field, "list").
|
|
136
137
|
|
|
137
138
|
resultField((Key, Field, Value), "index", Index, "integer") :-
|
|
138
139
|
childResult(Key, (Key, Field, Value), Field),
|
|
139
140
|
field(Key, Field, Value),
|
|
140
141
|
dataType(Key, Field, "list"),
|
|
142
|
+
not resultField(Key, Field, Value, "list"),
|
|
141
143
|
field((Field, Value), "index", Index).
|
|
142
144
|
|
|
143
145
|
resultField((Key, Field, Value), "displayName", EnumDisplayValue, "shortText") :-
|
|
144
146
|
childResult(Key, (Key, Field, Value), Field),
|
|
145
147
|
field(Key, Field, Value),
|
|
146
148
|
dataType(Key, Field, "list"),
|
|
149
|
+
not resultField(Key, Field, Value, "list"),
|
|
147
150
|
field((Field, Value), "enumDisplayValue", EnumDisplayValue).
|
|
148
151
|
|
|
149
152
|
% enum
|
|
@@ -159,11 +162,12 @@ resultField((Key, Field), "value", Value, "shortText") :-
|
|
|
159
162
|
|
|
160
163
|
resultField((Key, Field), "index", Index, "integer") :-
|
|
161
164
|
childObject(Key, (Key, Field), Field),
|
|
162
|
-
resultField(Key, Field,
|
|
165
|
+
resultField(Key, Field, Value, _),
|
|
163
166
|
field((Field, Value), "index", Index).
|
|
164
167
|
|
|
165
168
|
resultField((Key, Field), "displayValue", EnumDisplayValue, "shortText") :-
|
|
166
169
|
childObject(Key, (Key, Field), Field),
|
|
170
|
+
resultField(Key, Field, Value, _),
|
|
167
171
|
field((Field, Value), "enumDisplayValue", EnumDisplayValue).
|
|
168
172
|
|
|
169
173
|
|
|
@@ -175,18 +179,21 @@ childObject(Key, (Key, Field), Field) :-
|
|
|
175
179
|
resultField((Key, Field), "value", Value, "shortText") :-
|
|
176
180
|
childObject(Key, (Key, Field), Field),
|
|
177
181
|
field(Key, Field, Value),
|
|
182
|
+
not resultField(Key, Field, Value, "enum"),
|
|
178
183
|
dataType(Key, Field, "enum").
|
|
179
184
|
|
|
180
185
|
resultField((Key, Field), "index", Index, "integer") :-
|
|
181
186
|
childObject(Key, (Key, Field), Field),
|
|
182
187
|
field(Key, Field, Value),
|
|
183
188
|
dataType(Key, Field, "enum"),
|
|
189
|
+
not resultField(Key, Field, Value, "enum"),
|
|
184
190
|
field((Field, Value), "index", Index).
|
|
185
191
|
|
|
186
192
|
resultField((Key, Field), "displayValue", EnumDisplayValue, "shortText") :-
|
|
187
193
|
childObject(Key, (Key, Field), Field),
|
|
188
194
|
field(Key, Field, Value),
|
|
189
195
|
dataType(Key, Field, "enum"),
|
|
196
|
+
not resultField(Key, Field, Value, "enum"),
|
|
190
197
|
field((Field, Value), "enumDisplayValue", EnumDisplayValue).
|
|
191
198
|
|
|
192
199
|
% Allow specifying up to 3 fields at the same time
|
|
@@ -18,12 +18,31 @@ toc::[]
|
|
|
18
18
|
"levelOffset": "{{this.levelOffset}}",
|
|
19
19
|
"title": "only"
|
|
20
20
|
{{/include}}
|
|
21
|
-
[
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
21
|
+
[cols="1,4",frame=none,grid=none]
|
|
22
|
+
|===
|
|
23
|
+
| Card key | {{this.key}}
|
|
24
|
+
| Card type | {{#if this.cardTypeDisplayName}}{{this.cardTypeDisplayName}}{{else}}{{this.cardType}}{{/if}}
|
|
25
|
+
| Last modified | {{this.lastUpdated}}
|
|
26
|
+
{{#if this.labels}}
|
|
27
|
+
| Labels | {{#each this.labels}}{{this}}{{#unless @last}}, {{/unless}}{{/each}}
|
|
28
|
+
{{/if}}
|
|
29
|
+
{{#each this.fields}}
|
|
30
|
+
| {{fieldDisplayName}} | {{formatValue value}}
|
|
31
|
+
{{/each}}
|
|
32
|
+
|===
|
|
33
|
+
{empty} +
|
|
34
|
+
{{#if this.links}}
|
|
35
|
+
[discrete]
|
|
36
|
+
==== Linked cards
|
|
37
|
+
|
|
38
|
+
[cols="1,4",frame=none,grid=none]
|
|
39
|
+
|===
|
|
40
|
+
{{#each this.links}}
|
|
41
|
+
| {{displayName}} | xref:{{this.key}}[{{this.title}}]{{#if this.linkDescription}} - {{this.linkDescription}}{{/if}}
|
|
42
|
+
{{/each}}
|
|
43
|
+
|===
|
|
44
|
+
{{/if}}
|
|
45
|
+
{empty} +
|
|
27
46
|
{{#include}}
|
|
28
47
|
"cardKey": "{{this.key}}",
|
|
29
48
|
"levelOffset": "{{this.levelOffset}}",
|
|
@@ -40,8 +40,118 @@ treePath(Card, FullPath) :-
|
|
|
40
40
|
% Sort by tree path (lexicographic ordering will give us depth-first)
|
|
41
41
|
order(1, "results", 1, "treePath", "ASC").
|
|
42
42
|
|
|
43
|
-
selectAll.
|
|
44
|
-
|
|
45
43
|
% Map level to levelOffset and add tree path for sorting
|
|
46
44
|
field(Card, "levelOffset", Level) :- cardLevel(Card, Level), result(Card).
|
|
47
45
|
field(Card, "treePath", Path) :- treePath(Card, Path), result(Card).
|
|
46
|
+
|
|
47
|
+
% Add fields structure similar to card query
|
|
48
|
+
% a helper term for display names
|
|
49
|
+
displayName(Card, (Card, Field), DisplayName) :-
|
|
50
|
+
field(Card, Field, _),
|
|
51
|
+
fieldType(Field),
|
|
52
|
+
field(Field, "displayName", DisplayName),
|
|
53
|
+
field(Card, "cardType", CardType),
|
|
54
|
+
not field((CardType, Field), "displayName", _).
|
|
55
|
+
|
|
56
|
+
displayName(Card, (Card, Field), DisplayName) :-
|
|
57
|
+
field(Card, "cardType", CardType),
|
|
58
|
+
fieldType(Field),
|
|
59
|
+
field((CardType, Field), "displayName", DisplayName).
|
|
60
|
+
|
|
61
|
+
% the second level includes metadata for the always visible and optionally visible fields
|
|
62
|
+
field((Card, Field), "key", Field) :-
|
|
63
|
+
customField(CardType, Field),
|
|
64
|
+
field(Card, "cardType", CardType),
|
|
65
|
+
result(Card).
|
|
66
|
+
|
|
67
|
+
resultField((Card, Field), "visibility", "always") :-
|
|
68
|
+
alwaysVisibleField(CardType, Field),
|
|
69
|
+
field(Card, "cardType", CardType),
|
|
70
|
+
result(Card).
|
|
71
|
+
|
|
72
|
+
resultField((Card, Field), "visibility", "optional") :-
|
|
73
|
+
optionallyVisibleField(CardType, Field),
|
|
74
|
+
field(Card, "cardType", CardType),
|
|
75
|
+
result(Card).
|
|
76
|
+
|
|
77
|
+
resultField((Card, Field), "index", Index) :-
|
|
78
|
+
alwaysVisibleField(CardType, Field),
|
|
79
|
+
field((CardType, Field), "index", Index),
|
|
80
|
+
field(Card, "cardType", CardType),
|
|
81
|
+
result(Card).
|
|
82
|
+
|
|
83
|
+
resultField((Card, Field), "index", Index) :-
|
|
84
|
+
optionallyVisibleField(CardType, Field),
|
|
85
|
+
field((CardType, Field), "index", Index),
|
|
86
|
+
field(Card, "cardType", CardType),
|
|
87
|
+
result(Card).
|
|
88
|
+
|
|
89
|
+
resultField((Card, Field), "fieldDisplayName", DisplayName, "shortText") :-
|
|
90
|
+
childResult(Card, (Card, Field), "fields"),
|
|
91
|
+
result(Card),
|
|
92
|
+
displayName(Card, (Card, Field), DisplayName).
|
|
93
|
+
|
|
94
|
+
resultField((Card, Field), "fieldDescription", Description, "shortText") :-
|
|
95
|
+
childResult(Card, (Card, Field), "fields"),
|
|
96
|
+
result(Card),
|
|
97
|
+
field(Field, "description", Description).
|
|
98
|
+
|
|
99
|
+
% add value
|
|
100
|
+
dataType((Card, Field), "value", DataType) :-
|
|
101
|
+
childResult(Card, (Card, Field), "fields"),
|
|
102
|
+
result(Card),
|
|
103
|
+
field(Card, Field, Value),
|
|
104
|
+
dataType(Card, Field, DataType).
|
|
105
|
+
|
|
106
|
+
% add value
|
|
107
|
+
field((Card, Field), "value", Value) :-
|
|
108
|
+
childResult(Card, (Card, Field), "fields"),
|
|
109
|
+
field(Card, Field, Value).
|
|
110
|
+
|
|
111
|
+
resultField(((Card, Field), "value"), "displayValue", EnumDisplayValue, "shortText") :-
|
|
112
|
+
childResult(Card, (Card, Field), "fields"),
|
|
113
|
+
dataType(Card, Field, "enum"),
|
|
114
|
+
field((Card, Field), "value", Value),
|
|
115
|
+
field((Field, Value), "enumDisplayValue", EnumDisplayValue).
|
|
116
|
+
|
|
117
|
+
resultField(((Card, Field), "value", Value), "displayValue", EnumDisplayValue, "shortText") :-
|
|
118
|
+
childResult(Card, (Card, Field), "fields"),
|
|
119
|
+
dataType(Card, Field, "list"),
|
|
120
|
+
field(Card, Field, Value),
|
|
121
|
+
field((Field, Value), "enumDisplayValue", EnumDisplayValue).
|
|
122
|
+
|
|
123
|
+
% add cardTypeDisplayName
|
|
124
|
+
resultField(Card, "cardTypeDisplayName", DisplayName, "shortText") :-
|
|
125
|
+
result(Card),
|
|
126
|
+
field(Card, "cardType", CardType),
|
|
127
|
+
field(CardType, "displayName", DisplayName).
|
|
128
|
+
|
|
129
|
+
% select only non-custom fields
|
|
130
|
+
select(1, "cardType").
|
|
131
|
+
select(1, "cardTypeDisplayName").
|
|
132
|
+
select(1, "key").
|
|
133
|
+
select(1, "lastUpdated").
|
|
134
|
+
select(1, "links").
|
|
135
|
+
select(1, "labels").
|
|
136
|
+
select(1, "levelOffset").
|
|
137
|
+
select(1, "treePath").
|
|
138
|
+
|
|
139
|
+
% Fields
|
|
140
|
+
select(2, "fields", "key").
|
|
141
|
+
select(2, "fields", "value").
|
|
142
|
+
|
|
143
|
+
childResultCollection(Card, "fields") :-
|
|
144
|
+
result(Card).
|
|
145
|
+
|
|
146
|
+
childResult(Card, (Card, Field), "fields") :-
|
|
147
|
+
alwaysVisibleField(CardType, Field),
|
|
148
|
+
field(Card, "cardType", CardType),
|
|
149
|
+
result(Card).
|
|
150
|
+
|
|
151
|
+
childResult(Card, (Card, Field), "fields") :-
|
|
152
|
+
optionallyVisibleField(CardType, Field),
|
|
153
|
+
field(Card, "cardType", CardType),
|
|
154
|
+
result(Card).
|
|
155
|
+
|
|
156
|
+
order(2, "fields", 1, "visibility", "ASC").
|
|
157
|
+
order(2, "fields", 2, "index", "ASC").
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
{
|
|
2
|
+
"description": "Cyberismo default hub",
|
|
3
|
+
"displayName": "Cyberismo default hub",
|
|
4
|
+
"modules": [
|
|
5
|
+
{
|
|
6
|
+
"name": "base",
|
|
7
|
+
"displayName": "Base module",
|
|
8
|
+
"category": "essentials",
|
|
9
|
+
"location": "git@github.com:CyberismoCom/module-base.git",
|
|
10
|
+
"documentationLocation": "https://github.com/CyberismoCom/module-base/blob/main/README.adoc"
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"name": "eucra",
|
|
14
|
+
"displayName": "Cyberismo EU Cyber Resilience Act",
|
|
15
|
+
"category": "essentials",
|
|
16
|
+
"location": "git@github.com:CyberismoCom/module-eu-cra.git",
|
|
17
|
+
"documentationLocation": "https://github.com/CyberismoCom/module-eu-cra/blob/main/README.adoc"
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"name": "ismsa",
|
|
21
|
+
"displayName": "ISMS Essentials",
|
|
22
|
+
"category": "essentials",
|
|
23
|
+
"location": "git@github.com:CyberismoCom/module-isms-essentials.git",
|
|
24
|
+
"documentationLocation": "https://github.com/CyberismoCom/module-isms-essentials/blob/main/README.adoc"
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"name": "secdeva",
|
|
28
|
+
"displayName": "Secure development essentials",
|
|
29
|
+
"category": "essentials",
|
|
30
|
+
"location": "git@github.com:CyberismoCom/module-secure-development-essentials.git",
|
|
31
|
+
"documentationLocation": "https://github.com/CyberismoCom/module-secure-development-essentials/blob/main/README.adoc"
|
|
32
|
+
}
|
|
33
|
+
]
|
|
34
|
+
}
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
{
|
|
2
|
-
"title": "Card",
|
|
3
2
|
"$id": "cardBaseSchema",
|
|
4
|
-
"description": "Cards represent different types of tickets, issues and documents. All cards must be valid against this parent schema.",
|
|
5
|
-
"type": "object",
|
|
6
3
|
"additionalProperties": true,
|
|
4
|
+
"description": "Cards represent different types of tickets, issues and documents. All cards must be valid against this parent schema.",
|
|
7
5
|
"properties": {
|
|
8
6
|
"cardType": {
|
|
9
7
|
"type": "string",
|
|
@@ -72,5 +70,7 @@
|
|
|
72
70
|
"description": "Card key from which this card has been instantiated"
|
|
73
71
|
}
|
|
74
72
|
},
|
|
75
|
-
"required": ["title", "cardType", "workflowState", "rank"]
|
|
73
|
+
"required": ["title", "cardType", "workflowState", "rank"],
|
|
74
|
+
"title": "Card",
|
|
75
|
+
"type": "object"
|
|
76
76
|
}
|
|
@@ -1,182 +1,4 @@
|
|
|
1
1
|
{
|
|
2
|
-
"title": "Card directory tree schema",
|
|
3
|
-
"$id": "cardTreeDirectorySchema",
|
|
4
|
-
"description": "This schema represents the directory structure of a card tree, using the format of https://github.com/jpoehnelt/directory-schema-validator",
|
|
5
|
-
"type": "object",
|
|
6
|
-
"properties": {
|
|
7
|
-
"directories": {
|
|
8
|
-
"type": "object",
|
|
9
|
-
"properties": {
|
|
10
|
-
".cards": {
|
|
11
|
-
"description": "Configuration for the card tree",
|
|
12
|
-
"type": "object",
|
|
13
|
-
"properties": {
|
|
14
|
-
"files": {
|
|
15
|
-
"type": "object",
|
|
16
|
-
"additionalProperties": false
|
|
17
|
-
},
|
|
18
|
-
"directories": {
|
|
19
|
-
"type": "object",
|
|
20
|
-
"additionalProperties": false,
|
|
21
|
-
"properties": {
|
|
22
|
-
"modules": {
|
|
23
|
-
"$ref": "#/$defs/cardModuleSchema"
|
|
24
|
-
},
|
|
25
|
-
"local": {
|
|
26
|
-
"type": "object",
|
|
27
|
-
"properties": {
|
|
28
|
-
"files": {
|
|
29
|
-
"type": "object",
|
|
30
|
-
"additionalProperties": false,
|
|
31
|
-
"properties": {
|
|
32
|
-
".schema": {},
|
|
33
|
-
"cardsConfig.json": {}
|
|
34
|
-
},
|
|
35
|
-
"required": [".schema", "cardsConfig.json"]
|
|
36
|
-
},
|
|
37
|
-
"directories": {
|
|
38
|
-
"type": "object",
|
|
39
|
-
"additionalProperties": false,
|
|
40
|
-
"properties": {
|
|
41
|
-
"calculations": {
|
|
42
|
-
"$ref": "#/$defs/calculationResourceSchema"
|
|
43
|
-
},
|
|
44
|
-
"cardTypes": {
|
|
45
|
-
"$ref": "#/$defs/cardTypeResourceSchema"
|
|
46
|
-
},
|
|
47
|
-
"fieldTypes": {
|
|
48
|
-
"$ref": "#/$defs/fieldTypeResourceSchema"
|
|
49
|
-
},
|
|
50
|
-
"graphViews": {
|
|
51
|
-
"$ref": "#/$defs/graphViewResourceSchema"
|
|
52
|
-
},
|
|
53
|
-
"graphModels": {
|
|
54
|
-
"$ref": "#/$defs/graphModelResourceSchema"
|
|
55
|
-
},
|
|
56
|
-
"linkTypes": {
|
|
57
|
-
"$ref": "#/$defs/linkTypeResourceSchema"
|
|
58
|
-
},
|
|
59
|
-
"reports": {
|
|
60
|
-
"$ref": "#/$defs/reportResourceSchema"
|
|
61
|
-
},
|
|
62
|
-
"templates": {
|
|
63
|
-
"$ref": "#/$defs/templatesResourceSchema"
|
|
64
|
-
},
|
|
65
|
-
"workflows": {
|
|
66
|
-
"$ref": "#/$defs/workflowResourceSchema"
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
},
|
|
73
|
-
"required": ["local"]
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
},
|
|
77
|
-
"cardRoot": {
|
|
78
|
-
"description": "The contents of the card tree. Each subdirectory contains a top level card. The name of the directory is the card key.",
|
|
79
|
-
"type": "object",
|
|
80
|
-
"properties": {
|
|
81
|
-
"files": {
|
|
82
|
-
"type": "object",
|
|
83
|
-
"additionalProperties": false,
|
|
84
|
-
"properties": {
|
|
85
|
-
".gitkeep": {},
|
|
86
|
-
".schema": {}
|
|
87
|
-
}
|
|
88
|
-
},
|
|
89
|
-
"directories": {
|
|
90
|
-
"type": "object",
|
|
91
|
-
"additionalProperties": false,
|
|
92
|
-
"patternProperties": {
|
|
93
|
-
"^[a-z]+_[0-9a-z]+$": {
|
|
94
|
-
"$ref": "#/$defs/cardDirectorySchema#"
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
},
|
|
100
|
-
".calc": {
|
|
101
|
-
"description": "Temporary files for calculations.",
|
|
102
|
-
"type": "object",
|
|
103
|
-
"properties": {
|
|
104
|
-
"directories": {
|
|
105
|
-
"type": "object",
|
|
106
|
-
"properties": {
|
|
107
|
-
"resources": {
|
|
108
|
-
"description": "Schema of the .calc resource folder",
|
|
109
|
-
"type": "object",
|
|
110
|
-
"properties": {
|
|
111
|
-
"files": {
|
|
112
|
-
"type": "object",
|
|
113
|
-
"additionalProperties": false,
|
|
114
|
-
"patternProperties": {
|
|
115
|
-
"^.+\\.lp$": {
|
|
116
|
-
"type": "object"
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
},
|
|
122
|
-
"cards": {
|
|
123
|
-
"description": "Directory that contains separate logic program files for each card",
|
|
124
|
-
"type": "object",
|
|
125
|
-
"properties": {
|
|
126
|
-
"files": {
|
|
127
|
-
"type": "object",
|
|
128
|
-
"additionalProperties": false,
|
|
129
|
-
"patternProperties": {
|
|
130
|
-
"^.+\\.lp$": {
|
|
131
|
-
"type": "object"
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
},
|
|
138
|
-
"additionalProperties": false
|
|
139
|
-
},
|
|
140
|
-
"files": {
|
|
141
|
-
"type": "object",
|
|
142
|
-
"properties": {
|
|
143
|
-
"base.lp": {
|
|
144
|
-
"description": "A logic program that contains basic common definitions that are the same in all cards projects",
|
|
145
|
-
"type": "object"
|
|
146
|
-
},
|
|
147
|
-
"calculations.lp": {
|
|
148
|
-
"description": "A logic program that only includes all the logic programs from modules, including the calculations from the local content",
|
|
149
|
-
"type": "object"
|
|
150
|
-
},
|
|
151
|
-
"cardTree.lp": {
|
|
152
|
-
"description": "A logic program that only includes all the card-specific logic programs",
|
|
153
|
-
"type": "object"
|
|
154
|
-
},
|
|
155
|
-
"resourceImports.lp": {
|
|
156
|
-
"description": "A logic program that only includes all the logic programs generated from resources",
|
|
157
|
-
"type": "object"
|
|
158
|
-
},
|
|
159
|
-
"main.lp": {
|
|
160
|
-
"description": "The main logic program",
|
|
161
|
-
"type": "object"
|
|
162
|
-
},
|
|
163
|
-
"modules.lp": {
|
|
164
|
-
"description": "",
|
|
165
|
-
"type": "object"
|
|
166
|
-
},
|
|
167
|
-
"queryLanguage.lp": {
|
|
168
|
-
"description": "A logic program that defines the Cyberismo query language",
|
|
169
|
-
"type": "object"
|
|
170
|
-
}
|
|
171
|
-
},
|
|
172
|
-
"additionalProperties": true
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
},
|
|
177
|
-
"required": [".cards", "cardRoot"]
|
|
178
|
-
}
|
|
179
|
-
},
|
|
180
2
|
"$defs": {
|
|
181
3
|
"cardModuleSchema": {
|
|
182
4
|
"description": "The schema for modules. Each module is in a named directory containing 'cardTypes', 'templates' and 'workflows'. ",
|
|
@@ -659,5 +481,183 @@
|
|
|
659
481
|
}
|
|
660
482
|
]
|
|
661
483
|
}
|
|
662
|
-
}
|
|
484
|
+
},
|
|
485
|
+
"$id": "cardTreeDirectorySchema",
|
|
486
|
+
"description": "This schema represents the directory structure of a card tree, using the format of https://github.com/jpoehnelt/directory-schema-validator",
|
|
487
|
+
"properties": {
|
|
488
|
+
"directories": {
|
|
489
|
+
"type": "object",
|
|
490
|
+
"properties": {
|
|
491
|
+
".cards": {
|
|
492
|
+
"description": "Configuration for the card tree",
|
|
493
|
+
"type": "object",
|
|
494
|
+
"properties": {
|
|
495
|
+
"files": {
|
|
496
|
+
"type": "object",
|
|
497
|
+
"additionalProperties": false
|
|
498
|
+
},
|
|
499
|
+
"directories": {
|
|
500
|
+
"type": "object",
|
|
501
|
+
"additionalProperties": false,
|
|
502
|
+
"properties": {
|
|
503
|
+
"modules": {
|
|
504
|
+
"$ref": "#/$defs/cardModuleSchema"
|
|
505
|
+
},
|
|
506
|
+
"local": {
|
|
507
|
+
"type": "object",
|
|
508
|
+
"properties": {
|
|
509
|
+
"files": {
|
|
510
|
+
"type": "object",
|
|
511
|
+
"additionalProperties": false,
|
|
512
|
+
"properties": {
|
|
513
|
+
".schema": {},
|
|
514
|
+
"cardsConfig.json": {}
|
|
515
|
+
},
|
|
516
|
+
"required": [".schema", "cardsConfig.json"]
|
|
517
|
+
},
|
|
518
|
+
"directories": {
|
|
519
|
+
"type": "object",
|
|
520
|
+
"additionalProperties": false,
|
|
521
|
+
"properties": {
|
|
522
|
+
"calculations": {
|
|
523
|
+
"$ref": "#/$defs/calculationResourceSchema"
|
|
524
|
+
},
|
|
525
|
+
"cardTypes": {
|
|
526
|
+
"$ref": "#/$defs/cardTypeResourceSchema"
|
|
527
|
+
},
|
|
528
|
+
"fieldTypes": {
|
|
529
|
+
"$ref": "#/$defs/fieldTypeResourceSchema"
|
|
530
|
+
},
|
|
531
|
+
"graphViews": {
|
|
532
|
+
"$ref": "#/$defs/graphViewResourceSchema"
|
|
533
|
+
},
|
|
534
|
+
"graphModels": {
|
|
535
|
+
"$ref": "#/$defs/graphModelResourceSchema"
|
|
536
|
+
},
|
|
537
|
+
"linkTypes": {
|
|
538
|
+
"$ref": "#/$defs/linkTypeResourceSchema"
|
|
539
|
+
},
|
|
540
|
+
"reports": {
|
|
541
|
+
"$ref": "#/$defs/reportResourceSchema"
|
|
542
|
+
},
|
|
543
|
+
"templates": {
|
|
544
|
+
"$ref": "#/$defs/templatesResourceSchema"
|
|
545
|
+
},
|
|
546
|
+
"workflows": {
|
|
547
|
+
"$ref": "#/$defs/workflowResourceSchema"
|
|
548
|
+
}
|
|
549
|
+
}
|
|
550
|
+
}
|
|
551
|
+
}
|
|
552
|
+
}
|
|
553
|
+
},
|
|
554
|
+
"required": ["local"]
|
|
555
|
+
}
|
|
556
|
+
}
|
|
557
|
+
},
|
|
558
|
+
"cardRoot": {
|
|
559
|
+
"description": "The contents of the card tree. Each subdirectory contains a top level card. The name of the directory is the card key.",
|
|
560
|
+
"type": "object",
|
|
561
|
+
"properties": {
|
|
562
|
+
"files": {
|
|
563
|
+
"type": "object",
|
|
564
|
+
"additionalProperties": false,
|
|
565
|
+
"properties": {
|
|
566
|
+
".gitkeep": {},
|
|
567
|
+
".schema": {}
|
|
568
|
+
}
|
|
569
|
+
},
|
|
570
|
+
"directories": {
|
|
571
|
+
"type": "object",
|
|
572
|
+
"additionalProperties": false,
|
|
573
|
+
"patternProperties": {
|
|
574
|
+
"^[a-z]+_[0-9a-z]+$": {
|
|
575
|
+
"$ref": "#/$defs/cardDirectorySchema#"
|
|
576
|
+
}
|
|
577
|
+
}
|
|
578
|
+
}
|
|
579
|
+
}
|
|
580
|
+
},
|
|
581
|
+
".calc": {
|
|
582
|
+
"description": "Temporary files for calculations.",
|
|
583
|
+
"type": "object",
|
|
584
|
+
"properties": {
|
|
585
|
+
"directories": {
|
|
586
|
+
"type": "object",
|
|
587
|
+
"properties": {
|
|
588
|
+
"resources": {
|
|
589
|
+
"description": "Schema of the .calc resource folder",
|
|
590
|
+
"type": "object",
|
|
591
|
+
"properties": {
|
|
592
|
+
"files": {
|
|
593
|
+
"type": "object",
|
|
594
|
+
"additionalProperties": false,
|
|
595
|
+
"patternProperties": {
|
|
596
|
+
"^.+\\.lp$": {
|
|
597
|
+
"type": "object"
|
|
598
|
+
}
|
|
599
|
+
}
|
|
600
|
+
}
|
|
601
|
+
}
|
|
602
|
+
},
|
|
603
|
+
"cards": {
|
|
604
|
+
"description": "Directory that contains separate logic program files for each card",
|
|
605
|
+
"type": "object",
|
|
606
|
+
"properties": {
|
|
607
|
+
"files": {
|
|
608
|
+
"type": "object",
|
|
609
|
+
"additionalProperties": false,
|
|
610
|
+
"patternProperties": {
|
|
611
|
+
"^.+\\.lp$": {
|
|
612
|
+
"type": "object"
|
|
613
|
+
}
|
|
614
|
+
}
|
|
615
|
+
}
|
|
616
|
+
}
|
|
617
|
+
}
|
|
618
|
+
},
|
|
619
|
+
"additionalProperties": false
|
|
620
|
+
},
|
|
621
|
+
"files": {
|
|
622
|
+
"type": "object",
|
|
623
|
+
"properties": {
|
|
624
|
+
"base.lp": {
|
|
625
|
+
"description": "A logic program that contains basic common definitions that are the same in all cards projects",
|
|
626
|
+
"type": "object"
|
|
627
|
+
},
|
|
628
|
+
"calculations.lp": {
|
|
629
|
+
"description": "A logic program that only includes all the logic programs from modules, including the calculations from the local content",
|
|
630
|
+
"type": "object"
|
|
631
|
+
},
|
|
632
|
+
"cardTree.lp": {
|
|
633
|
+
"description": "A logic program that only includes all the card-specific logic programs",
|
|
634
|
+
"type": "object"
|
|
635
|
+
},
|
|
636
|
+
"resourceImports.lp": {
|
|
637
|
+
"description": "A logic program that only includes all the logic programs generated from resources",
|
|
638
|
+
"type": "object"
|
|
639
|
+
},
|
|
640
|
+
"main.lp": {
|
|
641
|
+
"description": "The main logic program",
|
|
642
|
+
"type": "object"
|
|
643
|
+
},
|
|
644
|
+
"modules.lp": {
|
|
645
|
+
"description": "",
|
|
646
|
+
"type": "object"
|
|
647
|
+
},
|
|
648
|
+
"queryLanguage.lp": {
|
|
649
|
+
"description": "A logic program that defines the Cyberismo query language",
|
|
650
|
+
"type": "object"
|
|
651
|
+
}
|
|
652
|
+
},
|
|
653
|
+
"additionalProperties": true
|
|
654
|
+
}
|
|
655
|
+
}
|
|
656
|
+
}
|
|
657
|
+
},
|
|
658
|
+
"required": [".cards", "cardRoot"]
|
|
659
|
+
}
|
|
660
|
+
},
|
|
661
|
+
"title": "Card directory tree schema",
|
|
662
|
+
"type": "object"
|
|
663
663
|
}
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
{
|
|
2
|
-
"title": "CardsConfig",
|
|
3
2
|
"$id": "cardsConfigSchema",
|
|
4
|
-
"description": "General configuration settings for the card tree.",
|
|
5
|
-
"type": "object",
|
|
6
3
|
"additionalProperties": false,
|
|
4
|
+
"description": "General configuration settings for the card tree.",
|
|
7
5
|
"properties": {
|
|
8
6
|
"cardKeyPrefix": {
|
|
9
7
|
"type": "string",
|
|
@@ -18,6 +16,18 @@
|
|
|
18
16
|
"minLength": 1,
|
|
19
17
|
"pattern": "^[A-Za-z ._-]+$"
|
|
20
18
|
},
|
|
19
|
+
"hubs": {
|
|
20
|
+
"description": "List of hubs from where to fetch module information",
|
|
21
|
+
"type": "array",
|
|
22
|
+
"items": {
|
|
23
|
+
"type": "object",
|
|
24
|
+
"properties": {
|
|
25
|
+
"location": {
|
|
26
|
+
"type": "string"
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
},
|
|
21
31
|
"modules": {
|
|
22
32
|
"description": "List of modules that have been included in the project",
|
|
23
33
|
"type": "array",
|
|
@@ -45,5 +55,7 @@
|
|
|
45
55
|
}
|
|
46
56
|
}
|
|
47
57
|
},
|
|
48
|
-
"required": ["cardKeyPrefix"]
|
|
58
|
+
"required": ["cardKeyPrefix"],
|
|
59
|
+
"title": "CardsConfig",
|
|
60
|
+
"type": "object"
|
|
49
61
|
}
|