@documentation-robotics/cli 0.2.0 → 0.4.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 +46 -16
- package/dist/analysis/relationship-classifier.js +2 -9
- package/dist/analysis/relationship-classifier.js.map +2 -2
- package/dist/analyzers/active-analyzer.js +62 -0
- package/dist/analyzers/active-analyzer.js.map +7 -0
- 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 +191 -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/extract.js +138 -0
- package/dist/analyzers/cards/extract.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/routes.js +96 -0
- package/dist/analyzers/cards/routes.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 +270 -174
- package/dist/analyzers/cbm-analyzer.js.map +2 -2
- package/dist/analyzers/cbm-responses.js +342 -0
- package/dist/analyzers/cbm-responses.js.map +7 -0
- package/dist/analyzers/code-changes.js +159 -0
- package/dist/analyzers/code-changes.js.map +7 -0
- package/dist/analyzers/edge-relationships.js +49 -0
- package/dist/analyzers/edge-relationships.js.map +7 -0
- package/dist/analyzers/extraction-plan.js +541 -0
- package/dist/analyzers/extraction-plan.js.map +7 -0
- package/dist/analyzers/index-job.js +229 -0
- package/dist/analyzers/index-job.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 +23 -11
- 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 +269 -0
- package/dist/coding-agents/drbot-mcp.js.map +7 -0
- package/dist/commands/add.js +7 -4
- package/dist/commands/add.js.map +2 -2
- package/dist/commands/analyzer.js +143 -40
- package/dist/commands/analyzer.js.map +2 -2
- package/dist/commands/changeset-verify.js +63 -0
- package/dist/commands/changeset-verify.js.map +7 -0
- package/dist/commands/changeset.js +80 -29
- 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/init.js +9 -26
- package/dist/commands/init.js.map +2 -2
- package/dist/commands/mcp.js +40 -21
- package/dist/commands/mcp.js.map +3 -3
- package/dist/commands/relationship.js +208 -37
- package/dist/commands/relationship.js.map +2 -2
- package/dist/commands/reports.js +3 -3
- package/dist/commands/reports.js.map +2 -2
- package/dist/commands/update.js +52 -32
- package/dist/commands/update.js.map +2 -2
- package/dist/commands/upgrade.js +99 -103
- package/dist/commands/upgrade.js.map +3 -3
- package/dist/commands/validate.js +19 -3
- package/dist/commands/validate.js.map +2 -2
- package/dist/commands/version.js +1 -1
- package/dist/commands/visualize.js +34 -15
- package/dist/commands/visualize.js.map +2 -2
- package/dist/core/annotation-store.js +15 -5
- package/dist/core/annotation-store.js.map +2 -2
- package/dist/core/catalog-migration.js +34 -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 +160 -0
- package/dist/core/changeset-base-index.js.map +7 -0
- package/dist/core/changeset-brief-compact.js +256 -0
- package/dist/core/changeset-brief-compact.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 +848 -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/extraction-observability.js +161 -0
- package/dist/core/extraction-observability.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 +88 -47
- 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/project-init.js +53 -0
- package/dist/core/project-init.js.map +7 -0
- 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 +161 -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 +145 -18
- 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 +166 -24
- package/dist/core/staging-area.js.map +2 -2
- package/dist/core/upgrade-plan.js +117 -0
- package/dist/core/upgrade-plan.js.map +7 -0
- 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 +2468 -7913
- package/dist/generated/relationship-index.js.map +2 -2
- package/dist/integrations/claude_code/.claude-plugin/plugin.json +24 -0
- package/dist/integrations/claude_code/agents/dr-architect.md +30 -3
- package/dist/integrations/claude_code/agents/dr-extractor.md +8 -2
- package/dist/integrations/claude_code/commands/dr-analyzer.md +565 -0
- package/dist/integrations/claude_code/commands/dr-changeset.md +2 -1
- package/dist/integrations/claude_code/commands/dr-map.md +20 -1
- package/dist/integrations/claude_code/commands/dr-plan.md +66 -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 +47 -26
- package/dist/integrations/claude_code/docs/QUICK_START.md +37 -8
- package/dist/integrations/claude_code/docs/README.md +68 -2
- package/dist/integrations/claude_code/plugin-agents/dr-advisor.md +255 -0
- package/dist/integrations/claude_code/plugin-agents/dr-architect.md +306 -0
- 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 +95 -15
- package/dist/integrations/claude_code/skills/dr_change_planning/SKILL.md +178 -0
- package/dist/integrations/claude_code/skills/dr_changeset_reviewer/SKILL.md +8 -0
- package/dist/integrations/claude_code/skills/dr_engineering_guide/SKILL.md +6 -1
- package/dist/integrations/github_copilot/agents/dr-architect.md +3 -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 +225 -102
- package/dist/integrations/github_copilot/skills/dr_change_planning/SKILL.md +177 -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 +45 -0
- package/dist/mcp/changeset-only.js.map +7 -0
- package/dist/mcp/project-root.js +85 -0
- package/dist/mcp/project-root.js.map +7 -0
- package/dist/mcp/server-instructions.js +27 -0
- package/dist/mcp/server-instructions.js.map +7 -0
- package/dist/mcp/strict-schema.js +52 -0
- package/dist/mcp/strict-schema.js.map +7 -0
- package/dist/mcp/tool-registry.js +55 -5
- package/dist/mcp/tool-registry.js.map +2 -2
- package/dist/mcp/tools/changeset-analysis-tools.js +98 -0
- package/dist/mcp/tools/changeset-analysis-tools.js.map +7 -0
- package/dist/mcp/tools/changeset-commit.js +224 -0
- package/dist/mcp/tools/changeset-commit.js.map +7 -0
- package/dist/mcp/tools/changeset-editing.js +260 -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 +49 -0
- package/dist/mcp/tools/changeset-verify.js.map +7 -0
- package/dist/mcp/tools/codebase-extract.js +836 -0
- package/dist/mcp/tools/codebase-extract.js.map +7 -0
- package/dist/mcp/tools/codebase-index.js +125 -0
- package/dist/mcp/tools/codebase-index.js.map +7 -0
- package/dist/mcp/tools/codebase-shared.js +265 -0
- package/dist/mcp/tools/codebase-shared.js.map +7 -0
- package/dist/mcp/tools/codebase-verify.js +48 -0
- package/dist/mcp/tools/codebase-verify.js.map +7 -0
- package/dist/mcp/tools/index.js +34 -1
- package/dist/mcp/tools/index.js.map +2 -2
- package/dist/mcp/tools/model-add.js +191 -74
- 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 +46 -26
- package/dist/mcp/tools/model-update.js.map +2 -2
- package/dist/mcp/tools/model-validate.js +46 -4
- package/dist/mcp/tools/model-validate.js.map +2 -2
- package/dist/mcp/tools/project-status-collectors.js +381 -0
- package/dist/mcp/tools/project-status-collectors.js.map +7 -0
- package/dist/mcp/tools/project-status.js +237 -0
- package/dist/mcp/tools/project-status.js.map +7 -0
- package/dist/mcp/tools/project-tools.js +505 -0
- package/dist/mcp/tools/project-tools.js.map +7 -0
- package/dist/mcp/tools/relationship-tools.js +167 -0
- package/dist/mcp/tools/relationship-tools.js.map +7 -0
- package/dist/mcp/tools/review-open.js +210 -0
- package/dist/mcp/tools/review-open.js.map +7 -0
- package/dist/mcp/tools/shared.js +35 -4
- 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/reports/model-report-orchestrator.js +31 -2
- package/dist/reports/model-report-orchestrator.js.map +2 -2
- package/dist/schemas/bundled/analyzers/cbm.json +1200 -70
- 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 +865 -1646
- 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 +686 -231
- package/dist/server/server.js.map +3 -3
- package/dist/server/viewer-registry.js +264 -0
- package/dist/server/viewer-registry.js.map +7 -0
- 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/id-generator.js +5 -2
- package/dist/utils/id-generator.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 +64 -31
- 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/model-warnings.js +28 -0
- package/dist/validators/model-warnings.js.map +7 -0
- 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-CUOQGGRA.css +1 -0
- package/dist/viewer/assets/main-DvH3gYrI.js +84 -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
|
@@ -234,7 +234,7 @@ self.onmessage = function (e) {
|
|
|
234
234
|
The browser that runs a React SPA is the primary Node (host):
|
|
235
235
|
|
|
236
236
|
→ `technology.node.browser-runtime` (nodeType: container)
|
|
237
|
-
→ It
|
|
237
|
+
→ It `serves` `application.applicationcomponent.viewer-app`
|
|
238
238
|
|
|
239
239
|
---
|
|
240
240
|
|
|
@@ -265,39 +265,55 @@ Types less likely to apply to a frontend SPA (still worth considering):
|
|
|
265
265
|
|
|
266
266
|
## Intra-Layer Relationships
|
|
267
267
|
|
|
268
|
+
Nodes and system software are `assigned-to` the behaviour they perform; an interface is `assigned-to`
|
|
269
|
+
the services it offers and `serves` the behaviour that uses it. Functions, processes and interactions
|
|
270
|
+
realize services; events trigger behaviour, and structure does not trigger. Artifacts are passive.
|
|
271
|
+
Networks realize paths, and networks and paths `connects` nodes and devices.
|
|
272
|
+
|
|
268
273
|
### Structural Relationships
|
|
269
274
|
|
|
270
|
-
| Source Type | Predicate
|
|
271
|
-
| ----------------------- |
|
|
272
|
-
|
|
|
273
|
-
| Node | composes
|
|
274
|
-
|
|
|
275
|
-
| Node |
|
|
276
|
-
|
|
|
277
|
-
|
|
|
278
|
-
|
|
|
279
|
-
|
|
|
280
|
-
|
|
|
281
|
-
|
|
|
282
|
-
|
|
|
283
|
-
|
|
|
284
|
-
|
|
|
285
|
-
|
|
|
286
|
-
|
|
|
275
|
+
| Source Type | Predicate | Target Type | Example |
|
|
276
|
+
| ----------------------- | ----------- | --------------------- | ------------------------------------------------------- |
|
|
277
|
+
| Node | composes | Device | "Bare-metal Cluster" composes "Dell R740 Server" |
|
|
278
|
+
| Node | composes | SystemSoftware | "Web Server VM" composes "NGINX" |
|
|
279
|
+
| Node | composes | TechnologyInterface | "API Server" composes "HTTPS Endpoint" |
|
|
280
|
+
| Node | composes | Artifact | "EKS Worker" composes "User Service Image" (deployed) |
|
|
281
|
+
| SystemSoftware | provides | TechnologyInterface | "PostgreSQL" provides "SQL Interface" |
|
|
282
|
+
| SystemSoftware | depends-on | SystemSoftware | "Kafka" depends on "ZooKeeper" |
|
|
283
|
+
| Artifact | composes | Artifact | "Helm Chart" composes "values.yaml" |
|
|
284
|
+
| Artifact | depends-on | Artifact | "User Service Image" depends on "Node 20 Base Image" |
|
|
285
|
+
| Artifact | realizes | SystemSoftware | "postgres:16 image" realizes "PostgreSQL 16" |
|
|
286
|
+
| TechnologyCollaboration | aggregates | Node | "K8s Cluster" aggregates "Worker Nodes" |
|
|
287
|
+
| TechnologyCollaboration | aggregates | SystemSoftware | "Postgres HA Pair" aggregates "Postgres Primary" |
|
|
288
|
+
| CommunicationNetwork | aggregates | CommunicationNetwork | "Production VPC" aggregates "Private Subnet 1a" |
|
|
289
|
+
| CommunicationNetwork | realizes | Path | "Corporate WAN" realizes "Direct Connect Link" |
|
|
290
|
+
| CommunicationNetwork | connects | Node | "Production VPC" connects "EKS Cluster" |
|
|
291
|
+
| CommunicationNetwork | connects | Device | "Office LAN" connects "Edge Gateway" |
|
|
292
|
+
| Path | connects | Node | "Direct Connect Link" connects "On-Premise K8s" |
|
|
293
|
+
| SystemSoftware | realizes | TechnologyService | "PostgreSQL" realizes "Database Service" |
|
|
294
|
+
| Node | realizes | TechnologyService | "RDS Instance" realizes "Managed Database Service" |
|
|
295
|
+
| TechnologyFunction | realizes | TechnologyService | "Load Balancing" realizes "Load Balancer Service" |
|
|
296
|
+
| TechnologyProcess | realizes | TechnologyService | "CI/CD Pipeline" realizes "Deployment Service" |
|
|
297
|
+
| TechnologyInterface | assigned-to | TechnologyService | "Postgres Wire Endpoint" assigned to "Database Service" |
|
|
298
|
+
| Node | assigned-to | TechnologyFunction | "Edge Server" assigned to "CDN Caching" |
|
|
299
|
+
| SystemSoftware | assigned-to | TechnologyFunction | "NGINX" assigned to "Load Balancing" |
|
|
300
|
+
| TechnologyCollaboration | assigned-to | TechnologyInteraction | "Postgres HA Pair" assigned to "Streaming Replication" |
|
|
287
301
|
|
|
288
302
|
### Behavioral Relationships
|
|
289
303
|
|
|
290
|
-
| Source Type | Predicate | Target Type | Example
|
|
291
|
-
| --------------------- | --------- | ------------------ |
|
|
292
|
-
| TechnologyEvent | triggers | TechnologyProcess | "Node Failure" triggers "Failover Process"
|
|
293
|
-
| TechnologyEvent | triggers | TechnologyFunction | "CPU Threshold" triggers "Auto-scaling
|
|
294
|
-
| TechnologyProcess | triggers | TechnologyEvent | "
|
|
295
|
-
| TechnologyProcess |
|
|
296
|
-
|
|
|
297
|
-
|
|
|
298
|
-
|
|
|
299
|
-
| TechnologyProcess | accesses | Artifact | "
|
|
300
|
-
|
|
|
304
|
+
| Source Type | Predicate | Target Type | Example |
|
|
305
|
+
| --------------------- | --------- | ------------------ | -------------------------------------------------- |
|
|
306
|
+
| TechnologyEvent | triggers | TechnologyProcess | "Node Failure" triggers "Failover Process" |
|
|
307
|
+
| TechnologyEvent | triggers | TechnologyFunction | "CPU Threshold Exceeded" triggers "Auto-scaling" |
|
|
308
|
+
| TechnologyProcess | triggers | TechnologyEvent | "Deploy to K8s" triggers "Deployment Completed" |
|
|
309
|
+
| TechnologyProcess | composes | TechnologyProcess | "CI/CD Pipeline" composes "Build Image" |
|
|
310
|
+
| TechnologyInterface | serves | TechnologyProcess | "Kubernetes API" serves "Deploy to K8s" |
|
|
311
|
+
| TechnologyFunction | flows-to | TechnologyProcess | "Health Checking" flows to "Node Recovery" |
|
|
312
|
+
| TechnologyService | serves | TechnologyService | "Storage Service" serves "Database Service" |
|
|
313
|
+
| TechnologyProcess | accesses | Artifact | "Deploy to K8s" accesses "User Service Image" |
|
|
314
|
+
| SystemSoftware | accesses | Artifact | "PostgreSQL" accesses "Data Files" |
|
|
315
|
+
| TechnologyFunction | accesses | Artifact | "Database Backup" accesses "Backup Files" |
|
|
316
|
+
| TechnologyInteraction | accesses | Artifact | "Streaming Replication" accesses "Write-Ahead Log" |
|
|
301
317
|
|
|
302
318
|
---
|
|
303
319
|
|
|
@@ -305,37 +321,41 @@ Types less likely to apply to a frontend SPA (still worth considering):
|
|
|
305
321
|
|
|
306
322
|
### Outgoing References (Technology → Other Layers)
|
|
307
323
|
|
|
308
|
-
|
|
|
309
|
-
|
|
|
310
|
-
|
|
|
311
|
-
|
|
|
312
|
-
|
|
|
313
|
-
|
|
|
314
|
-
|
|
|
315
|
-
|
|
|
316
|
-
|
|
|
317
|
-
|
|
|
318
|
-
|
|
|
319
|
-
|
|
|
320
|
-
|
|
|
321
|
-
|
|
|
322
|
-
|
|
|
323
|
-
|
|
|
324
|
-
|
|
|
325
|
-
|
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
-
|
|
337
|
-
-
|
|
338
|
-
-
|
|
324
|
+
| Source Type | Predicate | Target Type | Example |
|
|
325
|
+
| ----------------- | --------- | ---------------------------------- | ---------------------------------------------------------- |
|
|
326
|
+
| Node | serves | `application.applicationcomponent` | "EKS Cluster" serves "User Service" |
|
|
327
|
+
| SystemSoftware | serves | `application.applicationcomponent` | "Node.js 20 Runtime" serves "User Service" |
|
|
328
|
+
| TechnologyService | serves | `application.applicationservice` | "Database Service" serves "Customer Management Service" |
|
|
329
|
+
| TechnologyService | serves | `application.applicationfunction` | "Object Storage" serves "saveAttachment" |
|
|
330
|
+
| Artifact | realizes | `application.applicationcomponent` | "user-service:1.4 image" realizes "User Service" |
|
|
331
|
+
| TechnologyService | serves | `api.operation` | "S3 Object Storage" serves "uploadAvatar" |
|
|
332
|
+
| TechnologyService | serves | `data-store.database` | "Amazon RDS" serves "orders-db" |
|
|
333
|
+
| TechnologyService | serves | `apm.exporterconfig` | "OpenTelemetry Collector" serves "OTLP Trace Exporter" |
|
|
334
|
+
| TechnologyService | realizes | `product.softwarecapability` | "Search Cluster Service" realizes "Full-text Search" |
|
|
335
|
+
| TechnologyService | realizes | `motivation.goal` | "Kubernetes Orchestration" realizes "Faster Deployments" |
|
|
336
|
+
| TechnologyService | satisfies | `motivation.requirement` | "Multi-AZ Database Service" satisfies "99.9% Availability" |
|
|
337
|
+
| SystemSoftware | satisfies | `motivation.principle` | "PostgreSQL" satisfies "Prefer Open Source" |
|
|
338
|
+
| SystemSoftware | satisfies | `motivation.constraint` | "PostgreSQL 16" satisfies "Approved License List" |
|
|
339
|
+
| Node | satisfies | `motivation.constraint` | "EU-West Cluster" satisfies "EU Data Residency" |
|
|
340
|
+
| Node | satisfies | `security.securitypolicy` | "Hardened Bastion Host" satisfies "CIS Benchmark Policy" |
|
|
341
|
+
| SystemSoftware | realizes | `security.countermeasure` | "AWS WAF" realizes "SQL Injection Filtering" |
|
|
342
|
+
|
|
343
|
+
Security properties such as encryption-at-rest, data classification, and PII flags are recorded as Artifact attributes, not relationships.
|
|
344
|
+
|
|
345
|
+
### Incoming References (Other Layers → Technology)
|
|
346
|
+
|
|
347
|
+
| Source Type | Predicate | Target Type | Example |
|
|
348
|
+
| ---------------------------- | ---------- | ----------------- | ------------------------------------------------------- |
|
|
349
|
+
| `api.server` | depends-on | Node | "Production API Server" depends on "EKS Cluster" |
|
|
350
|
+
| `api.securityscheme` | depends-on | SystemSoftware | "OAuth2 Scheme" depends on "Keycloak" |
|
|
351
|
+
| `data-store.database` | depends-on | SystemSoftware | "orders-db" depends on "PostgreSQL 16" |
|
|
352
|
+
| `data-store.database` | depends-on | Node | "orders-db" depends on "Postgres Cluster" |
|
|
353
|
+
| `data-model.jsonschema` | maps-to | Artifact | "Order Schema" maps to "orders.schema.json" |
|
|
354
|
+
| `apm.resource` | references | SystemSoftware | "user-service resource" references "Node.js 20 Runtime" |
|
|
355
|
+
| `apm.span` | monitors | TechnologyService | "db.query span" monitors "Database Service" |
|
|
356
|
+
| `apm.metricinstrument` | monitors | TechnologyService | "db.query.duration" monitors "Database Service" |
|
|
357
|
+
| `ux.librarycomponent` | depends-on | SystemSoftware | "DataGrid" depends on "Browser Runtime" |
|
|
358
|
+
| `testing.testcoveragetarget` | covers | TechnologyService | "Database Integration" target covers "Database Service" |
|
|
339
359
|
|
|
340
360
|
---
|
|
341
361
|
|
|
@@ -635,7 +655,7 @@ dr add technology artifact "application-logs" \
|
|
|
635
655
|
|
|
636
656
|
# Link artifact to node
|
|
637
657
|
dr relationship add technology.node.postgres-cluster \
|
|
638
|
-
technology.artifact.customer-database --predicate
|
|
658
|
+
technology.artifact.customer-database --predicate composes
|
|
639
659
|
```
|
|
640
660
|
|
|
641
661
|
### Step 6: Model Infrastructure as Code
|
|
@@ -679,18 +699,18 @@ dr relationship add technology.node.k8s-cluster-prod \
|
|
|
679
699
|
```bash
|
|
680
700
|
# Link to application layer
|
|
681
701
|
dr relationship add technology.node.k8s-cluster-prod \
|
|
682
|
-
application.applicationcomponent.user-service --predicate
|
|
702
|
+
application.applicationcomponent.user-service --predicate serves
|
|
683
703
|
|
|
684
704
|
# Link to motivation layer
|
|
685
705
|
dr relationship add technology.technologyservice.kubernetes-orchestration \
|
|
686
|
-
motivation.goal.improve-deployment-frequency --predicate
|
|
706
|
+
motivation.goal.improve-deployment-frequency --predicate realizes
|
|
687
707
|
|
|
688
|
-
dr relationship add technology.
|
|
689
|
-
motivation.principle.cloud-native-architecture --predicate
|
|
708
|
+
dr relationship add technology.systemsoftware.docker \
|
|
709
|
+
motivation.principle.cloud-native-architecture --predicate satisfies
|
|
690
710
|
|
|
691
711
|
# Link to APM layer
|
|
692
|
-
dr relationship add
|
|
693
|
-
|
|
712
|
+
dr relationship add apm.metricinstrument.database-query-latency \
|
|
713
|
+
technology.technologyservice.postgres-database --predicate monitors
|
|
694
714
|
```
|
|
695
715
|
|
|
696
716
|
### Step 9: Validate
|
|
@@ -708,39 +728,37 @@ dr validate --relationships
|
|
|
708
728
|
|
|
709
729
|
```
|
|
710
730
|
TechnologyCollaboration: "AWS Production Environment"
|
|
711
|
-
├──
|
|
712
|
-
│
|
|
713
|
-
|
|
714
|
-
├── contains → Node: "RDS PostgreSQL" (provider: aws, multi-az: true)
|
|
731
|
+
├── aggregates → Node: "EKS Cluster" (provider: aws, region: us-east-1)
|
|
732
|
+
│ └── serves → ApplicationComponent: "Microservices"
|
|
733
|
+
├── aggregates → Node: "RDS PostgreSQL" (provider: aws, multi-az: true)
|
|
715
734
|
│ └── realizes → TechnologyService: "Database Service"
|
|
716
|
-
├──
|
|
717
|
-
└──
|
|
718
|
-
├──
|
|
719
|
-
└──
|
|
735
|
+
├── accesses → Artifact: "S3 Bucket" (provider: aws, storage-class: standard)
|
|
736
|
+
└── uses → CommunicationNetwork: "VPC" (cidr: 10.0.0.0/16)
|
|
737
|
+
├── aggregates → CommunicationNetwork: "Public Subnet" (cidr: 10.0.1.0/24)
|
|
738
|
+
└── aggregates → CommunicationNetwork: "Private Subnet" (cidr: 10.0.2.0/24)
|
|
720
739
|
```
|
|
721
740
|
|
|
722
741
|
### Kubernetes Pattern
|
|
723
742
|
|
|
743
|
+
Model the cluster as a Node; namespaces, deployments and pods are usually attributes of that node or
|
|
744
|
+
of the application components it serves, since the catalog has no Node-to-Node composition.
|
|
745
|
+
|
|
724
746
|
```
|
|
725
|
-
Node: "Kubernetes Cluster"
|
|
726
|
-
├──
|
|
727
|
-
├──
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
│ │ └── hosts → Node: "Pod: user-service-xyz"
|
|
731
|
-
│ │ └── hosts → ApplicationComponent: "UserService"
|
|
732
|
-
│ └── uses → Artifact: "ConfigMap: app-config"
|
|
733
|
-
└── uses → TechnologyFunction: "Auto-scaling" (HPA)
|
|
747
|
+
Node: "Kubernetes Cluster" (nodeType: kubernetes-cluster)
|
|
748
|
+
├── composes → SystemSoftware: "containerd"
|
|
749
|
+
├── composes → Artifact: "ConfigMap: app-config"
|
|
750
|
+
├── assigned-to → TechnologyFunction: "Auto-scaling" (HPA)
|
|
751
|
+
└── serves → ApplicationComponent: "UserService" (namespace: production, replicas: 3)
|
|
734
752
|
```
|
|
735
753
|
|
|
736
754
|
### Hybrid Cloud Pattern
|
|
737
755
|
|
|
738
756
|
```
|
|
739
757
|
TechnologyCollaboration: "Hybrid Cloud Architecture"
|
|
740
|
-
├──
|
|
741
|
-
├──
|
|
742
|
-
├──
|
|
743
|
-
└──
|
|
758
|
+
├── aggregates → Node: "AWS EKS Cluster" (provider: aws)
|
|
759
|
+
├── aggregates → Node: "On-Premise K8s" (provider: onprem)
|
|
760
|
+
├── uses → Path: "Direct Connect" (type: direct-connect)
|
|
761
|
+
└── uses → CommunicationNetwork: "Zero-Trust Network"
|
|
744
762
|
```
|
|
745
763
|
|
|
746
764
|
---
|
|
@@ -819,18 +837,17 @@ dr add technology process <name>
|
|
|
819
837
|
**Relationship Commands:**
|
|
820
838
|
|
|
821
839
|
```bash
|
|
822
|
-
dr relationship add <node> <application-component> --predicate hosts
|
|
823
840
|
dr relationship add <system-software> <service> --predicate realizes
|
|
824
841
|
dr relationship add <node> <function> --predicate assigned-to
|
|
825
|
-
dr relationship add <node> <artifact> --predicate
|
|
842
|
+
dr relationship add <node> <artifact> --predicate composes
|
|
826
843
|
dr relationship add <network> <node> --predicate connects
|
|
827
844
|
```
|
|
828
845
|
|
|
829
846
|
**Cross-Layer Commands:**
|
|
830
847
|
|
|
831
848
|
```bash
|
|
832
|
-
dr relationship add <technology-node> <application-component> --predicate
|
|
833
|
-
dr relationship add <technology-service> <motivation-goal> --predicate
|
|
834
|
-
dr relationship add <
|
|
835
|
-
dr relationship add <
|
|
849
|
+
dr relationship add <technology-node> <application-component> --predicate serves
|
|
850
|
+
dr relationship add <technology-service> <motivation-goal> --predicate realizes
|
|
851
|
+
dr relationship add <system-software> <motivation-principle> --predicate realizes
|
|
852
|
+
dr relationship add <apm-metric-instrument> <technology-service> --predicate monitors
|
|
836
853
|
```
|