@documentation-robotics/cli 0.1.0
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/PYTHON_CLI_PARITY.md +265 -0
- package/PYTHON_CLI_STRUCTURE_UPDATE.md +246 -0
- package/README.md +926 -0
- package/biome.json +42 -0
- package/bunfig.toml +3 -0
- package/dist/ai/claude-client.js +71 -0
- package/dist/ai/claude-client.js.map +7 -0
- package/dist/ai/context-provider.js +129 -0
- package/dist/ai/context-provider.js.map +7 -0
- package/dist/ai/tools.js +231 -0
- package/dist/ai/tools.js.map +7 -0
- package/dist/cli.js +224 -0
- package/dist/cli.js.map +7 -0
- package/dist/commands/add.js +51 -0
- package/dist/commands/add.js.map +7 -0
- package/dist/commands/changeset.js +174 -0
- package/dist/commands/changeset.js.map +7 -0
- package/dist/commands/chat.js +111 -0
- package/dist/commands/chat.js.map +7 -0
- package/dist/commands/conformance.js +132 -0
- package/dist/commands/conformance.js.map +7 -0
- package/dist/commands/delete.js +31 -0
- package/dist/commands/delete.js.map +7 -0
- package/dist/commands/element.js +28 -0
- package/dist/commands/element.js.map +7 -0
- package/dist/commands/export.js +65 -0
- package/dist/commands/export.js.map +7 -0
- package/dist/commands/info.js +40 -0
- package/dist/commands/info.js.map +7 -0
- package/dist/commands/init.js +45 -0
- package/dist/commands/init.js.map +7 -0
- package/dist/commands/list.js +32 -0
- package/dist/commands/list.js.map +7 -0
- package/dist/commands/migrate.js +36 -0
- package/dist/commands/migrate.js.map +7 -0
- package/dist/commands/project.js +74 -0
- package/dist/commands/project.js.map +7 -0
- package/dist/commands/relationship.js +118 -0
- package/dist/commands/relationship.js.map +7 -0
- package/dist/commands/search.js +48 -0
- package/dist/commands/search.js.map +7 -0
- package/dist/commands/show.js +38 -0
- package/dist/commands/show.js.map +7 -0
- package/dist/commands/trace.js +60 -0
- package/dist/commands/trace.js.map +7 -0
- package/dist/commands/update.js +37 -0
- package/dist/commands/update.js.map +7 -0
- package/dist/commands/upgrade.js +152 -0
- package/dist/commands/upgrade.js.map +7 -0
- package/dist/commands/validate.js +71 -0
- package/dist/commands/validate.js.map +7 -0
- package/dist/commands/version.js +20 -0
- package/dist/commands/version.js.map +7 -0
- package/dist/commands/visualize.js +51 -0
- package/dist/commands/visualize.js.map +7 -0
- package/dist/core/active-changeset.js +52 -0
- package/dist/core/active-changeset.js.map +7 -0
- package/dist/core/changeset.js +244 -0
- package/dist/core/changeset.js.map +7 -0
- package/dist/core/dependency-tracker.js +322 -0
- package/dist/core/dependency-tracker.js.map +7 -0
- package/dist/core/element.js +65 -0
- package/dist/core/element.js.map +7 -0
- package/dist/core/layer.js +75 -0
- package/dist/core/layer.js.map +7 -0
- package/dist/core/manifest.js +57 -0
- package/dist/core/manifest.js.map +7 -0
- package/dist/core/migration-registry.js +131 -0
- package/dist/core/migration-registry.js.map +7 -0
- package/dist/core/model.js +455 -0
- package/dist/core/model.js.map +7 -0
- package/dist/core/projection-engine.js +288 -0
- package/dist/core/projection-engine.js.map +7 -0
- package/dist/core/reference-registry.js +188 -0
- package/dist/core/reference-registry.js.map +7 -0
- package/dist/core/relationship-registry.js +114 -0
- package/dist/core/relationship-registry.js.map +7 -0
- package/dist/core/relationships.js +78 -0
- package/dist/core/relationships.js.map +7 -0
- package/dist/export/archimate-exporter.js +111 -0
- package/dist/export/archimate-exporter.js.map +7 -0
- package/dist/export/export-manager.js +63 -0
- package/dist/export/export-manager.js.map +7 -0
- package/dist/export/graphml-exporter.js +39 -0
- package/dist/export/graphml-exporter.js.map +7 -0
- package/dist/export/index.js +17 -0
- package/dist/export/index.js.map +7 -0
- package/dist/export/json-schema-exporter.js +60 -0
- package/dist/export/json-schema-exporter.js.map +7 -0
- package/dist/export/markdown-exporter.js +99 -0
- package/dist/export/markdown-exporter.js.map +7 -0
- package/dist/export/openapi-exporter.js +85 -0
- package/dist/export/openapi-exporter.js.map +7 -0
- package/dist/export/plantuml-exporter.js +60 -0
- package/dist/export/plantuml-exporter.js.map +7 -0
- package/dist/export/types.js +36 -0
- package/dist/export/types.js.map +7 -0
- package/dist/schemas/bundled/01-motivation-layer.schema.json +942 -0
- package/dist/schemas/bundled/02-business-layer.schema.json +1293 -0
- package/dist/schemas/bundled/03-security-layer.schema.json +2177 -0
- package/dist/schemas/bundled/04-application-layer.schema.json +1328 -0
- package/dist/schemas/bundled/05-technology-layer.schema.json +1465 -0
- package/dist/schemas/bundled/06-api-layer.schema.json +1743 -0
- package/dist/schemas/bundled/07-data-model-layer.schema.json +1253 -0
- package/dist/schemas/bundled/08-datastore-layer.schema.json +892 -0
- package/dist/schemas/bundled/09-ux-layer.schema.json +1506 -0
- package/dist/schemas/bundled/10-navigation-layer.schema.json +843 -0
- package/dist/schemas/bundled/11-apm-observability-layer.schema.json +1430 -0
- package/dist/schemas/bundled/12-testing-layer.schema.json +1091 -0
- package/dist/schemas/bundled/common/layer-extensions.schema.json +266 -0
- package/dist/schemas/bundled/common/predicates.schema.json +493 -0
- package/dist/schemas/bundled/common/relationships.schema.json +791 -0
- package/dist/schemas/bundled/common/source-references.schema.json +71 -0
- package/dist/schemas/bundled/link-registry.json +1839 -0
- package/dist/schemas/bundled/link-registry.schema.json +339 -0
- package/dist/schemas/bundled/relationship-catalog.json +1302 -0
- package/dist/schemas/bundled/relationship-type.schema.json +221 -0
- package/dist/server/server.js +1207 -0
- package/dist/server/server.js.map +7 -0
- package/dist/server/telemetry-middleware.js +24 -0
- package/dist/server/telemetry-middleware.js.map +7 -0
- package/dist/telemetry/console-interceptor.js +34 -0
- package/dist/telemetry/console-interceptor.js.map +7 -0
- package/dist/telemetry/index.js +54 -0
- package/dist/telemetry/index.js.map +7 -0
- package/dist/telemetry/resilient-exporter.js +41 -0
- package/dist/telemetry/resilient-exporter.js.map +7 -0
- package/dist/telemetry/resilient-log-exporter.js +41 -0
- package/dist/telemetry/resilient-log-exporter.js.map +7 -0
- package/dist/telemetry/test-instrumentation.js +32 -0
- package/dist/telemetry/test-instrumentation.js.map +7 -0
- package/dist/types/index.js +1 -0
- package/dist/types/index.js.map +7 -0
- package/dist/utils/element-utils.js +11 -0
- package/dist/utils/element-utils.js.map +7 -0
- package/dist/utils/errors.js +105 -0
- package/dist/utils/errors.js.map +7 -0
- package/dist/utils/file-io.js +69 -0
- package/dist/utils/file-io.js.map +7 -0
- package/dist/utils/globals.js +28 -0
- package/dist/utils/globals.js.map +7 -0
- package/dist/utils/model-path.js +22 -0
- package/dist/utils/model-path.js.map +7 -0
- package/dist/utils/project-paths.js +45 -0
- package/dist/utils/project-paths.js.map +7 -0
- package/dist/utils/spec-installer.js +85 -0
- package/dist/utils/spec-installer.js.map +7 -0
- package/dist/utils/spec-version.js +33 -0
- package/dist/utils/spec-version.js.map +7 -0
- package/dist/validators/index.js +15 -0
- package/dist/validators/index.js.map +7 -0
- package/dist/validators/naming-validator.js +82 -0
- package/dist/validators/naming-validator.js.map +7 -0
- package/dist/validators/reference-validator.js +106 -0
- package/dist/validators/reference-validator.js.map +7 -0
- package/dist/validators/schema-validator.js +148 -0
- package/dist/validators/schema-validator.js.map +7 -0
- package/dist/validators/semantic-validator.js +80 -0
- package/dist/validators/semantic-validator.js.map +7 -0
- package/dist/validators/types.js +48 -0
- package/dist/validators/types.js.map +7 -0
- package/dist/validators/validator.js +67 -0
- package/dist/validators/validator.js.map +7 -0
- package/docs/TEST-INSTRUMENTATION.md +405 -0
- package/docs/telemetry.md +427 -0
- package/package.json +70 -0
- package/test-debug.js +33 -0
- package/test-special.mjs +46 -0
- package/test_runner.ts +7 -0
|
@@ -0,0 +1,892 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"$id": "https://example.com/schemas/08-datastore-layer.schema.json",
|
|
4
|
+
"title": "Datastore Layer Layer Schema",
|
|
5
|
+
"description": "Defines physical data storage schemas using SQL DDL, including tables, columns, indexes, constraints, and database-specific objects.",
|
|
6
|
+
"layerMetadata": {
|
|
7
|
+
"layerId": "08-datastore-layer",
|
|
8
|
+
"layerName": "Datastore Layer",
|
|
9
|
+
"intraLayerRelationshipSupport": true,
|
|
10
|
+
"crossLayerRelationshipSupport": true,
|
|
11
|
+
"relationshipCatalogVersion": "2.1.0"
|
|
12
|
+
},
|
|
13
|
+
"intraLayerRelationships": {
|
|
14
|
+
"$comment": "Relationships between entities within this layer. References relationship-catalog.json by ID.",
|
|
15
|
+
"allowed": [
|
|
16
|
+
{
|
|
17
|
+
"relationshipTypeId": "composition",
|
|
18
|
+
"sourceTypes": ["Database", "DatabaseSchema", "Table"],
|
|
19
|
+
"targetTypes": ["Column", "Constraint", "DatabaseSchema", "Index", "Table"],
|
|
20
|
+
"examples": [
|
|
21
|
+
{
|
|
22
|
+
"source": "Database",
|
|
23
|
+
"target": "DatabaseSchema",
|
|
24
|
+
"description": "Database instance contains one or more schemas",
|
|
25
|
+
"layer": "08-datastore"
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"source": "DatabaseSchema",
|
|
29
|
+
"target": "Table",
|
|
30
|
+
"description": "Schema contains tables as physical storage units",
|
|
31
|
+
"layer": "08-datastore"
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"source": "Table",
|
|
35
|
+
"target": "Column",
|
|
36
|
+
"description": "Table is composed of columns defining its structure",
|
|
37
|
+
"layer": "08-datastore"
|
|
38
|
+
}
|
|
39
|
+
]
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"relationshipTypeId": "aggregation",
|
|
43
|
+
"sourceTypes": ["Constraint", "Index"],
|
|
44
|
+
"targetTypes": ["Column"],
|
|
45
|
+
"examples": [
|
|
46
|
+
{
|
|
47
|
+
"source": "Index",
|
|
48
|
+
"target": "Column",
|
|
49
|
+
"description": "Index aggregates one or more columns (composite indexes)",
|
|
50
|
+
"layer": "08-datastore"
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"source": "Constraint",
|
|
54
|
+
"target": "Column",
|
|
55
|
+
"description": "Constraint aggregates columns (composite keys, multi-column checks)",
|
|
56
|
+
"layer": "08-datastore"
|
|
57
|
+
}
|
|
58
|
+
]
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
"relationshipTypeId": "specialization",
|
|
62
|
+
"sourceTypes": ["PremiumAccount", "Schema"],
|
|
63
|
+
"targetTypes": ["Account", "Schema"],
|
|
64
|
+
"examples": [
|
|
65
|
+
{
|
|
66
|
+
"source": "PremiumAccount",
|
|
67
|
+
"target": "Account",
|
|
68
|
+
"description": "Premium account specializes the general account concept"
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"source": "Schema",
|
|
72
|
+
"target": "Schema",
|
|
73
|
+
"description": "API schema specializes another via allOf/oneOf/anyOf composition",
|
|
74
|
+
"layer": "06-api"
|
|
75
|
+
}
|
|
76
|
+
]
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
"relationshipTypeId": "triggering",
|
|
80
|
+
"sourceTypes": ["Trigger"],
|
|
81
|
+
"targetTypes": ["Function"],
|
|
82
|
+
"examples": [
|
|
83
|
+
{
|
|
84
|
+
"source": "Trigger",
|
|
85
|
+
"target": "Function",
|
|
86
|
+
"description": "Database trigger executes specified function on event",
|
|
87
|
+
"layer": "08-datastore"
|
|
88
|
+
}
|
|
89
|
+
]
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
"relationshipTypeId": "serving",
|
|
93
|
+
"sourceTypes": ["BusinessService", "ContextVariation", "InputSpacePartition"],
|
|
94
|
+
"targetTypes": ["BusinessActor", "TestCoverageTarget"],
|
|
95
|
+
"examples": [
|
|
96
|
+
{
|
|
97
|
+
"source": "BusinessService",
|
|
98
|
+
"target": "BusinessActor",
|
|
99
|
+
"description": "Business service serves business actor"
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
"source": "InputSpacePartition",
|
|
103
|
+
"target": "TestCoverageTarget",
|
|
104
|
+
"description": "Partition serves target by defining testable input space",
|
|
105
|
+
"layer": "12-testing"
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
"source": "ContextVariation",
|
|
109
|
+
"target": "TestCoverageTarget",
|
|
110
|
+
"description": "Context serves target by defining execution environments",
|
|
111
|
+
"layer": "12-testing"
|
|
112
|
+
}
|
|
113
|
+
]
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
"relationshipTypeId": "access",
|
|
117
|
+
"sourceTypes": ["BusinessProcess", "CoverageRequirement", "TestCaseSketch"],
|
|
118
|
+
"targetTypes": ["BusinessObject", "InputPartitionSelection", "InputSelection"],
|
|
119
|
+
"examples": [
|
|
120
|
+
{
|
|
121
|
+
"source": "BusinessProcess",
|
|
122
|
+
"target": "BusinessObject",
|
|
123
|
+
"description": "Business process accesses business object data"
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
"source": "TestCaseSketch",
|
|
127
|
+
"target": "InputSelection",
|
|
128
|
+
"description": "Test sketch accesses input selections for test execution",
|
|
129
|
+
"layer": "12-testing"
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
"source": "CoverageRequirement",
|
|
133
|
+
"target": "InputPartitionSelection",
|
|
134
|
+
"description": "Requirement accesses partition selections for coverage",
|
|
135
|
+
"layer": "12-testing"
|
|
136
|
+
}
|
|
137
|
+
]
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
"relationshipTypeId": "reference",
|
|
141
|
+
"sourceTypes": ["CoverageRequirement", "DataObject", "TestCaseSketch"],
|
|
142
|
+
"targetTypes": ["CoverageRequirement", "Schema", "TestCoverageTarget"],
|
|
143
|
+
"examples": [
|
|
144
|
+
{
|
|
145
|
+
"source": "DataObject",
|
|
146
|
+
"target": "Schema",
|
|
147
|
+
"description": "Data object references JSON schema"
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
"source": "TestCaseSketch",
|
|
151
|
+
"target": "CoverageRequirement",
|
|
152
|
+
"description": "Test case sketch references coverage requirement it satisfies",
|
|
153
|
+
"layer": "12-testing"
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
"source": "CoverageRequirement",
|
|
157
|
+
"target": "TestCoverageTarget",
|
|
158
|
+
"description": "Coverage requirement references target it covers",
|
|
159
|
+
"layer": "12-testing"
|
|
160
|
+
}
|
|
161
|
+
]
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
"relationshipTypeId": "depends-on",
|
|
165
|
+
"sourceTypes": ["ApplicationService", "TestCaseSketch"],
|
|
166
|
+
"targetTypes": ["ContextVariation", "DataObject", "OutcomeCategory"],
|
|
167
|
+
"examples": [
|
|
168
|
+
{
|
|
169
|
+
"source": "ApplicationService",
|
|
170
|
+
"target": "DataObject",
|
|
171
|
+
"description": "Application service depends on data object"
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
"source": "TestCaseSketch",
|
|
175
|
+
"target": "ContextVariation",
|
|
176
|
+
"description": "Test sketch depends on context for execution environment",
|
|
177
|
+
"layer": "12-testing"
|
|
178
|
+
},
|
|
179
|
+
{
|
|
180
|
+
"source": "TestCaseSketch",
|
|
181
|
+
"target": "OutcomeCategory",
|
|
182
|
+
"description": "Test sketch depends on expected outcome category",
|
|
183
|
+
"layer": "12-testing"
|
|
184
|
+
}
|
|
185
|
+
]
|
|
186
|
+
},
|
|
187
|
+
{
|
|
188
|
+
"relationshipTypeId": "maps-to",
|
|
189
|
+
"sourceTypes": ["DataObject"],
|
|
190
|
+
"targetTypes": ["DatabaseTable"],
|
|
191
|
+
"examples": [
|
|
192
|
+
{
|
|
193
|
+
"source": "DataObject",
|
|
194
|
+
"target": "DatabaseTable",
|
|
195
|
+
"description": "User data object maps to users table"
|
|
196
|
+
}
|
|
197
|
+
]
|
|
198
|
+
},
|
|
199
|
+
{
|
|
200
|
+
"relationshipTypeId": "references-table",
|
|
201
|
+
"sourceTypes": ["OrderTable"],
|
|
202
|
+
"targetTypes": ["CustomerTable"],
|
|
203
|
+
"examples": [
|
|
204
|
+
{
|
|
205
|
+
"source": "OrderTable",
|
|
206
|
+
"target": "CustomerTable",
|
|
207
|
+
"description": "Order table references customer table via foreign key"
|
|
208
|
+
}
|
|
209
|
+
]
|
|
210
|
+
},
|
|
211
|
+
{
|
|
212
|
+
"relationshipTypeId": "derivedfrom",
|
|
213
|
+
"sourceTypes": ["TotalPrice"],
|
|
214
|
+
"targetTypes": ["Quantity, UnitPrice"],
|
|
215
|
+
"examples": [
|
|
216
|
+
{
|
|
217
|
+
"source": "TotalPrice",
|
|
218
|
+
"target": "Quantity, UnitPrice",
|
|
219
|
+
"description": "Total price derives from quantity times unit price"
|
|
220
|
+
}
|
|
221
|
+
]
|
|
222
|
+
}
|
|
223
|
+
]
|
|
224
|
+
},
|
|
225
|
+
"crossLayerRelationships": {
|
|
226
|
+
"$comment": "Relationships to/from entities in other layers",
|
|
227
|
+
"outgoing": [
|
|
228
|
+
{
|
|
229
|
+
"id": "motivation-governed-by-principles",
|
|
230
|
+
"predicate": "governed-by-principles",
|
|
231
|
+
"inversePredicate": "governs",
|
|
232
|
+
"targetLayer": "01-motivation",
|
|
233
|
+
"targetTypes": ["GovernedByPrinciple"],
|
|
234
|
+
"sourceTypes": ["BusinessService"],
|
|
235
|
+
"fieldPath": "motivation.governed-by-principles",
|
|
236
|
+
"cardinality": "array",
|
|
237
|
+
"format": "reference",
|
|
238
|
+
"strength": "high",
|
|
239
|
+
"required": false,
|
|
240
|
+
"description": "BusinessService governed by Principles",
|
|
241
|
+
"examples": [
|
|
242
|
+
{
|
|
243
|
+
"elementType": "BusinessService",
|
|
244
|
+
"elementId": "order-service",
|
|
245
|
+
"elementName": "Order Processing Service",
|
|
246
|
+
"fieldPath": "motivation.governed-by-principles",
|
|
247
|
+
"value": "principle-customer-first,principle-automation",
|
|
248
|
+
"layer": "02-business"
|
|
249
|
+
},
|
|
250
|
+
{
|
|
251
|
+
"elementType": "ApplicationService",
|
|
252
|
+
"elementId": "product-service",
|
|
253
|
+
"elementName": "product-service",
|
|
254
|
+
"fieldPath": "motivation.governed-by-principles",
|
|
255
|
+
"value": "principle-api-first,principle-cloud-native",
|
|
256
|
+
"layer": "04-application"
|
|
257
|
+
}
|
|
258
|
+
]
|
|
259
|
+
},
|
|
260
|
+
{
|
|
261
|
+
"id": "motivation-supports-goals",
|
|
262
|
+
"predicate": "supports-goals",
|
|
263
|
+
"inversePredicate": "supported-by",
|
|
264
|
+
"targetLayer": "01-motivation",
|
|
265
|
+
"targetTypes": ["SupportsGoal"],
|
|
266
|
+
"sourceTypes": ["BusinessService"],
|
|
267
|
+
"fieldPath": "motivation.supports-goals",
|
|
268
|
+
"cardinality": "array",
|
|
269
|
+
"format": "reference",
|
|
270
|
+
"strength": "high",
|
|
271
|
+
"required": false,
|
|
272
|
+
"description": "BusinessService supports Goals",
|
|
273
|
+
"examples": [
|
|
274
|
+
{
|
|
275
|
+
"elementType": "BusinessService",
|
|
276
|
+
"elementId": "order-service",
|
|
277
|
+
"elementName": "Order Processing Service",
|
|
278
|
+
"fieldPath": "motivation.supports-goals",
|
|
279
|
+
"value": "goal-customer-satisfaction,goal-revenue-growth",
|
|
280
|
+
"layer": "02-business"
|
|
281
|
+
},
|
|
282
|
+
{
|
|
283
|
+
"elementType": "ApplicationService",
|
|
284
|
+
"elementId": "product-service",
|
|
285
|
+
"elementName": "product-service",
|
|
286
|
+
"fieldPath": "motivation.supports-goals",
|
|
287
|
+
"value": "goal-product-catalog-accuracy,goal-customer-satisfaction",
|
|
288
|
+
"layer": "04-application"
|
|
289
|
+
}
|
|
290
|
+
]
|
|
291
|
+
},
|
|
292
|
+
{
|
|
293
|
+
"id": "security-classification",
|
|
294
|
+
"predicate": "classification",
|
|
295
|
+
"inversePredicate": "referenced-by",
|
|
296
|
+
"targetLayer": "03-security",
|
|
297
|
+
"targetTypes": ["Classification"],
|
|
298
|
+
"sourceTypes": ["Artifact"],
|
|
299
|
+
"fieldPath": "security.classification",
|
|
300
|
+
"cardinality": "single",
|
|
301
|
+
"format": "string",
|
|
302
|
+
"strength": "low",
|
|
303
|
+
"required": false,
|
|
304
|
+
"description": "Links to Classification in target layer",
|
|
305
|
+
"examples": [
|
|
306
|
+
{
|
|
307
|
+
"elementType": "Artifact",
|
|
308
|
+
"elementId": "product-db",
|
|
309
|
+
"elementName": "product-db",
|
|
310
|
+
"fieldPath": "security.classification",
|
|
311
|
+
"value": "internal",
|
|
312
|
+
"layer": "05-technology"
|
|
313
|
+
},
|
|
314
|
+
{
|
|
315
|
+
"elementType": "Artifact",
|
|
316
|
+
"elementId": "customer-db",
|
|
317
|
+
"elementName": "customer-db",
|
|
318
|
+
"fieldPath": "security.classification",
|
|
319
|
+
"value": "restricted",
|
|
320
|
+
"layer": "05-technology"
|
|
321
|
+
}
|
|
322
|
+
]
|
|
323
|
+
}
|
|
324
|
+
],
|
|
325
|
+
"incoming": []
|
|
326
|
+
},
|
|
327
|
+
"type": "object",
|
|
328
|
+
"properties": {
|
|
329
|
+
"databases": {
|
|
330
|
+
"type": "array",
|
|
331
|
+
"description": "Collection of Database entities",
|
|
332
|
+
"items": {
|
|
333
|
+
"$ref": "#/definitions/Database"
|
|
334
|
+
}
|
|
335
|
+
},
|
|
336
|
+
"database-schemas": {
|
|
337
|
+
"type": "array",
|
|
338
|
+
"description": "Collection of DatabaseSchema entities",
|
|
339
|
+
"items": {
|
|
340
|
+
"$ref": "#/definitions/DatabaseSchema"
|
|
341
|
+
}
|
|
342
|
+
},
|
|
343
|
+
"tables": {
|
|
344
|
+
"type": "array",
|
|
345
|
+
"description": "Collection of Table entities",
|
|
346
|
+
"items": {
|
|
347
|
+
"$ref": "#/definitions/Table"
|
|
348
|
+
}
|
|
349
|
+
},
|
|
350
|
+
"columns": {
|
|
351
|
+
"type": "array",
|
|
352
|
+
"description": "Collection of Column entities",
|
|
353
|
+
"items": {
|
|
354
|
+
"$ref": "#/definitions/Column"
|
|
355
|
+
}
|
|
356
|
+
},
|
|
357
|
+
"constraints": {
|
|
358
|
+
"type": "array",
|
|
359
|
+
"description": "Collection of Constraint entities",
|
|
360
|
+
"items": {
|
|
361
|
+
"$ref": "#/definitions/Constraint"
|
|
362
|
+
}
|
|
363
|
+
},
|
|
364
|
+
"indexes": {
|
|
365
|
+
"type": "array",
|
|
366
|
+
"description": "Collection of Index entities",
|
|
367
|
+
"items": {
|
|
368
|
+
"$ref": "#/definitions/Index"
|
|
369
|
+
}
|
|
370
|
+
},
|
|
371
|
+
"views": {
|
|
372
|
+
"type": "array",
|
|
373
|
+
"description": "Collection of View entities",
|
|
374
|
+
"items": {
|
|
375
|
+
"$ref": "#/definitions/View"
|
|
376
|
+
}
|
|
377
|
+
},
|
|
378
|
+
"triggers": {
|
|
379
|
+
"type": "array",
|
|
380
|
+
"description": "Collection of Trigger entities",
|
|
381
|
+
"items": {
|
|
382
|
+
"$ref": "#/definitions/Trigger"
|
|
383
|
+
}
|
|
384
|
+
},
|
|
385
|
+
"sequences": {
|
|
386
|
+
"type": "array",
|
|
387
|
+
"description": "Collection of Sequence entities",
|
|
388
|
+
"items": {
|
|
389
|
+
"$ref": "#/definitions/Sequence"
|
|
390
|
+
}
|
|
391
|
+
},
|
|
392
|
+
"functions": {
|
|
393
|
+
"type": "array",
|
|
394
|
+
"description": "Collection of Function entities",
|
|
395
|
+
"items": {
|
|
396
|
+
"$ref": "#/definitions/Function"
|
|
397
|
+
}
|
|
398
|
+
}
|
|
399
|
+
},
|
|
400
|
+
"definitions": {
|
|
401
|
+
"DatabaseType": {
|
|
402
|
+
"type": "string",
|
|
403
|
+
"enum": ["PostgreSQL", "MySQL", "SQLite", "MariaDB", "Oracle", "SQL Server"]
|
|
404
|
+
},
|
|
405
|
+
"SQLDataType": {
|
|
406
|
+
"type": "string",
|
|
407
|
+
"enum": [
|
|
408
|
+
"SMALLINT",
|
|
409
|
+
"INTEGER",
|
|
410
|
+
"BIGINT",
|
|
411
|
+
"SERIAL",
|
|
412
|
+
"BIGSERIAL",
|
|
413
|
+
"DECIMAL(precision, scale)",
|
|
414
|
+
"NUMERIC(precision, scale)",
|
|
415
|
+
"REAL",
|
|
416
|
+
"DOUBLE PRECISION",
|
|
417
|
+
"CHAR(length)",
|
|
418
|
+
"VARCHAR(length)",
|
|
419
|
+
"TEXT",
|
|
420
|
+
"BYTEA",
|
|
421
|
+
"BLOB",
|
|
422
|
+
"BOOLEAN",
|
|
423
|
+
"DATE",
|
|
424
|
+
"TIME",
|
|
425
|
+
"TIMESTAMP",
|
|
426
|
+
"TIMESTAMPTZ",
|
|
427
|
+
"INTERVAL",
|
|
428
|
+
"JSON",
|
|
429
|
+
"JSONB",
|
|
430
|
+
"UUID",
|
|
431
|
+
"INTEGER[]",
|
|
432
|
+
"TEXT[]",
|
|
433
|
+
"etc.",
|
|
434
|
+
"ENUM('value1', 'value2', ...)"
|
|
435
|
+
]
|
|
436
|
+
},
|
|
437
|
+
"GenerationType": {
|
|
438
|
+
"type": "string",
|
|
439
|
+
"enum": ["ALWAYS", "BY_DEFAULT"]
|
|
440
|
+
},
|
|
441
|
+
"ConstraintType": {
|
|
442
|
+
"type": "string",
|
|
443
|
+
"enum": ["PRIMARY_KEY", "UNIQUE", "FOREIGN_KEY", "CHECK", "EXCLUSION"]
|
|
444
|
+
},
|
|
445
|
+
"ReferentialAction": {
|
|
446
|
+
"type": "string",
|
|
447
|
+
"enum": ["CASCADE", "SET_NULL", "SET_DEFAULT", "RESTRICT", "NO_ACTION"]
|
|
448
|
+
},
|
|
449
|
+
"IndexMethod": {
|
|
450
|
+
"type": "string",
|
|
451
|
+
"enum": ["BTREE", "HASH", "GIN", "GIST", "BRIN", "SP-GIST"]
|
|
452
|
+
},
|
|
453
|
+
"RefreshMode": {
|
|
454
|
+
"type": "string",
|
|
455
|
+
"enum": ["ON_COMMIT", "ON_DEMAND", "SCHEDULED"]
|
|
456
|
+
},
|
|
457
|
+
"TriggerTiming": {
|
|
458
|
+
"type": "string",
|
|
459
|
+
"enum": ["BEFORE", "AFTER", "INSTEAD_OF"]
|
|
460
|
+
},
|
|
461
|
+
"TriggerEvent": {
|
|
462
|
+
"type": "string",
|
|
463
|
+
"enum": ["INSERT", "UPDATE", "DELETE", "TRUNCATE"]
|
|
464
|
+
},
|
|
465
|
+
"TriggerForEach": {
|
|
466
|
+
"type": "string",
|
|
467
|
+
"enum": ["ROW", "STATEMENT"]
|
|
468
|
+
},
|
|
469
|
+
"SequenceDataType": {
|
|
470
|
+
"type": "string",
|
|
471
|
+
"enum": ["SMALLINT", "INTEGER", "BIGINT"]
|
|
472
|
+
},
|
|
473
|
+
"FunctionLanguage": {
|
|
474
|
+
"type": "string",
|
|
475
|
+
"enum": ["SQL", "PLPGSQL", "PLPYTHON3U", "PLPERL", "PLPYTHON", "C"]
|
|
476
|
+
},
|
|
477
|
+
"FunctionVolatility": {
|
|
478
|
+
"type": "string",
|
|
479
|
+
"enum": ["IMMUTABLE", "STABLE", "VOLATILE"]
|
|
480
|
+
},
|
|
481
|
+
"ParallelSafety": {
|
|
482
|
+
"type": "string",
|
|
483
|
+
"enum": ["UNSAFE", "RESTRICTED", "SAFE"]
|
|
484
|
+
},
|
|
485
|
+
"SecurityDefiner": {
|
|
486
|
+
"type": "string",
|
|
487
|
+
"enum": ["INVOKER", "DEFINER"]
|
|
488
|
+
},
|
|
489
|
+
"ParameterMode": {
|
|
490
|
+
"type": "string",
|
|
491
|
+
"enum": ["IN", "OUT", "INOUT", "VARIADIC"]
|
|
492
|
+
},
|
|
493
|
+
"Database": {
|
|
494
|
+
"type": "object",
|
|
495
|
+
"description": "Database instance containing schemas",
|
|
496
|
+
"required": ["id", "name", "type", "version"],
|
|
497
|
+
"properties": {
|
|
498
|
+
"id": {
|
|
499
|
+
"type": "string",
|
|
500
|
+
"format": "uuid",
|
|
501
|
+
"minLength": 1
|
|
502
|
+
},
|
|
503
|
+
"name": {
|
|
504
|
+
"type": "string",
|
|
505
|
+
"minLength": 1
|
|
506
|
+
},
|
|
507
|
+
"type": {
|
|
508
|
+
"$ref": "#/definitions/DatabaseType"
|
|
509
|
+
},
|
|
510
|
+
"version": {
|
|
511
|
+
"type": "string",
|
|
512
|
+
"minLength": 1
|
|
513
|
+
},
|
|
514
|
+
"charset": {
|
|
515
|
+
"type": "string",
|
|
516
|
+
"minLength": 1
|
|
517
|
+
},
|
|
518
|
+
"collation": {
|
|
519
|
+
"type": "string",
|
|
520
|
+
"minLength": 1
|
|
521
|
+
},
|
|
522
|
+
"schemas": {
|
|
523
|
+
"type": "array",
|
|
524
|
+
"description": "Contains relationship",
|
|
525
|
+
"items": {
|
|
526
|
+
"type": "string"
|
|
527
|
+
}
|
|
528
|
+
}
|
|
529
|
+
}
|
|
530
|
+
},
|
|
531
|
+
"DatabaseSchema": {
|
|
532
|
+
"type": "object",
|
|
533
|
+
"description": "Logical grouping of database objects",
|
|
534
|
+
"required": ["id", "name"],
|
|
535
|
+
"properties": {
|
|
536
|
+
"id": {
|
|
537
|
+
"type": "string",
|
|
538
|
+
"format": "uuid",
|
|
539
|
+
"minLength": 1
|
|
540
|
+
},
|
|
541
|
+
"name": {
|
|
542
|
+
"type": "string",
|
|
543
|
+
"minLength": 1
|
|
544
|
+
},
|
|
545
|
+
"owner": {
|
|
546
|
+
"type": "string",
|
|
547
|
+
"minLength": 1
|
|
548
|
+
},
|
|
549
|
+
"tables": {
|
|
550
|
+
"type": "array",
|
|
551
|
+
"description": "Contains relationship",
|
|
552
|
+
"items": {
|
|
553
|
+
"type": "string"
|
|
554
|
+
}
|
|
555
|
+
},
|
|
556
|
+
"views": {
|
|
557
|
+
"type": "array",
|
|
558
|
+
"description": "Contains relationship",
|
|
559
|
+
"items": {
|
|
560
|
+
"type": "string"
|
|
561
|
+
}
|
|
562
|
+
},
|
|
563
|
+
"functions": {
|
|
564
|
+
"type": "array",
|
|
565
|
+
"description": "Contains relationship",
|
|
566
|
+
"items": {
|
|
567
|
+
"type": "string"
|
|
568
|
+
}
|
|
569
|
+
},
|
|
570
|
+
"sequences": {
|
|
571
|
+
"type": "array",
|
|
572
|
+
"description": "Contains relationship",
|
|
573
|
+
"items": {
|
|
574
|
+
"type": "string"
|
|
575
|
+
}
|
|
576
|
+
}
|
|
577
|
+
}
|
|
578
|
+
},
|
|
579
|
+
"Table": {
|
|
580
|
+
"type": "object",
|
|
581
|
+
"description": "Database table definition",
|
|
582
|
+
"required": ["id", "name"],
|
|
583
|
+
"properties": {
|
|
584
|
+
"id": {
|
|
585
|
+
"type": "string",
|
|
586
|
+
"format": "uuid",
|
|
587
|
+
"minLength": 1
|
|
588
|
+
},
|
|
589
|
+
"name": {
|
|
590
|
+
"type": "string",
|
|
591
|
+
"minLength": 1
|
|
592
|
+
},
|
|
593
|
+
"schema": {
|
|
594
|
+
"type": "string",
|
|
595
|
+
"minLength": 1
|
|
596
|
+
},
|
|
597
|
+
"tablespace": {
|
|
598
|
+
"type": "string",
|
|
599
|
+
"minLength": 1
|
|
600
|
+
},
|
|
601
|
+
"columns": {
|
|
602
|
+
"type": "array",
|
|
603
|
+
"description": "Contains relationship",
|
|
604
|
+
"items": {
|
|
605
|
+
"type": "string"
|
|
606
|
+
}
|
|
607
|
+
},
|
|
608
|
+
"constraints": {
|
|
609
|
+
"type": "array",
|
|
610
|
+
"description": "Contains relationship",
|
|
611
|
+
"items": {
|
|
612
|
+
"type": "string"
|
|
613
|
+
}
|
|
614
|
+
},
|
|
615
|
+
"indexes": {
|
|
616
|
+
"type": "array",
|
|
617
|
+
"description": "Contains relationship",
|
|
618
|
+
"items": {
|
|
619
|
+
"type": "string"
|
|
620
|
+
}
|
|
621
|
+
},
|
|
622
|
+
"triggers": {
|
|
623
|
+
"type": "array",
|
|
624
|
+
"description": "Contains relationship",
|
|
625
|
+
"items": {
|
|
626
|
+
"type": "string"
|
|
627
|
+
}
|
|
628
|
+
},
|
|
629
|
+
"x-source-reference": {
|
|
630
|
+
"$ref": "common/source-references.schema.json#/definitions/SourceReference",
|
|
631
|
+
"description": "Source code reference using OpenAPI x- extension pattern. This pattern is used for OpenAPI-style layers (API, Data Model, Datastore) to maintain compatibility with OpenAPI tooling, as opposed to the nested properties.source.reference pattern used in ArchiMate-style layers (Application, Technology)."
|
|
632
|
+
}
|
|
633
|
+
}
|
|
634
|
+
},
|
|
635
|
+
"Column": {
|
|
636
|
+
"type": "object",
|
|
637
|
+
"description": "Table column definition",
|
|
638
|
+
"required": ["id", "name", "dataType"],
|
|
639
|
+
"properties": {
|
|
640
|
+
"id": {
|
|
641
|
+
"type": "string",
|
|
642
|
+
"format": "uuid",
|
|
643
|
+
"minLength": 1
|
|
644
|
+
},
|
|
645
|
+
"name": {
|
|
646
|
+
"type": "string",
|
|
647
|
+
"minLength": 1
|
|
648
|
+
},
|
|
649
|
+
"dataType": {
|
|
650
|
+
"type": "string",
|
|
651
|
+
"minLength": 1
|
|
652
|
+
},
|
|
653
|
+
"nullable": {
|
|
654
|
+
"type": "boolean"
|
|
655
|
+
},
|
|
656
|
+
"defaultValue": {
|
|
657
|
+
"type": "string",
|
|
658
|
+
"minLength": 1
|
|
659
|
+
},
|
|
660
|
+
"generated": {
|
|
661
|
+
"type": "string",
|
|
662
|
+
"minLength": 1
|
|
663
|
+
},
|
|
664
|
+
"x-source-reference": {
|
|
665
|
+
"$ref": "common/source-references.schema.json#/definitions/SourceReference",
|
|
666
|
+
"description": "Source code reference using OpenAPI x- extension pattern. This pattern is used for OpenAPI-style layers (API, Data Model, Datastore) to maintain compatibility with OpenAPI tooling, as opposed to the nested properties.source.reference pattern used in ArchiMate-style layers (Application, Technology)."
|
|
667
|
+
}
|
|
668
|
+
}
|
|
669
|
+
},
|
|
670
|
+
"Constraint": {
|
|
671
|
+
"type": "object",
|
|
672
|
+
"description": "Table constraint",
|
|
673
|
+
"required": ["id", "name", "type"],
|
|
674
|
+
"properties": {
|
|
675
|
+
"id": {
|
|
676
|
+
"type": "string",
|
|
677
|
+
"format": "uuid",
|
|
678
|
+
"minLength": 1
|
|
679
|
+
},
|
|
680
|
+
"name": {
|
|
681
|
+
"type": "string",
|
|
682
|
+
"minLength": 1
|
|
683
|
+
},
|
|
684
|
+
"type": {
|
|
685
|
+
"$ref": "#/definitions/ConstraintType"
|
|
686
|
+
}
|
|
687
|
+
}
|
|
688
|
+
},
|
|
689
|
+
"Index": {
|
|
690
|
+
"type": "object",
|
|
691
|
+
"description": "Database index for query optimization",
|
|
692
|
+
"required": ["id", "name"],
|
|
693
|
+
"properties": {
|
|
694
|
+
"id": {
|
|
695
|
+
"type": "string",
|
|
696
|
+
"format": "uuid",
|
|
697
|
+
"minLength": 1
|
|
698
|
+
},
|
|
699
|
+
"name": {
|
|
700
|
+
"type": "string",
|
|
701
|
+
"minLength": 1
|
|
702
|
+
},
|
|
703
|
+
"columns": {
|
|
704
|
+
"type": "string",
|
|
705
|
+
"minLength": 1
|
|
706
|
+
},
|
|
707
|
+
"unique": {
|
|
708
|
+
"type": "boolean"
|
|
709
|
+
},
|
|
710
|
+
"method": {
|
|
711
|
+
"type": "string",
|
|
712
|
+
"minLength": 1
|
|
713
|
+
},
|
|
714
|
+
"where": {
|
|
715
|
+
"type": "string",
|
|
716
|
+
"minLength": 1
|
|
717
|
+
},
|
|
718
|
+
"include": {
|
|
719
|
+
"type": "string",
|
|
720
|
+
"minLength": 1
|
|
721
|
+
}
|
|
722
|
+
}
|
|
723
|
+
},
|
|
724
|
+
"View": {
|
|
725
|
+
"type": "object",
|
|
726
|
+
"description": "Database view",
|
|
727
|
+
"required": ["id", "name"],
|
|
728
|
+
"properties": {
|
|
729
|
+
"id": {
|
|
730
|
+
"type": "string",
|
|
731
|
+
"format": "uuid",
|
|
732
|
+
"minLength": 1
|
|
733
|
+
},
|
|
734
|
+
"name": {
|
|
735
|
+
"type": "string",
|
|
736
|
+
"minLength": 1
|
|
737
|
+
},
|
|
738
|
+
"definition": {
|
|
739
|
+
"type": "string",
|
|
740
|
+
"minLength": 1
|
|
741
|
+
},
|
|
742
|
+
"materialized": {
|
|
743
|
+
"type": "boolean"
|
|
744
|
+
}
|
|
745
|
+
}
|
|
746
|
+
},
|
|
747
|
+
"Trigger": {
|
|
748
|
+
"type": "object",
|
|
749
|
+
"description": "A database trigger that automatically executes in response to data modification events (INSERT, UPDATE, DELETE). Enables reactive database behavior and data integrity enforcement.",
|
|
750
|
+
"required": [
|
|
751
|
+
"id",
|
|
752
|
+
"name",
|
|
753
|
+
"table",
|
|
754
|
+
"timing",
|
|
755
|
+
"events",
|
|
756
|
+
"forEach",
|
|
757
|
+
"functionName",
|
|
758
|
+
"condition"
|
|
759
|
+
],
|
|
760
|
+
"properties": {
|
|
761
|
+
"id": {
|
|
762
|
+
"type": "string",
|
|
763
|
+
"format": "uuid",
|
|
764
|
+
"minLength": 1
|
|
765
|
+
},
|
|
766
|
+
"name": {
|
|
767
|
+
"type": "string",
|
|
768
|
+
"minLength": 1
|
|
769
|
+
},
|
|
770
|
+
"table": {
|
|
771
|
+
"type": "string",
|
|
772
|
+
"minLength": 1
|
|
773
|
+
},
|
|
774
|
+
"timing": {
|
|
775
|
+
"$ref": "#/definitions/TriggerTiming"
|
|
776
|
+
},
|
|
777
|
+
"events": {
|
|
778
|
+
"type": "string",
|
|
779
|
+
"minLength": 1
|
|
780
|
+
},
|
|
781
|
+
"forEach": {
|
|
782
|
+
"$ref": "#/definitions/TriggerForEach"
|
|
783
|
+
},
|
|
784
|
+
"functionName": {
|
|
785
|
+
"type": "string",
|
|
786
|
+
"minLength": 1
|
|
787
|
+
},
|
|
788
|
+
"condition": {
|
|
789
|
+
"type": "string",
|
|
790
|
+
"minLength": 1
|
|
791
|
+
},
|
|
792
|
+
"enabled": {
|
|
793
|
+
"type": "boolean"
|
|
794
|
+
}
|
|
795
|
+
}
|
|
796
|
+
},
|
|
797
|
+
"Sequence": {
|
|
798
|
+
"type": "object",
|
|
799
|
+
"description": "A database sequence generator that produces unique, ordered numeric values. Used for generating primary keys, order numbers, or other sequential identifiers.",
|
|
800
|
+
"required": ["id", "name"],
|
|
801
|
+
"properties": {
|
|
802
|
+
"id": {
|
|
803
|
+
"type": "string",
|
|
804
|
+
"format": "uuid",
|
|
805
|
+
"minLength": 1
|
|
806
|
+
},
|
|
807
|
+
"name": {
|
|
808
|
+
"type": "string",
|
|
809
|
+
"minLength": 1
|
|
810
|
+
},
|
|
811
|
+
"schema": {
|
|
812
|
+
"type": "string",
|
|
813
|
+
"minLength": 1
|
|
814
|
+
},
|
|
815
|
+
"dataType": {
|
|
816
|
+
"$ref": "#/definitions/SequenceDataType"
|
|
817
|
+
},
|
|
818
|
+
"startValue": {
|
|
819
|
+
"type": "integer"
|
|
820
|
+
},
|
|
821
|
+
"increment": {
|
|
822
|
+
"type": "integer"
|
|
823
|
+
},
|
|
824
|
+
"minValue": {
|
|
825
|
+
"type": "integer"
|
|
826
|
+
},
|
|
827
|
+
"maxValue": {
|
|
828
|
+
"type": "integer"
|
|
829
|
+
},
|
|
830
|
+
"cycle": {
|
|
831
|
+
"type": "boolean"
|
|
832
|
+
},
|
|
833
|
+
"cache": {
|
|
834
|
+
"type": "integer"
|
|
835
|
+
},
|
|
836
|
+
"ownedBy": {
|
|
837
|
+
"type": "string",
|
|
838
|
+
"minLength": 1
|
|
839
|
+
}
|
|
840
|
+
}
|
|
841
|
+
},
|
|
842
|
+
"Function": {
|
|
843
|
+
"type": "object",
|
|
844
|
+
"description": "A stored database function that encapsulates reusable computation logic. Returns a value and can be used in SQL expressions for data transformation or validation.",
|
|
845
|
+
"required": ["id", "name", "language", "returnType"],
|
|
846
|
+
"properties": {
|
|
847
|
+
"id": {
|
|
848
|
+
"type": "string",
|
|
849
|
+
"format": "uuid",
|
|
850
|
+
"minLength": 1
|
|
851
|
+
},
|
|
852
|
+
"name": {
|
|
853
|
+
"type": "string",
|
|
854
|
+
"minLength": 1
|
|
855
|
+
},
|
|
856
|
+
"schema": {
|
|
857
|
+
"type": "string",
|
|
858
|
+
"minLength": 1
|
|
859
|
+
},
|
|
860
|
+
"language": {
|
|
861
|
+
"$ref": "#/definitions/FunctionLanguage"
|
|
862
|
+
},
|
|
863
|
+
"returnType": {
|
|
864
|
+
"type": "string",
|
|
865
|
+
"minLength": 1
|
|
866
|
+
},
|
|
867
|
+
"volatility": {
|
|
868
|
+
"$ref": "#/definitions/FunctionVolatility"
|
|
869
|
+
},
|
|
870
|
+
"parallel": {
|
|
871
|
+
"$ref": "#/definitions/ParallelSafety"
|
|
872
|
+
},
|
|
873
|
+
"strict": {
|
|
874
|
+
"type": "boolean"
|
|
875
|
+
},
|
|
876
|
+
"security": {
|
|
877
|
+
"$ref": "#/definitions/SecurityDefiner"
|
|
878
|
+
},
|
|
879
|
+
"cost": {
|
|
880
|
+
"type": "integer"
|
|
881
|
+
},
|
|
882
|
+
"rows": {
|
|
883
|
+
"type": "integer"
|
|
884
|
+
},
|
|
885
|
+
"x-source-reference": {
|
|
886
|
+
"$ref": "common/source-references.schema.json#/definitions/SourceReference",
|
|
887
|
+
"description": "Source code reference using OpenAPI x- extension pattern. This pattern is used for OpenAPI-style layers (API, Data Model, Datastore) to maintain compatibility with OpenAPI tooling, as opposed to the nested properties.source.reference pattern used in ArchiMate-style layers (Application, Technology)."
|
|
888
|
+
}
|
|
889
|
+
}
|
|
890
|
+
}
|
|
891
|
+
}
|
|
892
|
+
}
|