@documentation-robotics/cli 0.1.0 → 0.1.7
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/LICENSE +21 -0
- package/README.md +466 -693
- package/dist/analysis/data-model-analyzer.js +189 -0
- package/dist/analysis/data-model-analyzer.js.map +7 -0
- package/dist/analysis/index.js +3 -0
- package/dist/analysis/index.js.map +7 -0
- package/dist/analysis/relationship-classifier.js +181 -0
- package/dist/analysis/relationship-classifier.js.map +7 -0
- package/dist/analyzers/base-analyzer.js +1 -0
- package/dist/analyzers/base-analyzer.js.map +7 -0
- package/dist/analyzers/call-graph-utils.js +39 -0
- package/dist/analyzers/call-graph-utils.js.map +7 -0
- package/dist/analyzers/cbm-analyzer.js +1205 -0
- package/dist/analyzers/cbm-analyzer.js.map +7 -0
- package/dist/analyzers/heuristic-utils.js +55 -0
- package/dist/analyzers/heuristic-utils.js.map +7 -0
- package/dist/analyzers/mapping-loader.js +146 -0
- package/dist/analyzers/mapping-loader.js.map +7 -0
- package/dist/analyzers/registry.js +124 -0
- package/dist/analyzers/registry.js.map +7 -0
- package/dist/analyzers/session-state.js +176 -0
- package/dist/analyzers/session-state.js.map +7 -0
- package/dist/analyzers/stdio-client.js +208 -0
- package/dist/analyzers/stdio-client.js.map +7 -0
- package/dist/analyzers/types.js +15 -0
- package/dist/analyzers/types.js.map +7 -0
- package/dist/analyzers/verify-engine.js +209 -0
- package/dist/analyzers/verify-engine.js.map +7 -0
- package/dist/analyzers/verify-ignore.js +130 -0
- package/dist/analyzers/verify-ignore.js.map +7 -0
- package/dist/analyzers/version.js +8 -0
- package/dist/analyzers/version.js.map +7 -0
- package/dist/audit/ai/runner.js +41 -0
- package/dist/audit/ai/runner.js.map +7 -0
- package/dist/audit/differential-analyzer.js +183 -0
- package/dist/audit/differential-analyzer.js.map +7 -0
- package/dist/audit/index.js +32 -0
- package/dist/audit/index.js.map +7 -0
- package/dist/audit/nodes/ai/evaluator.js +49 -0
- package/dist/audit/nodes/ai/evaluator.js.map +7 -0
- package/dist/audit/nodes/ai/parser.js +55 -0
- package/dist/audit/nodes/ai/parser.js.map +7 -0
- package/dist/audit/nodes/ai/prompts.js +103 -0
- package/dist/audit/nodes/ai/prompts.js.map +7 -0
- package/dist/audit/nodes/analysis/node-completeness-checker.js +32 -0
- package/dist/audit/nodes/analysis/node-completeness-checker.js.map +7 -0
- package/dist/audit/nodes/analysis/node-definition-analyzer.js +47 -0
- package/dist/audit/nodes/analysis/node-definition-analyzer.js.map +7 -0
- package/dist/audit/nodes/analysis/node-overlap-detector.js +79 -0
- package/dist/audit/nodes/analysis/node-overlap-detector.js.map +7 -0
- package/dist/audit/nodes/model/orchestrator.js +82 -0
- package/dist/audit/nodes/model/orchestrator.js.map +7 -0
- package/dist/audit/nodes/spec/loader.js +116 -0
- package/dist/audit/nodes/spec/loader.js.map +7 -0
- package/dist/audit/nodes/spec/orchestrator.js +68 -0
- package/dist/audit/nodes/spec/orchestrator.js.map +7 -0
- package/dist/audit/nodes/types.js +1 -0
- package/dist/audit/nodes/types.js.map +7 -0
- package/dist/audit/pipeline/index.js +5 -0
- package/dist/audit/pipeline/index.js.map +7 -0
- package/dist/audit/pipeline/pipeline-orchestrator.js +218 -0
- package/dist/audit/pipeline/pipeline-orchestrator.js.map +7 -0
- package/dist/audit/relationships/ai/evaluator.js +235 -0
- package/dist/audit/relationships/ai/evaluator.js.map +7 -0
- package/dist/audit/relationships/ai/parser.js +197 -0
- package/dist/audit/relationships/ai/parser.js.map +7 -0
- package/dist/audit/relationships/ai/prompts.js +274 -0
- package/dist/audit/relationships/ai/prompts.js.map +7 -0
- package/dist/audit/relationships/analysis/balance-assessor.js +115 -0
- package/dist/audit/relationships/analysis/balance-assessor.js.map +7 -0
- package/dist/audit/relationships/analysis/coverage-analyzer.js +99 -0
- package/dist/audit/relationships/analysis/coverage-analyzer.js.map +7 -0
- package/dist/audit/relationships/analysis/duplicate-detector.js +95 -0
- package/dist/audit/relationships/analysis/duplicate-detector.js.map +7 -0
- package/dist/audit/relationships/analysis/gap-analyzer.js +99 -0
- package/dist/audit/relationships/analysis/gap-analyzer.js.map +7 -0
- package/dist/audit/relationships/analysis/layer-templates.js +294 -0
- package/dist/audit/relationships/analysis/layer-templates.js.map +7 -0
- package/dist/audit/relationships/graph/connectivity.js +129 -0
- package/dist/audit/relationships/graph/connectivity.js.map +7 -0
- package/dist/audit/relationships/graph/relationship-graph.js +179 -0
- package/dist/audit/relationships/graph/relationship-graph.js.map +7 -0
- package/dist/audit/relationships/model/balance-assessor.js +49 -0
- package/dist/audit/relationships/model/balance-assessor.js.map +7 -0
- package/dist/audit/relationships/model/coverage-analyzer.js +34 -0
- package/dist/audit/relationships/model/coverage-analyzer.js.map +7 -0
- package/dist/audit/relationships/model/duplicate-detector.js +68 -0
- package/dist/audit/relationships/model/duplicate-detector.js.map +7 -0
- package/dist/audit/relationships/model/gap-analyzer.js +41 -0
- package/dist/audit/relationships/model/gap-analyzer.js.map +7 -0
- package/dist/audit/relationships/model/orchestrator.js +126 -0
- package/dist/audit/relationships/model/orchestrator.js.map +7 -0
- package/dist/audit/relationships/spec/orchestrator.js +157 -0
- package/dist/audit/relationships/spec/orchestrator.js.map +7 -0
- package/dist/audit/reports/index.js +5 -0
- package/dist/audit/reports/index.js.map +7 -0
- package/dist/audit/reports/report-generator.js +118 -0
- package/dist/audit/reports/report-generator.js.map +7 -0
- package/dist/audit/snapshot-storage.js +163 -0
- package/dist/audit/snapshot-storage.js.map +7 -0
- package/dist/audit/types.js +21 -0
- package/dist/audit/types.js.map +7 -0
- package/dist/cli.js +223 -92
- package/dist/cli.js.map +3 -3
- package/dist/coding-agents/agents/claude-code.js +147 -0
- package/dist/coding-agents/agents/claude-code.js.map +7 -0
- package/dist/coding-agents/agents/index.js +5 -0
- package/dist/coding-agents/agents/index.js.map +7 -0
- package/dist/coding-agents/agents/types.js +1 -0
- package/dist/coding-agents/agents/types.js.map +7 -0
- package/dist/coding-agents/base-chat-client.js +45 -0
- package/dist/coding-agents/base-chat-client.js.map +7 -0
- package/dist/coding-agents/chat-utils.js +23 -0
- package/dist/coding-agents/chat-utils.js.map +7 -0
- package/dist/coding-agents/claude-code-client.js +246 -0
- package/dist/coding-agents/claude-code-client.js.map +7 -0
- package/dist/coding-agents/copilot-client.js +209 -0
- package/dist/coding-agents/copilot-client.js.map +7 -0
- package/dist/commands/add.js +95 -33
- package/dist/commands/add.js.map +2 -2
- package/dist/commands/analyzer.js +511 -0
- package/dist/commands/analyzer.js.map +7 -0
- package/dist/commands/audit-diff.js +49 -0
- package/dist/commands/audit-diff.js.map +7 -0
- package/dist/commands/audit-snapshots.js +62 -0
- package/dist/commands/audit-snapshots.js.map +7 -0
- package/dist/commands/audit.js +81 -0
- package/dist/commands/audit.js.map +7 -0
- package/dist/commands/catalog.js +248 -0
- package/dist/commands/catalog.js.map +7 -0
- package/dist/commands/changeset.js +577 -66
- package/dist/commands/changeset.js.map +2 -2
- package/dist/commands/chat.js +106 -83
- package/dist/commands/chat.js.map +2 -2
- package/dist/commands/claude.js +74 -0
- package/dist/commands/claude.js.map +7 -0
- package/dist/commands/conformance.js +71 -68
- package/dist/commands/conformance.js.map +2 -2
- package/dist/commands/copilot.js +75 -0
- package/dist/commands/copilot.js.map +7 -0
- package/dist/commands/delete.js +125 -11
- package/dist/commands/delete.js.map +3 -3
- package/dist/commands/discover-logic.js +44 -0
- package/dist/commands/discover-logic.js.map +7 -0
- package/dist/commands/docs.js +87 -0
- package/dist/commands/docs.js.map +7 -0
- package/dist/commands/element.js +14 -20
- package/dist/commands/element.js.map +2 -2
- package/dist/commands/export.js +13 -3
- package/dist/commands/export.js.map +2 -2
- package/dist/commands/import.js +51 -0
- package/dist/commands/import.js.map +7 -0
- package/dist/commands/info.js +30 -24
- package/dist/commands/info.js.map +2 -2
- package/dist/commands/init.js +27 -11
- package/dist/commands/init.js.map +2 -2
- package/dist/commands/list.js +63 -13
- package/dist/commands/list.js.map +3 -3
- package/dist/commands/relationship.js +225 -37
- package/dist/commands/relationship.js.map +2 -2
- package/dist/commands/report.js +54 -0
- package/dist/commands/report.js.map +7 -0
- package/dist/commands/reports.js +45 -0
- package/dist/commands/reports.js.map +7 -0
- package/dist/commands/schema.js +135 -0
- package/dist/commands/schema.js.map +7 -0
- package/dist/commands/search.js +40 -12
- package/dist/commands/search.js.map +2 -2
- package/dist/commands/show.js +58 -27
- package/dist/commands/show.js.map +2 -2
- package/dist/commands/stats.js +35 -0
- package/dist/commands/stats.js.map +7 -0
- package/dist/commands/trace.js +39 -16
- package/dist/commands/trace.js.map +2 -2
- package/dist/commands/update.js +141 -14
- package/dist/commands/update.js.map +2 -2
- package/dist/commands/upgrade.js +210 -46
- package/dist/commands/upgrade.js.map +3 -3
- package/dist/commands/validate.js +142 -23
- package/dist/commands/validate.js.map +3 -3
- package/dist/commands/version.js +8 -12
- package/dist/commands/version.js.map +2 -2
- package/dist/commands/visualize.js +162 -25
- package/dist/commands/visualize.js.map +2 -2
- package/dist/core/base-snapshot-manager.js +84 -0
- package/dist/core/base-snapshot-manager.js.map +7 -0
- package/dist/core/changeset-exporter.js +305 -0
- package/dist/core/changeset-exporter.js.map +7 -0
- package/dist/core/changeset-validator.js +41 -0
- package/dist/core/changeset-validator.js.map +7 -0
- package/dist/core/changeset.js +88 -173
- package/dist/core/changeset.js.map +2 -2
- package/dist/core/dependency-tracker.js +4 -2
- package/dist/core/dependency-tracker.js.map +2 -2
- package/dist/core/element.js +98 -27
- package/dist/core/element.js.map +2 -2
- package/dist/core/golden-copy-cache.js +290 -0
- package/dist/core/golden-copy-cache.js.map +7 -0
- package/dist/core/graph-model.js +266 -0
- package/dist/core/graph-model.js.map +7 -0
- package/dist/core/layer.js +159 -16
- package/dist/core/layer.js.map +2 -2
- package/dist/core/layers.js +32 -0
- package/dist/core/layers.js.map +7 -0
- package/dist/core/manifest.js +32 -11
- package/dist/core/manifest.js.map +2 -2
- package/dist/core/migration-registry.js +56 -1
- package/dist/core/migration-registry.js.map +2 -2
- package/dist/core/model.js +424 -217
- package/dist/core/model.js.map +3 -3
- package/dist/core/mutation-handler.js +179 -0
- package/dist/core/mutation-handler.js.map +7 -0
- package/dist/core/reference-registry.js +29 -21
- package/dist/core/reference-registry.js.map +2 -2
- package/dist/core/relationship-catalog.js +189 -0
- package/dist/core/relationship-catalog.js.map +7 -0
- package/dist/core/relationship-registry.js.map +2 -2
- package/dist/core/relationships.js.map +1 -1
- package/dist/core/report-data-model.js +285 -0
- package/dist/core/report-data-model.js.map +7 -0
- package/dist/core/spec-data-service.js +185 -0
- package/dist/core/spec-data-service.js.map +7 -0
- package/dist/core/spec-loader-types.js +1 -0
- package/dist/core/spec-loader-types.js.map +7 -0
- package/dist/core/spec-loader.js +234 -0
- package/dist/core/spec-loader.js.map +7 -0
- package/dist/core/staged-changeset-storage.js +282 -0
- package/dist/core/staged-changeset-storage.js.map +7 -0
- package/dist/core/staging-area.js +1002 -0
- package/dist/core/staging-area.js.map +7 -0
- package/dist/core/stats-collector.js +169 -0
- package/dist/core/stats-collector.js.map +7 -0
- package/dist/core/virtual-projection.js +443 -0
- package/dist/core/virtual-projection.js.map +7 -0
- package/dist/export/archimate-exporter.js +99 -60
- package/dist/export/archimate-exporter.js.map +2 -2
- package/dist/export/audit-formatters.js +479 -0
- package/dist/export/audit-formatters.js.map +7 -0
- package/dist/export/diff-formatters.js +99 -0
- package/dist/export/diff-formatters.js.map +7 -0
- package/dist/export/export-manager.js.map +2 -2
- package/dist/export/graphml-exporter.js +44 -27
- package/dist/export/graphml-exporter.js.map +2 -2
- package/dist/export/index.js +4 -0
- package/dist/export/index.js.map +2 -2
- package/dist/export/json-schema-exporter.js +55 -42
- package/dist/export/json-schema-exporter.js.map +2 -2
- package/dist/export/markdown-exporter.js +92 -70
- package/dist/export/markdown-exporter.js.map +2 -2
- package/dist/export/markdown-generator.js +248 -0
- package/dist/export/markdown-generator.js.map +7 -0
- package/dist/export/markdown-utils.js +30 -0
- package/dist/export/markdown-utils.js.map +7 -0
- package/dist/export/mermaid-markdown-exporter.js +37 -0
- package/dist/export/mermaid-markdown-exporter.js.map +7 -0
- package/dist/export/openapi-exporter.js +119 -71
- package/dist/export/openapi-exporter.js.map +2 -2
- package/dist/export/plantuml-exporter.js +104 -39
- package/dist/export/plantuml-exporter.js.map +2 -2
- package/dist/export/report-formatters.js +111 -0
- package/dist/export/report-formatters.js.map +7 -0
- package/dist/export/stats-formatters.js +98 -0
- package/dist/export/stats-formatters.js.map +7 -0
- package/dist/export/types.js +2 -14
- package/dist/export/types.js.map +2 -2
- package/dist/export/verify-formatters.js +153 -0
- package/dist/export/verify-formatters.js.map +7 -0
- package/dist/generated/compiled-validators.js +17 -0
- package/dist/generated/compiled-validators.js.map +7 -0
- package/dist/generated/index.js +31 -0
- package/dist/generated/index.js.map +7 -0
- package/dist/generated/layer-registry.js +190 -0
- package/dist/generated/layer-registry.js.map +7 -0
- package/dist/generated/layer-types.js +7 -0
- package/dist/generated/layer-types.js.map +7 -0
- package/dist/generated/node-types.js +1719 -0
- package/dist/generated/node-types.js.map +7 -0
- package/dist/generated/relationship-index.js +14552 -0
- package/dist/generated/relationship-index.js.map +7 -0
- package/dist/import/archimate-importer.js +166 -0
- package/dist/import/archimate-importer.js.map +7 -0
- package/dist/import/index.js +47 -0
- package/dist/import/index.js.map +7 -0
- package/dist/import/openapi-importer.js +143 -0
- package/dist/import/openapi-importer.js.map +7 -0
- package/dist/import/types.js +1 -0
- package/dist/import/types.js.map +7 -0
- package/dist/integrations/base-manager.js +311 -0
- package/dist/integrations/base-manager.js.map +7 -0
- package/dist/integrations/claude-manager.js +360 -0
- package/dist/integrations/claude-manager.js.map +7 -0
- package/dist/integrations/claude_code/agents/dr-advisor.md +253 -0
- package/dist/integrations/claude_code/agents/dr-architect.md +278 -0
- package/dist/integrations/claude_code/agents/dr-extractor.md +286 -0
- package/dist/integrations/claude_code/commands/dr-changeset.md +657 -0
- package/dist/integrations/claude_code/commands/dr-design.md +373 -0
- package/dist/integrations/claude_code/commands/dr-info.md +132 -0
- package/dist/integrations/claude_code/commands/dr-init.md +251 -0
- package/dist/integrations/claude_code/commands/dr-map.md +936 -0
- package/dist/integrations/claude_code/commands/dr-model.md +493 -0
- package/dist/integrations/claude_code/commands/dr-relate.md +814 -0
- package/dist/integrations/claude_code/commands/dr-sync.md +279 -0
- package/dist/integrations/claude_code/commands/dr-validate.md +654 -0
- package/dist/integrations/claude_code/commands/dr-verify.md +559 -0
- package/dist/integrations/claude_code/docs/END_TO_END_WALKTHROUGH.md +903 -0
- package/dist/integrations/claude_code/docs/QUICK_START.md +271 -0
- package/dist/integrations/claude_code/docs/README.md +347 -0
- package/dist/integrations/claude_code/skills/dr_01_motivation_layer/SKILL.md +550 -0
- package/dist/integrations/claude_code/skills/dr_02_business_layer/SKILL.md +620 -0
- package/dist/integrations/claude_code/skills/dr_03_security_layer/SKILL.md +642 -0
- package/dist/integrations/claude_code/skills/dr_04_application_layer/SKILL.md +911 -0
- package/dist/integrations/claude_code/skills/dr_05_technology_layer/SKILL.md +836 -0
- package/dist/integrations/claude_code/skills/dr_06_api_layer/SKILL.md +933 -0
- package/dist/integrations/claude_code/skills/dr_07_data_model_layer/SKILL.md +210 -0
- package/dist/integrations/claude_code/skills/dr_08_dataset_layer/SKILL.md +319 -0
- package/dist/integrations/claude_code/skills/dr_09_ux_layer/SKILL.md +319 -0
- package/dist/integrations/claude_code/skills/dr_10_navigation_layer/SKILL.md +318 -0
- package/dist/integrations/claude_code/skills/dr_11_apm_layer/SKILL.md +273 -0
- package/dist/integrations/claude_code/skills/dr_12_testing_layer/SKILL.md +273 -0
- package/dist/integrations/claude_code/skills/dr_changeset_reviewer/SKILL.md +187 -0
- package/dist/integrations/claude_code/skills/dr_codebase_memory/SKILL.md +590 -0
- package/dist/integrations/claude_code/skills/dr_engineering_guide/SKILL.md +295 -0
- package/dist/integrations/copilot-manager.js +328 -0
- package/dist/integrations/copilot-manager.js.map +7 -0
- package/dist/integrations/github_copilot/agents/dr-advisor.md +243 -0
- package/dist/integrations/github_copilot/agents/dr-architect.md +1567 -0
- package/dist/integrations/github_copilot/skills/dr_01_motivation_layer/SKILL.md +491 -0
- package/dist/integrations/github_copilot/skills/dr_02_business_layer/SKILL.md +539 -0
- package/dist/integrations/github_copilot/skills/dr_03_security_layer/SKILL.md +667 -0
- package/dist/integrations/github_copilot/skills/dr_04_application_layer/SKILL.md +670 -0
- package/dist/integrations/github_copilot/skills/dr_05_technology_layer/SKILL.md +660 -0
- package/dist/integrations/github_copilot/skills/dr_06_api_layer/SKILL.md +855 -0
- package/dist/integrations/github_copilot/skills/dr_07_data_model_layer/SKILL.md +171 -0
- package/dist/integrations/github_copilot/skills/dr_08_dataset_layer/SKILL.md +216 -0
- package/dist/integrations/github_copilot/skills/dr_09_ux_layer/SKILL.md +230 -0
- package/dist/integrations/github_copilot/skills/dr_10_navigation_layer/SKILL.md +228 -0
- package/dist/integrations/github_copilot/skills/dr_11_apm_layer/SKILL.md +234 -0
- package/dist/integrations/github_copilot/skills/dr_12_testing_layer/SKILL.md +230 -0
- package/dist/integrations/github_copilot/skills/dr_changeset_reviewer/SKILL.md +187 -0
- package/dist/integrations/hash-utils.js +51 -0
- package/dist/integrations/hash-utils.js.map +7 -0
- package/dist/integrations/types.js +16 -0
- package/dist/integrations/types.js.map +7 -0
- package/dist/reports/model-layer-report-generator.js +278 -0
- package/dist/reports/model-layer-report-generator.js.map +7 -0
- package/dist/reports/model-report-data.js +57 -0
- package/dist/reports/model-report-data.js.map +7 -0
- package/dist/reports/model-report-orchestrator.js +103 -0
- package/dist/reports/model-report-orchestrator.js.map +7 -0
- package/dist/schemas/bundled/analyzers/cbm.json +595 -0
- package/dist/schemas/bundled/analyzers/manifest.json +9 -0
- package/dist/schemas/bundled/api.json +3411 -0
- package/dist/schemas/bundled/apm.json +2371 -0
- package/dist/schemas/bundled/application.json +1253 -0
- package/dist/schemas/bundled/base.json +1622 -0
- package/dist/schemas/bundled/business.json +1279 -0
- package/dist/schemas/bundled/data-model.json +1298 -0
- package/dist/schemas/bundled/data-store.json +2025 -0
- package/dist/schemas/bundled/manifest.json +93 -0
- package/dist/schemas/bundled/motivation.json +1360 -0
- package/dist/schemas/bundled/navigation.json +1874 -0
- package/dist/schemas/bundled/security.json +3488 -0
- package/dist/schemas/bundled/technology.json +2067 -0
- package/dist/schemas/bundled/testing.json +3120 -0
- package/dist/schemas/bundled/ux.json +3592 -0
- package/dist/server/schemas.js +202 -0
- package/dist/server/schemas.js.map +7 -0
- package/dist/server/server.js +1336 -252
- package/dist/server/server.js.map +3 -3
- package/dist/server/telemetry-middleware.js +22 -15
- package/dist/server/telemetry-middleware.js.map +2 -2
- package/dist/server-entry.js +65 -0
- package/dist/server-entry.js.map +7 -0
- package/dist/telemetry/config.js +89 -0
- package/dist/telemetry/config.js.map +7 -0
- package/dist/telemetry/console-interceptor.js.map +1 -1
- package/dist/telemetry/detect.js +24 -0
- package/dist/telemetry/detect.js.map +7 -0
- package/dist/telemetry/fetch-otlp-exporter.js +112 -0
- package/dist/telemetry/fetch-otlp-exporter.js.map +7 -0
- package/dist/telemetry/index.js +153 -3
- package/dist/telemetry/index.js.map +2 -2
- package/dist/telemetry/resilient-exporter.js +22 -8
- package/dist/telemetry/resilient-exporter.js.map +2 -2
- package/dist/telemetry/resilient-log-exporter.js +17 -8
- package/dist/telemetry/resilient-log-exporter.js.map +2 -2
- package/dist/telemetry/test-instrumentation.js.map +2 -2
- package/dist/types/index.js +84 -0
- package/dist/types/index.js.map +3 -3
- package/dist/types/source-reference.js +1 -0
- package/dist/types/source-reference.js.map +7 -0
- package/dist/utils/chat-logger.js +292 -0
- package/dist/utils/chat-logger.js.map +7 -0
- package/dist/utils/claude-stream.js +8 -0
- package/dist/utils/claude-stream.js.map +7 -0
- package/dist/utils/date-utils.js +7 -0
- package/dist/utils/date-utils.js.map +7 -0
- package/dist/utils/element-utils.js.map +1 -1
- package/dist/utils/errors.js +88 -15
- package/dist/utils/errors.js.map +3 -3
- package/dist/utils/export-python-annotations.js +82 -0
- package/dist/utils/export-python-annotations.js.map +7 -0
- package/dist/utils/file-io.js +7 -2
- package/dist/utils/file-io.js.map +2 -2
- package/dist/utils/file-lock.js +156 -0
- package/dist/utils/file-lock.js.map +7 -0
- package/dist/utils/id-generator.js +18 -0
- package/dist/utils/id-generator.js.map +7 -0
- package/dist/utils/layer-name-formatter.js +16 -0
- package/dist/utils/layer-name-formatter.js.map +7 -0
- package/dist/utils/markdown-anchor.js +7 -0
- package/dist/utils/markdown-anchor.js.map +7 -0
- package/dist/utils/markdown-link.js +12 -0
- package/dist/utils/markdown-link.js.map +7 -0
- package/dist/utils/markdown-table.js +17 -0
- package/dist/utils/markdown-table.js.map +7 -0
- package/dist/utils/mermaid-utils.js +11 -0
- package/dist/utils/mermaid-utils.js.map +7 -0
- package/dist/utils/project-paths.js.map +2 -2
- package/dist/utils/source-reference.js +52 -0
- package/dist/utils/source-reference.js.map +7 -0
- package/dist/utils/spec-installer.js +40 -53
- package/dist/utils/spec-installer.js.map +2 -2
- package/dist/utils/spec-version.js +5 -1
- package/dist/utils/spec-version.js.map +2 -2
- package/dist/utils/string-utils.js +12 -0
- package/dist/utils/string-utils.js.map +7 -0
- package/dist/utils/table-formatting.js +19 -0
- package/dist/utils/table-formatting.js.map +7 -0
- package/dist/validators/index.js +4 -0
- package/dist/validators/index.js.map +2 -2
- package/dist/validators/naming-validator.js +20 -23
- package/dist/validators/naming-validator.js.map +2 -2
- package/dist/validators/reference-validator.js +23 -38
- package/dist/validators/reference-validator.js.map +2 -2
- package/dist/validators/relationship-schema-validator.js +243 -0
- package/dist/validators/relationship-schema-validator.js.map +7 -0
- package/dist/validators/schema-validator.js +168 -68
- package/dist/validators/schema-validator.js.map +2 -2
- package/dist/validators/semantic-validator.js +36 -60
- package/dist/validators/semantic-validator.js.map +2 -2
- package/dist/validators/types.js.map +2 -2
- package/dist/validators/validation-formatter.js +159 -0
- package/dist/validators/validation-formatter.js.map +7 -0
- package/dist/validators/validator.js +24 -38
- package/dist/validators/validator.js.map +2 -2
- package/dist/viewer/README.md +139 -0
- package/dist/viewer/assets/main-CY0Xufuj.css +1 -0
- package/dist/viewer/assets/main-DtgErnwF.js +81 -0
- package/dist/viewer/assets/vendor-CxKvDp2x.js +17 -0
- package/dist/viewer/favicon.svg +11 -0
- package/dist/viewer/fonts/inter/Inter-Black.woff2 +0 -0
- package/dist/viewer/fonts/inter/Inter-Bold.woff2 +0 -0
- package/dist/viewer/fonts/inter/Inter-ExtraBold.woff2 +0 -0
- package/dist/viewer/fonts/inter/Inter-Light.woff2 +0 -0
- package/dist/viewer/fonts/inter/Inter-Medium.woff2 +0 -0
- package/dist/viewer/fonts/inter/Inter-Regular.woff2 +0 -0
- package/dist/viewer/fonts/inter/Inter-SemiBold.woff2 +0 -0
- package/dist/viewer/fonts/jetbrains-mono/JetBrainsMono-Medium.woff2 +0 -0
- package/dist/viewer/fonts/jetbrains-mono/JetBrainsMono-Regular.woff2 +0 -0
- package/dist/viewer/fonts/jetbrains-mono/JetBrainsMono-SemiBold.woff2 +0 -0
- package/dist/viewer/index.html +15 -0
- package/dist/viewer/manifest.json +99 -0
- package/dist/viewer/version.json +1 -0
- package/package.json +42 -16
- package/PYTHON_CLI_PARITY.md +0 -265
- package/PYTHON_CLI_STRUCTURE_UPDATE.md +0 -246
- package/biome.json +0 -42
- package/bunfig.toml +0 -3
- package/dist/ai/claude-client.js +0 -71
- package/dist/ai/claude-client.js.map +0 -7
- package/dist/ai/context-provider.js +0 -129
- package/dist/ai/context-provider.js.map +0 -7
- package/dist/ai/tools.js +0 -231
- package/dist/ai/tools.js.map +0 -7
- package/dist/commands/migrate.js +0 -36
- package/dist/commands/migrate.js.map +0 -7
- package/dist/commands/project.js +0 -74
- package/dist/commands/project.js.map +0 -7
- package/dist/core/active-changeset.js +0 -52
- package/dist/core/active-changeset.js.map +0 -7
- package/dist/core/projection-engine.js +0 -288
- package/dist/core/projection-engine.js.map +0 -7
- package/dist/schemas/bundled/01-motivation-layer.schema.json +0 -942
- package/dist/schemas/bundled/02-business-layer.schema.json +0 -1293
- package/dist/schemas/bundled/03-security-layer.schema.json +0 -2177
- package/dist/schemas/bundled/04-application-layer.schema.json +0 -1328
- package/dist/schemas/bundled/05-technology-layer.schema.json +0 -1465
- package/dist/schemas/bundled/06-api-layer.schema.json +0 -1743
- package/dist/schemas/bundled/07-data-model-layer.schema.json +0 -1253
- package/dist/schemas/bundled/08-datastore-layer.schema.json +0 -892
- package/dist/schemas/bundled/09-ux-layer.schema.json +0 -1506
- package/dist/schemas/bundled/10-navigation-layer.schema.json +0 -843
- package/dist/schemas/bundled/11-apm-observability-layer.schema.json +0 -1430
- package/dist/schemas/bundled/12-testing-layer.schema.json +0 -1091
- package/dist/schemas/bundled/common/layer-extensions.schema.json +0 -266
- package/dist/schemas/bundled/common/predicates.schema.json +0 -493
- package/dist/schemas/bundled/common/relationships.schema.json +0 -791
- package/dist/schemas/bundled/common/source-references.schema.json +0 -71
- package/dist/schemas/bundled/link-registry.json +0 -1839
- package/dist/schemas/bundled/link-registry.schema.json +0 -339
- package/dist/schemas/bundled/relationship-catalog.json +0 -1302
- package/dist/schemas/bundled/relationship-type.schema.json +0 -221
- package/dist/utils/model-path.js +0 -22
- package/dist/utils/model-path.js.map +0 -7
- package/docs/TEST-INSTRUMENTATION.md +0 -405
- package/docs/telemetry.md +0 -427
- package/test-debug.js +0 -33
- package/test-special.mjs +0 -46
- package/test_runner.ts +0 -7
|
@@ -0,0 +1,1622 @@
|
|
|
1
|
+
{
|
|
2
|
+
"specVersion": "0.8.4",
|
|
3
|
+
"schemas": {
|
|
4
|
+
"spec-node": {
|
|
5
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
6
|
+
"$id": "urn:dr:spec:base:spec-node",
|
|
7
|
+
"title": "SpecNode",
|
|
8
|
+
"description": "Base schema for all spec node types. Each node type schema extends this with type-specific attribute constraints via allOf.",
|
|
9
|
+
"type": "object",
|
|
10
|
+
"required": ["id", "path", "spec_node_id", "type", "name"],
|
|
11
|
+
"additionalProperties": false,
|
|
12
|
+
"properties": {
|
|
13
|
+
"id": {
|
|
14
|
+
"type": "string",
|
|
15
|
+
"format": "uuid",
|
|
16
|
+
"description": "Unique node instance identifier (UUIDv4). Globally unique across the entire model.",
|
|
17
|
+
"examples": ["550e8400-e29b-41d4-a716-446655440000"]
|
|
18
|
+
},
|
|
19
|
+
"path": {
|
|
20
|
+
"type": "string",
|
|
21
|
+
"pattern": "^[a-z][a-z0-9-]*\\.[a-z][a-z0-9-]*\\.[a-z][a-z0-9-]*$",
|
|
22
|
+
"description": "Human-readable element path in format {layer}.{type}.{name} (e.g., 'motivation.goal.increase-revenue')"
|
|
23
|
+
},
|
|
24
|
+
"spec_node_id": {
|
|
25
|
+
"type": "string",
|
|
26
|
+
"pattern": "^[a-z-]+\\.[a-z][a-z0-9-]*$",
|
|
27
|
+
"description": "Reference to the spec node type that this node conforms to (e.g., 'motivation.goal')"
|
|
28
|
+
},
|
|
29
|
+
"type": {
|
|
30
|
+
"type": "string",
|
|
31
|
+
"description": "Denormalized node type for efficient filtering and queries. Extracted from spec_node_id (the part after the dot).",
|
|
32
|
+
"examples": ["goal", "requirement", "endpoint", "table"]
|
|
33
|
+
},
|
|
34
|
+
"layer_id": {
|
|
35
|
+
"type": "string",
|
|
36
|
+
"pattern": "^[a-z][a-z0-9-]*$",
|
|
37
|
+
"description": "Denormalized layer ID for efficient layer-scoped queries. Extracted from spec_node_id (the part before the dot)."
|
|
38
|
+
},
|
|
39
|
+
"name": {
|
|
40
|
+
"type": "string",
|
|
41
|
+
"description": "Human-readable instance name",
|
|
42
|
+
"examples": [
|
|
43
|
+
"Improve Customer Satisfaction",
|
|
44
|
+
"User Login API",
|
|
45
|
+
"Customer Table"
|
|
46
|
+
]
|
|
47
|
+
},
|
|
48
|
+
"description": {
|
|
49
|
+
"type": "string",
|
|
50
|
+
"description": "Optional detailed description of this specific node instance"
|
|
51
|
+
},
|
|
52
|
+
"attributes": {
|
|
53
|
+
"type": "object",
|
|
54
|
+
"description": "Attribute values for this node instance. Keys must correspond to attributes defined in the per-type schema, and values must conform to the type constraints."
|
|
55
|
+
},
|
|
56
|
+
"source_reference": {
|
|
57
|
+
"$ref": "urn:dr:spec:base:source-references#/definitions/SourceReference",
|
|
58
|
+
"description": "Optional provenance tracking linking this node to source code locations"
|
|
59
|
+
},
|
|
60
|
+
"metadata": {
|
|
61
|
+
"type": "object",
|
|
62
|
+
"description": "Optional metadata about the lifecycle and version of this node instance",
|
|
63
|
+
"additionalProperties": false,
|
|
64
|
+
"properties": {
|
|
65
|
+
"created_at": {
|
|
66
|
+
"type": "string",
|
|
67
|
+
"format": "date-time",
|
|
68
|
+
"description": "ISO 8601 timestamp when this node was created"
|
|
69
|
+
},
|
|
70
|
+
"updated_at": {
|
|
71
|
+
"type": "string",
|
|
72
|
+
"format": "date-time",
|
|
73
|
+
"description": "ISO 8601 timestamp of the last modification"
|
|
74
|
+
},
|
|
75
|
+
"created_by": {
|
|
76
|
+
"type": "string",
|
|
77
|
+
"description": "User or system that created this node"
|
|
78
|
+
},
|
|
79
|
+
"version": {
|
|
80
|
+
"type": "integer",
|
|
81
|
+
"minimum": 1,
|
|
82
|
+
"description": "Version number of this node (incremented on updates)"
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
},
|
|
88
|
+
"spec-node-relationship": {
|
|
89
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
90
|
+
"$id": "urn:dr:spec:base:spec-node-relationship",
|
|
91
|
+
"title": "SpecNodeRelationship",
|
|
92
|
+
"description": "Base type for relationship type definitions in the specification. Defines valid relationships between node types, including cardinality, strength, and semantic properties.",
|
|
93
|
+
"type": "object",
|
|
94
|
+
"required": [
|
|
95
|
+
"id",
|
|
96
|
+
"source_spec_node_id",
|
|
97
|
+
"destination_spec_node_id",
|
|
98
|
+
"predicate"
|
|
99
|
+
],
|
|
100
|
+
"additionalProperties": false,
|
|
101
|
+
"properties": {
|
|
102
|
+
"id": {
|
|
103
|
+
"type": "string",
|
|
104
|
+
"pattern": "^[a-z-]+\\.[a-z-]+\\.[a-z-]+$",
|
|
105
|
+
"description": "Unique relationship ID in format: {source-layer}.{predicate}.{dest-layer}. All components use lowercase with hyphens.",
|
|
106
|
+
"examples": [
|
|
107
|
+
"motivation.supports.motivation",
|
|
108
|
+
"motivation.realizes.business",
|
|
109
|
+
"api.exposes.data-model"
|
|
110
|
+
]
|
|
111
|
+
},
|
|
112
|
+
"source_spec_node_id": {
|
|
113
|
+
"type": "string",
|
|
114
|
+
"pattern": "^[a-z-]+\\.[a-z][a-z0-9-]*$",
|
|
115
|
+
"description": "SpecNode ID that can serve as the source of this relationship type"
|
|
116
|
+
},
|
|
117
|
+
"source_layer": {
|
|
118
|
+
"type": "string",
|
|
119
|
+
"pattern": "^[a-z][a-z0-9-]*$",
|
|
120
|
+
"description": "Denormalized layer ID extracted from source_spec_node_id for efficient queries"
|
|
121
|
+
},
|
|
122
|
+
"destination_spec_node_id": {
|
|
123
|
+
"type": "string",
|
|
124
|
+
"pattern": "^[a-z-]+\\.[a-z][a-z0-9-]*$",
|
|
125
|
+
"description": "SpecNode ID that can serve as the destination of this relationship type"
|
|
126
|
+
},
|
|
127
|
+
"destination_layer": {
|
|
128
|
+
"type": "string",
|
|
129
|
+
"pattern": "^[a-z][a-z0-9-]*$",
|
|
130
|
+
"description": "Denormalized layer ID extracted from destination_spec_node_id for efficient queries"
|
|
131
|
+
},
|
|
132
|
+
"predicate": {
|
|
133
|
+
"type": "string",
|
|
134
|
+
"description": "Semantic predicate from PredicateCatalog describing the relationship type. Must be a valid predicate name.",
|
|
135
|
+
"examples": [
|
|
136
|
+
"supports",
|
|
137
|
+
"realizes",
|
|
138
|
+
"fulfills",
|
|
139
|
+
"implements",
|
|
140
|
+
"uses",
|
|
141
|
+
"consumes"
|
|
142
|
+
]
|
|
143
|
+
},
|
|
144
|
+
"cardinality": {
|
|
145
|
+
"type": "string",
|
|
146
|
+
"enum": ["one-to-one", "one-to-many", "many-to-one", "many-to-many"],
|
|
147
|
+
"description": "Multiplicity constraint on this relationship type. Defines how many source nodes can relate to how many destination nodes.",
|
|
148
|
+
"default": "many-to-many"
|
|
149
|
+
},
|
|
150
|
+
"strength": {
|
|
151
|
+
"type": "string",
|
|
152
|
+
"enum": ["critical", "high", "medium", "low"],
|
|
153
|
+
"description": "Typical importance or strength of this relationship type",
|
|
154
|
+
"default": "medium"
|
|
155
|
+
},
|
|
156
|
+
"required": {
|
|
157
|
+
"type": "boolean",
|
|
158
|
+
"description": "Whether instances of the source node type must have at least one relationship of this type",
|
|
159
|
+
"default": false
|
|
160
|
+
},
|
|
161
|
+
"attributes": {
|
|
162
|
+
"type": "object",
|
|
163
|
+
"description": "Optional schema defining attributes that can appear on relationship instances of this type",
|
|
164
|
+
"additionalProperties": {
|
|
165
|
+
"$ref": "urn:dr:spec:base:attribute-spec#/definitions/AttributeSpec"
|
|
166
|
+
},
|
|
167
|
+
"minProperties": 0,
|
|
168
|
+
"examples": [
|
|
169
|
+
{
|
|
170
|
+
"reason": {
|
|
171
|
+
"type": "string",
|
|
172
|
+
"description": "Explanation for why this relationship exists"
|
|
173
|
+
},
|
|
174
|
+
"strength_override": {
|
|
175
|
+
"type": "enum",
|
|
176
|
+
"enum_values": ["critical", "high", "medium", "low"],
|
|
177
|
+
"description": "Instance-specific strength override"
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
]
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
},
|
|
184
|
+
"source-references": {
|
|
185
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
186
|
+
"$id": "urn:dr:spec:base:source-references",
|
|
187
|
+
"title": "Source Code Reference Definitions",
|
|
188
|
+
"description": "Reusable JSON Schema definitions for linking architecture elements to source code locations",
|
|
189
|
+
"version": "1.0.0",
|
|
190
|
+
"definitions": {
|
|
191
|
+
"ProvenanceType": {
|
|
192
|
+
"type": "string",
|
|
193
|
+
"enum": ["extracted", "manual", "inferred", "generated"],
|
|
194
|
+
"description": "How this reference was created: extracted (automated ingestion), manual (human added), inferred (pattern matching), generated (code generated from model)"
|
|
195
|
+
},
|
|
196
|
+
"SourceLocation": {
|
|
197
|
+
"type": "object",
|
|
198
|
+
"description": "A specific location in source code, identified by file path and optional symbol",
|
|
199
|
+
"required": ["file"],
|
|
200
|
+
"properties": {
|
|
201
|
+
"file": {
|
|
202
|
+
"type": "string",
|
|
203
|
+
"minLength": 1,
|
|
204
|
+
"description": "File path relative to repository root"
|
|
205
|
+
},
|
|
206
|
+
"symbol": {
|
|
207
|
+
"type": "string",
|
|
208
|
+
"description": "Named code element (e.g., ClassName.methodName, function_name)"
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
},
|
|
212
|
+
"RepositoryContext": {
|
|
213
|
+
"type": "object",
|
|
214
|
+
"description": "Repository context for the source reference",
|
|
215
|
+
"properties": {
|
|
216
|
+
"url": {
|
|
217
|
+
"type": "string",
|
|
218
|
+
"format": "uri",
|
|
219
|
+
"description": "Git remote URL (HTTPS or SSH format)"
|
|
220
|
+
},
|
|
221
|
+
"commit": {
|
|
222
|
+
"type": "string",
|
|
223
|
+
"pattern": "^[0-9a-f]{40}$",
|
|
224
|
+
"description": "Full 40-character Git commit SHA"
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
},
|
|
228
|
+
"SourceReference": {
|
|
229
|
+
"type": "object",
|
|
230
|
+
"description": "Links entity to source code location(s) with provenance tracking. For inferred or generated elements, locations may be omitted when no source file exists yet.",
|
|
231
|
+
"required": ["provenance"],
|
|
232
|
+
"properties": {
|
|
233
|
+
"provenance": {
|
|
234
|
+
"$ref": "#/definitions/ProvenanceType"
|
|
235
|
+
},
|
|
236
|
+
"locations": {
|
|
237
|
+
"type": "array",
|
|
238
|
+
"minItems": 1,
|
|
239
|
+
"items": {
|
|
240
|
+
"$ref": "#/definitions/SourceLocation"
|
|
241
|
+
},
|
|
242
|
+
"description": "One or more source code locations. Required for extracted and manual provenance; optional for inferred and generated."
|
|
243
|
+
},
|
|
244
|
+
"repository": {
|
|
245
|
+
"$ref": "#/definitions/RepositoryContext"
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
},
|
|
251
|
+
"attribute-spec": {
|
|
252
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
253
|
+
"$id": "urn:dr:spec:base:attribute-spec",
|
|
254
|
+
"title": "AttributeSpec Definitions",
|
|
255
|
+
"description": "Reusable definition for attribute specifications used in spec-level schemas (e.g., spec-node-relationship attributes)",
|
|
256
|
+
"definitions": {
|
|
257
|
+
"AttributeSpec": {
|
|
258
|
+
"type": "object",
|
|
259
|
+
"title": "AttributeSpec",
|
|
260
|
+
"description": "Specification for a single attribute that can appear on node or relationship instances",
|
|
261
|
+
"required": ["type", "description"],
|
|
262
|
+
"additionalProperties": false,
|
|
263
|
+
"properties": {
|
|
264
|
+
"type": {
|
|
265
|
+
"type": "string",
|
|
266
|
+
"enum": [
|
|
267
|
+
"string",
|
|
268
|
+
"integer",
|
|
269
|
+
"number",
|
|
270
|
+
"boolean",
|
|
271
|
+
"array",
|
|
272
|
+
"object",
|
|
273
|
+
"enum"
|
|
274
|
+
],
|
|
275
|
+
"description": "The JSON type of this attribute"
|
|
276
|
+
},
|
|
277
|
+
"description": {
|
|
278
|
+
"type": "string",
|
|
279
|
+
"description": "Human-readable description of this attribute's purpose"
|
|
280
|
+
},
|
|
281
|
+
"enum_values": {
|
|
282
|
+
"type": "array",
|
|
283
|
+
"items": {
|
|
284
|
+
"type": "string"
|
|
285
|
+
},
|
|
286
|
+
"description": "Required when type is 'enum'. Lists the valid string values for this attribute.",
|
|
287
|
+
"examples": [
|
|
288
|
+
["high", "medium", "low"],
|
|
289
|
+
["active", "inactive", "archived"]
|
|
290
|
+
]
|
|
291
|
+
},
|
|
292
|
+
"format": {
|
|
293
|
+
"type": "string",
|
|
294
|
+
"description": "Optional format constraint for string types (e.g., 'email', 'uri', 'date-time')",
|
|
295
|
+
"examples": ["email", "uri", "date-time", "uuid"]
|
|
296
|
+
},
|
|
297
|
+
"default": {
|
|
298
|
+
"description": "Default value for this attribute when not provided on a node instance. Can be any JSON value."
|
|
299
|
+
}
|
|
300
|
+
},
|
|
301
|
+
"if": {
|
|
302
|
+
"properties": {
|
|
303
|
+
"type": {
|
|
304
|
+
"const": "enum"
|
|
305
|
+
}
|
|
306
|
+
},
|
|
307
|
+
"required": ["type"]
|
|
308
|
+
},
|
|
309
|
+
"then": {
|
|
310
|
+
"required": ["type", "description", "enum_values"]
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
},
|
|
315
|
+
"model-node-relationship": {
|
|
316
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
317
|
+
"$id": "urn:dr:spec:base:model-node-relationship",
|
|
318
|
+
"title": "ModelNodeRelationship",
|
|
319
|
+
"description": "Concrete relationship instance connecting two ModelNodes. Represents a specific relationship edge in the model graph that conforms to a SpecNodeRelationship type.",
|
|
320
|
+
"type": "object",
|
|
321
|
+
"required": [
|
|
322
|
+
"id",
|
|
323
|
+
"spec_relationship_id",
|
|
324
|
+
"source_node_id",
|
|
325
|
+
"destination_node_id",
|
|
326
|
+
"predicate"
|
|
327
|
+
],
|
|
328
|
+
"additionalProperties": false,
|
|
329
|
+
"properties": {
|
|
330
|
+
"id": {
|
|
331
|
+
"type": "string",
|
|
332
|
+
"format": "uuid",
|
|
333
|
+
"description": "Unique relationship instance identifier (UUIDv4). Globally unique across the entire model.",
|
|
334
|
+
"examples": ["660e9500-f39c-52e5-b827-557766551111"]
|
|
335
|
+
},
|
|
336
|
+
"spec_relationship_id": {
|
|
337
|
+
"type": "string",
|
|
338
|
+
"pattern": "^[a-z-]+\\.[a-z-]+\\.[a-z-]+$",
|
|
339
|
+
"description": "Reference to the SpecNodeRelationship type that this relationship conforms to (e.g., 'motivation.supports.motivation')"
|
|
340
|
+
},
|
|
341
|
+
"source_node_id": {
|
|
342
|
+
"type": "string",
|
|
343
|
+
"format": "uuid",
|
|
344
|
+
"description": "UUID of the source ModelNode. Must be a valid node in the model."
|
|
345
|
+
},
|
|
346
|
+
"source_layer_id": {
|
|
347
|
+
"type": "string",
|
|
348
|
+
"pattern": "^[a-z][a-z0-9-]*$",
|
|
349
|
+
"description": "Denormalized layer ID of the source node for efficient layer-scoped queries"
|
|
350
|
+
},
|
|
351
|
+
"destination_node_id": {
|
|
352
|
+
"type": "string",
|
|
353
|
+
"format": "uuid",
|
|
354
|
+
"description": "UUID of the destination ModelNode. Must be a valid node in the model."
|
|
355
|
+
},
|
|
356
|
+
"destination_layer_id": {
|
|
357
|
+
"type": "string",
|
|
358
|
+
"pattern": "^[a-z][a-z0-9-]*$",
|
|
359
|
+
"description": "Denormalized layer ID of the destination node for efficient layer-scoped queries"
|
|
360
|
+
},
|
|
361
|
+
"predicate": {
|
|
362
|
+
"type": "string",
|
|
363
|
+
"description": "The semantic predicate describing this relationship (e.g., 'supports', 'realizes'). Must be a valid predicate from PredicateCatalog.",
|
|
364
|
+
"examples": ["supports", "realizes", "fulfills", "implements", "uses"]
|
|
365
|
+
},
|
|
366
|
+
"attributes": {
|
|
367
|
+
"type": "object",
|
|
368
|
+
"description": "Optional relationship-specific attribute values. Keys must correspond to attributes defined in the SpecNodeRelationship, and values must conform to the AttributeSpec type constraints.",
|
|
369
|
+
"additionalProperties": true,
|
|
370
|
+
"examples": [
|
|
371
|
+
{
|
|
372
|
+
"strength_override": "critical",
|
|
373
|
+
"reason": "Business critical dependency"
|
|
374
|
+
}
|
|
375
|
+
]
|
|
376
|
+
},
|
|
377
|
+
"source_reference": {
|
|
378
|
+
"$ref": "urn:dr:spec:base:source-references#/definitions/SourceReference",
|
|
379
|
+
"description": "Optional provenance tracking linking this relationship to source code locations or comments"
|
|
380
|
+
},
|
|
381
|
+
"metadata": {
|
|
382
|
+
"type": "object",
|
|
383
|
+
"description": "Optional metadata about the lifecycle and version of this relationship instance",
|
|
384
|
+
"additionalProperties": false,
|
|
385
|
+
"properties": {
|
|
386
|
+
"created_at": {
|
|
387
|
+
"type": "string",
|
|
388
|
+
"format": "date-time",
|
|
389
|
+
"description": "ISO 8601 timestamp when this relationship was created"
|
|
390
|
+
},
|
|
391
|
+
"updated_at": {
|
|
392
|
+
"type": "string",
|
|
393
|
+
"format": "date-time",
|
|
394
|
+
"description": "ISO 8601 timestamp of the last modification"
|
|
395
|
+
},
|
|
396
|
+
"created_by": {
|
|
397
|
+
"type": "string",
|
|
398
|
+
"description": "User or system that created this relationship"
|
|
399
|
+
},
|
|
400
|
+
"version": {
|
|
401
|
+
"type": "integer",
|
|
402
|
+
"minimum": 1,
|
|
403
|
+
"description": "Version number of this relationship (incremented on updates)"
|
|
404
|
+
}
|
|
405
|
+
}
|
|
406
|
+
}
|
|
407
|
+
}
|
|
408
|
+
},
|
|
409
|
+
"predicate-catalog": {
|
|
410
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
411
|
+
"$id": "urn:dr:spec:base:predicate-catalog",
|
|
412
|
+
"title": "PredicateCatalog",
|
|
413
|
+
"description": "Master catalog of all semantic predicates used in the model. Consolidates predicate definitions with their semantics, inverse relationships, and standard alignments. Single source of truth for valid predicates.",
|
|
414
|
+
"type": "object",
|
|
415
|
+
"required": ["predicates"],
|
|
416
|
+
"additionalProperties": false,
|
|
417
|
+
"properties": {
|
|
418
|
+
"predicates": {
|
|
419
|
+
"type": "object",
|
|
420
|
+
"description": "Mapping of predicate names to their definitions",
|
|
421
|
+
"additionalProperties": {
|
|
422
|
+
"$ref": "#/definitions/PredicateDefinition"
|
|
423
|
+
},
|
|
424
|
+
"minProperties": 1,
|
|
425
|
+
"examples": [
|
|
426
|
+
{
|
|
427
|
+
"supports": {
|
|
428
|
+
"predicate": "supports",
|
|
429
|
+
"inverse": "supported-by",
|
|
430
|
+
"category": "motivation",
|
|
431
|
+
"semantics": {
|
|
432
|
+
"directionality": "bidirectional",
|
|
433
|
+
"transitivity": true,
|
|
434
|
+
"symmetry": false,
|
|
435
|
+
"reflexivity": false
|
|
436
|
+
},
|
|
437
|
+
"archimate_alignment": "Influence",
|
|
438
|
+
"description": "Element contributes to achieving or enabling another element"
|
|
439
|
+
}
|
|
440
|
+
}
|
|
441
|
+
]
|
|
442
|
+
}
|
|
443
|
+
},
|
|
444
|
+
"definitions": {
|
|
445
|
+
"PredicateDefinition": {
|
|
446
|
+
"type": "object",
|
|
447
|
+
"title": "PredicateDefinition",
|
|
448
|
+
"description": "Complete definition of a semantic predicate including its semantics and relationships",
|
|
449
|
+
"required": ["predicate", "inverse", "category", "description"],
|
|
450
|
+
"additionalProperties": false,
|
|
451
|
+
"properties": {
|
|
452
|
+
"predicate": {
|
|
453
|
+
"type": "string",
|
|
454
|
+
"description": "Forward direction predicate name (e.g., 'supports')"
|
|
455
|
+
},
|
|
456
|
+
"inverse": {
|
|
457
|
+
"type": "string",
|
|
458
|
+
"description": "Inverse/reverse predicate name (e.g., 'supported-by')"
|
|
459
|
+
},
|
|
460
|
+
"category": {
|
|
461
|
+
"type": "string",
|
|
462
|
+
"enum": [
|
|
463
|
+
"motivation",
|
|
464
|
+
"business",
|
|
465
|
+
"security",
|
|
466
|
+
"application",
|
|
467
|
+
"technology",
|
|
468
|
+
"api",
|
|
469
|
+
"data",
|
|
470
|
+
"data-store",
|
|
471
|
+
"ux",
|
|
472
|
+
"navigation",
|
|
473
|
+
"apm",
|
|
474
|
+
"testing",
|
|
475
|
+
"structural",
|
|
476
|
+
"behavioral",
|
|
477
|
+
"dependency",
|
|
478
|
+
"traceability",
|
|
479
|
+
"governance"
|
|
480
|
+
],
|
|
481
|
+
"description": "Category of relationship based on layer or domain"
|
|
482
|
+
},
|
|
483
|
+
"description": {
|
|
484
|
+
"type": "string",
|
|
485
|
+
"description": "Human-readable description of what this predicate means"
|
|
486
|
+
},
|
|
487
|
+
"archimate_alignment": {
|
|
488
|
+
"enum": [
|
|
489
|
+
"Composition",
|
|
490
|
+
"Aggregation",
|
|
491
|
+
"Assignment",
|
|
492
|
+
"Realization",
|
|
493
|
+
"Serving",
|
|
494
|
+
"Access",
|
|
495
|
+
"Influence",
|
|
496
|
+
"Triggering",
|
|
497
|
+
"Flow",
|
|
498
|
+
"Specialization",
|
|
499
|
+
"Association",
|
|
500
|
+
null
|
|
501
|
+
],
|
|
502
|
+
"description": "Corresponding ArchiMate 3.2 relationship type (if applicable), or null if none applies"
|
|
503
|
+
},
|
|
504
|
+
"semantics": {
|
|
505
|
+
"type": "object",
|
|
506
|
+
"description": "Semantic properties describing the nature of this relationship",
|
|
507
|
+
"required": [
|
|
508
|
+
"directionality",
|
|
509
|
+
"transitivity",
|
|
510
|
+
"symmetry",
|
|
511
|
+
"reflexivity"
|
|
512
|
+
],
|
|
513
|
+
"additionalProperties": false,
|
|
514
|
+
"properties": {
|
|
515
|
+
"directionality": {
|
|
516
|
+
"type": "string",
|
|
517
|
+
"enum": ["unidirectional", "bidirectional"],
|
|
518
|
+
"description": "Whether the relationship is unidirectional (one-way) or bidirectional (navigable both ways)"
|
|
519
|
+
},
|
|
520
|
+
"transitivity": {
|
|
521
|
+
"type": "boolean",
|
|
522
|
+
"description": "Whether the relationship is transitive: if A→B and B→C, then A→C"
|
|
523
|
+
},
|
|
524
|
+
"symmetry": {
|
|
525
|
+
"type": "boolean",
|
|
526
|
+
"description": "Whether the relationship is symmetric: if A→B, then B→A"
|
|
527
|
+
},
|
|
528
|
+
"reflexivity": {
|
|
529
|
+
"type": "boolean",
|
|
530
|
+
"description": "Whether an element can have this relationship with itself"
|
|
531
|
+
}
|
|
532
|
+
}
|
|
533
|
+
},
|
|
534
|
+
"default_strength": {
|
|
535
|
+
"type": "string",
|
|
536
|
+
"enum": ["critical", "high", "medium", "low"],
|
|
537
|
+
"description": "Default strength/importance level for relationships using this predicate"
|
|
538
|
+
}
|
|
539
|
+
}
|
|
540
|
+
}
|
|
541
|
+
}
|
|
542
|
+
},
|
|
543
|
+
"predicate-enum": {
|
|
544
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
545
|
+
"$id": "urn:dr:spec:base:predicate-enum",
|
|
546
|
+
"title": "PredicateEnum",
|
|
547
|
+
"description": "Enumeration of all valid predicate names from spec/schemas/base/predicates.json. This schema is dynamically generated from the predicates catalog at build time.",
|
|
548
|
+
"type": "string",
|
|
549
|
+
"enum": [
|
|
550
|
+
"accesses",
|
|
551
|
+
"aggregates",
|
|
552
|
+
"applies",
|
|
553
|
+
"archives-to",
|
|
554
|
+
"assigned-to",
|
|
555
|
+
"associated-with",
|
|
556
|
+
"authenticates",
|
|
557
|
+
"authorizes",
|
|
558
|
+
"binds-to",
|
|
559
|
+
"cascades-to",
|
|
560
|
+
"composes",
|
|
561
|
+
"connects",
|
|
562
|
+
"constrained-by",
|
|
563
|
+
"constrains",
|
|
564
|
+
"consumes",
|
|
565
|
+
"covers",
|
|
566
|
+
"delivers",
|
|
567
|
+
"delivers-value",
|
|
568
|
+
"depends-on",
|
|
569
|
+
"derives-from",
|
|
570
|
+
"enforces",
|
|
571
|
+
"enforces-requirement",
|
|
572
|
+
"evaluates",
|
|
573
|
+
"exposes",
|
|
574
|
+
"extends",
|
|
575
|
+
"federates",
|
|
576
|
+
"flows-to",
|
|
577
|
+
"fulfills",
|
|
578
|
+
"fulfills-requirements",
|
|
579
|
+
"generates",
|
|
580
|
+
"governed-by",
|
|
581
|
+
"governed-by-principles",
|
|
582
|
+
"governs",
|
|
583
|
+
"implements",
|
|
584
|
+
"influence",
|
|
585
|
+
"intercepts",
|
|
586
|
+
"lazy-loads",
|
|
587
|
+
"manages",
|
|
588
|
+
"mandates",
|
|
589
|
+
"maps-to",
|
|
590
|
+
"measures",
|
|
591
|
+
"measures-outcome",
|
|
592
|
+
"migrates",
|
|
593
|
+
"mitigates",
|
|
594
|
+
"monitors",
|
|
595
|
+
"navigates-to",
|
|
596
|
+
"optimizes",
|
|
597
|
+
"owns",
|
|
598
|
+
"performs",
|
|
599
|
+
"protects",
|
|
600
|
+
"provides",
|
|
601
|
+
"realizes",
|
|
602
|
+
"references",
|
|
603
|
+
"references-table",
|
|
604
|
+
"renders",
|
|
605
|
+
"replicates",
|
|
606
|
+
"requires",
|
|
607
|
+
"resolves-with",
|
|
608
|
+
"satisfies",
|
|
609
|
+
"serves",
|
|
610
|
+
"specializes",
|
|
611
|
+
"supports",
|
|
612
|
+
"supports-goals",
|
|
613
|
+
"targets",
|
|
614
|
+
"tests",
|
|
615
|
+
"traces",
|
|
616
|
+
"tracks",
|
|
617
|
+
"triggers",
|
|
618
|
+
"uses",
|
|
619
|
+
"validates"
|
|
620
|
+
]
|
|
621
|
+
},
|
|
622
|
+
"spec-layer": {
|
|
623
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
624
|
+
"$id": "urn:dr:spec:base:spec-layer",
|
|
625
|
+
"title": "SpecLayer",
|
|
626
|
+
"description": "Base type for layer definitions in the specification. Defines the structure and metadata of a layer that contains nodes and relationships.",
|
|
627
|
+
"type": "object",
|
|
628
|
+
"required": ["id", "number", "name", "description"],
|
|
629
|
+
"additionalProperties": false,
|
|
630
|
+
"properties": {
|
|
631
|
+
"id": {
|
|
632
|
+
"type": "string",
|
|
633
|
+
"pattern": "^[a-z][a-z0-9-]*$",
|
|
634
|
+
"description": "Unique layer identifier using lowercase letters, numbers, and hyphens (e.g., 'motivation', 'data-model', 'data-store')",
|
|
635
|
+
"examples": [
|
|
636
|
+
"motivation",
|
|
637
|
+
"business",
|
|
638
|
+
"data-model",
|
|
639
|
+
"data-store",
|
|
640
|
+
"apm"
|
|
641
|
+
]
|
|
642
|
+
},
|
|
643
|
+
"number": {
|
|
644
|
+
"type": "integer",
|
|
645
|
+
"minimum": 1,
|
|
646
|
+
"maximum": 99,
|
|
647
|
+
"description": "Layer number for ordering and cross-layer references. Maps to layer position in the 12-layer model.",
|
|
648
|
+
"examples": [1, 2, 3, 12]
|
|
649
|
+
},
|
|
650
|
+
"name": {
|
|
651
|
+
"type": "string",
|
|
652
|
+
"description": "Human-readable layer name",
|
|
653
|
+
"examples": ["Motivation Layer", "Business Layer", "Data Model Layer"]
|
|
654
|
+
},
|
|
655
|
+
"description": {
|
|
656
|
+
"type": "string",
|
|
657
|
+
"description": "Purpose and scope of this layer within the architecture model",
|
|
658
|
+
"examples": [
|
|
659
|
+
"Captures stakeholder concerns, goals, requirements, and constraints"
|
|
660
|
+
]
|
|
661
|
+
},
|
|
662
|
+
"inspired_by": {
|
|
663
|
+
"type": "object",
|
|
664
|
+
"description": "External standard or model that inspired the design of this layer",
|
|
665
|
+
"additionalProperties": false,
|
|
666
|
+
"properties": {
|
|
667
|
+
"standard": {
|
|
668
|
+
"type": "string",
|
|
669
|
+
"description": "Name of the standard (e.g., 'ArchiMate', 'OpenAPI')",
|
|
670
|
+
"examples": [
|
|
671
|
+
"ArchiMate 3.2",
|
|
672
|
+
"OpenAPI 3.0",
|
|
673
|
+
"JSON Schema Draft 7"
|
|
674
|
+
]
|
|
675
|
+
},
|
|
676
|
+
"version": {
|
|
677
|
+
"type": "string",
|
|
678
|
+
"description": "Version of the standard",
|
|
679
|
+
"examples": ["3.2", "3.0", "Draft 7"]
|
|
680
|
+
},
|
|
681
|
+
"url": {
|
|
682
|
+
"type": "string",
|
|
683
|
+
"format": "uri",
|
|
684
|
+
"description": "URL to the standard specification",
|
|
685
|
+
"examples": [
|
|
686
|
+
"https://pubs.opengroup.org/architecture/archimate32-doc/"
|
|
687
|
+
]
|
|
688
|
+
}
|
|
689
|
+
}
|
|
690
|
+
},
|
|
691
|
+
"node_types": {
|
|
692
|
+
"type": "array",
|
|
693
|
+
"items": {
|
|
694
|
+
"type": "string",
|
|
695
|
+
"pattern": "^[a-z-]+\\.[a-z][a-z0-9-]*$",
|
|
696
|
+
"description": "Reference to a SpecNode ID"
|
|
697
|
+
},
|
|
698
|
+
"description": "List of SpecNode IDs that are valid in this layer. Used to define which node types can belong to this layer.",
|
|
699
|
+
"examples": [
|
|
700
|
+
[
|
|
701
|
+
"motivation.goal",
|
|
702
|
+
"motivation.requirement",
|
|
703
|
+
"motivation.constraint"
|
|
704
|
+
]
|
|
705
|
+
]
|
|
706
|
+
}
|
|
707
|
+
}
|
|
708
|
+
}
|
|
709
|
+
},
|
|
710
|
+
"predicates": {
|
|
711
|
+
"supports": {
|
|
712
|
+
"predicate": "supports",
|
|
713
|
+
"inverse": "supported-by",
|
|
714
|
+
"category": "motivation",
|
|
715
|
+
"description": "Element contributes to achieving or enabling another element",
|
|
716
|
+
"archimate_alignment": "Influence",
|
|
717
|
+
"semantics": {
|
|
718
|
+
"directionality": "bidirectional",
|
|
719
|
+
"transitivity": true,
|
|
720
|
+
"symmetry": false,
|
|
721
|
+
"reflexivity": false
|
|
722
|
+
}
|
|
723
|
+
},
|
|
724
|
+
"realizes": {
|
|
725
|
+
"predicate": "realizes",
|
|
726
|
+
"inverse": "realized-by",
|
|
727
|
+
"category": "structural",
|
|
728
|
+
"description": "Element implements or makes concrete another element",
|
|
729
|
+
"archimate_alignment": "Realization",
|
|
730
|
+
"semantics": {
|
|
731
|
+
"directionality": "bidirectional",
|
|
732
|
+
"transitivity": true,
|
|
733
|
+
"symmetry": false,
|
|
734
|
+
"reflexivity": false
|
|
735
|
+
}
|
|
736
|
+
},
|
|
737
|
+
"fulfills": {
|
|
738
|
+
"predicate": "fulfills",
|
|
739
|
+
"inverse": "fulfilled-by",
|
|
740
|
+
"category": "motivation",
|
|
741
|
+
"description": "Element satisfies the needs specified by another element",
|
|
742
|
+
"archimate_alignment": "Realization",
|
|
743
|
+
"semantics": {
|
|
744
|
+
"directionality": "bidirectional",
|
|
745
|
+
"transitivity": false,
|
|
746
|
+
"symmetry": false,
|
|
747
|
+
"reflexivity": false
|
|
748
|
+
}
|
|
749
|
+
},
|
|
750
|
+
"delivers": {
|
|
751
|
+
"predicate": "delivers",
|
|
752
|
+
"inverse": "delivered-by",
|
|
753
|
+
"category": "motivation",
|
|
754
|
+
"description": "Element provides value or benefit",
|
|
755
|
+
"archimate_alignment": "Realization",
|
|
756
|
+
"semantics": {
|
|
757
|
+
"directionality": "bidirectional",
|
|
758
|
+
"transitivity": false,
|
|
759
|
+
"symmetry": false,
|
|
760
|
+
"reflexivity": false
|
|
761
|
+
}
|
|
762
|
+
},
|
|
763
|
+
"constrains": {
|
|
764
|
+
"predicate": "constrains",
|
|
765
|
+
"inverse": "constrained-by",
|
|
766
|
+
"category": "motivation",
|
|
767
|
+
"description": "Element limits or restricts another element",
|
|
768
|
+
"archimate_alignment": "Influence",
|
|
769
|
+
"semantics": {
|
|
770
|
+
"directionality": "bidirectional",
|
|
771
|
+
"transitivity": false,
|
|
772
|
+
"symmetry": false,
|
|
773
|
+
"reflexivity": false
|
|
774
|
+
}
|
|
775
|
+
},
|
|
776
|
+
"governs": {
|
|
777
|
+
"predicate": "governs",
|
|
778
|
+
"inverse": "governed-by",
|
|
779
|
+
"category": "motivation",
|
|
780
|
+
"description": "Element provides rules or guidelines for another element",
|
|
781
|
+
"archimate_alignment": "Influence",
|
|
782
|
+
"semantics": {
|
|
783
|
+
"directionality": "bidirectional",
|
|
784
|
+
"transitivity": false,
|
|
785
|
+
"symmetry": false,
|
|
786
|
+
"reflexivity": false
|
|
787
|
+
}
|
|
788
|
+
},
|
|
789
|
+
"owns": {
|
|
790
|
+
"predicate": "owns",
|
|
791
|
+
"inverse": "owned-by",
|
|
792
|
+
"category": "business",
|
|
793
|
+
"description": "Element has responsibility or authority over another element",
|
|
794
|
+
"archimate_alignment": "Assignment",
|
|
795
|
+
"semantics": {
|
|
796
|
+
"directionality": "bidirectional",
|
|
797
|
+
"transitivity": false,
|
|
798
|
+
"symmetry": false,
|
|
799
|
+
"reflexivity": false
|
|
800
|
+
}
|
|
801
|
+
},
|
|
802
|
+
"performs": {
|
|
803
|
+
"predicate": "performs",
|
|
804
|
+
"inverse": "performed-by",
|
|
805
|
+
"category": "business",
|
|
806
|
+
"description": "Element executes or carries out another element",
|
|
807
|
+
"archimate_alignment": "Assignment",
|
|
808
|
+
"semantics": {
|
|
809
|
+
"directionality": "bidirectional",
|
|
810
|
+
"transitivity": false,
|
|
811
|
+
"symmetry": false,
|
|
812
|
+
"reflexivity": false
|
|
813
|
+
}
|
|
814
|
+
},
|
|
815
|
+
"provides": {
|
|
816
|
+
"predicate": "provides",
|
|
817
|
+
"inverse": "provided-by",
|
|
818
|
+
"category": "structural",
|
|
819
|
+
"description": "Element makes functionality available",
|
|
820
|
+
"archimate_alignment": "Serving",
|
|
821
|
+
"semantics": {
|
|
822
|
+
"directionality": "bidirectional",
|
|
823
|
+
"transitivity": false,
|
|
824
|
+
"symmetry": false,
|
|
825
|
+
"reflexivity": false
|
|
826
|
+
}
|
|
827
|
+
},
|
|
828
|
+
"consumes": {
|
|
829
|
+
"predicate": "consumes",
|
|
830
|
+
"inverse": "consumed-by",
|
|
831
|
+
"category": "dependency",
|
|
832
|
+
"description": "Element uses or depends on another element's functionality",
|
|
833
|
+
"archimate_alignment": "Serving",
|
|
834
|
+
"semantics": {
|
|
835
|
+
"directionality": "bidirectional",
|
|
836
|
+
"transitivity": false,
|
|
837
|
+
"symmetry": false,
|
|
838
|
+
"reflexivity": false
|
|
839
|
+
}
|
|
840
|
+
},
|
|
841
|
+
"covers": {
|
|
842
|
+
"predicate": "covers",
|
|
843
|
+
"inverse": "covered-by",
|
|
844
|
+
"category": "testing",
|
|
845
|
+
"description": "Coverage scope — test requirement or target covers an element",
|
|
846
|
+
"archimate_alignment": null,
|
|
847
|
+
"semantics": {
|
|
848
|
+
"directionality": "bidirectional",
|
|
849
|
+
"transitivity": false,
|
|
850
|
+
"symmetry": false,
|
|
851
|
+
"reflexivity": false
|
|
852
|
+
}
|
|
853
|
+
},
|
|
854
|
+
"extends": {
|
|
855
|
+
"predicate": "extends",
|
|
856
|
+
"inverse": "extended-by",
|
|
857
|
+
"category": "structural",
|
|
858
|
+
"description": "Schema or type inheritance (code-level specialization)",
|
|
859
|
+
"archimate_alignment": "Specialization",
|
|
860
|
+
"semantics": {
|
|
861
|
+
"directionality": "bidirectional",
|
|
862
|
+
"transitivity": true,
|
|
863
|
+
"symmetry": false,
|
|
864
|
+
"reflexivity": false
|
|
865
|
+
}
|
|
866
|
+
},
|
|
867
|
+
"satisfies": {
|
|
868
|
+
"predicate": "satisfies",
|
|
869
|
+
"inverse": "satisfied-by",
|
|
870
|
+
"category": "traceability",
|
|
871
|
+
"description": "Element fulfills or satisfies a requirement or constraint",
|
|
872
|
+
"archimate_alignment": "Realization",
|
|
873
|
+
"semantics": {
|
|
874
|
+
"directionality": "bidirectional",
|
|
875
|
+
"transitivity": false,
|
|
876
|
+
"symmetry": false,
|
|
877
|
+
"reflexivity": false
|
|
878
|
+
}
|
|
879
|
+
},
|
|
880
|
+
"targets": {
|
|
881
|
+
"predicate": "targets",
|
|
882
|
+
"inverse": "targeted-by",
|
|
883
|
+
"category": "security",
|
|
884
|
+
"description": "Threat identifies its attack surface or victim element",
|
|
885
|
+
"archimate_alignment": "Association",
|
|
886
|
+
"semantics": {
|
|
887
|
+
"directionality": "bidirectional",
|
|
888
|
+
"transitivity": false,
|
|
889
|
+
"symmetry": false,
|
|
890
|
+
"reflexivity": false
|
|
891
|
+
}
|
|
892
|
+
},
|
|
893
|
+
"applies": {
|
|
894
|
+
"predicate": "applies",
|
|
895
|
+
"inverse": "applied-by",
|
|
896
|
+
"category": "ux",
|
|
897
|
+
"description": "Element applies a configuration or style to another element",
|
|
898
|
+
"archimate_alignment": null,
|
|
899
|
+
"semantics": {
|
|
900
|
+
"directionality": "bidirectional",
|
|
901
|
+
"transitivity": false,
|
|
902
|
+
"symmetry": false,
|
|
903
|
+
"reflexivity": false
|
|
904
|
+
}
|
|
905
|
+
},
|
|
906
|
+
"archives-to": {
|
|
907
|
+
"predicate": "archives-to",
|
|
908
|
+
"inverse": "archived-from",
|
|
909
|
+
"category": "data",
|
|
910
|
+
"description": "Data is archived to a storage destination",
|
|
911
|
+
"archimate_alignment": null,
|
|
912
|
+
"semantics": {
|
|
913
|
+
"directionality": "bidirectional",
|
|
914
|
+
"transitivity": false,
|
|
915
|
+
"symmetry": false,
|
|
916
|
+
"reflexivity": false
|
|
917
|
+
}
|
|
918
|
+
},
|
|
919
|
+
"cascades-to": {
|
|
920
|
+
"predicate": "cascades-to",
|
|
921
|
+
"inverse": "cascaded-from",
|
|
922
|
+
"category": "data",
|
|
923
|
+
"description": "Operation or constraint cascades its effect to another element",
|
|
924
|
+
"archimate_alignment": null,
|
|
925
|
+
"semantics": {
|
|
926
|
+
"directionality": "bidirectional",
|
|
927
|
+
"transitivity": true,
|
|
928
|
+
"symmetry": false,
|
|
929
|
+
"reflexivity": false
|
|
930
|
+
}
|
|
931
|
+
},
|
|
932
|
+
"connects": {
|
|
933
|
+
"predicate": "connects",
|
|
934
|
+
"inverse": "connected-by",
|
|
935
|
+
"category": "structural",
|
|
936
|
+
"description": "Network or channel connects infrastructure elements",
|
|
937
|
+
"archimate_alignment": "Association",
|
|
938
|
+
"semantics": {
|
|
939
|
+
"directionality": "bidirectional",
|
|
940
|
+
"transitivity": false,
|
|
941
|
+
"symmetry": false,
|
|
942
|
+
"reflexivity": false
|
|
943
|
+
}
|
|
944
|
+
},
|
|
945
|
+
"enforces": {
|
|
946
|
+
"predicate": "enforces",
|
|
947
|
+
"inverse": "enforced-by",
|
|
948
|
+
"category": "governance",
|
|
949
|
+
"description": "Element actively enforces a policy or constraint",
|
|
950
|
+
"archimate_alignment": null,
|
|
951
|
+
"semantics": {
|
|
952
|
+
"directionality": "bidirectional",
|
|
953
|
+
"transitivity": false,
|
|
954
|
+
"symmetry": false,
|
|
955
|
+
"reflexivity": false
|
|
956
|
+
}
|
|
957
|
+
},
|
|
958
|
+
"evaluates": {
|
|
959
|
+
"predicate": "evaluates",
|
|
960
|
+
"inverse": "evaluated-by",
|
|
961
|
+
"category": "behavioral",
|
|
962
|
+
"description": "Element evaluates a condition or expression",
|
|
963
|
+
"archimate_alignment": null,
|
|
964
|
+
"semantics": {
|
|
965
|
+
"directionality": "bidirectional",
|
|
966
|
+
"transitivity": false,
|
|
967
|
+
"symmetry": false,
|
|
968
|
+
"reflexivity": false
|
|
969
|
+
}
|
|
970
|
+
},
|
|
971
|
+
"exposes": {
|
|
972
|
+
"predicate": "exposes",
|
|
973
|
+
"inverse": "exposed-by",
|
|
974
|
+
"category": "structural",
|
|
975
|
+
"description": "Interface exposes underlying functionality or resources",
|
|
976
|
+
"archimate_alignment": "Serving",
|
|
977
|
+
"semantics": {
|
|
978
|
+
"directionality": "bidirectional",
|
|
979
|
+
"transitivity": false,
|
|
980
|
+
"symmetry": false,
|
|
981
|
+
"reflexivity": false
|
|
982
|
+
}
|
|
983
|
+
},
|
|
984
|
+
"federates": {
|
|
985
|
+
"predicate": "federates",
|
|
986
|
+
"inverse": "federated-by",
|
|
987
|
+
"category": "data",
|
|
988
|
+
"description": "Element participates in a federated arrangement with another element",
|
|
989
|
+
"archimate_alignment": null,
|
|
990
|
+
"semantics": {
|
|
991
|
+
"directionality": "bidirectional",
|
|
992
|
+
"transitivity": false,
|
|
993
|
+
"symmetry": false,
|
|
994
|
+
"reflexivity": false
|
|
995
|
+
}
|
|
996
|
+
},
|
|
997
|
+
"generates": {
|
|
998
|
+
"predicate": "generates",
|
|
999
|
+
"inverse": "generated-by",
|
|
1000
|
+
"category": "behavioral",
|
|
1001
|
+
"description": "Element produces another element as output",
|
|
1002
|
+
"archimate_alignment": "Triggering",
|
|
1003
|
+
"semantics": {
|
|
1004
|
+
"directionality": "bidirectional",
|
|
1005
|
+
"transitivity": false,
|
|
1006
|
+
"symmetry": false,
|
|
1007
|
+
"reflexivity": false
|
|
1008
|
+
}
|
|
1009
|
+
},
|
|
1010
|
+
"governed-by": {
|
|
1011
|
+
"predicate": "governed-by",
|
|
1012
|
+
"inverse": "governs",
|
|
1013
|
+
"category": "motivation",
|
|
1014
|
+
"description": "Element is subject to governance by another element",
|
|
1015
|
+
"archimate_alignment": "Influence",
|
|
1016
|
+
"semantics": {
|
|
1017
|
+
"directionality": "bidirectional",
|
|
1018
|
+
"transitivity": false,
|
|
1019
|
+
"symmetry": false,
|
|
1020
|
+
"reflexivity": false
|
|
1021
|
+
}
|
|
1022
|
+
},
|
|
1023
|
+
"intercepts": {
|
|
1024
|
+
"predicate": "intercepts",
|
|
1025
|
+
"inverse": "intercepted-by",
|
|
1026
|
+
"category": "security",
|
|
1027
|
+
"description": "Element intercepts or gates the flow of another element",
|
|
1028
|
+
"archimate_alignment": null,
|
|
1029
|
+
"semantics": {
|
|
1030
|
+
"directionality": "bidirectional",
|
|
1031
|
+
"transitivity": false,
|
|
1032
|
+
"symmetry": false,
|
|
1033
|
+
"reflexivity": false
|
|
1034
|
+
}
|
|
1035
|
+
},
|
|
1036
|
+
"lazy-loads": {
|
|
1037
|
+
"predicate": "lazy-loads",
|
|
1038
|
+
"inverse": "lazy-loaded-by",
|
|
1039
|
+
"category": "behavioral",
|
|
1040
|
+
"description": "Element defers loading of another element until needed",
|
|
1041
|
+
"archimate_alignment": null,
|
|
1042
|
+
"semantics": {
|
|
1043
|
+
"directionality": "bidirectional",
|
|
1044
|
+
"transitivity": false,
|
|
1045
|
+
"symmetry": false,
|
|
1046
|
+
"reflexivity": false
|
|
1047
|
+
}
|
|
1048
|
+
},
|
|
1049
|
+
"manages": {
|
|
1050
|
+
"predicate": "manages",
|
|
1051
|
+
"inverse": "managed-by",
|
|
1052
|
+
"category": "governance",
|
|
1053
|
+
"description": "Element has management responsibility over another element",
|
|
1054
|
+
"archimate_alignment": null,
|
|
1055
|
+
"semantics": {
|
|
1056
|
+
"directionality": "bidirectional",
|
|
1057
|
+
"transitivity": false,
|
|
1058
|
+
"symmetry": false,
|
|
1059
|
+
"reflexivity": false
|
|
1060
|
+
}
|
|
1061
|
+
},
|
|
1062
|
+
"mandates": {
|
|
1063
|
+
"predicate": "mandates",
|
|
1064
|
+
"inverse": "mandated-by",
|
|
1065
|
+
"category": "governance",
|
|
1066
|
+
"description": "Element compels or requires another element",
|
|
1067
|
+
"archimate_alignment": null,
|
|
1068
|
+
"semantics": {
|
|
1069
|
+
"directionality": "bidirectional",
|
|
1070
|
+
"transitivity": false,
|
|
1071
|
+
"symmetry": false,
|
|
1072
|
+
"reflexivity": false
|
|
1073
|
+
}
|
|
1074
|
+
},
|
|
1075
|
+
"migrates": {
|
|
1076
|
+
"predicate": "migrates",
|
|
1077
|
+
"inverse": "migrated-by",
|
|
1078
|
+
"category": "data",
|
|
1079
|
+
"description": "Element moves or transforms data to another location",
|
|
1080
|
+
"archimate_alignment": null,
|
|
1081
|
+
"semantics": {
|
|
1082
|
+
"directionality": "bidirectional",
|
|
1083
|
+
"transitivity": false,
|
|
1084
|
+
"symmetry": false,
|
|
1085
|
+
"reflexivity": false
|
|
1086
|
+
}
|
|
1087
|
+
},
|
|
1088
|
+
"optimizes": {
|
|
1089
|
+
"predicate": "optimizes",
|
|
1090
|
+
"inverse": "optimized-by",
|
|
1091
|
+
"category": "dependency",
|
|
1092
|
+
"description": "Element improves the performance or efficiency of another element",
|
|
1093
|
+
"archimate_alignment": null,
|
|
1094
|
+
"semantics": {
|
|
1095
|
+
"directionality": "bidirectional",
|
|
1096
|
+
"transitivity": false,
|
|
1097
|
+
"symmetry": false,
|
|
1098
|
+
"reflexivity": false
|
|
1099
|
+
}
|
|
1100
|
+
},
|
|
1101
|
+
"replicates": {
|
|
1102
|
+
"predicate": "replicates",
|
|
1103
|
+
"inverse": "replicated-by",
|
|
1104
|
+
"category": "data",
|
|
1105
|
+
"description": "Element copies data to another element for redundancy or distribution",
|
|
1106
|
+
"archimate_alignment": null,
|
|
1107
|
+
"semantics": {
|
|
1108
|
+
"directionality": "bidirectional",
|
|
1109
|
+
"transitivity": false,
|
|
1110
|
+
"symmetry": false,
|
|
1111
|
+
"reflexivity": false
|
|
1112
|
+
}
|
|
1113
|
+
},
|
|
1114
|
+
"resolves-with": {
|
|
1115
|
+
"predicate": "resolves-with",
|
|
1116
|
+
"inverse": "resolved-by",
|
|
1117
|
+
"category": "behavioral",
|
|
1118
|
+
"description": "Navigation request is resolved using another element",
|
|
1119
|
+
"archimate_alignment": null,
|
|
1120
|
+
"semantics": {
|
|
1121
|
+
"directionality": "bidirectional",
|
|
1122
|
+
"transitivity": false,
|
|
1123
|
+
"symmetry": false,
|
|
1124
|
+
"reflexivity": false
|
|
1125
|
+
}
|
|
1126
|
+
},
|
|
1127
|
+
"tracks": {
|
|
1128
|
+
"predicate": "tracks",
|
|
1129
|
+
"inverse": "tracked-by",
|
|
1130
|
+
"category": "apm",
|
|
1131
|
+
"description": "Element records or monitors the state of another element",
|
|
1132
|
+
"archimate_alignment": null,
|
|
1133
|
+
"semantics": {
|
|
1134
|
+
"directionality": "bidirectional",
|
|
1135
|
+
"transitivity": false,
|
|
1136
|
+
"symmetry": false,
|
|
1137
|
+
"reflexivity": false
|
|
1138
|
+
}
|
|
1139
|
+
},
|
|
1140
|
+
"requires": {
|
|
1141
|
+
"predicate": "requires",
|
|
1142
|
+
"inverse": "required-by",
|
|
1143
|
+
"category": "security",
|
|
1144
|
+
"description": "Element needs another element to function correctly",
|
|
1145
|
+
"archimate_alignment": "Access",
|
|
1146
|
+
"semantics": {
|
|
1147
|
+
"directionality": "bidirectional",
|
|
1148
|
+
"transitivity": false,
|
|
1149
|
+
"symmetry": false,
|
|
1150
|
+
"reflexivity": false
|
|
1151
|
+
}
|
|
1152
|
+
},
|
|
1153
|
+
"protects": {
|
|
1154
|
+
"predicate": "protects",
|
|
1155
|
+
"inverse": "protected-by",
|
|
1156
|
+
"category": "security",
|
|
1157
|
+
"description": "Element provides security for another element",
|
|
1158
|
+
"archimate_alignment": "Influence",
|
|
1159
|
+
"semantics": {
|
|
1160
|
+
"directionality": "bidirectional",
|
|
1161
|
+
"transitivity": false,
|
|
1162
|
+
"symmetry": false,
|
|
1163
|
+
"reflexivity": false
|
|
1164
|
+
}
|
|
1165
|
+
},
|
|
1166
|
+
"mitigates": {
|
|
1167
|
+
"predicate": "mitigates",
|
|
1168
|
+
"inverse": "mitigated-by",
|
|
1169
|
+
"category": "security",
|
|
1170
|
+
"description": "Element reduces or addresses a risk or threat",
|
|
1171
|
+
"archimate_alignment": "Influence",
|
|
1172
|
+
"semantics": {
|
|
1173
|
+
"directionality": "bidirectional",
|
|
1174
|
+
"transitivity": false,
|
|
1175
|
+
"symmetry": false,
|
|
1176
|
+
"reflexivity": false
|
|
1177
|
+
}
|
|
1178
|
+
},
|
|
1179
|
+
"accesses": {
|
|
1180
|
+
"predicate": "accesses",
|
|
1181
|
+
"inverse": "accessed-by",
|
|
1182
|
+
"category": "security",
|
|
1183
|
+
"description": "Element can read or modify another element",
|
|
1184
|
+
"archimate_alignment": "Access",
|
|
1185
|
+
"semantics": {
|
|
1186
|
+
"directionality": "bidirectional",
|
|
1187
|
+
"transitivity": false,
|
|
1188
|
+
"symmetry": false,
|
|
1189
|
+
"reflexivity": false
|
|
1190
|
+
}
|
|
1191
|
+
},
|
|
1192
|
+
"uses": {
|
|
1193
|
+
"predicate": "uses",
|
|
1194
|
+
"inverse": "used-by",
|
|
1195
|
+
"category": "dependency",
|
|
1196
|
+
"description": "Element depends on or utilizes another element",
|
|
1197
|
+
"archimate_alignment": "Serving",
|
|
1198
|
+
"semantics": {
|
|
1199
|
+
"directionality": "bidirectional",
|
|
1200
|
+
"transitivity": false,
|
|
1201
|
+
"symmetry": false,
|
|
1202
|
+
"reflexivity": false
|
|
1203
|
+
}
|
|
1204
|
+
},
|
|
1205
|
+
"implements": {
|
|
1206
|
+
"predicate": "implements",
|
|
1207
|
+
"inverse": "implemented-by",
|
|
1208
|
+
"category": "structural",
|
|
1209
|
+
"description": "Element provides concrete implementation of another element",
|
|
1210
|
+
"archimate_alignment": "Realization",
|
|
1211
|
+
"semantics": {
|
|
1212
|
+
"directionality": "bidirectional",
|
|
1213
|
+
"transitivity": false,
|
|
1214
|
+
"symmetry": false,
|
|
1215
|
+
"reflexivity": false
|
|
1216
|
+
}
|
|
1217
|
+
},
|
|
1218
|
+
"composes": {
|
|
1219
|
+
"predicate": "composes",
|
|
1220
|
+
"inverse": "composed-of",
|
|
1221
|
+
"category": "structural",
|
|
1222
|
+
"description": "Whole-part relationship where part cannot exist without whole",
|
|
1223
|
+
"archimate_alignment": "Composition",
|
|
1224
|
+
"semantics": {
|
|
1225
|
+
"directionality": "bidirectional",
|
|
1226
|
+
"transitivity": false,
|
|
1227
|
+
"symmetry": false,
|
|
1228
|
+
"reflexivity": false
|
|
1229
|
+
}
|
|
1230
|
+
},
|
|
1231
|
+
"aggregates": {
|
|
1232
|
+
"predicate": "aggregates",
|
|
1233
|
+
"inverse": "aggregated-by",
|
|
1234
|
+
"category": "structural",
|
|
1235
|
+
"description": "Whole-part relationship where part can exist independently",
|
|
1236
|
+
"archimate_alignment": "Aggregation",
|
|
1237
|
+
"semantics": {
|
|
1238
|
+
"directionality": "bidirectional",
|
|
1239
|
+
"transitivity": false,
|
|
1240
|
+
"symmetry": false,
|
|
1241
|
+
"reflexivity": false
|
|
1242
|
+
}
|
|
1243
|
+
},
|
|
1244
|
+
"triggers": {
|
|
1245
|
+
"predicate": "triggers",
|
|
1246
|
+
"inverse": "triggered-by",
|
|
1247
|
+
"category": "behavioral",
|
|
1248
|
+
"description": "Element causes or initiates another element",
|
|
1249
|
+
"archimate_alignment": "Triggering",
|
|
1250
|
+
"semantics": {
|
|
1251
|
+
"directionality": "bidirectional",
|
|
1252
|
+
"transitivity": false,
|
|
1253
|
+
"symmetry": false,
|
|
1254
|
+
"reflexivity": false
|
|
1255
|
+
}
|
|
1256
|
+
},
|
|
1257
|
+
"flows-to": {
|
|
1258
|
+
"predicate": "flows-to",
|
|
1259
|
+
"inverse": "flows-from",
|
|
1260
|
+
"category": "behavioral",
|
|
1261
|
+
"description": "Data or control flows from one element to another",
|
|
1262
|
+
"archimate_alignment": "Flow",
|
|
1263
|
+
"semantics": {
|
|
1264
|
+
"directionality": "bidirectional",
|
|
1265
|
+
"transitivity": true,
|
|
1266
|
+
"symmetry": false,
|
|
1267
|
+
"reflexivity": false
|
|
1268
|
+
}
|
|
1269
|
+
},
|
|
1270
|
+
"monitors": {
|
|
1271
|
+
"predicate": "monitors",
|
|
1272
|
+
"inverse": "monitored-by",
|
|
1273
|
+
"category": "apm",
|
|
1274
|
+
"description": "Element observes or tracks another element",
|
|
1275
|
+
"archimate_alignment": "Serving",
|
|
1276
|
+
"semantics": {
|
|
1277
|
+
"directionality": "bidirectional",
|
|
1278
|
+
"transitivity": false,
|
|
1279
|
+
"symmetry": false,
|
|
1280
|
+
"reflexivity": false
|
|
1281
|
+
}
|
|
1282
|
+
},
|
|
1283
|
+
"tests": {
|
|
1284
|
+
"predicate": "tests",
|
|
1285
|
+
"inverse": "tested-by",
|
|
1286
|
+
"category": "testing",
|
|
1287
|
+
"description": "Element validates or verifies another element",
|
|
1288
|
+
"archimate_alignment": "Serving",
|
|
1289
|
+
"semantics": {
|
|
1290
|
+
"directionality": "bidirectional",
|
|
1291
|
+
"transitivity": false,
|
|
1292
|
+
"symmetry": false,
|
|
1293
|
+
"reflexivity": false
|
|
1294
|
+
}
|
|
1295
|
+
},
|
|
1296
|
+
"specializes": {
|
|
1297
|
+
"predicate": "specializes",
|
|
1298
|
+
"inverse": "generalized-by",
|
|
1299
|
+
"category": "structural",
|
|
1300
|
+
"description": "Type-subtype relationship (inheritance)",
|
|
1301
|
+
"archimate_alignment": "Specialization",
|
|
1302
|
+
"semantics": {
|
|
1303
|
+
"directionality": "bidirectional",
|
|
1304
|
+
"transitivity": true,
|
|
1305
|
+
"symmetry": false,
|
|
1306
|
+
"reflexivity": false
|
|
1307
|
+
}
|
|
1308
|
+
},
|
|
1309
|
+
"assigned-to": {
|
|
1310
|
+
"predicate": "assigned-to",
|
|
1311
|
+
"inverse": "assigns",
|
|
1312
|
+
"category": "structural",
|
|
1313
|
+
"description": "Active element assigned to behavior or role",
|
|
1314
|
+
"archimate_alignment": "Assignment",
|
|
1315
|
+
"semantics": {
|
|
1316
|
+
"directionality": "bidirectional",
|
|
1317
|
+
"transitivity": false,
|
|
1318
|
+
"symmetry": false,
|
|
1319
|
+
"reflexivity": false
|
|
1320
|
+
}
|
|
1321
|
+
},
|
|
1322
|
+
"associated-with": {
|
|
1323
|
+
"predicate": "associated-with",
|
|
1324
|
+
"inverse": "associated-with",
|
|
1325
|
+
"category": "structural",
|
|
1326
|
+
"description": "Generic relationship indicating elements are related or connected",
|
|
1327
|
+
"archimate_alignment": "Association",
|
|
1328
|
+
"semantics": {
|
|
1329
|
+
"directionality": "bidirectional",
|
|
1330
|
+
"transitivity": false,
|
|
1331
|
+
"symmetry": true,
|
|
1332
|
+
"reflexivity": false
|
|
1333
|
+
}
|
|
1334
|
+
},
|
|
1335
|
+
"influence": {
|
|
1336
|
+
"predicate": "influence",
|
|
1337
|
+
"inverse": "influenced-by",
|
|
1338
|
+
"category": "behavioral",
|
|
1339
|
+
"description": "Element affects or impacts another element",
|
|
1340
|
+
"archimate_alignment": "Influence",
|
|
1341
|
+
"semantics": {
|
|
1342
|
+
"directionality": "bidirectional",
|
|
1343
|
+
"transitivity": false,
|
|
1344
|
+
"symmetry": false,
|
|
1345
|
+
"reflexivity": false
|
|
1346
|
+
}
|
|
1347
|
+
},
|
|
1348
|
+
"serves": {
|
|
1349
|
+
"predicate": "serves",
|
|
1350
|
+
"inverse": "served-by",
|
|
1351
|
+
"category": "behavioral",
|
|
1352
|
+
"description": "Service available to consumer",
|
|
1353
|
+
"archimate_alignment": "Serving",
|
|
1354
|
+
"semantics": {
|
|
1355
|
+
"directionality": "bidirectional",
|
|
1356
|
+
"transitivity": false,
|
|
1357
|
+
"symmetry": false,
|
|
1358
|
+
"reflexivity": false
|
|
1359
|
+
}
|
|
1360
|
+
},
|
|
1361
|
+
"references": {
|
|
1362
|
+
"predicate": "references",
|
|
1363
|
+
"inverse": "referenced-by",
|
|
1364
|
+
"category": "dependency",
|
|
1365
|
+
"description": "Pointer reference without functional dependency",
|
|
1366
|
+
"archimate_alignment": null,
|
|
1367
|
+
"semantics": {
|
|
1368
|
+
"directionality": "bidirectional",
|
|
1369
|
+
"transitivity": false,
|
|
1370
|
+
"symmetry": false,
|
|
1371
|
+
"reflexivity": false
|
|
1372
|
+
}
|
|
1373
|
+
},
|
|
1374
|
+
"depends-on": {
|
|
1375
|
+
"predicate": "depends-on",
|
|
1376
|
+
"inverse": "dependency-of",
|
|
1377
|
+
"category": "dependency",
|
|
1378
|
+
"description": "Element requires another to function",
|
|
1379
|
+
"archimate_alignment": null,
|
|
1380
|
+
"semantics": {
|
|
1381
|
+
"directionality": "bidirectional",
|
|
1382
|
+
"transitivity": true,
|
|
1383
|
+
"symmetry": false,
|
|
1384
|
+
"reflexivity": false
|
|
1385
|
+
}
|
|
1386
|
+
},
|
|
1387
|
+
"supports-goals": {
|
|
1388
|
+
"predicate": "supports-goals",
|
|
1389
|
+
"inverse": "supported-by",
|
|
1390
|
+
"category": "traceability",
|
|
1391
|
+
"description": "Implementation contributes to achieving goal",
|
|
1392
|
+
"archimate_alignment": null,
|
|
1393
|
+
"semantics": {
|
|
1394
|
+
"directionality": "bidirectional",
|
|
1395
|
+
"transitivity": true,
|
|
1396
|
+
"symmetry": false,
|
|
1397
|
+
"reflexivity": false
|
|
1398
|
+
}
|
|
1399
|
+
},
|
|
1400
|
+
"fulfills-requirements": {
|
|
1401
|
+
"predicate": "fulfills-requirements",
|
|
1402
|
+
"inverse": "fulfilled-by",
|
|
1403
|
+
"category": "traceability",
|
|
1404
|
+
"description": "Implementation satisfies requirement",
|
|
1405
|
+
"archimate_alignment": null,
|
|
1406
|
+
"semantics": {
|
|
1407
|
+
"directionality": "bidirectional",
|
|
1408
|
+
"transitivity": false,
|
|
1409
|
+
"symmetry": false,
|
|
1410
|
+
"reflexivity": false
|
|
1411
|
+
}
|
|
1412
|
+
},
|
|
1413
|
+
"delivers-value": {
|
|
1414
|
+
"predicate": "delivers-value",
|
|
1415
|
+
"inverse": "delivered-by",
|
|
1416
|
+
"category": "traceability",
|
|
1417
|
+
"description": "Implementation provides business value",
|
|
1418
|
+
"archimate_alignment": null,
|
|
1419
|
+
"semantics": {
|
|
1420
|
+
"directionality": "bidirectional",
|
|
1421
|
+
"transitivity": false,
|
|
1422
|
+
"symmetry": false,
|
|
1423
|
+
"reflexivity": false
|
|
1424
|
+
}
|
|
1425
|
+
},
|
|
1426
|
+
"measures-outcome": {
|
|
1427
|
+
"predicate": "measures-outcome",
|
|
1428
|
+
"inverse": "measured-by",
|
|
1429
|
+
"category": "traceability",
|
|
1430
|
+
"description": "Metric validates outcome achievement",
|
|
1431
|
+
"archimate_alignment": null,
|
|
1432
|
+
"semantics": {
|
|
1433
|
+
"directionality": "bidirectional",
|
|
1434
|
+
"transitivity": false,
|
|
1435
|
+
"symmetry": false,
|
|
1436
|
+
"reflexivity": false
|
|
1437
|
+
}
|
|
1438
|
+
},
|
|
1439
|
+
"governed-by-principles": {
|
|
1440
|
+
"predicate": "governed-by-principles",
|
|
1441
|
+
"inverse": "governs",
|
|
1442
|
+
"category": "governance",
|
|
1443
|
+
"description": "Element follows architectural principle",
|
|
1444
|
+
"archimate_alignment": null,
|
|
1445
|
+
"semantics": {
|
|
1446
|
+
"directionality": "bidirectional",
|
|
1447
|
+
"transitivity": false,
|
|
1448
|
+
"symmetry": false,
|
|
1449
|
+
"reflexivity": false
|
|
1450
|
+
}
|
|
1451
|
+
},
|
|
1452
|
+
"constrained-by": {
|
|
1453
|
+
"predicate": "constrained-by",
|
|
1454
|
+
"inverse": "constrains",
|
|
1455
|
+
"category": "governance",
|
|
1456
|
+
"description": "Element limited by constraint",
|
|
1457
|
+
"archimate_alignment": null,
|
|
1458
|
+
"semantics": {
|
|
1459
|
+
"directionality": "bidirectional",
|
|
1460
|
+
"transitivity": false,
|
|
1461
|
+
"symmetry": false,
|
|
1462
|
+
"reflexivity": false
|
|
1463
|
+
}
|
|
1464
|
+
},
|
|
1465
|
+
"enforces-requirement": {
|
|
1466
|
+
"predicate": "enforces-requirement",
|
|
1467
|
+
"inverse": "enforced-by",
|
|
1468
|
+
"category": "governance",
|
|
1469
|
+
"description": "Element actively enforces requirement",
|
|
1470
|
+
"archimate_alignment": null,
|
|
1471
|
+
"semantics": {
|
|
1472
|
+
"directionality": "bidirectional",
|
|
1473
|
+
"transitivity": false,
|
|
1474
|
+
"symmetry": false,
|
|
1475
|
+
"reflexivity": false
|
|
1476
|
+
}
|
|
1477
|
+
},
|
|
1478
|
+
"traces": {
|
|
1479
|
+
"predicate": "traces",
|
|
1480
|
+
"inverse": "traced-by",
|
|
1481
|
+
"category": "apm",
|
|
1482
|
+
"description": "Distributed tracing relationships",
|
|
1483
|
+
"archimate_alignment": null,
|
|
1484
|
+
"semantics": {
|
|
1485
|
+
"directionality": "bidirectional",
|
|
1486
|
+
"transitivity": false,
|
|
1487
|
+
"symmetry": false,
|
|
1488
|
+
"reflexivity": false
|
|
1489
|
+
}
|
|
1490
|
+
},
|
|
1491
|
+
"measures": {
|
|
1492
|
+
"predicate": "measures",
|
|
1493
|
+
"inverse": "measured-by",
|
|
1494
|
+
"category": "apm",
|
|
1495
|
+
"description": "Metric collection relationships",
|
|
1496
|
+
"archimate_alignment": null,
|
|
1497
|
+
"semantics": {
|
|
1498
|
+
"directionality": "bidirectional",
|
|
1499
|
+
"transitivity": false,
|
|
1500
|
+
"symmetry": false,
|
|
1501
|
+
"reflexivity": false
|
|
1502
|
+
}
|
|
1503
|
+
},
|
|
1504
|
+
"authenticates": {
|
|
1505
|
+
"predicate": "authenticates",
|
|
1506
|
+
"inverse": "authenticated-by",
|
|
1507
|
+
"category": "security",
|
|
1508
|
+
"description": "Authentication flows",
|
|
1509
|
+
"archimate_alignment": null,
|
|
1510
|
+
"semantics": {
|
|
1511
|
+
"directionality": "bidirectional",
|
|
1512
|
+
"transitivity": false,
|
|
1513
|
+
"symmetry": false,
|
|
1514
|
+
"reflexivity": false
|
|
1515
|
+
}
|
|
1516
|
+
},
|
|
1517
|
+
"authorizes": {
|
|
1518
|
+
"predicate": "authorizes",
|
|
1519
|
+
"inverse": "authorized-by",
|
|
1520
|
+
"category": "security",
|
|
1521
|
+
"description": "Permission grants",
|
|
1522
|
+
"archimate_alignment": null,
|
|
1523
|
+
"semantics": {
|
|
1524
|
+
"directionality": "bidirectional",
|
|
1525
|
+
"transitivity": false,
|
|
1526
|
+
"symmetry": false,
|
|
1527
|
+
"reflexivity": false
|
|
1528
|
+
}
|
|
1529
|
+
},
|
|
1530
|
+
"renders": {
|
|
1531
|
+
"predicate": "renders",
|
|
1532
|
+
"inverse": "rendered-by",
|
|
1533
|
+
"category": "ux",
|
|
1534
|
+
"description": "UI rendering relationships",
|
|
1535
|
+
"archimate_alignment": null,
|
|
1536
|
+
"semantics": {
|
|
1537
|
+
"directionality": "bidirectional",
|
|
1538
|
+
"transitivity": false,
|
|
1539
|
+
"symmetry": false,
|
|
1540
|
+
"reflexivity": false
|
|
1541
|
+
}
|
|
1542
|
+
},
|
|
1543
|
+
"binds-to": {
|
|
1544
|
+
"predicate": "binds-to",
|
|
1545
|
+
"inverse": "bound-by",
|
|
1546
|
+
"category": "ux",
|
|
1547
|
+
"description": "Data binding relationships",
|
|
1548
|
+
"archimate_alignment": null,
|
|
1549
|
+
"semantics": {
|
|
1550
|
+
"directionality": "bidirectional",
|
|
1551
|
+
"transitivity": false,
|
|
1552
|
+
"symmetry": false,
|
|
1553
|
+
"reflexivity": false
|
|
1554
|
+
}
|
|
1555
|
+
},
|
|
1556
|
+
"navigates-to": {
|
|
1557
|
+
"predicate": "navigates-to",
|
|
1558
|
+
"inverse": "navigated-from",
|
|
1559
|
+
"category": "ux",
|
|
1560
|
+
"description": "Navigation flows",
|
|
1561
|
+
"archimate_alignment": null,
|
|
1562
|
+
"semantics": {
|
|
1563
|
+
"directionality": "bidirectional",
|
|
1564
|
+
"transitivity": false,
|
|
1565
|
+
"symmetry": false,
|
|
1566
|
+
"reflexivity": false
|
|
1567
|
+
}
|
|
1568
|
+
},
|
|
1569
|
+
"maps-to": {
|
|
1570
|
+
"predicate": "maps-to",
|
|
1571
|
+
"inverse": "mapped-from",
|
|
1572
|
+
"category": "data",
|
|
1573
|
+
"description": "Schema/table mapping",
|
|
1574
|
+
"archimate_alignment": null,
|
|
1575
|
+
"semantics": {
|
|
1576
|
+
"directionality": "bidirectional",
|
|
1577
|
+
"transitivity": false,
|
|
1578
|
+
"symmetry": false,
|
|
1579
|
+
"reflexivity": false
|
|
1580
|
+
}
|
|
1581
|
+
},
|
|
1582
|
+
"references-table": {
|
|
1583
|
+
"predicate": "references-table",
|
|
1584
|
+
"inverse": "table-referenced-by",
|
|
1585
|
+
"category": "data",
|
|
1586
|
+
"description": "Foreign key relationships",
|
|
1587
|
+
"archimate_alignment": null,
|
|
1588
|
+
"semantics": {
|
|
1589
|
+
"directionality": "bidirectional",
|
|
1590
|
+
"transitivity": false,
|
|
1591
|
+
"symmetry": false,
|
|
1592
|
+
"reflexivity": false
|
|
1593
|
+
}
|
|
1594
|
+
},
|
|
1595
|
+
"derives-from": {
|
|
1596
|
+
"predicate": "derives-from",
|
|
1597
|
+
"inverse": "derived-by",
|
|
1598
|
+
"category": "data",
|
|
1599
|
+
"description": "Calculated field relationships",
|
|
1600
|
+
"archimate_alignment": null,
|
|
1601
|
+
"semantics": {
|
|
1602
|
+
"directionality": "bidirectional",
|
|
1603
|
+
"transitivity": false,
|
|
1604
|
+
"symmetry": false,
|
|
1605
|
+
"reflexivity": false
|
|
1606
|
+
}
|
|
1607
|
+
},
|
|
1608
|
+
"validates": {
|
|
1609
|
+
"predicate": "validates",
|
|
1610
|
+
"inverse": "validated-by",
|
|
1611
|
+
"category": "testing",
|
|
1612
|
+
"description": "Test element validates that a requirement or target is satisfied",
|
|
1613
|
+
"archimate_alignment": null,
|
|
1614
|
+
"semantics": {
|
|
1615
|
+
"directionality": "bidirectional",
|
|
1616
|
+
"transitivity": false,
|
|
1617
|
+
"symmetry": false,
|
|
1618
|
+
"reflexivity": false
|
|
1619
|
+
}
|
|
1620
|
+
}
|
|
1621
|
+
}
|
|
1622
|
+
}
|