@documentation-robotics/cli 0.2.0 → 0.3.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/README.md +36 -2
- package/dist/analysis/relationship-classifier.js +2 -9
- package/dist/analysis/relationship-classifier.js.map +2 -2
- package/dist/analyzers/call-graph-utils.js +2 -2
- package/dist/analyzers/call-graph-utils.js.map +2 -2
- package/dist/analyzers/cards/build.js +171 -0
- package/dist/analyzers/cards/build.js.map +7 -0
- package/dist/analyzers/cards/classify.js +42 -0
- package/dist/analyzers/cards/classify.js.map +7 -0
- package/dist/analyzers/cards/edge-index.js +44 -0
- package/dist/analyzers/cards/edge-index.js.map +7 -0
- package/dist/analyzers/cards/facts.js +46 -0
- package/dist/analyzers/cards/facts.js.map +7 -0
- package/dist/analyzers/cards/graph.js +42 -0
- package/dist/analyzers/cards/graph.js.map +7 -0
- package/dist/analyzers/cards/index.js +8 -0
- package/dist/analyzers/cards/index.js.map +7 -0
- package/dist/analyzers/cards/tier0.js +18 -0
- package/dist/analyzers/cards/tier0.js.map +7 -0
- package/dist/analyzers/cards/types.js +1 -0
- package/dist/analyzers/cards/types.js.map +7 -0
- package/dist/analyzers/cbm-analyzer.js +195 -171
- package/dist/analyzers/cbm-analyzer.js.map +2 -2
- package/dist/analyzers/cbm-responses.js +336 -0
- package/dist/analyzers/cbm-responses.js.map +7 -0
- package/dist/analyzers/edge-relationships.js +45 -0
- package/dist/analyzers/edge-relationships.js.map +7 -0
- package/dist/analyzers/mapping-loader.js +9 -0
- package/dist/analyzers/mapping-loader.js.map +2 -2
- package/dist/analyzers/tier0-rules.js +153 -0
- package/dist/analyzers/tier0-rules.js.map +7 -0
- package/dist/analyzers/types.js.map +1 -1
- package/dist/audit/relationships/ai/prompts.js +10 -10
- package/dist/audit/relationships/ai/prompts.js.map +2 -2
- package/dist/audit/relationships/analysis/layer-templates.js +52 -52
- package/dist/audit/relationships/analysis/layer-templates.js.map +1 -1
- package/dist/cli.js +12 -2
- package/dist/cli.js.map +2 -2
- package/dist/coding-agents/default-permissions.js +31 -1
- package/dist/coding-agents/default-permissions.js.map +2 -2
- package/dist/coding-agents/drbot-mcp.js +167 -0
- package/dist/coding-agents/drbot-mcp.js.map +7 -0
- package/dist/commands/add.js +3 -2
- package/dist/commands/add.js.map +2 -2
- package/dist/commands/analyzer.js +117 -14
- package/dist/commands/analyzer.js.map +2 -2
- package/dist/commands/changeset-verify.js +55 -0
- package/dist/commands/changeset-verify.js.map +7 -0
- package/dist/commands/changeset.js +43 -22
- package/dist/commands/changeset.js.map +2 -2
- package/dist/commands/delete.js +10 -4
- package/dist/commands/delete.js.map +2 -2
- package/dist/commands/farm.js +176 -60
- package/dist/commands/farm.js.map +2 -2
- package/dist/commands/mcp.js +19 -4
- package/dist/commands/mcp.js.map +2 -2
- package/dist/commands/relationship.js +207 -26
- package/dist/commands/relationship.js.map +2 -2
- package/dist/commands/update.js +42 -23
- package/dist/commands/update.js.map +2 -2
- package/dist/commands/upgrade.js +99 -11
- package/dist/commands/upgrade.js.map +3 -3
- package/dist/commands/version.js +1 -1
- package/dist/commands/visualize.js +4 -3
- package/dist/commands/visualize.js.map +2 -2
- package/dist/core/catalog-migration.js +33 -0
- package/dist/core/catalog-migration.js.map +7 -0
- package/dist/core/changeset-analysis.js +421 -0
- package/dist/core/changeset-analysis.js.map +7 -0
- package/dist/core/changeset-base-index.js +153 -0
- package/dist/core/changeset-base-index.js.map +7 -0
- package/dist/core/changeset-brief-delta.js +102 -0
- package/dist/core/changeset-brief-delta.js.map +7 -0
- package/dist/core/changeset-graph.js +281 -0
- package/dist/core/changeset-graph.js.map +7 -0
- package/dist/core/changeset-only-guard.js +32 -0
- package/dist/core/changeset-only-guard.js.map +7 -0
- package/dist/core/changeset-summary.js +68 -0
- package/dist/core/changeset-summary.js.map +7 -0
- package/dist/core/changeset-validator.js +66 -20
- package/dist/core/changeset-validator.js.map +2 -2
- package/dist/core/changeset-verify.js +518 -0
- package/dist/core/changeset-verify.js.map +7 -0
- package/dist/core/changeset.js +56 -9
- package/dist/core/changeset.js.map +2 -2
- package/dist/core/element-type-migration.js +145 -0
- package/dist/core/element-type-migration.js.map +7 -0
- package/dist/core/farm-manifest.js +12 -6
- package/dist/core/farm-manifest.js.map +2 -2
- package/dist/core/farm-sync-engine.js +1 -1
- package/dist/core/farm-sync-engine.js.map +2 -2
- package/dist/core/farm-sync-state.js +10 -2
- package/dist/core/farm-sync-state.js.map +2 -2
- package/dist/core/migration-registry.js +75 -46
- package/dist/core/migration-registry.js.map +2 -2
- package/dist/core/model-upgrade.js +102 -0
- package/dist/core/model-upgrade.js.map +7 -0
- package/dist/core/model.js +82 -30
- package/dist/core/model.js.map +2 -2
- package/dist/core/mutation-handler.js +71 -6
- package/dist/core/mutation-handler.js.map +2 -2
- package/dist/core/relationship-migration-table.js +6639 -0
- package/dist/core/relationship-migration-table.js.map +7 -0
- package/dist/core/relationship-migration.js +272 -0
- package/dist/core/relationship-migration.js.map +7 -0
- package/dist/core/relationship-prune.js +49 -0
- package/dist/core/relationship-prune.js.map +7 -0
- package/dist/core/relationship-staging.js +68 -0
- package/dist/core/relationship-staging.js.map +7 -0
- package/dist/core/relationships.js +26 -4
- package/dist/core/relationships.js.map +2 -2
- package/dist/core/report-data-model.js +7 -13
- package/dist/core/report-data-model.js.map +2 -2
- package/dist/core/staged-changeset-storage.js +64 -17
- package/dist/core/staged-changeset-storage.js.map +2 -2
- package/dist/core/staged-source-reference.js +28 -0
- package/dist/core/staged-source-reference.js.map +7 -0
- package/dist/core/staging-area.js +83 -18
- package/dist/core/staging-area.js.map +2 -2
- package/dist/core/virtual-projection.js +13 -5
- package/dist/core/virtual-projection.js.map +2 -2
- package/dist/export/archimate-exporter.js +1 -0
- package/dist/export/archimate-exporter.js.map +2 -2
- package/dist/generated/compiled-validators.js +2 -2
- package/dist/generated/compiled-validators.js.map +2 -2
- package/dist/generated/layer-registry.js +16 -16
- package/dist/generated/layer-registry.js.map +2 -2
- package/dist/generated/node-types.js +186 -168
- package/dist/generated/node-types.js.map +2 -2
- package/dist/generated/relationship-index.js +2236 -7790
- package/dist/generated/relationship-index.js.map +2 -2
- package/dist/integrations/claude_code/agents/dr-architect.md +16 -3
- package/dist/integrations/claude_code/agents/dr-extractor.md +1 -1
- package/dist/integrations/claude_code/commands/dr-analyzer.md +565 -0
- package/dist/integrations/claude_code/commands/dr-map.md +13 -0
- package/dist/integrations/claude_code/commands/dr-plan.md +40 -0
- package/dist/integrations/claude_code/commands/dr-relate.md +106 -96
- package/dist/integrations/claude_code/commands/dr-verify.md +45 -2
- package/dist/integrations/claude_code/docs/END_TO_END_WALKTHROUGH.md +14 -0
- package/dist/integrations/claude_code/docs/MCP_SERVER.md +26 -2
- package/dist/integrations/claude_code/docs/QUICK_START.md +37 -8
- package/dist/integrations/claude_code/docs/README.md +48 -1
- package/dist/integrations/claude_code/skills/dr_01_motivation_layer/SKILL.md +93 -72
- package/dist/integrations/claude_code/skills/dr_02_business_layer/SKILL.md +163 -126
- package/dist/integrations/claude_code/skills/dr_03_product_layer/SKILL.md +161 -126
- package/dist/integrations/claude_code/skills/dr_04_security_layer/SKILL.md +153 -133
- package/dist/integrations/claude_code/skills/dr_05_application_layer/SKILL.md +129 -100
- package/dist/integrations/claude_code/skills/dr_06_technology_layer/SKILL.md +111 -94
- package/dist/integrations/claude_code/skills/dr_07_api_layer/SKILL.md +143 -157
- package/dist/integrations/claude_code/skills/dr_08_data_model_layer/SKILL.md +117 -33
- package/dist/integrations/claude_code/skills/dr_09_dataset_layer/SKILL.md +74 -25
- package/dist/integrations/claude_code/skills/dr_10_ux_layer/SKILL.md +88 -12
- package/dist/integrations/claude_code/skills/dr_11_navigation_layer/SKILL.md +83 -24
- package/dist/integrations/claude_code/skills/dr_12_apm_layer/SKILL.md +57 -12
- package/dist/integrations/claude_code/skills/dr_13_testing_layer/SKILL.md +92 -15
- package/dist/integrations/claude_code/skills/dr_change_planning/SKILL.md +119 -0
- package/dist/integrations/claude_code/skills/dr_changeset_reviewer/SKILL.md +3 -0
- package/dist/integrations/claude_code/skills/dr_engineering_guide/SKILL.md +1 -1
- package/dist/integrations/github_copilot/agents/dr-architect.md +1 -1
- package/dist/integrations/github_copilot/skills/dr_01_motivation_layer/SKILL.md +182 -102
- package/dist/integrations/github_copilot/skills/dr_02_business_layer/SKILL.md +266 -148
- package/dist/integrations/github_copilot/skills/dr_03_product_layer/SKILL.md +547 -86
- package/dist/integrations/github_copilot/skills/dr_04_security_layer/SKILL.md +164 -169
- package/dist/integrations/github_copilot/skills/dr_05_application_layer/SKILL.md +420 -150
- package/dist/integrations/github_copilot/skills/dr_06_technology_layer/SKILL.md +331 -138
- package/dist/integrations/github_copilot/skills/dr_07_api_layer/SKILL.md +265 -201
- package/dist/integrations/github_copilot/skills/dr_08_data_model_layer/SKILL.md +181 -58
- package/dist/integrations/github_copilot/skills/dr_09_dataset_layer/SKILL.md +209 -57
- package/dist/integrations/github_copilot/skills/dr_10_ux_layer/SKILL.md +277 -112
- package/dist/integrations/github_copilot/skills/dr_11_navigation_layer/SKILL.md +219 -70
- package/dist/integrations/github_copilot/skills/dr_12_apm_layer/SKILL.md +189 -105
- package/dist/integrations/github_copilot/skills/dr_13_testing_layer/SKILL.md +222 -102
- package/dist/integrations/github_copilot/skills/dr_change_planning/SKILL.md +119 -0
- package/dist/integrations/github_copilot/skills/dr_changeset_reviewer/SKILL.md +3 -0
- package/dist/integrations/hash-utils.js.map +2 -2
- package/dist/mcp/api-key-manager.js +14 -1
- package/dist/mcp/api-key-manager.js.map +2 -2
- package/dist/mcp/changeset-only.js +34 -0
- package/dist/mcp/changeset-only.js.map +7 -0
- package/dist/mcp/tool-registry.js +19 -3
- package/dist/mcp/tool-registry.js.map +2 -2
- package/dist/mcp/tools/changeset-analysis-tools.js +78 -0
- package/dist/mcp/tools/changeset-analysis-tools.js.map +7 -0
- package/dist/mcp/tools/changeset-editing.js +184 -0
- package/dist/mcp/tools/changeset-editing.js.map +7 -0
- package/dist/mcp/tools/changeset-lifecycle.js +83 -0
- package/dist/mcp/tools/changeset-lifecycle.js.map +7 -0
- package/dist/mcp/tools/changeset-shared.js +31 -0
- package/dist/mcp/tools/changeset-shared.js.map +7 -0
- package/dist/mcp/tools/changeset-show.js +17 -1
- package/dist/mcp/tools/changeset-show.js.map +2 -2
- package/dist/mcp/tools/changeset-verify.js +43 -0
- package/dist/mcp/tools/changeset-verify.js.map +7 -0
- package/dist/mcp/tools/index.js +19 -1
- package/dist/mcp/tools/index.js.map +2 -2
- package/dist/mcp/tools/model-add.js +6 -5
- package/dist/mcp/tools/model-add.js.map +2 -2
- package/dist/mcp/tools/model-delete.js +2 -2
- package/dist/mcp/tools/model-delete.js.map +2 -2
- package/dist/mcp/tools/model-search.js +14 -0
- package/dist/mcp/tools/model-search.js.map +2 -2
- package/dist/mcp/tools/model-show.js +29 -2
- package/dist/mcp/tools/model-show.js.map +2 -2
- package/dist/mcp/tools/model-trace.js +93 -30
- package/dist/mcp/tools/model-trace.js.map +2 -2
- package/dist/mcp/tools/model-update.js +35 -19
- package/dist/mcp/tools/model-update.js.map +2 -2
- package/dist/mcp/tools/relationship-tools.js +98 -0
- package/dist/mcp/tools/relationship-tools.js.map +7 -0
- package/dist/mcp/tools/shared.js +25 -2
- package/dist/mcp/tools/shared.js.map +2 -2
- package/dist/mcp/tools/spec-type.js +90 -0
- package/dist/mcp/tools/spec-type.js.map +7 -0
- package/dist/schemas/bundled/analyzers/cbm.json +1186 -68
- package/dist/schemas/bundled/analyzers/manifest.json +2 -2
- package/dist/schemas/bundled/api.json +1029 -1658
- package/dist/schemas/bundled/apm.json +499 -734
- package/dist/schemas/bundled/application.json +735 -371
- package/dist/schemas/bundled/base.json +3 -220
- package/dist/schemas/bundled/business.json +452 -366
- package/dist/schemas/bundled/data-model.json +395 -411
- package/dist/schemas/bundled/data-store.json +334 -558
- package/dist/schemas/bundled/manifest.json +18 -18
- package/dist/schemas/bundled/motivation.json +349 -368
- package/dist/schemas/bundled/navigation.json +415 -731
- package/dist/schemas/bundled/product.json +325 -159
- package/dist/schemas/bundled/security.json +864 -1232
- package/dist/schemas/bundled/technology.json +574 -703
- package/dist/schemas/bundled/testing.json +718 -1643
- package/dist/schemas/bundled/ux.json +739 -1352
- package/dist/server/schemas.js +8 -0
- package/dist/server/schemas.js.map +2 -2
- package/dist/server/server.js +218 -34
- package/dist/server/server.js.map +2 -2
- package/dist/server-entry.js +2 -1
- package/dist/server-entry.js.map +2 -2
- package/dist/telemetry/index.js +1 -1
- package/dist/utils/ansi-suppressor.js +6 -8
- package/dist/utils/ansi-suppressor.js.map +2 -2
- package/dist/utils/attribute-patch.js +41 -0
- package/dist/utils/attribute-patch.js.map +7 -0
- package/dist/utils/error-hints.js +29 -0
- package/dist/utils/error-hints.js.map +7 -0
- package/dist/utils/errors.js +9 -3
- package/dist/utils/errors.js.map +2 -2
- package/dist/utils/project-paths.js +26 -1
- package/dist/utils/project-paths.js.map +2 -2
- package/dist/utils/source-reference.js +14 -12
- package/dist/utils/source-reference.js.map +2 -2
- package/dist/utils/spec-version.js +2 -2
- package/dist/utils/spec-version.js.map +1 -1
- package/dist/validators/composed-reference-validator.js +5 -27
- package/dist/validators/composed-reference-validator.js.map +2 -2
- package/dist/validators/reference-validator.js +0 -7
- package/dist/validators/reference-validator.js.map +2 -2
- package/dist/validators/relationship-schema-validator.js +3 -3
- package/dist/validators/relationship-schema-validator.js.map +2 -2
- package/dist/validators/schema-validator.js +27 -9
- package/dist/validators/schema-validator.js.map +2 -2
- package/dist/validators/types.js.map +1 -1
- package/dist/viewer/README.md +6 -6
- package/dist/viewer/assets/main-CxzcuU_o.js +84 -0
- package/dist/viewer/assets/main-j-7ULYpm.css +1 -0
- package/dist/viewer/index.html +2 -2
- package/dist/viewer/manifest.json +10 -10
- package/dist/viewer/version.json +1 -1
- package/package.json +2 -1
- package/dist/viewer/assets/main-B7AOQXXX.js +0 -81
- package/dist/viewer/assets/main-vdrFrG7q.css +0 -1
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
|
-
"specVersion": "0.
|
|
2
|
+
"specVersion": "0.11.0",
|
|
3
3
|
"layer": {
|
|
4
4
|
"id": "technology",
|
|
5
5
|
"number": 6,
|
|
6
6
|
"name": "Technology Layer",
|
|
7
|
-
"description": "
|
|
7
|
+
"description": "Models the infrastructure and platform the application runs on: nodes and devices, system software and runtimes, frameworks, communication networks and paths, technology services, interfaces, functions and processes, and the artifacts that are deployed to them (ArchiMate 3.2 technology layer). Package manifests, container images, deployment descriptors and infrastructure-as-code are the usual evidence. Modelling rules: nodes compose their devices, system software, interfaces and the artifacts deployed to them; nodes and system software are assigned to the functions and processes they perform, and a collaboration aggregates the nodes, system software and nested collaborations that cooperate in it and is assigned to its interactions. System software provides the interfaces it declares; an interface is assigned to the technology services it offers and serves the behaviour that uses it. Functions, processes and interactions realize technology services, and a node, system software, collaboration, path or network may realize one directly; a hand-off between behaviours is flows-to; events trigger behaviour, behaviour and services raise events, and structure does not trigger. Artifacts are passive: behaviour and system software access them, and they realize the system software they install and the application components they package, such as a container image. A communication network realizes the paths over it, and networks and paths connect the nodes and devices on them; other elements reach a network through the node they run on. Technology services serve nodes, other services and the application (components, services and functions); a node, device or system software may serve an application component directly as a shortcut for hosting it. Technology reaches the business layer through the application layer. Services carry the link to motivation: they realize goals and software capabilities and satisfy requirements; structure satisfies requirements, constraints and principles. Other layers reach technology in two ways: platform services serve the API, UX, APM, navigation and data-store elements that use them, and an element built on or run by a software product depends on that system software (a data-store database also depends on its node).",
|
|
8
8
|
"inspired_by": {
|
|
9
9
|
"standard": "ArchiMate 3.2",
|
|
10
10
|
"version": "3.2",
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"artifact": {
|
|
31
31
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
32
32
|
"title": "Artifact",
|
|
33
|
-
"description": "A
|
|
33
|
+
"description": "A passive, physical unit of data, such as a file, container image, package, archive, script or configuration document, that is produced by a build or authoring process and is stored, deployed onto, or read by nodes and system software. It is identified by a name or path, can usually be versioned or hashed, and performs no behavior itself. Use Node instead when the thing is the running execution environment, such as a container instance, VM or cluster, rather than the image, package or file that is deployed onto it. Use SystemSoftware instead when the thing is the installed platform software providing an execution or storage environment, such as a PostgreSQL engine, Docker daemon or Kafka broker, rather than a distributable binary, image or config file of it. Use TechnologyProcess instead when the subject is the sequence of steps executed, such as a build, deploy or backup job, rather than the pipeline definition file or the outputs it produces. Use TechnologyService instead when the subject is the externally exposed infrastructure capability, such as object storage or a message queue, rather than the deployable unit that realizes it.",
|
|
34
34
|
"allOf": [
|
|
35
35
|
{
|
|
36
36
|
"$ref": "urn:dr:spec:base:spec-node"
|
|
@@ -50,7 +50,8 @@
|
|
|
50
50
|
"type": "object",
|
|
51
51
|
"properties": {
|
|
52
52
|
"documentation": {
|
|
53
|
-
"type": "string"
|
|
53
|
+
"type": "string",
|
|
54
|
+
"description": "Free-text description of what the artifact contains, how it is produced (build step or source), and where it is stored or deployed. Set it whenever the name and artifactType alone do not identify the artifact's purpose."
|
|
54
55
|
},
|
|
55
56
|
"artifactType": {
|
|
56
57
|
"type": "string",
|
|
@@ -77,12 +78,24 @@
|
|
|
77
78
|
"additionalProperties": false
|
|
78
79
|
}
|
|
79
80
|
},
|
|
81
|
+
"x-dr-standard": "ArchiMate 3.2 §10.4.1 Artifact",
|
|
82
|
+
"x-dr-evidence": [
|
|
83
|
+
"a Dockerfile, or an image reference with registry/name:tag in a docker-compose, Kubernetes or Helm manifest, that is built and pushed or pulled for deployment",
|
|
84
|
+
"a build output declared in a manifest or build script, such as a package.json 'main'/'bin', Maven <packaging>jar</packaging>, a setup.py wheel, or a Gradle task producing a .war/.zip",
|
|
85
|
+
"a configuration or deployment file copied into an image or mounted at runtime, such as application.yaml, nginx.conf, a Kubernetes ConfigMap, a .env template, or a Terraform module consumed by a deployment"
|
|
86
|
+
],
|
|
87
|
+
"x-dr-distinguish": {
|
|
88
|
+
"technology.node": "the thing is the running execution environment, such as a container instance, VM or cluster, rather than the image, package or file that is deployed onto it",
|
|
89
|
+
"technology.systemsoftware": "the thing is the installed platform software providing an execution or storage environment, such as a PostgreSQL engine, Docker daemon or Kafka broker, rather than a distributable binary, image or config file of it",
|
|
90
|
+
"technology.technologyprocess": "the subject is the sequence of steps executed, such as a build, deploy or backup job, rather than the pipeline definition file or the outputs it produces",
|
|
91
|
+
"technology.technologyservice": "the subject is the externally exposed infrastructure capability, such as object storage or a message queue, rather than the deployable unit that realizes it"
|
|
92
|
+
},
|
|
80
93
|
"$id": "urn:dr:spec:node:technology.artifact"
|
|
81
94
|
},
|
|
82
95
|
"communicationnetwork": {
|
|
83
96
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
84
97
|
"title": "CommunicationNetwork",
|
|
85
|
-
"description": "A
|
|
98
|
+
"description": "A technology active structure element representing a physical or virtual network infrastructure, such as a LAN, VPC, subnet, overlay, VPN or the public internet, that carries, routes and delivers data among any number of attached nodes and devices. It is identified by an address space or network membership rather than by a specific pair of endpoints. Use Path instead when the element is a logical communication channel between specific named nodes (e.g. service A calls database B over TCP) rather than the shared network infrastructure the traffic travels over. Use Device instead when the element is a physical network appliance such as a router, switch or firewall box (deviceType network-device) rather than the network it forms or joins. Use Node instead when the element is a computational resource that hosts software, such as a VM, container or cluster attached to the network, rather than the network itself. Use TechnologyService instead when the element is a consumable networking capability offered through an interface, such as managed DNS, a load-balancing service or a CDN, rather than the connectivity fabric.",
|
|
86
99
|
"allOf": [
|
|
87
100
|
{
|
|
88
101
|
"$ref": "urn:dr:spec:base:spec-node"
|
|
@@ -102,7 +115,8 @@
|
|
|
102
115
|
"type": "object",
|
|
103
116
|
"properties": {
|
|
104
117
|
"documentation": {
|
|
105
|
-
"type": "string"
|
|
118
|
+
"type": "string",
|
|
119
|
+
"description": "Free-text description of the network's purpose, scope and address range (e.g. 'private VPC 10.0.0.0/16 for production workloads'); set it whenever the name alone does not convey which hosts attach to the network or what traffic it carries."
|
|
106
120
|
},
|
|
107
121
|
"networkType": {
|
|
108
122
|
"type": "string",
|
|
@@ -122,12 +136,24 @@
|
|
|
122
136
|
"additionalProperties": false
|
|
123
137
|
}
|
|
124
138
|
},
|
|
139
|
+
"x-dr-standard": "ArchiMate 3.2 §10.2.7 Communication Network",
|
|
140
|
+
"x-dr-evidence": [
|
|
141
|
+
"An infrastructure-as-code resource that declares a network or address space, such as Terraform aws_vpc, aws_subnet, google_compute_network or azurerm_virtual_network, with a cidr_block or address_prefixes value.",
|
|
142
|
+
"A top-level `networks:` entry in a docker-compose file, or a `docker network create` command, that services attach to by name.",
|
|
143
|
+
"A VPN or overlay configuration such as a WireGuard [Interface]/[Peer] file, an OpenVPN .conf, or a CNI plugin config (Calico, Flannel) that defines a network range shared by multiple hosts."
|
|
144
|
+
],
|
|
145
|
+
"x-dr-distinguish": {
|
|
146
|
+
"technology.path": "the element is a logical communication channel between specific named nodes (e.g. service A calls database B over TCP) rather than the shared network infrastructure the traffic travels over.",
|
|
147
|
+
"technology.device": "the element is a physical network appliance such as a router, switch or firewall box (deviceType network-device) rather than the network it forms or joins.",
|
|
148
|
+
"technology.node": "the element is a computational resource that hosts software, such as a VM, container or cluster attached to the network, rather than the network itself.",
|
|
149
|
+
"technology.technologyservice": "the element is a consumable networking capability offered through an interface, such as managed DNS, a load-balancing service or a CDN, rather than the connectivity fabric."
|
|
150
|
+
},
|
|
125
151
|
"$id": "urn:dr:spec:node:technology.communicationnetwork"
|
|
126
152
|
},
|
|
127
153
|
"device": {
|
|
128
154
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
129
155
|
"title": "Device",
|
|
130
|
-
"description": "A physical
|
|
156
|
+
"description": "A physical, tangible piece of hardware with its own processing or storage capability (such as a server chassis, workstation, router, storage array, phone, or embedded board) onto which system software and artifacts are installed or deployed. Virtual or logical compute resources and the software running on the hardware are excluded. Use Node instead when the resource is virtual or logical (a VM, container, Kubernetes cluster, or cloud instance whose hardware is not identified), or when hardware and its system software are modelled together as one hosting unit. Use SystemSoftware instead when the element is the operating system, firmware runtime, DBMS, or other platform software installed on the hardware rather than the hardware itself. Use CommunicationNetwork instead when the element is the LAN, WAN, VPN, or wireless segment that connects devices, rather than an individual router, switch, or access point. Use TechnologyCollaboration instead when the element is an aggregate of several devices or nodes acting together, such as a rack of servers forming a cluster.",
|
|
131
157
|
"allOf": [
|
|
132
158
|
{
|
|
133
159
|
"$ref": "urn:dr:spec:base:spec-node"
|
|
@@ -147,7 +173,8 @@
|
|
|
147
173
|
"type": "object",
|
|
148
174
|
"properties": {
|
|
149
175
|
"documentation": {
|
|
150
|
-
"type": "string"
|
|
176
|
+
"type": "string",
|
|
177
|
+
"description": "Free-text description of the physical device: its make and model, location or role, and any hardware constraints relevant to deployment. Set it whenever the identifier alone does not make clear which hardware is meant."
|
|
151
178
|
},
|
|
152
179
|
"deviceType": {
|
|
153
180
|
"type": "string",
|
|
@@ -174,12 +201,24 @@
|
|
|
174
201
|
"additionalProperties": false
|
|
175
202
|
}
|
|
176
203
|
},
|
|
204
|
+
"x-dr-standard": "ArchiMate 3.2 §10.2.2 Device",
|
|
205
|
+
"x-dr-evidence": [
|
|
206
|
+
"Hardware inventory or provisioning records (Ansible inventory host_vars, MAAS/Tinkerbell/Ironic hardware entries, CMDB exports) listing a serial number, MAC address, rack location, or hardware model for a named machine.",
|
|
207
|
+
"IoT device registry declarations such as Terraform aws_iot_thing or azurerm_iothub device resources, Azure IoT device twins, or device provisioning certificates bound to a physical unit.",
|
|
208
|
+
"Firmware or OS build configuration that targets a specific physical board or handset, e.g. platformio.ini 'board = esp32dev', a Yocto MACHINE setting, a device tree file, or an MDM enrollment profile for mobile devices."
|
|
209
|
+
],
|
|
210
|
+
"x-dr-distinguish": {
|
|
211
|
+
"technology.node": "the resource is virtual or logical (a VM, container, Kubernetes cluster, or cloud instance whose hardware is not identified), or when hardware and its system software are modelled together as one hosting unit.",
|
|
212
|
+
"technology.systemsoftware": "the element is the operating system, firmware runtime, DBMS, or other platform software installed on the hardware rather than the hardware itself.",
|
|
213
|
+
"technology.communicationnetwork": "the element is the LAN, WAN, VPN, or wireless segment that connects devices, rather than an individual router, switch, or access point.",
|
|
214
|
+
"technology.technologycollaboration": "the element is an aggregate of several devices or nodes acting together, such as a rack of servers forming a cluster."
|
|
215
|
+
},
|
|
177
216
|
"$id": "urn:dr:spec:node:technology.device"
|
|
178
217
|
},
|
|
179
218
|
"node": {
|
|
180
219
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
181
220
|
"title": "Node",
|
|
182
|
-
"description": "A computational
|
|
221
|
+
"description": "A computational resource, physical or virtualized, that acts as a deployment target on which system software runs and artifacts are deployed for execution, such as a virtual machine, a running container instance, a Kubernetes cluster, or a provisioned server host. It is identified by being the place where something is hosted, not by its hardware form or by the platform software installed on it. Use Device instead when the element is a specific piece of physical hardware (server chassis, workstation, phone, IoT sensor, storage appliance) described by its hardware form rather than by its role as a hosting environment. Use SystemSoftware instead when the element is the platform software itself (operating system, container runtime such as containerd or Docker Engine, DBMS, message broker) rather than the machine or instance it runs on. Use TechnologyCollaboration instead when the element is an aggregate of separately modelled nodes or devices that jointly perform behaviour (a replica set, a cache cluster, a service mesh) and each member is modelled in its own right. Use Artifact instead when the element is the deployable package or image (container image, JAR, Helm chart, VM image) rather than the running instance or host that executes it.",
|
|
183
222
|
"allOf": [
|
|
184
223
|
{
|
|
185
224
|
"$ref": "urn:dr:spec:base:spec-node"
|
|
@@ -199,7 +238,8 @@
|
|
|
199
238
|
"type": "object",
|
|
200
239
|
"properties": {
|
|
201
240
|
"documentation": {
|
|
202
|
-
"type": "string"
|
|
241
|
+
"type": "string",
|
|
242
|
+
"description": "Free-text description of the node: what it hosts, its environment (e.g. production, staging), and notable sizing or provisioning details. Set it whenever the name and nodeType alone do not identify the host's purpose."
|
|
203
243
|
},
|
|
204
244
|
"nodeType": {
|
|
205
245
|
"type": "string",
|
|
@@ -225,12 +265,24 @@
|
|
|
225
265
|
"additionalProperties": false
|
|
226
266
|
}
|
|
227
267
|
},
|
|
268
|
+
"x-dr-standard": "ArchiMate 3.2 §10.2.1 Node",
|
|
269
|
+
"x-dr-evidence": [
|
|
270
|
+
"Infrastructure-as-code resources that provision compute, such as Terraform aws_instance, google_compute_instance, azurerm_linux_virtual_machine, or aws_eks_cluster blocks",
|
|
271
|
+
"A services entry in docker-compose.yml, or a Kubernetes Pod/Deployment/StatefulSet spec, that names the container instance on which an image is run",
|
|
272
|
+
"A deployment target listed in an Ansible inventory, Helm/kubectl context, or CI deploy step (hostnames, cluster names, environment hosts) to which build outputs are shipped"
|
|
273
|
+
],
|
|
274
|
+
"x-dr-distinguish": {
|
|
275
|
+
"technology.device": "the element is a specific piece of physical hardware (server chassis, workstation, phone, IoT sensor, storage appliance) described by its hardware form rather than by its role as a hosting environment",
|
|
276
|
+
"technology.systemsoftware": "the element is the platform software itself (operating system, container runtime such as containerd or Docker Engine, DBMS, message broker) rather than the machine or instance it runs on",
|
|
277
|
+
"technology.technologycollaboration": "the element is an aggregate of separately modelled nodes or devices that jointly perform behaviour (a replica set, a cache cluster, a service mesh) and each member is modelled in its own right",
|
|
278
|
+
"technology.artifact": "the element is the deployable package or image (container image, JAR, Helm chart, VM image) rather than the running instance or host that executes it"
|
|
279
|
+
},
|
|
228
280
|
"$id": "urn:dr:spec:node:technology.node"
|
|
229
281
|
},
|
|
230
282
|
"path": {
|
|
231
283
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
232
284
|
"title": "Path",
|
|
233
|
-
"description": "A link between two or more nodes
|
|
285
|
+
"description": "A logical communication link between two or more specific nodes or devices over which they exchange data, independent of the physical medium that carries it, such as a service-to-database connection, a VPN tunnel between two sites, or a queue channel between a producer host and a consumer host. Use CommunicationNetwork instead when the element is the shared transmission medium or address space (LAN, VPC, subnet, VPN as a whole) connecting many nodes, rather than a particular link between identified endpoints. Use TechnologyInterface instead when the element is the access point on one node (a listening port, endpoint or protocol binding) through which a service is offered, not the link between two nodes. Use TechnologyInteraction instead when the element is the collective behavior exchanged over the link (handshake, replication protocol, failover exchange), not the channel itself. Use TechnologyService instead when the element is an infrastructure capability offered to consumers, such as a managed messaging or load-balancing service, rather than a point-to-point data channel.",
|
|
234
286
|
"allOf": [
|
|
235
287
|
{
|
|
236
288
|
"$ref": "urn:dr:spec:base:spec-node"
|
|
@@ -250,7 +302,8 @@
|
|
|
250
302
|
"type": "object",
|
|
251
303
|
"properties": {
|
|
252
304
|
"documentation": {
|
|
253
|
-
"type": "string"
|
|
305
|
+
"type": "string",
|
|
306
|
+
"description": "Free-text description of the path naming its endpoints, the direction and purpose of the data flow, and any notable constraints such as ports, encryption or latency; set whenever the endpoints or purpose are not obvious from the name."
|
|
254
307
|
},
|
|
255
308
|
"pathType": {
|
|
256
309
|
"type": "string",
|
|
@@ -285,12 +338,24 @@
|
|
|
285
338
|
"additionalProperties": false
|
|
286
339
|
}
|
|
287
340
|
},
|
|
341
|
+
"x-dr-standard": "ArchiMate 3.2 §10.2.6 Path",
|
|
342
|
+
"x-dr-evidence": [
|
|
343
|
+
"a connection string or endpoint URL in configuration that names another deployed host and port, e.g. DATABASE_URL=postgres://orders-db:5432 or a gRPC target address in an environment file",
|
|
344
|
+
"an infrastructure-as-code resource that links two specific endpoints, e.g. a Terraform aws_vpc_peering_connection, an IPsec VPN tunnel, or a security-group/NetworkPolicy rule allowing traffic from workload A to workload B on a given port",
|
|
345
|
+
"a docker-compose depends_on/links entry or a service-mesh route (Istio VirtualService, DestinationRule) that directs traffic from one named service to another"
|
|
346
|
+
],
|
|
347
|
+
"x-dr-distinguish": {
|
|
348
|
+
"technology.communicationnetwork": "the element is the shared transmission medium or address space (LAN, VPC, subnet, VPN as a whole) connecting many nodes, rather than a particular link between identified endpoints",
|
|
349
|
+
"technology.technologyinterface": "the element is the access point on one node (a listening port, endpoint or protocol binding) through which a service is offered, not the link between two nodes",
|
|
350
|
+
"technology.technologyinteraction": "the element is the collective behavior exchanged over the link (handshake, replication protocol, failover exchange), not the channel itself",
|
|
351
|
+
"technology.technologyservice": "the element is an infrastructure capability offered to consumers, such as a managed messaging or load-balancing service, rather than a point-to-point data channel"
|
|
352
|
+
},
|
|
288
353
|
"$id": "urn:dr:spec:node:technology.path"
|
|
289
354
|
},
|
|
290
355
|
"systemsoftware": {
|
|
291
356
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
292
357
|
"title": "SystemSoftware",
|
|
293
|
-
"description": "
|
|
358
|
+
"description": "A third-party or platform software product, such as an operating system, language runtime, database engine, message broker, cache server or container runtime, that is installed or run on a node or device to host, execute or store other software and data. It is configured and versioned by the team, but its code is not written by them. Use Node instead when the element is the computational host itself (VM, container instance, Kubernetes cluster) that runs software, rather than the software product running on it. Use Artifact instead when the element is the deployable file or package (a container image tag, installer, binary, config file) rather than the running platform software it delivers. Use TechnologyService instead when the element is the capability consumed through an interface (e.g. a managed database or queueing offered by a cloud provider) rather than the specific software product that provides it. Use Device instead when the element is physical hardware rather than software installed on it.",
|
|
294
359
|
"allOf": [
|
|
295
360
|
{
|
|
296
361
|
"$ref": "urn:dr:spec:base:spec-node"
|
|
@@ -310,7 +375,8 @@
|
|
|
310
375
|
"type": "object",
|
|
311
376
|
"properties": {
|
|
312
377
|
"documentation": {
|
|
313
|
-
"type": "string"
|
|
378
|
+
"type": "string",
|
|
379
|
+
"description": "Free-text description of the software product: its name, version or edition, and its role in the deployment. Set it whenever the product, version or notable configuration choices (e.g. clustering mode, persistence settings) are not evident from the element name."
|
|
314
380
|
},
|
|
315
381
|
"softwareType": {
|
|
316
382
|
"type": "string",
|
|
@@ -337,12 +403,24 @@
|
|
|
337
403
|
"additionalProperties": false
|
|
338
404
|
}
|
|
339
405
|
},
|
|
406
|
+
"x-dr-standard": "ArchiMate 3.2 §10.2.3 System Software",
|
|
407
|
+
"x-dr-evidence": [
|
|
408
|
+
"A docker-compose service or Kubernetes container spec whose image is a vendor platform product, e.g. image: postgres:15, redis:7-alpine, rabbitmq:3-management, nginx:1.25",
|
|
409
|
+
"A runtime or OS pin such as a Dockerfile 'FROM node:20-alpine' or 'FROM ubuntu:22.04', an .nvmrc/.python-version file, or an 'engines' field in package.json",
|
|
410
|
+
"A connection URL, driver dependency or Helm chart dependency naming an engine, e.g. DATABASE_URL=postgres://..., spring.kafka.bootstrap-servers, or a bitnami/kafka chart in Chart.yaml"
|
|
411
|
+
],
|
|
412
|
+
"x-dr-distinguish": {
|
|
413
|
+
"technology.node": "the element is the computational host itself (VM, container instance, Kubernetes cluster) that runs software, rather than the software product running on it",
|
|
414
|
+
"technology.artifact": "the element is the deployable file or package (a container image tag, installer, binary, config file) rather than the running platform software it delivers",
|
|
415
|
+
"technology.technologyservice": "the element is the capability consumed through an interface (e.g. a managed database or queueing offered by a cloud provider) rather than the specific software product that provides it",
|
|
416
|
+
"technology.device": "the element is physical hardware rather than software installed on it"
|
|
417
|
+
},
|
|
340
418
|
"$id": "urn:dr:spec:node:technology.systemsoftware"
|
|
341
419
|
},
|
|
342
420
|
"technologycollaboration": {
|
|
343
421
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
344
422
|
"title": "TechnologyCollaboration",
|
|
345
|
-
"description": "An aggregate of two or more technology active structure elements that
|
|
423
|
+
"description": "An aggregate of two or more technology active structure elements (nodes, devices or system software instances) that are configured to cooperate as peers and jointly perform behavior none performs alone. Examples are a replicated database ensemble, a consensus cluster, a sharded cache cluster or a service mesh. It is identified by explicit peer membership or coordination configuration, not merely by co-location or shared hosting. Use Node instead when the thing is a single hosting resource, or a cluster managed and addressed as one computational unit (e.g. a Kubernetes cluster as a deployment target), rather than a grouping of individually modelled cooperating members. Use TechnologyInteraction instead when the element is the joint behavior itself (a failover protocol, leader election, distributed commit) rather than the group of elements that performs it. Use SystemSoftware instead when a single installed software product or instance is meant (e.g. one Redis or PostgreSQL server) with no modelled peer membership. Use CommunicationNetwork instead when the element only transports data between members and performs no collective processing itself.",
|
|
346
424
|
"allOf": [
|
|
347
425
|
{
|
|
348
426
|
"$ref": "urn:dr:spec:base:spec-node"
|
|
@@ -362,7 +440,8 @@
|
|
|
362
440
|
"type": "object",
|
|
363
441
|
"properties": {
|
|
364
442
|
"documentation": {
|
|
365
|
-
"type": "string"
|
|
443
|
+
"type": "string",
|
|
444
|
+
"description": "Free-text description naming the collaborating members, how they coordinate (replication, consensus, sharding, sidecar proxying) and the collective behavior they provide. Set it whenever membership or coordination is not evident from the element name."
|
|
366
445
|
},
|
|
367
446
|
"properties": {
|
|
368
447
|
"type": "object",
|
|
@@ -376,12 +455,24 @@
|
|
|
376
455
|
"additionalProperties": false
|
|
377
456
|
}
|
|
378
457
|
},
|
|
458
|
+
"x-dr-standard": "ArchiMate 3.2 §10.2.4 Technology Collaboration",
|
|
459
|
+
"x-dr-evidence": [
|
|
460
|
+
"A StatefulSet, Helm chart or docker-compose file declaring multiple replicas of the same server with peer discovery settings, such as Kafka/ZooKeeper ensembles, etcd initial-cluster, Redis cluster-enabled yes or Elasticsearch discovery.seed_hosts.",
|
|
461
|
+
"Infrastructure-as-code resources that define a multi-member cooperative group, such as aws_elasticache_replication_group, aws_rds_cluster, aws_msk_cluster or a Patroni/Galera cluster configuration listing member addresses.",
|
|
462
|
+
"Service mesh configuration grouping workloads into one mesh, such as Istio IstioOperator/MeshConfig, Linkerd injection annotations across namespaces, or Consul Connect service definitions."
|
|
463
|
+
],
|
|
464
|
+
"x-dr-distinguish": {
|
|
465
|
+
"technology.node": "the thing is a single hosting resource, or a cluster managed and addressed as one computational unit (e.g. a Kubernetes cluster as a deployment target), rather than a grouping of individually modelled cooperating members.",
|
|
466
|
+
"technology.technologyinteraction": "the element is the joint behavior itself (a failover protocol, leader election, distributed commit) rather than the group of elements that performs it.",
|
|
467
|
+
"technology.systemsoftware": "a single installed software product or instance is meant (e.g. one Redis or PostgreSQL server) with no modelled peer membership.",
|
|
468
|
+
"technology.communicationnetwork": "the element only transports data between members and performs no collective processing itself."
|
|
469
|
+
},
|
|
379
470
|
"$id": "urn:dr:spec:node:technology.technologycollaboration"
|
|
380
471
|
},
|
|
381
472
|
"technologyevent": {
|
|
382
473
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
383
474
|
"title": "TechnologyEvent",
|
|
384
|
-
"description": "A technology behavior element that denotes a state change in
|
|
475
|
+
"description": "A technology behavior element that denotes a discrete, instantaneous state change in infrastructure or platform software, such as an alert firing, a node or container failing, a scheduled trigger elapsing, or a deployment completing, that starts or results from technology functions, processes or interactions. It has no duration and performs no work itself. Use TechnologyProcess instead when the element is the multi-step job or pipeline that runs (backup job, deployment pipeline) rather than the trigger that starts it or the completion signal it emits. Use TechnologyFunction instead when the element is a continuous automated capability of a node (health checking, log rotation, load balancing) rather than a single occurrence detected or produced by it. Use TechnologyService instead when the element is the exposed monitoring, alerting or scheduling capability (Alertmanager, EventBridge, a cron service) that emits or delivers events, not the event itself. Use Artifact instead when the element is the file that declares the event condition, such as an alert-rule YAML, crontab or CloudWatch alarm template, rather than the state change it describes.",
|
|
385
476
|
"allOf": [
|
|
386
477
|
{
|
|
387
478
|
"$ref": "urn:dr:spec:base:spec-node"
|
|
@@ -401,7 +492,8 @@
|
|
|
401
492
|
"type": "object",
|
|
402
493
|
"properties": {
|
|
403
494
|
"documentation": {
|
|
404
|
-
"type": "string"
|
|
495
|
+
"type": "string",
|
|
496
|
+
"description": "Free-text description of the state change: the condition that raises the event, its emitting source, and what it triggers. Set it whenever the event name alone does not make the trigger condition clear."
|
|
405
497
|
},
|
|
406
498
|
"eventType": {
|
|
407
499
|
"type": "string",
|
|
@@ -427,12 +519,24 @@
|
|
|
427
519
|
"additionalProperties": false
|
|
428
520
|
}
|
|
429
521
|
},
|
|
522
|
+
"x-dr-standard": "ArchiMate 3.2 §10.3.4 Technology Event",
|
|
523
|
+
"x-dr-evidence": [
|
|
524
|
+
"A named alerting rule or alarm definition, such as a Prometheus rule with alert:, expr: and for: fields, a CloudWatch/Azure Monitor alarm, or a Datadog monitor, that fires on a metric threshold or failure condition.",
|
|
525
|
+
"A schedule trigger that starts infrastructure work, such as a Kubernetes CronJob schedule: field, a crontab line, a CI on: schedule block, or an EventBridge/Cloud Scheduler rule.",
|
|
526
|
+
"A handler subscribed to infrastructure lifecycle notifications, such as a Kubernetes watch on Pod/Node events, the Docker events API, a CI on: deployment_status trigger, a SIGTERM/preStop hook, or a webhook receiving deployment-completed payloads."
|
|
527
|
+
],
|
|
528
|
+
"x-dr-distinguish": {
|
|
529
|
+
"technology.technologyprocess": "the element is the multi-step job or pipeline that runs (backup job, deployment pipeline) rather than the trigger that starts it or the completion signal it emits",
|
|
530
|
+
"technology.technologyfunction": "the element is a continuous automated capability of a node (health checking, log rotation, load balancing) rather than a single occurrence detected or produced by it",
|
|
531
|
+
"technology.technologyservice": "the element is the exposed monitoring, alerting or scheduling capability (Alertmanager, EventBridge, a cron service) that emits or delivers events, not the event itself",
|
|
532
|
+
"technology.artifact": "the element is the file that declares the event condition, such as an alert-rule YAML, crontab or CloudWatch alarm template, rather than the state change it describes"
|
|
533
|
+
},
|
|
430
534
|
"$id": "urn:dr:spec:node:technology.technologyevent"
|
|
431
535
|
},
|
|
432
536
|
"technologyfunction": {
|
|
433
537
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
434
538
|
"title": "TechnologyFunction",
|
|
435
|
-
"description": "
|
|
539
|
+
"description": "An internal technology behavior element grouping automated infrastructure behavior that a single node or system software performs on an ongoing basis, defined by the capability it provides rather than by a sequence of steps or an externally exposed contract, such as data replication, load balancing, health checking, or log rotation. Use TechnologyProcess instead when the behavior is an ordered sequence of steps with a defined start and end result, such as a CI/CD pipeline, backup job run, or certificate renewal workflow. Use TechnologyService instead when the behavior is the externally visible capability offered to consumers through an interface (e.g. 'managed object storage'), rather than the internal mechanism that delivers it. Use TechnologyInteraction instead when the behavior can only be performed jointly by two or more collaborating nodes, such as a consensus round, distributed transaction, or cluster failover handshake. Use SystemSoftware instead when the element is the software product or runtime that performs the behavior (e.g. nginx, PostgreSQL), not the behavior itself.",
|
|
436
540
|
"allOf": [
|
|
437
541
|
{
|
|
438
542
|
"$ref": "urn:dr:spec:base:spec-node"
|
|
@@ -452,7 +556,8 @@
|
|
|
452
556
|
"type": "object",
|
|
453
557
|
"properties": {
|
|
454
558
|
"documentation": {
|
|
455
|
-
"type": "string"
|
|
559
|
+
"type": "string",
|
|
560
|
+
"description": "Free-text description of what the function does, which node or system software performs it, and its triggering or operating conditions; set whenever the name alone does not make the capability's scope clear."
|
|
456
561
|
},
|
|
457
562
|
"properties": {
|
|
458
563
|
"type": "object",
|
|
@@ -466,12 +571,24 @@
|
|
|
466
571
|
"additionalProperties": false
|
|
467
572
|
}
|
|
468
573
|
},
|
|
574
|
+
"x-dr-standard": "ArchiMate 3.2 §10.3.1 Technology Function",
|
|
575
|
+
"x-dr-evidence": [
|
|
576
|
+
"Infrastructure configuration that enables a named built-in capability of a platform component, such as a PostgreSQL streaming-replication block, an nginx upstream load-balancing block, or a Redis persistence/eviction policy.",
|
|
577
|
+
"A sidecar, daemon, or DaemonSet that runs continuously to perform a housekeeping capability, such as a logrotate config, a Fluent Bit log-shipping agent, or a node-exporter metrics collector.",
|
|
578
|
+
"Kubernetes or cloud resource settings declaring automated platform behavior, such as liveness/readiness probes, a HorizontalPodAutoscaler, or an S3 bucket replication or lifecycle rule."
|
|
579
|
+
],
|
|
580
|
+
"x-dr-distinguish": {
|
|
581
|
+
"technology.technologyprocess": "the behavior is an ordered sequence of steps with a defined start and end result, such as a CI/CD pipeline, backup job run, or certificate renewal workflow.",
|
|
582
|
+
"technology.technologyservice": "the behavior is the externally visible capability offered to consumers through an interface (e.g. 'managed object storage'), rather than the internal mechanism that delivers it.",
|
|
583
|
+
"technology.technologyinteraction": "the behavior can only be performed jointly by two or more collaborating nodes, such as a consensus round, distributed transaction, or cluster failover handshake.",
|
|
584
|
+
"technology.systemsoftware": "the element is the software product or runtime that performs the behavior (e.g. nginx, PostgreSQL), not the behavior itself."
|
|
585
|
+
},
|
|
469
586
|
"$id": "urn:dr:spec:node:technology.technologyfunction"
|
|
470
587
|
},
|
|
471
588
|
"technologyinteraction": {
|
|
472
589
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
473
590
|
"title": "TechnologyInteraction",
|
|
474
|
-
"description": "A
|
|
591
|
+
"description": "A technology behavior element that is performed jointly by two or more technology active structure elements (nodes, devices, or system software) acting as a collaboration, and that none of the participants can complete alone. Examples include a distributed commit, consensus-based leader election, a cluster failover handover, or a replication sync between peers. Use TechnologyFunction instead when the behavior is carried out by a single node or system software on its own, such as local log rotation or one load balancer distributing requests, with no coordination protocol between peers. Use TechnologyProcess instead when the element is an ordered sequence of steps toward a defined result, such as a deployment pipeline or backup job, whose steps need not be jointly performed by multiple collaborating participants. Use TechnologyCollaboration instead when you are modelling the group of cooperating nodes or software itself (the cluster, mesh, or replica set) rather than the joint behavior that group performs. Use TechnologyService instead when the element is the externally visible capability offered to consumers, such as a highly available database service, rather than the internal multi-party coordination that realizes it.",
|
|
475
592
|
"allOf": [
|
|
476
593
|
{
|
|
477
594
|
"$ref": "urn:dr:spec:base:spec-node"
|
|
@@ -491,7 +608,8 @@
|
|
|
491
608
|
"type": "object",
|
|
492
609
|
"properties": {
|
|
493
610
|
"documentation": {
|
|
494
|
-
"type": "string"
|
|
611
|
+
"type": "string",
|
|
612
|
+
"description": "Free-text description of the joint behavior: the participating elements, the coordination protocol or algorithm used (e.g. Raft, 2PC, gossip), and the outcome. Set it whenever the participants or protocol cannot be inferred from the element name."
|
|
495
613
|
},
|
|
496
614
|
"properties": {
|
|
497
615
|
"type": "object",
|
|
@@ -505,12 +623,24 @@
|
|
|
505
623
|
"additionalProperties": false
|
|
506
624
|
}
|
|
507
625
|
},
|
|
626
|
+
"x-dr-standard": "ArchiMate 3.2 §10.3.3 Technology Interaction",
|
|
627
|
+
"x-dr-evidence": [
|
|
628
|
+
"Configuration or code for a consensus or coordination protocol among peers, such as Raft or etcd peer settings, ZooKeeper quorum configuration, Redis Sentinel monitor/failover settings, or Patroni leader-election config.",
|
|
629
|
+
"A two-phase or XA distributed transaction setup that coordinates prepare/commit across multiple resource managers, for example a JTA/Atomikos transaction manager enlisting both a database and a message broker.",
|
|
630
|
+
"Replication or cluster-membership protocol settings that require multiple instances to exchange state, such as PostgreSQL streaming replication primary_conninfo, Kafka consumer-group rebalance handlers, or Hazelcast/Akka cluster join and gossip configuration."
|
|
631
|
+
],
|
|
632
|
+
"x-dr-distinguish": {
|
|
633
|
+
"technology.technologyfunction": "the behavior is carried out by a single node or system software on its own, such as local log rotation or one load balancer distributing requests, with no coordination protocol between peers.",
|
|
634
|
+
"technology.technologyprocess": "the element is an ordered sequence of steps toward a defined result, such as a deployment pipeline or backup job, whose steps need not be jointly performed by multiple collaborating participants.",
|
|
635
|
+
"technology.technologycollaboration": "you are modelling the group of cooperating nodes or software itself (the cluster, mesh, or replica set) rather than the joint behavior that group performs.",
|
|
636
|
+
"technology.technologyservice": "the element is the externally visible capability offered to consumers, such as a highly available database service, rather than the internal multi-party coordination that realizes it."
|
|
637
|
+
},
|
|
508
638
|
"$id": "urn:dr:spec:node:technology.technologyinteraction"
|
|
509
639
|
},
|
|
510
640
|
"technologyinterface": {
|
|
511
641
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
512
642
|
"title": "TechnologyInterface",
|
|
513
|
-
"description": "
|
|
643
|
+
"description": "An access point on a node, device or system software through which a technology service can be consumed. It is identified by a concrete protocol endpoint, such as a listening port, socket, broker listener or endpoint URL, that other technology or application components connect to. Use TechnologyService instead when the element is the infrastructure capability itself (e.g. managed message queuing, object storage) rather than the specific protocol endpoint through which it is reached. Use Path instead when the element is the communication link or route between two or more nodes (e.g. a service-mesh route, a VPN tunnel between sites), not the endpoint at one end of it. Use SystemSoftware instead when the element is the running platform software (e.g. the PostgreSQL engine, the RabbitMQ broker) that exposes the endpoint, rather than the endpoint itself. Use CommunicationNetwork instead when the element is the network segment (LAN, VPC subnet, VPN) that carries traffic, rather than an addressable listener on a node attached to it.",
|
|
514
644
|
"allOf": [
|
|
515
645
|
{
|
|
516
646
|
"$ref": "urn:dr:spec:base:spec-node"
|
|
@@ -530,7 +660,8 @@
|
|
|
530
660
|
"type": "object",
|
|
531
661
|
"properties": {
|
|
532
662
|
"documentation": {
|
|
533
|
-
"type": "string"
|
|
663
|
+
"type": "string",
|
|
664
|
+
"description": "Free-text description of the endpoint, including its address or port, authentication or TLS requirements, and which service it exposes. Set it whenever these facts are not captured by other attributes."
|
|
534
665
|
},
|
|
535
666
|
"protocol": {
|
|
536
667
|
"type": "string",
|
|
@@ -559,12 +690,24 @@
|
|
|
559
690
|
"additionalProperties": false
|
|
560
691
|
}
|
|
561
692
|
},
|
|
693
|
+
"x-dr-standard": "ArchiMate 3.2 §10.2.5 Technology Interface",
|
|
694
|
+
"x-dr-evidence": [
|
|
695
|
+
"A port or listener declaration exposing a protocol endpoint, such as Dockerfile EXPOSE, a containerPort or Kubernetes Service port entry, or an aws_lb_listener resource in Terraform",
|
|
696
|
+
"Platform listener configuration in a broker, database or server config file, e.g. RabbitMQ listeners.tcp, postgresql.conf port/listen_addresses, or an nginx 'listen 443 ssl' directive",
|
|
697
|
+
"An endpoint URL or connection string in environment or application config that consumers use to reach infrastructure, e.g. AMQP_URL=amqp://broker:5672 or REDIS_URL=redis://cache:6379"
|
|
698
|
+
],
|
|
699
|
+
"x-dr-distinguish": {
|
|
700
|
+
"technology.technologyservice": "the element is the infrastructure capability itself (e.g. managed message queuing, object storage) rather than the specific protocol endpoint through which it is reached",
|
|
701
|
+
"technology.path": "the element is the communication link or route between two or more nodes (e.g. a service-mesh route, a VPN tunnel between sites), not the endpoint at one end of it",
|
|
702
|
+
"technology.systemsoftware": "the element is the running platform software (e.g. the PostgreSQL engine, the RabbitMQ broker) that exposes the endpoint, rather than the endpoint itself",
|
|
703
|
+
"technology.communicationnetwork": "the element is the network segment (LAN, VPC subnet, VPN) that carries traffic, rather than an addressable listener on a node attached to it"
|
|
704
|
+
},
|
|
562
705
|
"$id": "urn:dr:spec:node:technology.technologyinterface"
|
|
563
706
|
},
|
|
564
707
|
"technologyprocess": {
|
|
565
708
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
566
709
|
"title": "TechnologyProcess",
|
|
567
|
-
"description": "A sequence of
|
|
710
|
+
"description": "A technology behavior element that is an ordered sequence of automated infrastructure steps with a defined start (trigger) and a defined end result, performed by a node or system software, such as a CI/CD deployment pipeline, scheduled backup job, certificate renewal workflow, or container rollout sequence. Use TechnologyFunction instead when the behavior is a continuously available capability grouped by what the node can do (e.g. load balancing, replication, log rotation) rather than a sequence of steps with a start, an order and a completion. Use TechnologyInteraction instead when the behavior can only be performed jointly by two or more collaborating nodes (e.g. a distributed commit or failover handshake) rather than run as a sequence by a single performer. Use TechnologyEvent instead when the thing modelled is the instantaneous trigger or outcome, such as a cron schedule firing or a deployment-completed signal, rather than the steps executed in response. Use TechnologyService instead when the thing modelled is the externally visible infrastructure capability offered to consumers rather than the internal sequence of steps that realizes it.",
|
|
568
711
|
"allOf": [
|
|
569
712
|
{
|
|
570
713
|
"$ref": "urn:dr:spec:base:spec-node"
|
|
@@ -584,7 +727,8 @@
|
|
|
584
727
|
"type": "object",
|
|
585
728
|
"properties": {
|
|
586
729
|
"documentation": {
|
|
587
|
-
"type": "string"
|
|
730
|
+
"type": "string",
|
|
731
|
+
"description": "Free-text description of the process's purpose, its trigger, its main ordered steps and its end result; set it whenever the pipeline or job name alone does not convey what it achieves."
|
|
588
732
|
},
|
|
589
733
|
"properties": {
|
|
590
734
|
"type": "object",
|
|
@@ -598,12 +742,24 @@
|
|
|
598
742
|
"additionalProperties": false
|
|
599
743
|
}
|
|
600
744
|
},
|
|
745
|
+
"x-dr-standard": "ArchiMate 3.2 §10.3.2 Technology Process",
|
|
746
|
+
"x-dr-evidence": [
|
|
747
|
+
"A CI/CD pipeline definition such as .github/workflows/*.yml, .gitlab-ci.yml, Jenkinsfile or azure-pipelines.yml with ordered jobs/stages (build, test, deploy).",
|
|
748
|
+
"A scheduled infrastructure job such as a Kubernetes CronJob manifest, crontab entry or systemd timer that runs a backup, cleanup or certificate-renewal script.",
|
|
749
|
+
"An orchestration workflow such as an Ansible playbook, Argo Workflow/Argo Rollouts spec, Terraform apply runbook or Helm hook sequence that executes named infrastructure steps in order."
|
|
750
|
+
],
|
|
751
|
+
"x-dr-distinguish": {
|
|
752
|
+
"technology.technologyfunction": "the behavior is a continuously available capability grouped by what the node can do (e.g. load balancing, replication, log rotation) rather than a sequence of steps with a start, an order and a completion.",
|
|
753
|
+
"technology.technologyinteraction": "the behavior can only be performed jointly by two or more collaborating nodes (e.g. a distributed commit or failover handshake) rather than run as a sequence by a single performer.",
|
|
754
|
+
"technology.technologyevent": "the thing modelled is the instantaneous trigger or outcome, such as a cron schedule firing or a deployment-completed signal, rather than the steps executed in response.",
|
|
755
|
+
"technology.technologyservice": "the thing modelled is the externally visible infrastructure capability offered to consumers rather than the internal sequence of steps that realizes it."
|
|
756
|
+
},
|
|
601
757
|
"$id": "urn:dr:spec:node:technology.technologyprocess"
|
|
602
758
|
},
|
|
603
759
|
"technologyservice": {
|
|
604
760
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
605
761
|
"title": "TechnologyService",
|
|
606
|
-
"description": "An externally visible
|
|
762
|
+
"description": "An externally visible infrastructure capability, such as compute, storage, messaging, database, cache, identity or monitoring, that a node, system software or managed platform offers to application components or other technology elements through a technology interface. It is identified by the capability consumers rely on, not by the product, host or endpoint that delivers it. Use SystemSoftware instead when the element is the specific installed engine or product (e.g. a PostgreSQL 15 server, a Redis binary, a RabbitMQ broker) rather than the capability that consumers use. Use TechnologyInterface instead when the element is the access point itself, such as an endpoint URL, port or protocol binding through which the service is reached. Use TechnologyFunction instead when the behavior is internal to a node and not offered to consumers, such as replication, log rotation or internal load balancing. Use Node instead when the element is the host, VM, container or cluster that provides the computational resource, not the capability exposed from it.",
|
|
607
763
|
"allOf": [
|
|
608
764
|
{
|
|
609
765
|
"$ref": "urn:dr:spec:base:spec-node"
|
|
@@ -623,7 +779,8 @@
|
|
|
623
779
|
"type": "object",
|
|
624
780
|
"properties": {
|
|
625
781
|
"documentation": {
|
|
626
|
-
"type": "string"
|
|
782
|
+
"type": "string",
|
|
783
|
+
"description": "Free-text description of the capability the service offers, its provider (self-hosted or managed vendor), and its consumers; set it whenever the name alone does not make the capability and provider clear."
|
|
627
784
|
},
|
|
628
785
|
"serviceType": {
|
|
629
786
|
"type": "string",
|
|
@@ -651,6 +808,18 @@
|
|
|
651
808
|
"additionalProperties": false
|
|
652
809
|
}
|
|
653
810
|
},
|
|
811
|
+
"x-dr-standard": "ArchiMate 3.2 §10.3.5 Technology Service",
|
|
812
|
+
"x-dr-evidence": [
|
|
813
|
+
"an infrastructure-as-code resource for a managed backing service (e.g. aws_sqs_queue, aws_db_instance, google_pubsub_topic, azurerm_redis_cache) whose outputs are wired into application configuration",
|
|
814
|
+
"a docker-compose or Helm service entry for a backing service (postgres, redis, kafka, keycloak) whose connection string is injected into application containers via environment variables such as DATABASE_URL or REDIS_URL",
|
|
815
|
+
"a client SDK constructed against an infrastructure endpoint (S3 client, KMS client, OIDC issuer URL, OTLP exporter endpoint) and used by application code to store, publish, authenticate or emit telemetry"
|
|
816
|
+
],
|
|
817
|
+
"x-dr-distinguish": {
|
|
818
|
+
"technology.systemsoftware": "the element is the specific installed engine or product (e.g. a PostgreSQL 15 server, a Redis binary, a RabbitMQ broker) rather than the capability that consumers use.",
|
|
819
|
+
"technology.technologyinterface": "the element is the access point itself, such as an endpoint URL, port or protocol binding through which the service is reached.",
|
|
820
|
+
"technology.technologyfunction": "the behavior is internal to a node and not offered to consumers, such as replication, log rotation or internal load balancing.",
|
|
821
|
+
"technology.node": "the element is the host, VM, container or cluster that provides the computational resource, not the capability exposed from it."
|
|
822
|
+
},
|
|
654
823
|
"$id": "urn:dr:spec:node:technology.technologyservice"
|
|
655
824
|
}
|
|
656
825
|
},
|
|
@@ -664,18 +833,8 @@
|
|
|
664
833
|
"predicate": "aggregates",
|
|
665
834
|
"cardinality": "many-to-many",
|
|
666
835
|
"strength": "medium",
|
|
667
|
-
"required": false
|
|
668
|
-
|
|
669
|
-
"technology.artifact.associated-with.technology.systemsoftware": {
|
|
670
|
-
"id": "technology.artifact.associated-with.technology.systemsoftware",
|
|
671
|
-
"source_spec_node_id": "technology.artifact",
|
|
672
|
-
"source_layer": "technology",
|
|
673
|
-
"destination_spec_node_id": "technology.systemsoftware",
|
|
674
|
-
"destination_layer": "technology",
|
|
675
|
-
"predicate": "associated-with",
|
|
676
|
-
"cardinality": "many-to-many",
|
|
677
|
-
"strength": "medium",
|
|
678
|
-
"required": false
|
|
836
|
+
"required": false,
|
|
837
|
+
"description": "The artifact groups other artifacts that are published and versioned on their own, such as a release bundle listing separately published packages. Use composes instead when the parts exist only inside it."
|
|
679
838
|
},
|
|
680
839
|
"technology.artifact.composes.technology.artifact": {
|
|
681
840
|
"id": "technology.artifact.composes.technology.artifact",
|
|
@@ -686,7 +845,8 @@
|
|
|
686
845
|
"predicate": "composes",
|
|
687
846
|
"cardinality": "many-to-many",
|
|
688
847
|
"strength": "medium",
|
|
689
|
-
"required": false
|
|
848
|
+
"required": false,
|
|
849
|
+
"description": "The artifact contains other artifacts that exist only as part of it, such as the layers of a container image or the files inside an archive."
|
|
690
850
|
},
|
|
691
851
|
"technology.artifact.depends-on.technology.artifact": {
|
|
692
852
|
"id": "technology.artifact.depends-on.technology.artifact",
|
|
@@ -697,29 +857,32 @@
|
|
|
697
857
|
"predicate": "depends-on",
|
|
698
858
|
"cardinality": "many-to-many",
|
|
699
859
|
"strength": "medium",
|
|
700
|
-
"required": false
|
|
860
|
+
"required": false,
|
|
861
|
+
"description": "The artifact needs another artifact to be built or to run, such as a package and the packages it declares as dependencies."
|
|
701
862
|
},
|
|
702
|
-
"technology.artifact.
|
|
703
|
-
"id": "technology.artifact.
|
|
863
|
+
"technology.artifact.realizes.application.applicationcomponent": {
|
|
864
|
+
"id": "technology.artifact.realizes.application.applicationcomponent",
|
|
704
865
|
"source_spec_node_id": "technology.artifact",
|
|
705
866
|
"source_layer": "technology",
|
|
706
|
-
"destination_spec_node_id": "
|
|
707
|
-
"destination_layer": "
|
|
708
|
-
"predicate": "
|
|
867
|
+
"destination_spec_node_id": "application.applicationcomponent",
|
|
868
|
+
"destination_layer": "application",
|
|
869
|
+
"predicate": "realizes",
|
|
709
870
|
"cardinality": "many-to-many",
|
|
710
871
|
"strength": "medium",
|
|
711
|
-
"required": false
|
|
872
|
+
"required": false,
|
|
873
|
+
"description": "The artifact is the deployable form of the application component, such as the container image or bundle built from its code."
|
|
712
874
|
},
|
|
713
|
-
"technology.artifact.realizes.technology.
|
|
714
|
-
"id": "technology.artifact.realizes.technology.
|
|
875
|
+
"technology.artifact.realizes.technology.systemsoftware": {
|
|
876
|
+
"id": "technology.artifact.realizes.technology.systemsoftware",
|
|
715
877
|
"source_spec_node_id": "technology.artifact",
|
|
716
878
|
"source_layer": "technology",
|
|
717
|
-
"destination_spec_node_id": "technology.
|
|
879
|
+
"destination_spec_node_id": "technology.systemsoftware",
|
|
718
880
|
"destination_layer": "technology",
|
|
719
881
|
"predicate": "realizes",
|
|
720
882
|
"cardinality": "many-to-many",
|
|
721
883
|
"strength": "medium",
|
|
722
|
-
"required": false
|
|
884
|
+
"required": false,
|
|
885
|
+
"description": "The artifact is the installable form of the system software, such as a database engine's package or a runtime's container image."
|
|
723
886
|
},
|
|
724
887
|
"technology.communicationnetwork.aggregates.technology.communicationnetwork": {
|
|
725
888
|
"id": "technology.communicationnetwork.aggregates.technology.communicationnetwork",
|
|
@@ -730,40 +893,20 @@
|
|
|
730
893
|
"predicate": "aggregates",
|
|
731
894
|
"cardinality": "many-to-many",
|
|
732
895
|
"strength": "medium",
|
|
733
|
-
"required": false
|
|
896
|
+
"required": false,
|
|
897
|
+
"description": "The network contains narrower networks, such as a VPC and its subnets."
|
|
734
898
|
},
|
|
735
|
-
"technology.communicationnetwork.
|
|
736
|
-
"id": "technology.communicationnetwork.
|
|
899
|
+
"technology.communicationnetwork.connects.technology.device": {
|
|
900
|
+
"id": "technology.communicationnetwork.connects.technology.device",
|
|
737
901
|
"source_spec_node_id": "technology.communicationnetwork",
|
|
738
902
|
"source_layer": "technology",
|
|
739
|
-
"destination_spec_node_id": "technology.
|
|
740
|
-
"destination_layer": "technology",
|
|
741
|
-
"predicate": "aggregates",
|
|
742
|
-
"cardinality": "many-to-many",
|
|
743
|
-
"strength": "medium",
|
|
744
|
-
"required": false
|
|
745
|
-
},
|
|
746
|
-
"technology.communicationnetwork.assigned-to.technology.technologycollaboration": {
|
|
747
|
-
"id": "technology.communicationnetwork.assigned-to.technology.technologycollaboration",
|
|
748
|
-
"source_spec_node_id": "technology.communicationnetwork",
|
|
749
|
-
"source_layer": "technology",
|
|
750
|
-
"destination_spec_node_id": "technology.technologycollaboration",
|
|
751
|
-
"destination_layer": "technology",
|
|
752
|
-
"predicate": "assigned-to",
|
|
753
|
-
"cardinality": "many-to-many",
|
|
754
|
-
"strength": "medium",
|
|
755
|
-
"required": false
|
|
756
|
-
},
|
|
757
|
-
"technology.communicationnetwork.associated-with.technology.systemsoftware": {
|
|
758
|
-
"id": "technology.communicationnetwork.associated-with.technology.systemsoftware",
|
|
759
|
-
"source_spec_node_id": "technology.communicationnetwork",
|
|
760
|
-
"source_layer": "technology",
|
|
761
|
-
"destination_spec_node_id": "technology.systemsoftware",
|
|
903
|
+
"destination_spec_node_id": "technology.device",
|
|
762
904
|
"destination_layer": "technology",
|
|
763
|
-
"predicate": "
|
|
905
|
+
"predicate": "connects",
|
|
764
906
|
"cardinality": "many-to-many",
|
|
765
907
|
"strength": "medium",
|
|
766
|
-
"required": false
|
|
908
|
+
"required": false,
|
|
909
|
+
"description": "The device is attached to the network."
|
|
767
910
|
},
|
|
768
911
|
"technology.communicationnetwork.connects.technology.node": {
|
|
769
912
|
"id": "technology.communicationnetwork.connects.technology.node",
|
|
@@ -774,73 +917,32 @@
|
|
|
774
917
|
"predicate": "connects",
|
|
775
918
|
"cardinality": "many-to-many",
|
|
776
919
|
"strength": "medium",
|
|
777
|
-
"required": false
|
|
920
|
+
"required": false,
|
|
921
|
+
"description": "The node is attached to the network, such as a VM in a subnet."
|
|
778
922
|
},
|
|
779
|
-
"technology.communicationnetwork.
|
|
780
|
-
"id": "technology.communicationnetwork.
|
|
923
|
+
"technology.communicationnetwork.realizes.technology.path": {
|
|
924
|
+
"id": "technology.communicationnetwork.realizes.technology.path",
|
|
781
925
|
"source_spec_node_id": "technology.communicationnetwork",
|
|
782
926
|
"source_layer": "technology",
|
|
783
|
-
"destination_spec_node_id": "technology.
|
|
784
|
-
"destination_layer": "technology",
|
|
785
|
-
"predicate": "provides",
|
|
786
|
-
"cardinality": "many-to-many",
|
|
787
|
-
"strength": "medium",
|
|
788
|
-
"required": false
|
|
789
|
-
},
|
|
790
|
-
"technology.communicationnetwork.serves.technology.device": {
|
|
791
|
-
"id": "technology.communicationnetwork.serves.technology.device",
|
|
792
|
-
"source_spec_node_id": "technology.communicationnetwork",
|
|
793
|
-
"source_layer": "technology",
|
|
794
|
-
"destination_spec_node_id": "technology.device",
|
|
795
|
-
"destination_layer": "technology",
|
|
796
|
-
"predicate": "serves",
|
|
797
|
-
"cardinality": "many-to-many",
|
|
798
|
-
"strength": "medium",
|
|
799
|
-
"required": false
|
|
800
|
-
},
|
|
801
|
-
"technology.communicationnetwork.serves.technology.node": {
|
|
802
|
-
"id": "technology.communicationnetwork.serves.technology.node",
|
|
803
|
-
"source_spec_node_id": "technology.communicationnetwork",
|
|
804
|
-
"source_layer": "technology",
|
|
805
|
-
"destination_spec_node_id": "technology.node",
|
|
927
|
+
"destination_spec_node_id": "technology.path",
|
|
806
928
|
"destination_layer": "technology",
|
|
807
|
-
"predicate": "
|
|
929
|
+
"predicate": "realizes",
|
|
808
930
|
"cardinality": "many-to-many",
|
|
809
931
|
"strength": "medium",
|
|
810
|
-
"required": false
|
|
932
|
+
"required": false,
|
|
933
|
+
"description": "The path between nodes runs over the network: the network is the medium that carries it."
|
|
811
934
|
},
|
|
812
|
-
"technology.communicationnetwork.
|
|
813
|
-
"id": "technology.communicationnetwork.
|
|
935
|
+
"technology.communicationnetwork.realizes.technology.technologyservice": {
|
|
936
|
+
"id": "technology.communicationnetwork.realizes.technology.technologyservice",
|
|
814
937
|
"source_spec_node_id": "technology.communicationnetwork",
|
|
815
938
|
"source_layer": "technology",
|
|
816
939
|
"destination_spec_node_id": "technology.technologyservice",
|
|
817
940
|
"destination_layer": "technology",
|
|
818
|
-
"predicate": "
|
|
819
|
-
"cardinality": "many-to-many",
|
|
820
|
-
"strength": "medium",
|
|
821
|
-
"required": false
|
|
822
|
-
},
|
|
823
|
-
"technology.device.composes.technology.node": {
|
|
824
|
-
"id": "technology.device.composes.technology.node",
|
|
825
|
-
"source_spec_node_id": "technology.device",
|
|
826
|
-
"source_layer": "technology",
|
|
827
|
-
"destination_spec_node_id": "technology.node",
|
|
828
|
-
"destination_layer": "technology",
|
|
829
|
-
"predicate": "composes",
|
|
830
|
-
"cardinality": "many-to-many",
|
|
831
|
-
"strength": "medium",
|
|
832
|
-
"required": false
|
|
833
|
-
},
|
|
834
|
-
"technology.device.composes.technology.systemsoftware": {
|
|
835
|
-
"id": "technology.device.composes.technology.systemsoftware",
|
|
836
|
-
"source_spec_node_id": "technology.device",
|
|
837
|
-
"source_layer": "technology",
|
|
838
|
-
"destination_spec_node_id": "technology.systemsoftware",
|
|
839
|
-
"destination_layer": "technology",
|
|
840
|
-
"predicate": "composes",
|
|
941
|
+
"predicate": "realizes",
|
|
841
942
|
"cardinality": "many-to-many",
|
|
842
943
|
"strength": "medium",
|
|
843
|
-
"required": false
|
|
944
|
+
"required": false,
|
|
945
|
+
"description": "The network provides a connectivity service, such as a private network offered as a managed service."
|
|
844
946
|
},
|
|
845
947
|
"technology.device.satisfies.security.securitypolicy": {
|
|
846
948
|
"id": "technology.device.satisfies.security.securitypolicy",
|
|
@@ -851,7 +953,8 @@
|
|
|
851
953
|
"predicate": "satisfies",
|
|
852
954
|
"cardinality": "many-to-many",
|
|
853
955
|
"strength": "medium",
|
|
854
|
-
"required": false
|
|
956
|
+
"required": false,
|
|
957
|
+
"description": "The device meets a security policy, such as disk encryption or tamper protection on hardware."
|
|
855
958
|
},
|
|
856
959
|
"technology.device.serves.application.applicationcomponent": {
|
|
857
960
|
"id": "technology.device.serves.application.applicationcomponent",
|
|
@@ -862,7 +965,8 @@
|
|
|
862
965
|
"predicate": "serves",
|
|
863
966
|
"cardinality": "many-to-many",
|
|
864
967
|
"strength": "medium",
|
|
865
|
-
"required": false
|
|
968
|
+
"required": false,
|
|
969
|
+
"description": "The device runs the application component directly, such as firmware on an embedded board. Use a node instead when there is a hosting environment between them."
|
|
866
970
|
},
|
|
867
971
|
"technology.node.assigned-to.technology.technologyfunction": {
|
|
868
972
|
"id": "technology.node.assigned-to.technology.technologyfunction",
|
|
@@ -873,7 +977,8 @@
|
|
|
873
977
|
"predicate": "assigned-to",
|
|
874
978
|
"cardinality": "many-to-many",
|
|
875
979
|
"strength": "medium",
|
|
876
|
-
"required": false
|
|
980
|
+
"required": false,
|
|
981
|
+
"description": "The node performs the technology function, such as a load balancer node performing traffic distribution."
|
|
877
982
|
},
|
|
878
983
|
"technology.node.composes.technology.artifact": {
|
|
879
984
|
"id": "technology.node.composes.technology.artifact",
|
|
@@ -884,7 +989,8 @@
|
|
|
884
989
|
"predicate": "composes",
|
|
885
990
|
"cardinality": "many-to-many",
|
|
886
991
|
"strength": "medium",
|
|
887
|
-
"required": false
|
|
992
|
+
"required": false,
|
|
993
|
+
"description": "The artifact is deployed to the node, such as an image running in a container or a file on a host."
|
|
888
994
|
},
|
|
889
995
|
"technology.node.composes.technology.device": {
|
|
890
996
|
"id": "technology.node.composes.technology.device",
|
|
@@ -895,7 +1001,8 @@
|
|
|
895
1001
|
"predicate": "composes",
|
|
896
1002
|
"cardinality": "many-to-many",
|
|
897
1003
|
"strength": "medium",
|
|
898
|
-
"required": false
|
|
1004
|
+
"required": false,
|
|
1005
|
+
"description": "The node runs on the device, such as a host on a physical server."
|
|
899
1006
|
},
|
|
900
1007
|
"technology.node.composes.technology.systemsoftware": {
|
|
901
1008
|
"id": "technology.node.composes.technology.systemsoftware",
|
|
@@ -906,7 +1013,8 @@
|
|
|
906
1013
|
"predicate": "composes",
|
|
907
1014
|
"cardinality": "many-to-many",
|
|
908
1015
|
"strength": "medium",
|
|
909
|
-
"required": false
|
|
1016
|
+
"required": false,
|
|
1017
|
+
"description": "The system software is installed on or runs in the node, such as a database engine on a VM."
|
|
910
1018
|
},
|
|
911
1019
|
"technology.node.composes.technology.technologyinterface": {
|
|
912
1020
|
"id": "technology.node.composes.technology.technologyinterface",
|
|
@@ -917,7 +1025,23 @@
|
|
|
917
1025
|
"predicate": "composes",
|
|
918
1026
|
"cardinality": "many-to-many",
|
|
919
1027
|
"strength": "medium",
|
|
920
|
-
"required": false
|
|
1028
|
+
"required": false,
|
|
1029
|
+
"description": "The interface is an access point on the node, such as a listening port."
|
|
1030
|
+
},
|
|
1031
|
+
"technology.node.depends-on.technology.node": {
|
|
1032
|
+
"id": "technology.node.depends-on.technology.node",
|
|
1033
|
+
"source_spec_node_id": "technology.node",
|
|
1034
|
+
"source_layer": "technology",
|
|
1035
|
+
"destination_spec_node_id": "technology.node",
|
|
1036
|
+
"destination_layer": "technology",
|
|
1037
|
+
"predicate": "depends-on",
|
|
1038
|
+
"cardinality": "many-to-many",
|
|
1039
|
+
"strength": "medium",
|
|
1040
|
+
"required": false,
|
|
1041
|
+
"description": "A node depends on another node to run: it is started after it and fails without it, as a compose service declares depends_on another service.",
|
|
1042
|
+
"evidence": [
|
|
1043
|
+
"A docker-compose service with depends_on: [db], or an init container or startup probe that waits for another workload, each side modelled as a technology node; CBM DEPENDS_ON between infrastructure nodes."
|
|
1044
|
+
]
|
|
921
1045
|
},
|
|
922
1046
|
"technology.node.realizes.technology.technologyservice": {
|
|
923
1047
|
"id": "technology.node.realizes.technology.technologyservice",
|
|
@@ -928,7 +1052,8 @@
|
|
|
928
1052
|
"predicate": "realizes",
|
|
929
1053
|
"cardinality": "many-to-many",
|
|
930
1054
|
"strength": "medium",
|
|
931
|
-
"required": false
|
|
1055
|
+
"required": false,
|
|
1056
|
+
"description": "The node provides the technology service directly, a shortcut through the behaviour assigned to it, such as a cluster offering compute."
|
|
932
1057
|
},
|
|
933
1058
|
"technology.node.satisfies.motivation.constraint": {
|
|
934
1059
|
"id": "technology.node.satisfies.motivation.constraint",
|
|
@@ -939,7 +1064,8 @@
|
|
|
939
1064
|
"predicate": "satisfies",
|
|
940
1065
|
"cardinality": "many-to-many",
|
|
941
1066
|
"strength": "medium",
|
|
942
|
-
"required": false
|
|
1067
|
+
"required": false,
|
|
1068
|
+
"description": "The node meets a constraint on the solution, such as an approved region or instance type."
|
|
943
1069
|
},
|
|
944
1070
|
"technology.node.satisfies.security.securitypolicy": {
|
|
945
1071
|
"id": "technology.node.satisfies.security.securitypolicy",
|
|
@@ -950,7 +1076,8 @@
|
|
|
950
1076
|
"predicate": "satisfies",
|
|
951
1077
|
"cardinality": "many-to-many",
|
|
952
1078
|
"strength": "medium",
|
|
953
|
-
"required": false
|
|
1079
|
+
"required": false,
|
|
1080
|
+
"description": "The node meets a security policy, such as a hardened base image or network isolation."
|
|
954
1081
|
},
|
|
955
1082
|
"technology.node.serves.application.applicationcomponent": {
|
|
956
1083
|
"id": "technology.node.serves.application.applicationcomponent",
|
|
@@ -961,29 +1088,8 @@
|
|
|
961
1088
|
"predicate": "serves",
|
|
962
1089
|
"cardinality": "many-to-many",
|
|
963
1090
|
"strength": "medium",
|
|
964
|
-
"required": false
|
|
965
|
-
|
|
966
|
-
"technology.node.serves.business.businessprocess": {
|
|
967
|
-
"id": "technology.node.serves.business.businessprocess",
|
|
968
|
-
"source_spec_node_id": "technology.node",
|
|
969
|
-
"source_layer": "technology",
|
|
970
|
-
"destination_spec_node_id": "business.businessprocess",
|
|
971
|
-
"destination_layer": "business",
|
|
972
|
-
"predicate": "serves",
|
|
973
|
-
"cardinality": "many-to-many",
|
|
974
|
-
"strength": "medium",
|
|
975
|
-
"required": false
|
|
976
|
-
},
|
|
977
|
-
"technology.path.assigned-to.technology.technologyinterface": {
|
|
978
|
-
"id": "technology.path.assigned-to.technology.technologyinterface",
|
|
979
|
-
"source_spec_node_id": "technology.path",
|
|
980
|
-
"source_layer": "technology",
|
|
981
|
-
"destination_spec_node_id": "technology.technologyinterface",
|
|
982
|
-
"destination_layer": "technology",
|
|
983
|
-
"predicate": "assigned-to",
|
|
984
|
-
"cardinality": "many-to-many",
|
|
985
|
-
"strength": "medium",
|
|
986
|
-
"required": false
|
|
1091
|
+
"required": false,
|
|
1092
|
+
"description": "The node hosts the application component, a shortcut for the component's artifact deployed to the node."
|
|
987
1093
|
},
|
|
988
1094
|
"technology.path.composes.technology.path": {
|
|
989
1095
|
"id": "technology.path.composes.technology.path",
|
|
@@ -994,62 +1100,44 @@
|
|
|
994
1100
|
"predicate": "composes",
|
|
995
1101
|
"cardinality": "many-to-many",
|
|
996
1102
|
"strength": "medium",
|
|
997
|
-
"required": false
|
|
998
|
-
|
|
999
|
-
"technology.path.flows-to.technology.technologyservice": {
|
|
1000
|
-
"id": "technology.path.flows-to.technology.technologyservice",
|
|
1001
|
-
"source_spec_node_id": "technology.path",
|
|
1002
|
-
"source_layer": "technology",
|
|
1003
|
-
"destination_spec_node_id": "technology.technologyservice",
|
|
1004
|
-
"destination_layer": "technology",
|
|
1005
|
-
"predicate": "flows-to",
|
|
1006
|
-
"cardinality": "many-to-many",
|
|
1007
|
-
"strength": "medium",
|
|
1008
|
-
"required": false
|
|
1009
|
-
},
|
|
1010
|
-
"technology.path.realizes.technology.technologyservice": {
|
|
1011
|
-
"id": "technology.path.realizes.technology.technologyservice",
|
|
1012
|
-
"source_spec_node_id": "technology.path",
|
|
1013
|
-
"source_layer": "technology",
|
|
1014
|
-
"destination_spec_node_id": "technology.technologyservice",
|
|
1015
|
-
"destination_layer": "technology",
|
|
1016
|
-
"predicate": "realizes",
|
|
1017
|
-
"cardinality": "many-to-many",
|
|
1018
|
-
"strength": "medium",
|
|
1019
|
-
"required": false
|
|
1103
|
+
"required": false,
|
|
1104
|
+
"description": "The path is made of narrower path segments, such as hops through a gateway."
|
|
1020
1105
|
},
|
|
1021
|
-
"technology.path.
|
|
1022
|
-
"id": "technology.path.
|
|
1106
|
+
"technology.path.connects.technology.device": {
|
|
1107
|
+
"id": "technology.path.connects.technology.device",
|
|
1023
1108
|
"source_spec_node_id": "technology.path",
|
|
1024
1109
|
"source_layer": "technology",
|
|
1025
1110
|
"destination_spec_node_id": "technology.device",
|
|
1026
1111
|
"destination_layer": "technology",
|
|
1027
|
-
"predicate": "
|
|
1112
|
+
"predicate": "connects",
|
|
1028
1113
|
"cardinality": "many-to-many",
|
|
1029
1114
|
"strength": "medium",
|
|
1030
|
-
"required": false
|
|
1115
|
+
"required": false,
|
|
1116
|
+
"description": "The device is an end of the path."
|
|
1031
1117
|
},
|
|
1032
|
-
"technology.path.
|
|
1033
|
-
"id": "technology.path.
|
|
1118
|
+
"technology.path.connects.technology.node": {
|
|
1119
|
+
"id": "technology.path.connects.technology.node",
|
|
1034
1120
|
"source_spec_node_id": "technology.path",
|
|
1035
1121
|
"source_layer": "technology",
|
|
1036
1122
|
"destination_spec_node_id": "technology.node",
|
|
1037
1123
|
"destination_layer": "technology",
|
|
1038
|
-
"predicate": "
|
|
1124
|
+
"predicate": "connects",
|
|
1039
1125
|
"cardinality": "many-to-many",
|
|
1040
1126
|
"strength": "medium",
|
|
1041
|
-
"required": false
|
|
1127
|
+
"required": false,
|
|
1128
|
+
"description": "The node is an end of the path, such as a service host and its database host."
|
|
1042
1129
|
},
|
|
1043
|
-
"technology.path.
|
|
1044
|
-
"id": "technology.path.
|
|
1130
|
+
"technology.path.realizes.technology.technologyservice": {
|
|
1131
|
+
"id": "technology.path.realizes.technology.technologyservice",
|
|
1045
1132
|
"source_spec_node_id": "technology.path",
|
|
1046
1133
|
"source_layer": "technology",
|
|
1047
|
-
"destination_spec_node_id": "technology.
|
|
1134
|
+
"destination_spec_node_id": "technology.technologyservice",
|
|
1048
1135
|
"destination_layer": "technology",
|
|
1049
|
-
"predicate": "
|
|
1136
|
+
"predicate": "realizes",
|
|
1050
1137
|
"cardinality": "many-to-many",
|
|
1051
1138
|
"strength": "medium",
|
|
1052
|
-
"required": false
|
|
1139
|
+
"required": false,
|
|
1140
|
+
"description": "The path provides a connectivity service, such as a VPN tunnel offered between sites."
|
|
1053
1141
|
},
|
|
1054
1142
|
"technology.systemsoftware.accesses.technology.artifact": {
|
|
1055
1143
|
"id": "technology.systemsoftware.accesses.technology.artifact",
|
|
@@ -1060,7 +1148,8 @@
|
|
|
1060
1148
|
"predicate": "accesses",
|
|
1061
1149
|
"cardinality": "many-to-many",
|
|
1062
1150
|
"strength": "medium",
|
|
1063
|
-
"required": false
|
|
1151
|
+
"required": false,
|
|
1152
|
+
"description": "The system software reads or writes the artifact, such as a web server reading its configuration file or a database engine its data files."
|
|
1064
1153
|
},
|
|
1065
1154
|
"technology.systemsoftware.assigned-to.technology.technologyfunction": {
|
|
1066
1155
|
"id": "technology.systemsoftware.assigned-to.technology.technologyfunction",
|
|
@@ -1071,7 +1160,8 @@
|
|
|
1071
1160
|
"predicate": "assigned-to",
|
|
1072
1161
|
"cardinality": "many-to-many",
|
|
1073
1162
|
"strength": "medium",
|
|
1074
|
-
"required": false
|
|
1163
|
+
"required": false,
|
|
1164
|
+
"description": "The system software performs the technology function, such as a database engine performing replication."
|
|
1075
1165
|
},
|
|
1076
1166
|
"technology.systemsoftware.composes.technology.artifact": {
|
|
1077
1167
|
"id": "technology.systemsoftware.composes.technology.artifact",
|
|
@@ -1082,7 +1172,8 @@
|
|
|
1082
1172
|
"predicate": "composes",
|
|
1083
1173
|
"cardinality": "many-to-many",
|
|
1084
1174
|
"strength": "medium",
|
|
1085
|
-
"required": false
|
|
1175
|
+
"required": false,
|
|
1176
|
+
"description": "The artifact is part of the system software's installation, such as its configuration or plugin files."
|
|
1086
1177
|
},
|
|
1087
1178
|
"technology.systemsoftware.depends-on.technology.device": {
|
|
1088
1179
|
"id": "technology.systemsoftware.depends-on.technology.device",
|
|
@@ -1093,7 +1184,8 @@
|
|
|
1093
1184
|
"predicate": "depends-on",
|
|
1094
1185
|
"cardinality": "many-to-many",
|
|
1095
1186
|
"strength": "medium",
|
|
1096
|
-
"required": false
|
|
1187
|
+
"required": false,
|
|
1188
|
+
"description": "The system software needs the device, such as a driver for specific hardware."
|
|
1097
1189
|
},
|
|
1098
1190
|
"technology.systemsoftware.depends-on.technology.systemsoftware": {
|
|
1099
1191
|
"id": "technology.systemsoftware.depends-on.technology.systemsoftware",
|
|
@@ -1104,40 +1196,8 @@
|
|
|
1104
1196
|
"predicate": "depends-on",
|
|
1105
1197
|
"cardinality": "many-to-many",
|
|
1106
1198
|
"strength": "medium",
|
|
1107
|
-
"required": false
|
|
1108
|
-
|
|
1109
|
-
"technology.systemsoftware.implements.security.countermeasure": {
|
|
1110
|
-
"id": "technology.systemsoftware.implements.security.countermeasure",
|
|
1111
|
-
"source_spec_node_id": "technology.systemsoftware",
|
|
1112
|
-
"source_layer": "technology",
|
|
1113
|
-
"destination_spec_node_id": "security.countermeasure",
|
|
1114
|
-
"destination_layer": "security",
|
|
1115
|
-
"predicate": "implements",
|
|
1116
|
-
"cardinality": "many-to-many",
|
|
1117
|
-
"strength": "medium",
|
|
1118
|
-
"required": false
|
|
1119
|
-
},
|
|
1120
|
-
"technology.systemsoftware.implements.motivation.principle": {
|
|
1121
|
-
"id": "technology.systemsoftware.implements.motivation.principle",
|
|
1122
|
-
"source_spec_node_id": "technology.systemsoftware",
|
|
1123
|
-
"source_layer": "technology",
|
|
1124
|
-
"destination_spec_node_id": "motivation.principle",
|
|
1125
|
-
"destination_layer": "motivation",
|
|
1126
|
-
"predicate": "implements",
|
|
1127
|
-
"cardinality": "many-to-many",
|
|
1128
|
-
"strength": "medium",
|
|
1129
|
-
"required": false
|
|
1130
|
-
},
|
|
1131
|
-
"technology.systemsoftware.mitigates.security.threat": {
|
|
1132
|
-
"id": "technology.systemsoftware.mitigates.security.threat",
|
|
1133
|
-
"source_spec_node_id": "technology.systemsoftware",
|
|
1134
|
-
"source_layer": "technology",
|
|
1135
|
-
"destination_spec_node_id": "security.threat",
|
|
1136
|
-
"destination_layer": "security",
|
|
1137
|
-
"predicate": "mitigates",
|
|
1138
|
-
"cardinality": "many-to-many",
|
|
1139
|
-
"strength": "medium",
|
|
1140
|
-
"required": false
|
|
1199
|
+
"required": false,
|
|
1200
|
+
"description": "The system software needs other system software to run, such as an application server on a language runtime."
|
|
1141
1201
|
},
|
|
1142
1202
|
"technology.systemsoftware.provides.technology.technologyinterface": {
|
|
1143
1203
|
"id": "technology.systemsoftware.provides.technology.technologyinterface",
|
|
@@ -1148,40 +1208,20 @@
|
|
|
1148
1208
|
"predicate": "provides",
|
|
1149
1209
|
"cardinality": "many-to-many",
|
|
1150
1210
|
"strength": "medium",
|
|
1151
|
-
"required": false
|
|
1152
|
-
|
|
1153
|
-
"technology.systemsoftware.realizes.application.applicationservice": {
|
|
1154
|
-
"id": "technology.systemsoftware.realizes.application.applicationservice",
|
|
1155
|
-
"source_spec_node_id": "technology.systemsoftware",
|
|
1156
|
-
"source_layer": "technology",
|
|
1157
|
-
"destination_spec_node_id": "application.applicationservice",
|
|
1158
|
-
"destination_layer": "application",
|
|
1159
|
-
"predicate": "realizes",
|
|
1160
|
-
"cardinality": "many-to-many",
|
|
1161
|
-
"strength": "medium",
|
|
1162
|
-
"required": false
|
|
1211
|
+
"required": false,
|
|
1212
|
+
"description": "The system software exposes the interface, such as a broker's listener port or a database's connection endpoint."
|
|
1163
1213
|
},
|
|
1164
|
-
"technology.systemsoftware.realizes.
|
|
1165
|
-
"id": "technology.systemsoftware.realizes.
|
|
1214
|
+
"technology.systemsoftware.realizes.security.countermeasure": {
|
|
1215
|
+
"id": "technology.systemsoftware.realizes.security.countermeasure",
|
|
1166
1216
|
"source_spec_node_id": "technology.systemsoftware",
|
|
1167
1217
|
"source_layer": "technology",
|
|
1168
|
-
"destination_spec_node_id": "
|
|
1169
|
-
"destination_layer": "
|
|
1170
|
-
"predicate": "realizes",
|
|
1171
|
-
"cardinality": "many-to-many",
|
|
1172
|
-
"strength": "medium",
|
|
1173
|
-
"required": false
|
|
1174
|
-
},
|
|
1175
|
-
"technology.systemsoftware.realizes.motivation.goal": {
|
|
1176
|
-
"id": "technology.systemsoftware.realizes.motivation.goal",
|
|
1177
|
-
"source_spec_node_id": "technology.systemsoftware",
|
|
1178
|
-
"source_layer": "technology",
|
|
1179
|
-
"destination_spec_node_id": "motivation.goal",
|
|
1180
|
-
"destination_layer": "motivation",
|
|
1218
|
+
"destination_spec_node_id": "security.countermeasure",
|
|
1219
|
+
"destination_layer": "security",
|
|
1181
1220
|
"predicate": "realizes",
|
|
1182
1221
|
"cardinality": "many-to-many",
|
|
1183
1222
|
"strength": "medium",
|
|
1184
|
-
"required": false
|
|
1223
|
+
"required": false,
|
|
1224
|
+
"description": "The system software implements a security countermeasure, such as an identity provider implementing MFA."
|
|
1185
1225
|
},
|
|
1186
1226
|
"technology.systemsoftware.realizes.security.securitypolicy": {
|
|
1187
1227
|
"id": "technology.systemsoftware.realizes.security.securitypolicy",
|
|
@@ -1192,7 +1232,8 @@
|
|
|
1192
1232
|
"predicate": "realizes",
|
|
1193
1233
|
"cardinality": "many-to-many",
|
|
1194
1234
|
"strength": "medium",
|
|
1195
|
-
"required": false
|
|
1235
|
+
"required": false,
|
|
1236
|
+
"description": "The system software enforces a security policy, such as a policy engine applying access rules."
|
|
1196
1237
|
},
|
|
1197
1238
|
"technology.systemsoftware.realizes.technology.technologyservice": {
|
|
1198
1239
|
"id": "technology.systemsoftware.realizes.technology.technologyservice",
|
|
@@ -1203,7 +1244,8 @@
|
|
|
1203
1244
|
"predicate": "realizes",
|
|
1204
1245
|
"cardinality": "many-to-many",
|
|
1205
1246
|
"strength": "medium",
|
|
1206
|
-
"required": false
|
|
1247
|
+
"required": false,
|
|
1248
|
+
"description": "The system software provides the technology service, a shortcut through the behaviour assigned to it, such as PostgreSQL providing a database service."
|
|
1207
1249
|
},
|
|
1208
1250
|
"technology.systemsoftware.satisfies.motivation.constraint": {
|
|
1209
1251
|
"id": "technology.systemsoftware.satisfies.motivation.constraint",
|
|
@@ -1214,7 +1256,20 @@
|
|
|
1214
1256
|
"predicate": "satisfies",
|
|
1215
1257
|
"cardinality": "many-to-many",
|
|
1216
1258
|
"strength": "medium",
|
|
1217
|
-
"required": false
|
|
1259
|
+
"required": false,
|
|
1260
|
+
"description": "The system software meets a constraint, such as an approved-products list."
|
|
1261
|
+
},
|
|
1262
|
+
"technology.systemsoftware.satisfies.motivation.principle": {
|
|
1263
|
+
"id": "technology.systemsoftware.satisfies.motivation.principle",
|
|
1264
|
+
"source_spec_node_id": "technology.systemsoftware",
|
|
1265
|
+
"source_layer": "technology",
|
|
1266
|
+
"destination_spec_node_id": "motivation.principle",
|
|
1267
|
+
"destination_layer": "motivation",
|
|
1268
|
+
"predicate": "satisfies",
|
|
1269
|
+
"cardinality": "many-to-many",
|
|
1270
|
+
"strength": "medium",
|
|
1271
|
+
"required": false,
|
|
1272
|
+
"description": "The system software follows the principle, such as a managed database chosen under 'prefer managed services'."
|
|
1218
1273
|
},
|
|
1219
1274
|
"technology.systemsoftware.satisfies.motivation.requirement": {
|
|
1220
1275
|
"id": "technology.systemsoftware.satisfies.motivation.requirement",
|
|
@@ -1225,7 +1280,8 @@
|
|
|
1225
1280
|
"predicate": "satisfies",
|
|
1226
1281
|
"cardinality": "many-to-many",
|
|
1227
1282
|
"strength": "medium",
|
|
1228
|
-
"required": false
|
|
1283
|
+
"required": false,
|
|
1284
|
+
"description": "The system software meets a requirement, such as a broker that guarantees message ordering."
|
|
1229
1285
|
},
|
|
1230
1286
|
"technology.systemsoftware.serves.application.applicationcomponent": {
|
|
1231
1287
|
"id": "technology.systemsoftware.serves.application.applicationcomponent",
|
|
@@ -1236,73 +1292,8 @@
|
|
|
1236
1292
|
"predicate": "serves",
|
|
1237
1293
|
"cardinality": "many-to-many",
|
|
1238
1294
|
"strength": "medium",
|
|
1239
|
-
"required": false
|
|
1240
|
-
|
|
1241
|
-
"technology.systemsoftware.serves.business.businessprocess": {
|
|
1242
|
-
"id": "technology.systemsoftware.serves.business.businessprocess",
|
|
1243
|
-
"source_spec_node_id": "technology.systemsoftware",
|
|
1244
|
-
"source_layer": "technology",
|
|
1245
|
-
"destination_spec_node_id": "business.businessprocess",
|
|
1246
|
-
"destination_layer": "business",
|
|
1247
|
-
"predicate": "serves",
|
|
1248
|
-
"cardinality": "many-to-many",
|
|
1249
|
-
"strength": "medium",
|
|
1250
|
-
"required": false
|
|
1251
|
-
},
|
|
1252
|
-
"technology.systemsoftware.serves.technology.technologyfunction": {
|
|
1253
|
-
"id": "technology.systemsoftware.serves.technology.technologyfunction",
|
|
1254
|
-
"source_spec_node_id": "technology.systemsoftware",
|
|
1255
|
-
"source_layer": "technology",
|
|
1256
|
-
"destination_spec_node_id": "technology.technologyfunction",
|
|
1257
|
-
"destination_layer": "technology",
|
|
1258
|
-
"predicate": "serves",
|
|
1259
|
-
"cardinality": "many-to-many",
|
|
1260
|
-
"strength": "medium",
|
|
1261
|
-
"required": false
|
|
1262
|
-
},
|
|
1263
|
-
"technology.systemsoftware.triggers.technology.technologyevent": {
|
|
1264
|
-
"id": "technology.systemsoftware.triggers.technology.technologyevent",
|
|
1265
|
-
"source_spec_node_id": "technology.systemsoftware",
|
|
1266
|
-
"source_layer": "technology",
|
|
1267
|
-
"destination_spec_node_id": "technology.technologyevent",
|
|
1268
|
-
"destination_layer": "technology",
|
|
1269
|
-
"predicate": "triggers",
|
|
1270
|
-
"cardinality": "many-to-many",
|
|
1271
|
-
"strength": "medium",
|
|
1272
|
-
"required": false
|
|
1273
|
-
},
|
|
1274
|
-
"technology.systemsoftware.uses.technology.communicationnetwork": {
|
|
1275
|
-
"id": "technology.systemsoftware.uses.technology.communicationnetwork",
|
|
1276
|
-
"source_spec_node_id": "technology.systemsoftware",
|
|
1277
|
-
"source_layer": "technology",
|
|
1278
|
-
"destination_spec_node_id": "technology.communicationnetwork",
|
|
1279
|
-
"destination_layer": "technology",
|
|
1280
|
-
"predicate": "uses",
|
|
1281
|
-
"cardinality": "many-to-many",
|
|
1282
|
-
"strength": "medium",
|
|
1283
|
-
"required": false
|
|
1284
|
-
},
|
|
1285
|
-
"technology.systemsoftware.uses.technology.path": {
|
|
1286
|
-
"id": "technology.systemsoftware.uses.technology.path",
|
|
1287
|
-
"source_spec_node_id": "technology.systemsoftware",
|
|
1288
|
-
"source_layer": "technology",
|
|
1289
|
-
"destination_spec_node_id": "technology.path",
|
|
1290
|
-
"destination_layer": "technology",
|
|
1291
|
-
"predicate": "uses",
|
|
1292
|
-
"cardinality": "many-to-many",
|
|
1293
|
-
"strength": "medium",
|
|
1294
|
-
"required": false
|
|
1295
|
-
},
|
|
1296
|
-
"technology.technologycollaboration.accesses.technology.artifact": {
|
|
1297
|
-
"id": "technology.technologycollaboration.accesses.technology.artifact",
|
|
1298
|
-
"source_spec_node_id": "technology.technologycollaboration",
|
|
1299
|
-
"source_layer": "technology",
|
|
1300
|
-
"destination_spec_node_id": "technology.artifact",
|
|
1301
|
-
"destination_layer": "technology",
|
|
1302
|
-
"predicate": "accesses",
|
|
1303
|
-
"cardinality": "many-to-many",
|
|
1304
|
-
"strength": "medium",
|
|
1305
|
-
"required": false
|
|
1295
|
+
"required": false,
|
|
1296
|
+
"description": "The system software runs or hosts the application component, such as a runtime or application server."
|
|
1306
1297
|
},
|
|
1307
1298
|
"technology.technologycollaboration.aggregates.technology.node": {
|
|
1308
1299
|
"id": "technology.technologycollaboration.aggregates.technology.node",
|
|
@@ -1313,40 +1304,44 @@
|
|
|
1313
1304
|
"predicate": "aggregates",
|
|
1314
1305
|
"cardinality": "many-to-many",
|
|
1315
1306
|
"strength": "medium",
|
|
1316
|
-
"required": false
|
|
1307
|
+
"required": false,
|
|
1308
|
+
"description": "The node is a member of the collaboration, such as one replica in a cluster."
|
|
1317
1309
|
},
|
|
1318
|
-
"technology.technologycollaboration.aggregates.technology.
|
|
1319
|
-
"id": "technology.technologycollaboration.aggregates.technology.
|
|
1310
|
+
"technology.technologycollaboration.aggregates.technology.systemsoftware": {
|
|
1311
|
+
"id": "technology.technologycollaboration.aggregates.technology.systemsoftware",
|
|
1320
1312
|
"source_spec_node_id": "technology.technologycollaboration",
|
|
1321
1313
|
"source_layer": "technology",
|
|
1322
|
-
"destination_spec_node_id": "technology.
|
|
1314
|
+
"destination_spec_node_id": "technology.systemsoftware",
|
|
1323
1315
|
"destination_layer": "technology",
|
|
1324
1316
|
"predicate": "aggregates",
|
|
1325
1317
|
"cardinality": "many-to-many",
|
|
1326
1318
|
"strength": "medium",
|
|
1327
|
-
"required": false
|
|
1319
|
+
"required": false,
|
|
1320
|
+
"description": "The system software instance is a member of the collaboration, such as one server in a replicated database ensemble."
|
|
1328
1321
|
},
|
|
1329
|
-
"technology.technologycollaboration.
|
|
1330
|
-
"id": "technology.technologycollaboration.
|
|
1322
|
+
"technology.technologycollaboration.aggregates.technology.technologycollaboration": {
|
|
1323
|
+
"id": "technology.technologycollaboration.aggregates.technology.technologycollaboration",
|
|
1331
1324
|
"source_spec_node_id": "technology.technologycollaboration",
|
|
1332
1325
|
"source_layer": "technology",
|
|
1333
1326
|
"destination_spec_node_id": "technology.technologycollaboration",
|
|
1334
1327
|
"destination_layer": "technology",
|
|
1335
|
-
"predicate": "
|
|
1328
|
+
"predicate": "aggregates",
|
|
1336
1329
|
"cardinality": "many-to-many",
|
|
1337
1330
|
"strength": "medium",
|
|
1338
|
-
"required": false
|
|
1331
|
+
"required": false,
|
|
1332
|
+
"description": "The collaboration contains a narrower collaboration, such as a shard group inside a cluster."
|
|
1339
1333
|
},
|
|
1340
|
-
"technology.technologycollaboration.
|
|
1341
|
-
"id": "technology.technologycollaboration.
|
|
1334
|
+
"technology.technologycollaboration.assigned-to.technology.technologyinteraction": {
|
|
1335
|
+
"id": "technology.technologycollaboration.assigned-to.technology.technologyinteraction",
|
|
1342
1336
|
"source_spec_node_id": "technology.technologycollaboration",
|
|
1343
1337
|
"source_layer": "technology",
|
|
1344
1338
|
"destination_spec_node_id": "technology.technologyinteraction",
|
|
1345
1339
|
"destination_layer": "technology",
|
|
1346
|
-
"predicate": "
|
|
1340
|
+
"predicate": "assigned-to",
|
|
1347
1341
|
"cardinality": "many-to-many",
|
|
1348
1342
|
"strength": "medium",
|
|
1349
|
-
"required": false
|
|
1343
|
+
"required": false,
|
|
1344
|
+
"description": "The collaboration's members jointly perform the interaction, such as a cluster performing leader election."
|
|
1350
1345
|
},
|
|
1351
1346
|
"technology.technologycollaboration.realizes.technology.technologyservice": {
|
|
1352
1347
|
"id": "technology.technologycollaboration.realizes.technology.technologyservice",
|
|
@@ -1357,73 +1352,8 @@
|
|
|
1357
1352
|
"predicate": "realizes",
|
|
1358
1353
|
"cardinality": "many-to-many",
|
|
1359
1354
|
"strength": "medium",
|
|
1360
|
-
"required": false
|
|
1361
|
-
|
|
1362
|
-
"technology.technologycollaboration.triggers.technology.technologyevent": {
|
|
1363
|
-
"id": "technology.technologycollaboration.triggers.technology.technologyevent",
|
|
1364
|
-
"source_spec_node_id": "technology.technologycollaboration",
|
|
1365
|
-
"source_layer": "technology",
|
|
1366
|
-
"destination_spec_node_id": "technology.technologyevent",
|
|
1367
|
-
"destination_layer": "technology",
|
|
1368
|
-
"predicate": "triggers",
|
|
1369
|
-
"cardinality": "many-to-many",
|
|
1370
|
-
"strength": "medium",
|
|
1371
|
-
"required": false
|
|
1372
|
-
},
|
|
1373
|
-
"technology.technologycollaboration.uses.technology.communicationnetwork": {
|
|
1374
|
-
"id": "technology.technologycollaboration.uses.technology.communicationnetwork",
|
|
1375
|
-
"source_spec_node_id": "technology.technologycollaboration",
|
|
1376
|
-
"source_layer": "technology",
|
|
1377
|
-
"destination_spec_node_id": "technology.communicationnetwork",
|
|
1378
|
-
"destination_layer": "technology",
|
|
1379
|
-
"predicate": "uses",
|
|
1380
|
-
"cardinality": "many-to-many",
|
|
1381
|
-
"strength": "medium",
|
|
1382
|
-
"required": false
|
|
1383
|
-
},
|
|
1384
|
-
"technology.technologycollaboration.uses.technology.path": {
|
|
1385
|
-
"id": "technology.technologycollaboration.uses.technology.path",
|
|
1386
|
-
"source_spec_node_id": "technology.technologycollaboration",
|
|
1387
|
-
"source_layer": "technology",
|
|
1388
|
-
"destination_spec_node_id": "technology.path",
|
|
1389
|
-
"destination_layer": "technology",
|
|
1390
|
-
"predicate": "uses",
|
|
1391
|
-
"cardinality": "many-to-many",
|
|
1392
|
-
"strength": "medium",
|
|
1393
|
-
"required": false
|
|
1394
|
-
},
|
|
1395
|
-
"technology.technologyevent.associated-with.technology.technologyservice": {
|
|
1396
|
-
"id": "technology.technologyevent.associated-with.technology.technologyservice",
|
|
1397
|
-
"source_spec_node_id": "technology.technologyevent",
|
|
1398
|
-
"source_layer": "technology",
|
|
1399
|
-
"destination_spec_node_id": "technology.technologyservice",
|
|
1400
|
-
"destination_layer": "technology",
|
|
1401
|
-
"predicate": "associated-with",
|
|
1402
|
-
"cardinality": "many-to-many",
|
|
1403
|
-
"strength": "medium",
|
|
1404
|
-
"required": false
|
|
1405
|
-
},
|
|
1406
|
-
"technology.technologyevent.flows-to.technology.artifact": {
|
|
1407
|
-
"id": "technology.technologyevent.flows-to.technology.artifact",
|
|
1408
|
-
"source_spec_node_id": "technology.technologyevent",
|
|
1409
|
-
"source_layer": "technology",
|
|
1410
|
-
"destination_spec_node_id": "technology.artifact",
|
|
1411
|
-
"destination_layer": "technology",
|
|
1412
|
-
"predicate": "flows-to",
|
|
1413
|
-
"cardinality": "many-to-many",
|
|
1414
|
-
"strength": "medium",
|
|
1415
|
-
"required": false
|
|
1416
|
-
},
|
|
1417
|
-
"technology.technologyevent.flows-to.technology.technologyprocess": {
|
|
1418
|
-
"id": "technology.technologyevent.flows-to.technology.technologyprocess",
|
|
1419
|
-
"source_spec_node_id": "technology.technologyevent",
|
|
1420
|
-
"source_layer": "technology",
|
|
1421
|
-
"destination_spec_node_id": "technology.technologyprocess",
|
|
1422
|
-
"destination_layer": "technology",
|
|
1423
|
-
"predicate": "flows-to",
|
|
1424
|
-
"cardinality": "many-to-many",
|
|
1425
|
-
"strength": "medium",
|
|
1426
|
-
"required": false
|
|
1355
|
+
"required": false,
|
|
1356
|
+
"description": "The collaboration provides the service together, such as a replica set providing a highly available database."
|
|
1427
1357
|
},
|
|
1428
1358
|
"technology.technologyevent.triggers.technology.technologyfunction": {
|
|
1429
1359
|
"id": "technology.technologyevent.triggers.technology.technologyfunction",
|
|
@@ -1434,7 +1364,8 @@
|
|
|
1434
1364
|
"predicate": "triggers",
|
|
1435
1365
|
"cardinality": "many-to-many",
|
|
1436
1366
|
"strength": "medium",
|
|
1437
|
-
"required": false
|
|
1367
|
+
"required": false,
|
|
1368
|
+
"description": "The event starts the technology function, such as a failure event starting failover."
|
|
1438
1369
|
},
|
|
1439
1370
|
"technology.technologyevent.triggers.technology.technologyinteraction": {
|
|
1440
1371
|
"id": "technology.technologyevent.triggers.technology.technologyinteraction",
|
|
@@ -1445,7 +1376,8 @@
|
|
|
1445
1376
|
"predicate": "triggers",
|
|
1446
1377
|
"cardinality": "many-to-many",
|
|
1447
1378
|
"strength": "medium",
|
|
1448
|
-
"required": false
|
|
1379
|
+
"required": false,
|
|
1380
|
+
"description": "The event starts the interaction, such as a node loss starting leader election."
|
|
1449
1381
|
},
|
|
1450
1382
|
"technology.technologyevent.triggers.technology.technologyprocess": {
|
|
1451
1383
|
"id": "technology.technologyevent.triggers.technology.technologyprocess",
|
|
@@ -1456,7 +1388,8 @@
|
|
|
1456
1388
|
"predicate": "triggers",
|
|
1457
1389
|
"cardinality": "many-to-many",
|
|
1458
1390
|
"strength": "medium",
|
|
1459
|
-
"required": false
|
|
1391
|
+
"required": false,
|
|
1392
|
+
"description": "The event starts the technology process, such as a commit starting a deployment pipeline or a schedule starting a backup."
|
|
1460
1393
|
},
|
|
1461
1394
|
"technology.technologyfunction.accesses.technology.artifact": {
|
|
1462
1395
|
"id": "technology.technologyfunction.accesses.technology.artifact",
|
|
@@ -1467,7 +1400,8 @@
|
|
|
1467
1400
|
"predicate": "accesses",
|
|
1468
1401
|
"cardinality": "many-to-many",
|
|
1469
1402
|
"strength": "medium",
|
|
1470
|
-
"required": false
|
|
1403
|
+
"required": false,
|
|
1404
|
+
"description": "The function reads or writes the artifact, such as replication writing data files."
|
|
1471
1405
|
},
|
|
1472
1406
|
"technology.technologyfunction.composes.technology.technologyfunction": {
|
|
1473
1407
|
"id": "technology.technologyfunction.composes.technology.technologyfunction",
|
|
@@ -1478,7 +1412,8 @@
|
|
|
1478
1412
|
"predicate": "composes",
|
|
1479
1413
|
"cardinality": "many-to-many",
|
|
1480
1414
|
"strength": "medium",
|
|
1481
|
-
"required": false
|
|
1415
|
+
"required": false,
|
|
1416
|
+
"description": "The function is made of narrower functions."
|
|
1482
1417
|
},
|
|
1483
1418
|
"technology.technologyfunction.flows-to.technology.technologyprocess": {
|
|
1484
1419
|
"id": "technology.technologyfunction.flows-to.technology.technologyprocess",
|
|
@@ -1489,18 +1424,20 @@
|
|
|
1489
1424
|
"predicate": "flows-to",
|
|
1490
1425
|
"cardinality": "many-to-many",
|
|
1491
1426
|
"strength": "medium",
|
|
1492
|
-
"required": false
|
|
1427
|
+
"required": false,
|
|
1428
|
+
"description": "The function hands over to the process, such as health checking handing a failed node to a recovery process."
|
|
1493
1429
|
},
|
|
1494
|
-
"technology.technologyfunction.
|
|
1495
|
-
"id": "technology.technologyfunction.
|
|
1430
|
+
"technology.technologyfunction.realizes.security.countermeasure": {
|
|
1431
|
+
"id": "technology.technologyfunction.realizes.security.countermeasure",
|
|
1496
1432
|
"source_spec_node_id": "technology.technologyfunction",
|
|
1497
1433
|
"source_layer": "technology",
|
|
1498
1434
|
"destination_spec_node_id": "security.countermeasure",
|
|
1499
1435
|
"destination_layer": "security",
|
|
1500
|
-
"predicate": "
|
|
1436
|
+
"predicate": "realizes",
|
|
1501
1437
|
"cardinality": "many-to-many",
|
|
1502
1438
|
"strength": "medium",
|
|
1503
|
-
"required": false
|
|
1439
|
+
"required": false,
|
|
1440
|
+
"description": "The function implements a countermeasure, such as rate limiting at the edge."
|
|
1504
1441
|
},
|
|
1505
1442
|
"technology.technologyfunction.realizes.technology.technologyservice": {
|
|
1506
1443
|
"id": "technology.technologyfunction.realizes.technology.technologyservice",
|
|
@@ -1511,40 +1448,8 @@
|
|
|
1511
1448
|
"predicate": "realizes",
|
|
1512
1449
|
"cardinality": "many-to-many",
|
|
1513
1450
|
"strength": "medium",
|
|
1514
|
-
"required": false
|
|
1515
|
-
|
|
1516
|
-
"technology.technologyfunction.serves.application.applicationfunction": {
|
|
1517
|
-
"id": "technology.technologyfunction.serves.application.applicationfunction",
|
|
1518
|
-
"source_spec_node_id": "technology.technologyfunction",
|
|
1519
|
-
"source_layer": "technology",
|
|
1520
|
-
"destination_spec_node_id": "application.applicationfunction",
|
|
1521
|
-
"destination_layer": "application",
|
|
1522
|
-
"predicate": "serves",
|
|
1523
|
-
"cardinality": "many-to-many",
|
|
1524
|
-
"strength": "medium",
|
|
1525
|
-
"required": false
|
|
1526
|
-
},
|
|
1527
|
-
"technology.technologyfunction.serves.business.businessservice": {
|
|
1528
|
-
"id": "technology.technologyfunction.serves.business.businessservice",
|
|
1529
|
-
"source_spec_node_id": "technology.technologyfunction",
|
|
1530
|
-
"source_layer": "technology",
|
|
1531
|
-
"destination_spec_node_id": "business.businessservice",
|
|
1532
|
-
"destination_layer": "business",
|
|
1533
|
-
"predicate": "serves",
|
|
1534
|
-
"cardinality": "many-to-many",
|
|
1535
|
-
"strength": "medium",
|
|
1536
|
-
"required": false
|
|
1537
|
-
},
|
|
1538
|
-
"technology.technologyfunction.serves.technology.technologyinteraction": {
|
|
1539
|
-
"id": "technology.technologyfunction.serves.technology.technologyinteraction",
|
|
1540
|
-
"source_spec_node_id": "technology.technologyfunction",
|
|
1541
|
-
"source_layer": "technology",
|
|
1542
|
-
"destination_spec_node_id": "technology.technologyinteraction",
|
|
1543
|
-
"destination_layer": "technology",
|
|
1544
|
-
"predicate": "serves",
|
|
1545
|
-
"cardinality": "many-to-many",
|
|
1546
|
-
"strength": "medium",
|
|
1547
|
-
"required": false
|
|
1451
|
+
"required": false,
|
|
1452
|
+
"description": "The function provides the service, such as load balancing providing a traffic-distribution service."
|
|
1548
1453
|
},
|
|
1549
1454
|
"technology.technologyfunction.triggers.technology.technologyevent": {
|
|
1550
1455
|
"id": "technology.technologyfunction.triggers.technology.technologyevent",
|
|
@@ -1555,29 +1460,8 @@
|
|
|
1555
1460
|
"predicate": "triggers",
|
|
1556
1461
|
"cardinality": "many-to-many",
|
|
1557
1462
|
"strength": "medium",
|
|
1558
|
-
"required": false
|
|
1559
|
-
|
|
1560
|
-
"technology.technologyfunction.triggers.technology.technologyprocess": {
|
|
1561
|
-
"id": "technology.technologyfunction.triggers.technology.technologyprocess",
|
|
1562
|
-
"source_spec_node_id": "technology.technologyfunction",
|
|
1563
|
-
"source_layer": "technology",
|
|
1564
|
-
"destination_spec_node_id": "technology.technologyprocess",
|
|
1565
|
-
"destination_layer": "technology",
|
|
1566
|
-
"predicate": "triggers",
|
|
1567
|
-
"cardinality": "many-to-many",
|
|
1568
|
-
"strength": "medium",
|
|
1569
|
-
"required": false
|
|
1570
|
-
},
|
|
1571
|
-
"technology.technologyfunction.uses.technology.technologyinterface": {
|
|
1572
|
-
"id": "technology.technologyfunction.uses.technology.technologyinterface",
|
|
1573
|
-
"source_spec_node_id": "technology.technologyfunction",
|
|
1574
|
-
"source_layer": "technology",
|
|
1575
|
-
"destination_spec_node_id": "technology.technologyinterface",
|
|
1576
|
-
"destination_layer": "technology",
|
|
1577
|
-
"predicate": "uses",
|
|
1578
|
-
"cardinality": "many-to-many",
|
|
1579
|
-
"strength": "medium",
|
|
1580
|
-
"required": false
|
|
1463
|
+
"required": false,
|
|
1464
|
+
"description": "The function raises the event, such as monitoring raising an alert."
|
|
1581
1465
|
},
|
|
1582
1466
|
"technology.technologyinteraction.accesses.technology.artifact": {
|
|
1583
1467
|
"id": "technology.technologyinteraction.accesses.technology.artifact",
|
|
@@ -1588,18 +1472,20 @@
|
|
|
1588
1472
|
"predicate": "accesses",
|
|
1589
1473
|
"cardinality": "many-to-many",
|
|
1590
1474
|
"strength": "medium",
|
|
1591
|
-
"required": false
|
|
1475
|
+
"required": false,
|
|
1476
|
+
"description": "The interaction reads or writes the artifact, such as a distributed commit writing a log."
|
|
1592
1477
|
},
|
|
1593
|
-
"technology.technologyinteraction.
|
|
1594
|
-
"id": "technology.technologyinteraction.
|
|
1478
|
+
"technology.technologyinteraction.aggregates.technology.technologyfunction": {
|
|
1479
|
+
"id": "technology.technologyinteraction.aggregates.technology.technologyfunction",
|
|
1595
1480
|
"source_spec_node_id": "technology.technologyinteraction",
|
|
1596
1481
|
"source_layer": "technology",
|
|
1597
1482
|
"destination_spec_node_id": "technology.technologyfunction",
|
|
1598
1483
|
"destination_layer": "technology",
|
|
1599
|
-
"predicate": "
|
|
1484
|
+
"predicate": "aggregates",
|
|
1600
1485
|
"cardinality": "many-to-many",
|
|
1601
1486
|
"strength": "medium",
|
|
1602
|
-
"required": false
|
|
1487
|
+
"required": false,
|
|
1488
|
+
"description": "The interaction draws on functions its participants perform on their own."
|
|
1603
1489
|
},
|
|
1604
1490
|
"technology.technologyinteraction.flows-to.technology.technologyinteraction": {
|
|
1605
1491
|
"id": "technology.technologyinteraction.flows-to.technology.technologyinteraction",
|
|
@@ -1610,18 +1496,8 @@
|
|
|
1610
1496
|
"predicate": "flows-to",
|
|
1611
1497
|
"cardinality": "many-to-many",
|
|
1612
1498
|
"strength": "medium",
|
|
1613
|
-
"required": false
|
|
1614
|
-
|
|
1615
|
-
"technology.technologyinteraction.realizes.technology.technologycollaboration": {
|
|
1616
|
-
"id": "technology.technologyinteraction.realizes.technology.technologycollaboration",
|
|
1617
|
-
"source_spec_node_id": "technology.technologyinteraction",
|
|
1618
|
-
"source_layer": "technology",
|
|
1619
|
-
"destination_spec_node_id": "technology.technologycollaboration",
|
|
1620
|
-
"destination_layer": "technology",
|
|
1621
|
-
"predicate": "realizes",
|
|
1622
|
-
"cardinality": "many-to-many",
|
|
1623
|
-
"strength": "medium",
|
|
1624
|
-
"required": false
|
|
1499
|
+
"required": false,
|
|
1500
|
+
"description": "The interaction hands over to the next interaction, such as election to log replication."
|
|
1625
1501
|
},
|
|
1626
1502
|
"technology.technologyinteraction.realizes.technology.technologyservice": {
|
|
1627
1503
|
"id": "technology.technologyinteraction.realizes.technology.technologyservice",
|
|
@@ -1632,7 +1508,8 @@
|
|
|
1632
1508
|
"predicate": "realizes",
|
|
1633
1509
|
"cardinality": "many-to-many",
|
|
1634
1510
|
"strength": "medium",
|
|
1635
|
-
"required": false
|
|
1511
|
+
"required": false,
|
|
1512
|
+
"description": "The interaction provides the service, such as consensus providing a consistent configuration store."
|
|
1636
1513
|
},
|
|
1637
1514
|
"technology.technologyinteraction.triggers.technology.technologyevent": {
|
|
1638
1515
|
"id": "technology.technologyinteraction.triggers.technology.technologyevent",
|
|
@@ -1643,7 +1520,8 @@
|
|
|
1643
1520
|
"predicate": "triggers",
|
|
1644
1521
|
"cardinality": "many-to-many",
|
|
1645
1522
|
"strength": "medium",
|
|
1646
|
-
"required": false
|
|
1523
|
+
"required": false,
|
|
1524
|
+
"description": "The interaction raises the event, such as an election completing."
|
|
1647
1525
|
},
|
|
1648
1526
|
"technology.technologyinteraction.triggers.technology.technologyprocess": {
|
|
1649
1527
|
"id": "technology.technologyinteraction.triggers.technology.technologyprocess",
|
|
@@ -1654,40 +1532,8 @@
|
|
|
1654
1532
|
"predicate": "triggers",
|
|
1655
1533
|
"cardinality": "many-to-many",
|
|
1656
1534
|
"strength": "medium",
|
|
1657
|
-
"required": false
|
|
1658
|
-
|
|
1659
|
-
"technology.technologyinteraction.uses.technology.technologyinterface": {
|
|
1660
|
-
"id": "technology.technologyinteraction.uses.technology.technologyinterface",
|
|
1661
|
-
"source_spec_node_id": "technology.technologyinteraction",
|
|
1662
|
-
"source_layer": "technology",
|
|
1663
|
-
"destination_spec_node_id": "technology.technologyinterface",
|
|
1664
|
-
"destination_layer": "technology",
|
|
1665
|
-
"predicate": "uses",
|
|
1666
|
-
"cardinality": "many-to-many",
|
|
1667
|
-
"strength": "medium",
|
|
1668
|
-
"required": false
|
|
1669
|
-
},
|
|
1670
|
-
"technology.technologyinterface.assigned-to.technology.node": {
|
|
1671
|
-
"id": "technology.technologyinterface.assigned-to.technology.node",
|
|
1672
|
-
"source_spec_node_id": "technology.technologyinterface",
|
|
1673
|
-
"source_layer": "technology",
|
|
1674
|
-
"destination_spec_node_id": "technology.node",
|
|
1675
|
-
"destination_layer": "technology",
|
|
1676
|
-
"predicate": "assigned-to",
|
|
1677
|
-
"cardinality": "many-to-many",
|
|
1678
|
-
"strength": "medium",
|
|
1679
|
-
"required": false
|
|
1680
|
-
},
|
|
1681
|
-
"technology.technologyinterface.assigned-to.technology.systemsoftware": {
|
|
1682
|
-
"id": "technology.technologyinterface.assigned-to.technology.systemsoftware",
|
|
1683
|
-
"source_spec_node_id": "technology.technologyinterface",
|
|
1684
|
-
"source_layer": "technology",
|
|
1685
|
-
"destination_spec_node_id": "technology.systemsoftware",
|
|
1686
|
-
"destination_layer": "technology",
|
|
1687
|
-
"predicate": "assigned-to",
|
|
1688
|
-
"cardinality": "many-to-many",
|
|
1689
|
-
"strength": "medium",
|
|
1690
|
-
"required": false
|
|
1535
|
+
"required": false,
|
|
1536
|
+
"description": "The interaction starts a process, such as a completed failover starting a reconfiguration job."
|
|
1691
1537
|
},
|
|
1692
1538
|
"technology.technologyinterface.assigned-to.technology.technologyservice": {
|
|
1693
1539
|
"id": "technology.technologyinterface.assigned-to.technology.technologyservice",
|
|
@@ -1698,7 +1544,8 @@
|
|
|
1698
1544
|
"predicate": "assigned-to",
|
|
1699
1545
|
"cardinality": "many-to-many",
|
|
1700
1546
|
"strength": "medium",
|
|
1701
|
-
"required": false
|
|
1547
|
+
"required": false,
|
|
1548
|
+
"description": "The interface is how the service is offered, such as a connection endpoint for a database service."
|
|
1702
1549
|
},
|
|
1703
1550
|
"technology.technologyinterface.serves.technology.technologycollaboration": {
|
|
1704
1551
|
"id": "technology.technologyinterface.serves.technology.technologycollaboration",
|
|
@@ -1709,7 +1556,8 @@
|
|
|
1709
1556
|
"predicate": "serves",
|
|
1710
1557
|
"cardinality": "many-to-many",
|
|
1711
1558
|
"strength": "medium",
|
|
1712
|
-
"required": false
|
|
1559
|
+
"required": false,
|
|
1560
|
+
"description": "The collaboration's members reach one another through the interface, such as a cluster bus port."
|
|
1713
1561
|
},
|
|
1714
1562
|
"technology.technologyinterface.serves.technology.technologyfunction": {
|
|
1715
1563
|
"id": "technology.technologyinterface.serves.technology.technologyfunction",
|
|
@@ -1720,40 +1568,44 @@
|
|
|
1720
1568
|
"predicate": "serves",
|
|
1721
1569
|
"cardinality": "many-to-many",
|
|
1722
1570
|
"strength": "medium",
|
|
1723
|
-
"required": false
|
|
1571
|
+
"required": false,
|
|
1572
|
+
"description": "The function uses the interface to do its work."
|
|
1724
1573
|
},
|
|
1725
|
-
"technology.technologyinterface.serves.technology.
|
|
1726
|
-
"id": "technology.technologyinterface.serves.technology.
|
|
1574
|
+
"technology.technologyinterface.serves.technology.technologyinteraction": {
|
|
1575
|
+
"id": "technology.technologyinterface.serves.technology.technologyinteraction",
|
|
1727
1576
|
"source_spec_node_id": "technology.technologyinterface",
|
|
1728
1577
|
"source_layer": "technology",
|
|
1729
|
-
"destination_spec_node_id": "technology.
|
|
1578
|
+
"destination_spec_node_id": "technology.technologyinteraction",
|
|
1730
1579
|
"destination_layer": "technology",
|
|
1731
1580
|
"predicate": "serves",
|
|
1732
1581
|
"cardinality": "many-to-many",
|
|
1733
1582
|
"strength": "medium",
|
|
1734
|
-
"required": false
|
|
1583
|
+
"required": false,
|
|
1584
|
+
"description": "The interaction's participants communicate through the interface."
|
|
1735
1585
|
},
|
|
1736
|
-
"technology.technologyinterface.
|
|
1737
|
-
"id": "technology.technologyinterface.
|
|
1586
|
+
"technology.technologyinterface.serves.technology.technologyprocess": {
|
|
1587
|
+
"id": "technology.technologyinterface.serves.technology.technologyprocess",
|
|
1738
1588
|
"source_spec_node_id": "technology.technologyinterface",
|
|
1739
1589
|
"source_layer": "technology",
|
|
1740
|
-
"destination_spec_node_id": "technology.
|
|
1590
|
+
"destination_spec_node_id": "technology.technologyprocess",
|
|
1741
1591
|
"destination_layer": "technology",
|
|
1742
|
-
"predicate": "
|
|
1592
|
+
"predicate": "serves",
|
|
1743
1593
|
"cardinality": "many-to-many",
|
|
1744
1594
|
"strength": "medium",
|
|
1745
|
-
"required": false
|
|
1595
|
+
"required": false,
|
|
1596
|
+
"description": "The process uses the interface, such as a deployment pipeline calling a cluster API."
|
|
1746
1597
|
},
|
|
1747
|
-
"technology.
|
|
1748
|
-
"id": "technology.
|
|
1749
|
-
"source_spec_node_id": "technology.
|
|
1598
|
+
"technology.technologyprocess.accesses.technology.artifact": {
|
|
1599
|
+
"id": "technology.technologyprocess.accesses.technology.artifact",
|
|
1600
|
+
"source_spec_node_id": "technology.technologyprocess",
|
|
1750
1601
|
"source_layer": "technology",
|
|
1751
|
-
"destination_spec_node_id": "technology.
|
|
1602
|
+
"destination_spec_node_id": "technology.artifact",
|
|
1752
1603
|
"destination_layer": "technology",
|
|
1753
|
-
"predicate": "
|
|
1604
|
+
"predicate": "accesses",
|
|
1754
1605
|
"cardinality": "many-to-many",
|
|
1755
1606
|
"strength": "medium",
|
|
1756
|
-
"required": false
|
|
1607
|
+
"required": false,
|
|
1608
|
+
"description": "The process reads or writes the artifact, such as a build producing an image or a deployment reading a manifest."
|
|
1757
1609
|
},
|
|
1758
1610
|
"technology.technologyprocess.composes.technology.technologyprocess": {
|
|
1759
1611
|
"id": "technology.technologyprocess.composes.technology.technologyprocess",
|
|
@@ -1764,7 +1616,8 @@
|
|
|
1764
1616
|
"predicate": "composes",
|
|
1765
1617
|
"cardinality": "many-to-many",
|
|
1766
1618
|
"strength": "medium",
|
|
1767
|
-
"required": false
|
|
1619
|
+
"required": false,
|
|
1620
|
+
"description": "The process is made of narrower processes, such as the stages of a pipeline."
|
|
1768
1621
|
},
|
|
1769
1622
|
"technology.technologyprocess.realizes.technology.technologyservice": {
|
|
1770
1623
|
"id": "technology.technologyprocess.realizes.technology.technologyservice",
|
|
@@ -1775,7 +1628,8 @@
|
|
|
1775
1628
|
"predicate": "realizes",
|
|
1776
1629
|
"cardinality": "many-to-many",
|
|
1777
1630
|
"strength": "medium",
|
|
1778
|
-
"required": false
|
|
1631
|
+
"required": false,
|
|
1632
|
+
"description": "The process provides the service, such as a backup job providing a backup service."
|
|
1779
1633
|
},
|
|
1780
1634
|
"technology.technologyprocess.triggers.technology.technologyevent": {
|
|
1781
1635
|
"id": "technology.technologyprocess.triggers.technology.technologyevent",
|
|
@@ -1786,29 +1640,8 @@
|
|
|
1786
1640
|
"predicate": "triggers",
|
|
1787
1641
|
"cardinality": "many-to-many",
|
|
1788
1642
|
"strength": "medium",
|
|
1789
|
-
"required": false
|
|
1790
|
-
|
|
1791
|
-
"technology.technologyprocess.uses.technology.path": {
|
|
1792
|
-
"id": "technology.technologyprocess.uses.technology.path",
|
|
1793
|
-
"source_spec_node_id": "technology.technologyprocess",
|
|
1794
|
-
"source_layer": "technology",
|
|
1795
|
-
"destination_spec_node_id": "technology.path",
|
|
1796
|
-
"destination_layer": "technology",
|
|
1797
|
-
"predicate": "uses",
|
|
1798
|
-
"cardinality": "many-to-many",
|
|
1799
|
-
"strength": "medium",
|
|
1800
|
-
"required": false
|
|
1801
|
-
},
|
|
1802
|
-
"technology.technologyprocess.uses.technology.technologyinterface": {
|
|
1803
|
-
"id": "technology.technologyprocess.uses.technology.technologyinterface",
|
|
1804
|
-
"source_spec_node_id": "technology.technologyprocess",
|
|
1805
|
-
"source_layer": "technology",
|
|
1806
|
-
"destination_spec_node_id": "technology.technologyinterface",
|
|
1807
|
-
"destination_layer": "technology",
|
|
1808
|
-
"predicate": "uses",
|
|
1809
|
-
"cardinality": "many-to-many",
|
|
1810
|
-
"strength": "medium",
|
|
1811
|
-
"required": false
|
|
1643
|
+
"required": false,
|
|
1644
|
+
"description": "The process raises the event, such as a pipeline emitting deployment-completed."
|
|
1812
1645
|
},
|
|
1813
1646
|
"technology.technologyservice.accesses.security.secureresource": {
|
|
1814
1647
|
"id": "technology.technologyservice.accesses.security.secureresource",
|
|
@@ -1819,216 +1652,239 @@
|
|
|
1819
1652
|
"predicate": "accesses",
|
|
1820
1653
|
"cardinality": "many-to-many",
|
|
1821
1654
|
"strength": "medium",
|
|
1822
|
-
"required": false
|
|
1655
|
+
"required": false,
|
|
1656
|
+
"description": "The service reads or writes a protected resource, such as a key-management service holding keys."
|
|
1823
1657
|
},
|
|
1824
|
-
"technology.technologyservice.
|
|
1825
|
-
"id": "technology.technologyservice.
|
|
1658
|
+
"technology.technologyservice.realizes.motivation.goal": {
|
|
1659
|
+
"id": "technology.technologyservice.realizes.motivation.goal",
|
|
1826
1660
|
"source_spec_node_id": "technology.technologyservice",
|
|
1827
1661
|
"source_layer": "technology",
|
|
1828
|
-
"destination_spec_node_id": "
|
|
1829
|
-
"destination_layer": "
|
|
1830
|
-
"predicate": "
|
|
1662
|
+
"destination_spec_node_id": "motivation.goal",
|
|
1663
|
+
"destination_layer": "motivation",
|
|
1664
|
+
"predicate": "realizes",
|
|
1831
1665
|
"cardinality": "many-to-many",
|
|
1832
1666
|
"strength": "medium",
|
|
1833
|
-
"required": false
|
|
1667
|
+
"required": false,
|
|
1668
|
+
"description": "The service exists to achieve the goal, such as a managed platform for 'reduce operations effort'."
|
|
1834
1669
|
},
|
|
1835
|
-
"technology.technologyservice.
|
|
1836
|
-
"id": "technology.technologyservice.
|
|
1670
|
+
"technology.technologyservice.realizes.product.softwarecapability": {
|
|
1671
|
+
"id": "technology.technologyservice.realizes.product.softwarecapability",
|
|
1837
1672
|
"source_spec_node_id": "technology.technologyservice",
|
|
1838
1673
|
"source_layer": "technology",
|
|
1839
|
-
"destination_spec_node_id": "
|
|
1840
|
-
"destination_layer": "
|
|
1841
|
-
"predicate": "
|
|
1674
|
+
"destination_spec_node_id": "product.softwarecapability",
|
|
1675
|
+
"destination_layer": "product",
|
|
1676
|
+
"predicate": "realizes",
|
|
1842
1677
|
"cardinality": "many-to-many",
|
|
1843
1678
|
"strength": "medium",
|
|
1844
|
-
"required": false
|
|
1679
|
+
"required": false,
|
|
1680
|
+
"description": "The technology service provides the platform behaviour that gives the software the capability, such as an object store giving it the ability to save documents to files."
|
|
1845
1681
|
},
|
|
1846
|
-
"technology.technologyservice.
|
|
1847
|
-
"id": "technology.technologyservice.
|
|
1682
|
+
"technology.technologyservice.satisfies.motivation.requirement": {
|
|
1683
|
+
"id": "technology.technologyservice.satisfies.motivation.requirement",
|
|
1848
1684
|
"source_spec_node_id": "technology.technologyservice",
|
|
1849
1685
|
"source_layer": "technology",
|
|
1850
|
-
"destination_spec_node_id": "
|
|
1851
|
-
"destination_layer": "
|
|
1852
|
-
"predicate": "
|
|
1686
|
+
"destination_spec_node_id": "motivation.requirement",
|
|
1687
|
+
"destination_layer": "motivation",
|
|
1688
|
+
"predicate": "satisfies",
|
|
1853
1689
|
"cardinality": "many-to-many",
|
|
1854
1690
|
"strength": "medium",
|
|
1855
|
-
"required": false
|
|
1691
|
+
"required": false,
|
|
1692
|
+
"description": "The service meets a requirement, such as an availability target."
|
|
1856
1693
|
},
|
|
1857
|
-
"technology.technologyservice.
|
|
1858
|
-
"id": "technology.technologyservice.
|
|
1694
|
+
"technology.technologyservice.satisfies.security.securitypolicy": {
|
|
1695
|
+
"id": "technology.technologyservice.satisfies.security.securitypolicy",
|
|
1859
1696
|
"source_spec_node_id": "technology.technologyservice",
|
|
1860
1697
|
"source_layer": "technology",
|
|
1861
|
-
"destination_spec_node_id": "
|
|
1862
|
-
"destination_layer": "
|
|
1863
|
-
"predicate": "
|
|
1698
|
+
"destination_spec_node_id": "security.securitypolicy",
|
|
1699
|
+
"destination_layer": "security",
|
|
1700
|
+
"predicate": "satisfies",
|
|
1864
1701
|
"cardinality": "many-to-many",
|
|
1865
1702
|
"strength": "medium",
|
|
1866
|
-
"required": false
|
|
1703
|
+
"required": false,
|
|
1704
|
+
"description": "The service meets a security policy, such as encryption in transit."
|
|
1867
1705
|
},
|
|
1868
|
-
"technology.technologyservice.
|
|
1869
|
-
"id": "technology.technologyservice.
|
|
1706
|
+
"technology.technologyservice.serves.ux.actioncomponent": {
|
|
1707
|
+
"id": "technology.technologyservice.serves.ux.actioncomponent",
|
|
1870
1708
|
"source_spec_node_id": "technology.technologyservice",
|
|
1871
1709
|
"source_layer": "technology",
|
|
1872
|
-
"destination_spec_node_id": "
|
|
1873
|
-
"destination_layer": "
|
|
1874
|
-
"predicate": "
|
|
1710
|
+
"destination_spec_node_id": "ux.actioncomponent",
|
|
1711
|
+
"destination_layer": "ux",
|
|
1712
|
+
"predicate": "serves",
|
|
1875
1713
|
"cardinality": "many-to-many",
|
|
1876
1714
|
"strength": "medium",
|
|
1877
|
-
"required": false
|
|
1715
|
+
"required": false,
|
|
1716
|
+
"description": "The action component calls the platform service directly, such as an upload button using an object-storage service."
|
|
1878
1717
|
},
|
|
1879
|
-
"technology.technologyservice.
|
|
1880
|
-
"id": "technology.technologyservice.
|
|
1718
|
+
"technology.technologyservice.serves.application.applicationcomponent": {
|
|
1719
|
+
"id": "technology.technologyservice.serves.application.applicationcomponent",
|
|
1881
1720
|
"source_spec_node_id": "technology.technologyservice",
|
|
1882
1721
|
"source_layer": "technology",
|
|
1883
|
-
"destination_spec_node_id": "
|
|
1884
|
-
"destination_layer": "
|
|
1885
|
-
"predicate": "
|
|
1722
|
+
"destination_spec_node_id": "application.applicationcomponent",
|
|
1723
|
+
"destination_layer": "application",
|
|
1724
|
+
"predicate": "serves",
|
|
1886
1725
|
"cardinality": "many-to-many",
|
|
1887
1726
|
"strength": "medium",
|
|
1888
|
-
"required": false
|
|
1727
|
+
"required": false,
|
|
1728
|
+
"description": "The application component uses the platform service, such as a component using a message queue."
|
|
1889
1729
|
},
|
|
1890
|
-
"technology.technologyservice.
|
|
1891
|
-
"id": "technology.technologyservice.
|
|
1730
|
+
"technology.technologyservice.serves.application.applicationfunction": {
|
|
1731
|
+
"id": "technology.technologyservice.serves.application.applicationfunction",
|
|
1892
1732
|
"source_spec_node_id": "technology.technologyservice",
|
|
1893
1733
|
"source_layer": "technology",
|
|
1894
|
-
"destination_spec_node_id": "
|
|
1895
|
-
"destination_layer": "
|
|
1896
|
-
"predicate": "
|
|
1734
|
+
"destination_spec_node_id": "application.applicationfunction",
|
|
1735
|
+
"destination_layer": "application",
|
|
1736
|
+
"predicate": "serves",
|
|
1897
1737
|
"cardinality": "many-to-many",
|
|
1898
1738
|
"strength": "medium",
|
|
1899
|
-
"required": false
|
|
1739
|
+
"required": false,
|
|
1740
|
+
"description": "The application function uses the platform service while it runs, such as a function writing to object storage."
|
|
1900
1741
|
},
|
|
1901
|
-
"technology.technologyservice.
|
|
1902
|
-
"id": "technology.technologyservice.
|
|
1742
|
+
"technology.technologyservice.serves.application.applicationservice": {
|
|
1743
|
+
"id": "technology.technologyservice.serves.application.applicationservice",
|
|
1903
1744
|
"source_spec_node_id": "technology.technologyservice",
|
|
1904
1745
|
"source_layer": "technology",
|
|
1905
|
-
"destination_spec_node_id": "
|
|
1906
|
-
"destination_layer": "
|
|
1907
|
-
"predicate": "
|
|
1746
|
+
"destination_spec_node_id": "application.applicationservice",
|
|
1747
|
+
"destination_layer": "application",
|
|
1748
|
+
"predicate": "serves",
|
|
1908
1749
|
"cardinality": "many-to-many",
|
|
1909
1750
|
"strength": "medium",
|
|
1910
|
-
"required": false
|
|
1751
|
+
"required": false,
|
|
1752
|
+
"description": "The application service relies on the platform service, such as an API relying on a managed database."
|
|
1911
1753
|
},
|
|
1912
|
-
"technology.technologyservice.
|
|
1913
|
-
"id": "technology.technologyservice.
|
|
1754
|
+
"technology.technologyservice.serves.data-store.database": {
|
|
1755
|
+
"id": "technology.technologyservice.serves.data-store.database",
|
|
1914
1756
|
"source_spec_node_id": "technology.technologyservice",
|
|
1915
1757
|
"source_layer": "technology",
|
|
1916
|
-
"destination_spec_node_id": "
|
|
1917
|
-
"destination_layer": "
|
|
1918
|
-
"predicate": "
|
|
1758
|
+
"destination_spec_node_id": "data-store.database",
|
|
1759
|
+
"destination_layer": "data-store",
|
|
1760
|
+
"predicate": "serves",
|
|
1919
1761
|
"cardinality": "many-to-many",
|
|
1920
1762
|
"strength": "medium",
|
|
1921
|
-
"required": false
|
|
1763
|
+
"required": false,
|
|
1764
|
+
"description": "The database is provided by the platform service, such as a managed database service."
|
|
1922
1765
|
},
|
|
1923
|
-
"technology.technologyservice.
|
|
1924
|
-
"id": "technology.technologyservice.
|
|
1766
|
+
"technology.technologyservice.serves.apm.exporterconfig": {
|
|
1767
|
+
"id": "technology.technologyservice.serves.apm.exporterconfig",
|
|
1925
1768
|
"source_spec_node_id": "technology.technologyservice",
|
|
1926
1769
|
"source_layer": "technology",
|
|
1927
|
-
"destination_spec_node_id": "
|
|
1928
|
-
"destination_layer": "
|
|
1929
|
-
"predicate": "
|
|
1770
|
+
"destination_spec_node_id": "apm.exporterconfig",
|
|
1771
|
+
"destination_layer": "apm",
|
|
1772
|
+
"predicate": "serves",
|
|
1930
1773
|
"cardinality": "many-to-many",
|
|
1931
1774
|
"strength": "medium",
|
|
1932
|
-
"required": false
|
|
1775
|
+
"required": false,
|
|
1776
|
+
"description": "The exporter sends telemetry to the platform service, such as an OpenTelemetry collector."
|
|
1933
1777
|
},
|
|
1934
|
-
"technology.technologyservice.
|
|
1935
|
-
"id": "technology.technologyservice.
|
|
1778
|
+
"technology.technologyservice.serves.ux.librarycomponent": {
|
|
1779
|
+
"id": "technology.technologyservice.serves.ux.librarycomponent",
|
|
1936
1780
|
"source_spec_node_id": "technology.technologyservice",
|
|
1937
1781
|
"source_layer": "technology",
|
|
1938
|
-
"destination_spec_node_id": "
|
|
1939
|
-
"destination_layer": "
|
|
1940
|
-
"predicate": "
|
|
1782
|
+
"destination_spec_node_id": "ux.librarycomponent",
|
|
1783
|
+
"destination_layer": "ux",
|
|
1784
|
+
"predicate": "serves",
|
|
1941
1785
|
"cardinality": "many-to-many",
|
|
1942
1786
|
"strength": "medium",
|
|
1943
|
-
"required": false
|
|
1787
|
+
"required": false,
|
|
1788
|
+
"description": "The library component relies on the platform service, such as a map component using a tile service."
|
|
1944
1789
|
},
|
|
1945
|
-
"technology.technologyservice.
|
|
1946
|
-
"id": "technology.technologyservice.
|
|
1790
|
+
"technology.technologyservice.serves.apm.logconfiguration": {
|
|
1791
|
+
"id": "technology.technologyservice.serves.apm.logconfiguration",
|
|
1947
1792
|
"source_spec_node_id": "technology.technologyservice",
|
|
1948
1793
|
"source_layer": "technology",
|
|
1949
|
-
"destination_spec_node_id": "
|
|
1950
|
-
"destination_layer": "
|
|
1951
|
-
"predicate": "
|
|
1794
|
+
"destination_spec_node_id": "apm.logconfiguration",
|
|
1795
|
+
"destination_layer": "apm",
|
|
1796
|
+
"predicate": "serves",
|
|
1952
1797
|
"cardinality": "many-to-many",
|
|
1953
1798
|
"strength": "medium",
|
|
1954
|
-
"required": false
|
|
1799
|
+
"required": false,
|
|
1800
|
+
"description": "The log configuration ships logs to the platform service, such as a log aggregation service."
|
|
1955
1801
|
},
|
|
1956
|
-
"technology.technologyservice.serves.
|
|
1957
|
-
"id": "technology.technologyservice.serves.
|
|
1802
|
+
"technology.technologyservice.serves.technology.node": {
|
|
1803
|
+
"id": "technology.technologyservice.serves.technology.node",
|
|
1958
1804
|
"source_spec_node_id": "technology.technologyservice",
|
|
1959
1805
|
"source_layer": "technology",
|
|
1960
|
-
"destination_spec_node_id": "
|
|
1961
|
-
"destination_layer": "
|
|
1806
|
+
"destination_spec_node_id": "technology.node",
|
|
1807
|
+
"destination_layer": "technology",
|
|
1962
1808
|
"predicate": "serves",
|
|
1963
1809
|
"cardinality": "many-to-many",
|
|
1964
1810
|
"strength": "medium",
|
|
1965
|
-
"required": false
|
|
1811
|
+
"required": false,
|
|
1812
|
+
"description": "A technology service serves a node (a workload or compose service) that connects to it and cannot run correctly without it. This is the consumer side, distinct from technology.technologyservice depends-on technology.node, where the service needs the node that hosts it.",
|
|
1813
|
+
"evidence": [
|
|
1814
|
+
"A Kubernetes Deployment or docker-compose service whose environment, config or code addresses another Service by name (DATABASE_URL=postgres://db:5432, http://payments-svc); CBM CONNECTS_TO."
|
|
1815
|
+
]
|
|
1966
1816
|
},
|
|
1967
|
-
"technology.technologyservice.serves.
|
|
1968
|
-
"id": "technology.technologyservice.serves.
|
|
1817
|
+
"technology.technologyservice.serves.api.openapidocument": {
|
|
1818
|
+
"id": "technology.technologyservice.serves.api.openapidocument",
|
|
1969
1819
|
"source_spec_node_id": "technology.technologyservice",
|
|
1970
1820
|
"source_layer": "technology",
|
|
1971
|
-
"destination_spec_node_id": "
|
|
1972
|
-
"destination_layer": "
|
|
1821
|
+
"destination_spec_node_id": "api.openapidocument",
|
|
1822
|
+
"destination_layer": "api",
|
|
1973
1823
|
"predicate": "serves",
|
|
1974
1824
|
"cardinality": "many-to-many",
|
|
1975
1825
|
"strength": "medium",
|
|
1976
|
-
"required": false
|
|
1826
|
+
"required": false,
|
|
1827
|
+
"description": "The API described by the document is hosted or published by the platform service, such as an API gateway or developer portal."
|
|
1977
1828
|
},
|
|
1978
|
-
"technology.technologyservice.serves.
|
|
1979
|
-
"id": "technology.technologyservice.serves.
|
|
1829
|
+
"technology.technologyservice.serves.api.operation": {
|
|
1830
|
+
"id": "technology.technologyservice.serves.api.operation",
|
|
1980
1831
|
"source_spec_node_id": "technology.technologyservice",
|
|
1981
1832
|
"source_layer": "technology",
|
|
1982
|
-
"destination_spec_node_id": "
|
|
1983
|
-
"destination_layer": "
|
|
1833
|
+
"destination_spec_node_id": "api.operation",
|
|
1834
|
+
"destination_layer": "api",
|
|
1984
1835
|
"predicate": "serves",
|
|
1985
1836
|
"cardinality": "many-to-many",
|
|
1986
1837
|
"strength": "medium",
|
|
1987
|
-
"required": false
|
|
1838
|
+
"required": false,
|
|
1839
|
+
"description": "The operation relies on the platform service, such as an upload operation backed by object storage."
|
|
1988
1840
|
},
|
|
1989
|
-
"technology.technologyservice.serves.
|
|
1990
|
-
"id": "technology.technologyservice.serves.
|
|
1841
|
+
"technology.technologyservice.serves.api.pathitem": {
|
|
1842
|
+
"id": "technology.technologyservice.serves.api.pathitem",
|
|
1991
1843
|
"source_spec_node_id": "technology.technologyservice",
|
|
1992
1844
|
"source_layer": "technology",
|
|
1993
|
-
"destination_spec_node_id": "
|
|
1994
|
-
"destination_layer": "
|
|
1845
|
+
"destination_spec_node_id": "api.pathitem",
|
|
1846
|
+
"destination_layer": "api",
|
|
1995
1847
|
"predicate": "serves",
|
|
1996
1848
|
"cardinality": "many-to-many",
|
|
1997
1849
|
"strength": "medium",
|
|
1998
|
-
"required": false
|
|
1850
|
+
"required": false,
|
|
1851
|
+
"description": "The path is routed or hosted by the platform service, such as a gateway route."
|
|
1999
1852
|
},
|
|
2000
|
-
"technology.technologyservice.serves.
|
|
2001
|
-
"id": "technology.technologyservice.serves.
|
|
1853
|
+
"technology.technologyservice.serves.data-store.retentionpolicy": {
|
|
1854
|
+
"id": "technology.technologyservice.serves.data-store.retentionpolicy",
|
|
2002
1855
|
"source_spec_node_id": "technology.technologyservice",
|
|
2003
1856
|
"source_layer": "technology",
|
|
2004
|
-
"destination_spec_node_id": "
|
|
2005
|
-
"destination_layer": "
|
|
1857
|
+
"destination_spec_node_id": "data-store.retentionpolicy",
|
|
1858
|
+
"destination_layer": "data-store",
|
|
2006
1859
|
"predicate": "serves",
|
|
2007
1860
|
"cardinality": "many-to-many",
|
|
2008
1861
|
"strength": "medium",
|
|
2009
|
-
"required": false
|
|
1862
|
+
"required": false,
|
|
1863
|
+
"description": "The retention policy is carried out by the platform service, such as a storage lifecycle service."
|
|
2010
1864
|
},
|
|
2011
|
-
"technology.technologyservice.serves.
|
|
2012
|
-
"id": "technology.technologyservice.serves.
|
|
1865
|
+
"technology.technologyservice.serves.navigation.route": {
|
|
1866
|
+
"id": "technology.technologyservice.serves.navigation.route",
|
|
2013
1867
|
"source_spec_node_id": "technology.technologyservice",
|
|
2014
1868
|
"source_layer": "technology",
|
|
2015
|
-
"destination_spec_node_id": "
|
|
2016
|
-
"destination_layer": "
|
|
1869
|
+
"destination_spec_node_id": "navigation.route",
|
|
1870
|
+
"destination_layer": "navigation",
|
|
2017
1871
|
"predicate": "serves",
|
|
2018
1872
|
"cardinality": "many-to-many",
|
|
2019
1873
|
"strength": "medium",
|
|
2020
|
-
"required": false
|
|
1874
|
+
"required": false,
|
|
1875
|
+
"description": "The route relies on the platform service, such as a CDN serving its bundle."
|
|
2021
1876
|
},
|
|
2022
|
-
"technology.technologyservice.serves.
|
|
2023
|
-
"id": "technology.technologyservice.serves.
|
|
1877
|
+
"technology.technologyservice.serves.data-store.storedlogic": {
|
|
1878
|
+
"id": "technology.technologyservice.serves.data-store.storedlogic",
|
|
2024
1879
|
"source_spec_node_id": "technology.technologyservice",
|
|
2025
1880
|
"source_layer": "technology",
|
|
2026
|
-
"destination_spec_node_id": "
|
|
2027
|
-
"destination_layer": "
|
|
1881
|
+
"destination_spec_node_id": "data-store.storedlogic",
|
|
1882
|
+
"destination_layer": "data-store",
|
|
2028
1883
|
"predicate": "serves",
|
|
2029
1884
|
"cardinality": "many-to-many",
|
|
2030
1885
|
"strength": "medium",
|
|
2031
|
-
"required": false
|
|
1886
|
+
"required": false,
|
|
1887
|
+
"description": "The stored logic relies on the platform service, such as a managed scheduler that runs it."
|
|
2032
1888
|
},
|
|
2033
1889
|
"technology.technologyservice.serves.technology.technologyservice": {
|
|
2034
1890
|
"id": "technology.technologyservice.serves.technology.technologyservice",
|
|
@@ -2039,29 +1895,44 @@
|
|
|
2039
1895
|
"predicate": "serves",
|
|
2040
1896
|
"cardinality": "many-to-many",
|
|
2041
1897
|
"strength": "medium",
|
|
2042
|
-
"required": false
|
|
1898
|
+
"required": false,
|
|
1899
|
+
"description": "The service relies on another technology service, such as a database service relying on a storage service."
|
|
2043
1900
|
},
|
|
2044
|
-
"technology.technologyservice.
|
|
2045
|
-
"id": "technology.technologyservice.
|
|
1901
|
+
"technology.technologyservice.serves.apm.traceconfiguration": {
|
|
1902
|
+
"id": "technology.technologyservice.serves.apm.traceconfiguration",
|
|
2046
1903
|
"source_spec_node_id": "technology.technologyservice",
|
|
2047
1904
|
"source_layer": "technology",
|
|
2048
|
-
"destination_spec_node_id": "
|
|
2049
|
-
"destination_layer": "
|
|
2050
|
-
"predicate": "
|
|
1905
|
+
"destination_spec_node_id": "apm.traceconfiguration",
|
|
1906
|
+
"destination_layer": "apm",
|
|
1907
|
+
"predicate": "serves",
|
|
2051
1908
|
"cardinality": "many-to-many",
|
|
2052
1909
|
"strength": "medium",
|
|
2053
|
-
"required": false
|
|
1910
|
+
"required": false,
|
|
1911
|
+
"description": "The trace configuration sends traces to the platform service, such as a tracing backend."
|
|
2054
1912
|
},
|
|
2055
|
-
"technology.technologyservice.
|
|
2056
|
-
"id": "technology.technologyservice.
|
|
1913
|
+
"technology.technologyservice.serves.ux.view": {
|
|
1914
|
+
"id": "technology.technologyservice.serves.ux.view",
|
|
2057
1915
|
"source_spec_node_id": "technology.technologyservice",
|
|
2058
1916
|
"source_layer": "technology",
|
|
2059
|
-
"destination_spec_node_id": "
|
|
1917
|
+
"destination_spec_node_id": "ux.view",
|
|
1918
|
+
"destination_layer": "ux",
|
|
1919
|
+
"predicate": "serves",
|
|
1920
|
+
"cardinality": "many-to-many",
|
|
1921
|
+
"strength": "medium",
|
|
1922
|
+
"required": false,
|
|
1923
|
+
"description": "The view relies on the platform service, such as a CDN or a feature-flag service."
|
|
1924
|
+
},
|
|
1925
|
+
"technology.technologyservice.triggers.technology.technologyevent": {
|
|
1926
|
+
"id": "technology.technologyservice.triggers.technology.technologyevent",
|
|
1927
|
+
"source_spec_node_id": "technology.technologyservice",
|
|
1928
|
+
"source_layer": "technology",
|
|
1929
|
+
"destination_spec_node_id": "technology.technologyevent",
|
|
2060
1930
|
"destination_layer": "technology",
|
|
2061
|
-
"predicate": "
|
|
1931
|
+
"predicate": "triggers",
|
|
2062
1932
|
"cardinality": "many-to-many",
|
|
2063
1933
|
"strength": "medium",
|
|
2064
|
-
"required": false
|
|
1934
|
+
"required": false,
|
|
1935
|
+
"description": "The service raises the event, such as a managed queue signalling a dead-lettered message."
|
|
2065
1936
|
}
|
|
2066
1937
|
}
|
|
2067
1938
|
}
|