archsight 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/CHANGELOG.md +24 -0
- data/CODE_OF_CONDUCT.md +10 -0
- data/CONTRIBUTING.md +186 -0
- data/Dockerfile +39 -0
- data/LICENSE.txt +201 -0
- data/README.md +170 -0
- data/SECURITY.md +27 -0
- data/exe/archsight +9 -0
- data/lib/archsight/annotations/aggregators.rb +109 -0
- data/lib/archsight/annotations/annotation.rb +168 -0
- data/lib/archsight/annotations/architecture_annotations.rb +59 -0
- data/lib/archsight/annotations/backup_annotations.rb +21 -0
- data/lib/archsight/annotations/computed.rb +264 -0
- data/lib/archsight/annotations/email_recipient.rb +35 -0
- data/lib/archsight/annotations/generated_annotations.rb +17 -0
- data/lib/archsight/annotations/git_annotations.rb +21 -0
- data/lib/archsight/annotations/relation_resolver.rb +160 -0
- data/lib/archsight/cli.rb +120 -0
- data/lib/archsight/configuration.rb +36 -0
- data/lib/archsight/database.rb +183 -0
- data/lib/archsight/documentation.rb +171 -0
- data/lib/archsight/graph.rb +113 -0
- data/lib/archsight/helpers.rb +210 -0
- data/lib/archsight/linter.rb +77 -0
- data/lib/archsight/mcp/analyze_resource_tool.rb +222 -0
- data/lib/archsight/mcp/base.rb +48 -0
- data/lib/archsight/mcp/query_tool.rb +113 -0
- data/lib/archsight/mcp/resource_doc_tool.rb +87 -0
- data/lib/archsight/mcp.rb +6 -0
- data/lib/archsight/query/ast.rb +279 -0
- data/lib/archsight/query/errors.rb +39 -0
- data/lib/archsight/query/evaluator.rb +707 -0
- data/lib/archsight/query/lexer.rb +289 -0
- data/lib/archsight/query/parser.rb +506 -0
- data/lib/archsight/query.rb +68 -0
- data/lib/archsight/renderer.rb +134 -0
- data/lib/archsight/resources/application_component.rb +346 -0
- data/lib/archsight/resources/application_interface.rb +54 -0
- data/lib/archsight/resources/application_service.rb +222 -0
- data/lib/archsight/resources/base.rb +300 -0
- data/lib/archsight/resources/business_actor.rb +195 -0
- data/lib/archsight/resources/business_constraint.rb +32 -0
- data/lib/archsight/resources/business_process.rb +37 -0
- data/lib/archsight/resources/business_product.rb +206 -0
- data/lib/archsight/resources/business_requirement.rb +56 -0
- data/lib/archsight/resources/compliance_evidence.rb +42 -0
- data/lib/archsight/resources/data_object.rb +49 -0
- data/lib/archsight/resources/motivation_goal.rb +37 -0
- data/lib/archsight/resources/motivation_outcome.rb +33 -0
- data/lib/archsight/resources/motivation_stakeholder.rb +38 -0
- data/lib/archsight/resources/strategy_capability.rb +38 -0
- data/lib/archsight/resources/technology_artifact.rb +154 -0
- data/lib/archsight/resources/technology_interface.rb +34 -0
- data/lib/archsight/resources/technology_node.rb +42 -0
- data/lib/archsight/resources/technology_service.rb +35 -0
- data/lib/archsight/resources/technology_system_software.rb +37 -0
- data/lib/archsight/resources/view.rb +51 -0
- data/lib/archsight/resources.rb +49 -0
- data/lib/archsight/template.rb +49 -0
- data/lib/archsight/version.rb +5 -0
- data/lib/archsight/web/application.rb +290 -0
- data/lib/archsight/web/doc/archimate.md +215 -0
- data/lib/archsight/web/doc/computed_annotations.md +316 -0
- data/lib/archsight/web/doc/icons.md +303 -0
- data/lib/archsight/web/doc/index.md.erb +74 -0
- data/lib/archsight/web/doc/modeling.md +200 -0
- data/lib/archsight/web/doc/search.md +227 -0
- data/lib/archsight/web/doc/togaf.md +255 -0
- data/lib/archsight/web/doc/tool.md +90 -0
- data/lib/archsight/web/public/css/artifact.css +985 -0
- data/lib/archsight/web/public/css/base.css +201 -0
- data/lib/archsight/web/public/css/graph.css +106 -0
- data/lib/archsight/web/public/css/highlight.min.css +10 -0
- data/lib/archsight/web/public/css/iconoir.css +22 -0
- data/lib/archsight/web/public/css/instance.css +329 -0
- data/lib/archsight/web/public/css/layout.css +421 -0
- data/lib/archsight/web/public/css/mermaid-layers.css +188 -0
- data/lib/archsight/web/public/css/pico.min.css +4 -0
- data/lib/archsight/web/public/favicon.ico +0 -0
- data/lib/archsight/web/public/img/archimate.png +0 -0
- data/lib/archsight/web/public/img/togaf-high-level.png +0 -0
- data/lib/archsight/web/public/js/graph-zoom.js +18 -0
- data/lib/archsight/web/public/js/highlight.min.js +3899 -0
- data/lib/archsight/web/public/js/htmx.min.js +1 -0
- data/lib/archsight/web/public/js/mermaid-init.js +88 -0
- data/lib/archsight/web/public/js/mermaid.min.js +2811 -0
- data/lib/archsight/web/public/js/sparkline.js +42 -0
- data/lib/archsight/web/public/js/svg-pan-zoom.min.js +3 -0
- data/lib/archsight/web/public/js/svg-zoom-controls.js +93 -0
- data/lib/archsight/web/views/index.haml +12 -0
- data/lib/archsight/web/views/partials/artifact/_activity.haml +55 -0
- data/lib/archsight/web/views/partials/artifact/_agentic.haml +25 -0
- data/lib/archsight/web/views/partials/artifact/_deployment.haml +29 -0
- data/lib/archsight/web/views/partials/artifact/_git_info.haml +16 -0
- data/lib/archsight/web/views/partials/artifact/_language_stats.haml +53 -0
- data/lib/archsight/web/views/partials/artifact/_links.haml +24 -0
- data/lib/archsight/web/views/partials/artifact/_project_estimate.haml +26 -0
- data/lib/archsight/web/views/partials/artifact/_repositories.haml +55 -0
- data/lib/archsight/web/views/partials/artifact/_team.haml +83 -0
- data/lib/archsight/web/views/partials/artifact/_workflow.haml +69 -0
- data/lib/archsight/web/views/partials/components/_activity.haml +37 -0
- data/lib/archsight/web/views/partials/components/_git.haml +17 -0
- data/lib/archsight/web/views/partials/components/_jira.haml +18 -0
- data/lib/archsight/web/views/partials/components/_languages.haml +29 -0
- data/lib/archsight/web/views/partials/components/_owner.haml +15 -0
- data/lib/archsight/web/views/partials/components/_repositories.haml +37 -0
- data/lib/archsight/web/views/partials/components/_status.haml +23 -0
- data/lib/archsight/web/views/partials/instance/_detail.haml +99 -0
- data/lib/archsight/web/views/partials/instance/_graph.haml +6 -0
- data/lib/archsight/web/views/partials/instance/_list.haml +84 -0
- data/lib/archsight/web/views/partials/instance/_relations.haml +43 -0
- data/lib/archsight/web/views/partials/instance/_requirements.haml +41 -0
- data/lib/archsight/web/views/partials/instance/_view_detail.haml +57 -0
- data/lib/archsight/web/views/partials/layout/_content.haml +40 -0
- data/lib/archsight/web/views/partials/layout/_error.haml +22 -0
- data/lib/archsight/web/views/partials/layout/_head.haml +24 -0
- data/lib/archsight/web/views/partials/layout/_navigation.haml +20 -0
- data/lib/archsight/web/views/partials/layout/_sidebar.haml +27 -0
- data/lib/archsight/web/views/search.haml +53 -0
- data/lib/archsight.rb +17 -0
- metadata +311 -0
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
# Query Syntax
|
|
2
|
+
|
|
3
|
+
The search box supports a powerful query language for filtering architecture resources.
|
|
4
|
+
|
|
5
|
+
## Quick Start
|
|
6
|
+
|
|
7
|
+
| Query | Description |
|
|
8
|
+
|-------|-------------|
|
|
9
|
+
| `kubernetes` | Name contains "kubernetes" (case-insensitive) |
|
|
10
|
+
| `TechnologyArtifact:` | All resources of a specific kind |
|
|
11
|
+
| `activity/status == "active"` | Annotation equals value |
|
|
12
|
+
| `scc/loc == 15000` | Numeric equality |
|
|
13
|
+
| `activity/status?` | Annotation exists (is set) |
|
|
14
|
+
| `! activity/status?` | Annotation doesn't exist |
|
|
15
|
+
| `-> ApplicationInterface` | Has relation to a kind |
|
|
16
|
+
|
|
17
|
+
## Name Search
|
|
18
|
+
|
|
19
|
+
Type any word to search by name (case-insensitive regex match):
|
|
20
|
+
|
|
21
|
+
kubernetes # name =~ "kubernetes"
|
|
22
|
+
name == "MyService" # exact match
|
|
23
|
+
name =~ "repo-.*" # regex pattern
|
|
24
|
+
name != "OldService" # not equal
|
|
25
|
+
name in ("a", "b") # name is one of several options
|
|
26
|
+
|
|
27
|
+
## Kind Filter
|
|
28
|
+
|
|
29
|
+
Prefix your query with `Kind:` to filter by resource type:
|
|
30
|
+
|
|
31
|
+
TechnologyArtifact: # all of this kind
|
|
32
|
+
TechnologyArtifact: activity/status == "active" # filtered
|
|
33
|
+
ApplicationComponent: kubernetes # combined
|
|
34
|
+
|
|
35
|
+
You can also query the kind field directly using operators:
|
|
36
|
+
|
|
37
|
+
kind == "TechnologyArtifact" # exact kind match
|
|
38
|
+
kind =~ "Application.*" # regex match on kind
|
|
39
|
+
kind in ("TechnologyArtifact", "ApplicationComponent") # kind is one of list
|
|
40
|
+
|
|
41
|
+
## Annotation Queries
|
|
42
|
+
|
|
43
|
+
Query annotation values using comparison operators:
|
|
44
|
+
|
|
45
|
+
| Operator | Description |
|
|
46
|
+
|----------|-------------|
|
|
47
|
+
| `==` | Equals (numeric comparison for numbers) |
|
|
48
|
+
| `!=` | Not equals (numeric comparison for numbers) |
|
|
49
|
+
| `=~` | Regex match |
|
|
50
|
+
| `>` | Greater than |
|
|
51
|
+
| `<` | Less than |
|
|
52
|
+
| `>=` | Greater or equal |
|
|
53
|
+
| `<=` | Less or equal |
|
|
54
|
+
| `in` | Value is one of several options |
|
|
55
|
+
|
|
56
|
+
Examples:
|
|
57
|
+
|
|
58
|
+
activity/status == "active"
|
|
59
|
+
activity/status != "abandoned"
|
|
60
|
+
scc/language/Go/loc > 10000
|
|
61
|
+
scc/language/Go/loc == 15000 # exact numeric match
|
|
62
|
+
repository/artifacts =~ "container|chart"
|
|
63
|
+
repository/artifacts in ("container", "chart") # matches any listed value
|
|
64
|
+
|
|
65
|
+
### Quoted Annotation Paths
|
|
66
|
+
|
|
67
|
+
Use single quotes for annotation paths containing special characters (like `+`):
|
|
68
|
+
|
|
69
|
+
'scc/language/C++/loc' >= 500
|
|
70
|
+
'scc/language/C++/loc'?
|
|
71
|
+
activity/status == "active" & 'scc/language/C++ Header/loc' > 100
|
|
72
|
+
|
|
73
|
+
## Attribute Existence
|
|
74
|
+
|
|
75
|
+
Check if an annotation is set (exists) or not set (doesn't exist) using `?`:
|
|
76
|
+
|
|
77
|
+
activity/status? # annotation exists
|
|
78
|
+
! activity/status? # annotation doesn't exist
|
|
79
|
+
scc/language/Go/loc? # has Go code metrics
|
|
80
|
+
|
|
81
|
+
Combined examples:
|
|
82
|
+
|
|
83
|
+
activity/status? & ! backup/mode? # has status but no backup
|
|
84
|
+
TechnologyArtifact: ! activity/status? # artifacts without status set
|
|
85
|
+
|
|
86
|
+
## Logical Operators
|
|
87
|
+
|
|
88
|
+
Combine conditions with logical operators:
|
|
89
|
+
|
|
90
|
+
| Operator | Aliases |
|
|
91
|
+
|----------|---------|
|
|
92
|
+
| AND | `&` or `and` or `AND` |
|
|
93
|
+
| OR | pipe or `or` or `OR` |
|
|
94
|
+
| NOT | `!` or `not` or `NOT` |
|
|
95
|
+
|
|
96
|
+
Examples:
|
|
97
|
+
|
|
98
|
+
activity/status == "active" & repository/artifacts == "container"
|
|
99
|
+
repository/artifacts == "container" | repository/artifacts == "chart"
|
|
100
|
+
! activity/status == "abandoned"
|
|
101
|
+
(a == "1" | b == "2") & c == "3"
|
|
102
|
+
|
|
103
|
+
Precedence (highest to lowest): Parentheses, NOT, AND, OR
|
|
104
|
+
|
|
105
|
+
## Relation Queries
|
|
106
|
+
|
|
107
|
+
Find resources by their relationships:
|
|
108
|
+
|
|
109
|
+
| Syntax | Description |
|
|
110
|
+
|--------|-------------|
|
|
111
|
+
| `-> Kind` | Has direct outgoing relation to kind |
|
|
112
|
+
| `-> "Name"` | Has direct outgoing relation to instance |
|
|
113
|
+
| `<- Kind` | Has direct incoming relation from kind |
|
|
114
|
+
| `~>` | Transitive outgoing (follows chain) |
|
|
115
|
+
| `<~` | Transitive incoming (follows chain) |
|
|
116
|
+
| `-> none` | Has no outgoing relations |
|
|
117
|
+
| `<- none` | Has no incoming relations |
|
|
118
|
+
|
|
119
|
+
Examples:
|
|
120
|
+
|
|
121
|
+
-> ApplicationInterface # exposes an interface
|
|
122
|
+
-> "Kubernetes:RestAPI" # exposes specific interface
|
|
123
|
+
<- ApplicationComponent # referenced by a component
|
|
124
|
+
~> BusinessRequirement # transitively reaches requirement
|
|
125
|
+
-> none & <- none # orphan (no relations)
|
|
126
|
+
TechnologyArtifact: <- none # unreferenced artifacts
|
|
127
|
+
|
|
128
|
+
### Verb Filters
|
|
129
|
+
|
|
130
|
+
Filter relations by their verb (relation type) using `{verb}` syntax:
|
|
131
|
+
|
|
132
|
+
**Include verbs (allowlist):**
|
|
133
|
+
|
|
134
|
+
| Syntax | Description |
|
|
135
|
+
|--------|-------------|
|
|
136
|
+
| `-{verb}>` | Outgoing direct, only follow 'verb' relations |
|
|
137
|
+
| `~{verb}>` | Outgoing transitive, only follow 'verb' relations |
|
|
138
|
+
| `<{verb}-` | Incoming direct, only from 'verb' relations |
|
|
139
|
+
| `<{verb}~` | Incoming transitive, only from 'verb' relations |
|
|
140
|
+
| `-{v1,v2}>` | Multiple verbs (OR semantics - follow v1 OR v2) |
|
|
141
|
+
|
|
142
|
+
**Exclude verbs (denylist):**
|
|
143
|
+
|
|
144
|
+
| Syntax | Description |
|
|
145
|
+
|--------|-------------|
|
|
146
|
+
| `-{!verb}>` | Outgoing direct, follow all EXCEPT 'verb' |
|
|
147
|
+
| `~{!verb}>` | Outgoing transitive, follow all EXCEPT 'verb' |
|
|
148
|
+
| `<{!verb}-` | Incoming direct, all EXCEPT 'verb' |
|
|
149
|
+
| `<{!verb}~` | Incoming transitive, all EXCEPT 'verb' |
|
|
150
|
+
| `-{!v1,v2}>` | Exclude multiple verbs (exclude v1 AND v2) |
|
|
151
|
+
|
|
152
|
+
Examples:
|
|
153
|
+
|
|
154
|
+
# Only repos MAINTAINED by team (not contributed)
|
|
155
|
+
TechnologyArtifact: -{maintainedBy}> "MyTeam:Team"
|
|
156
|
+
|
|
157
|
+
# All relations EXCEPT contributedBy
|
|
158
|
+
TechnologyArtifact: -{!contributedBy}> "MyTeam:Team"
|
|
159
|
+
|
|
160
|
+
# Include multiple verbs
|
|
161
|
+
TechnologyArtifact: -{maintainedBy,contributedBy}> BusinessActor
|
|
162
|
+
|
|
163
|
+
# Exclude multiple verbs
|
|
164
|
+
TechnologyArtifact: -{!contributedBy,servedBy}> "MyTeam:Team"
|
|
165
|
+
|
|
166
|
+
# Transitive with verb filter
|
|
167
|
+
ApplicationComponent: ~{realizedThrough}> TechnologyArtifact
|
|
168
|
+
|
|
169
|
+
# Incoming with verb filter
|
|
170
|
+
BusinessActor: <{maintainedBy}- TechnologyArtifact
|
|
171
|
+
|
|
172
|
+
# Combined with sub-queries
|
|
173
|
+
TechnologyArtifact: -{maintainedBy}> $(BusinessActor: activity/status == "active")
|
|
174
|
+
|
|
175
|
+
# Find artifacts with NO maintainedBy relations
|
|
176
|
+
TechnologyArtifact: -{maintainedBy}> none
|
|
177
|
+
|
|
178
|
+
## Sub-Query Targets
|
|
179
|
+
|
|
180
|
+
Use `$(expression)` to dynamically find relation targets based on a query:
|
|
181
|
+
|
|
182
|
+
| Syntax | Description |
|
|
183
|
+
|--------|-------------|
|
|
184
|
+
| `-> $(expr)` | Has relation to any resource matching expr |
|
|
185
|
+
| `~> $(expr)` | Transitively reaches any resource matching expr |
|
|
186
|
+
| `<- $(expr)` | Has incoming relation from any resource matching expr |
|
|
187
|
+
| `<~ $(expr)` | Transitively reached by any resource matching expr |
|
|
188
|
+
|
|
189
|
+
Examples:
|
|
190
|
+
|
|
191
|
+
-> $(kubernetes) # relates to something named "kubernetes"
|
|
192
|
+
~> $(name == "MyAPI") # transitively reaches the instance "MyAPI"
|
|
193
|
+
<- $(TechnologyArtifact: activity/status == "active") # referenced by active artifacts
|
|
194
|
+
~> $(-> $(foo)) # nested: reaches something that reaches "foo"
|
|
195
|
+
|
|
196
|
+
Sub-queries support the full query syntax including kind filters and logical operators.
|
|
197
|
+
|
|
198
|
+
## Examples
|
|
199
|
+
|
|
200
|
+
Active containerized services:
|
|
201
|
+
|
|
202
|
+
TechnologyArtifact: activity/status == "active" & repository/artifacts == "container"
|
|
203
|
+
|
|
204
|
+
Services exposing APIs:
|
|
205
|
+
|
|
206
|
+
ApplicationComponent: -> ApplicationInterface
|
|
207
|
+
|
|
208
|
+
Large Go codebases:
|
|
209
|
+
|
|
210
|
+
TechnologyArtifact: scc/language/Go/loc > 5000
|
|
211
|
+
|
|
212
|
+
Resources with compliance chain:
|
|
213
|
+
|
|
214
|
+
~> BusinessRequirement
|
|
215
|
+
|
|
216
|
+
Complex query with grouping:
|
|
217
|
+
|
|
218
|
+
(repository/artifacts == "container" | repository/artifacts == "chart") & activity/status == "active"
|
|
219
|
+
|
|
220
|
+
Using `in` to simplify OR conditions:
|
|
221
|
+
|
|
222
|
+
# These two queries are equivalent:
|
|
223
|
+
repository/artifacts == "container" | repository/artifacts == "chart"
|
|
224
|
+
repository/artifacts in ("container", "chart")
|
|
225
|
+
|
|
226
|
+
# Combined with other conditions:
|
|
227
|
+
activity/status == "active" & repository/artifacts in ("container", "chart")
|
|
@@ -0,0 +1,255 @@
|
|
|
1
|
+
# TOGAF Reference
|
|
2
|
+
|
|
3
|
+
## How TOGAF Relates to Archsight
|
|
4
|
+
|
|
5
|
+
Archsight is a Ruby-based enterprise architecture documentation tool that uses a complementary combination of TOGAF and ArchiMate standards:
|
|
6
|
+
|
|
7
|
+
**TOGAF's Role - Conceptual Foundation:**
|
|
8
|
+
TOGAF provides the **enterprise architecture framework and metamodel** - defining what architecture elements exist, how they relate, and why they matter. It establishes:
|
|
9
|
+
|
|
10
|
+
- The content metamodel (entity types and their relationships)
|
|
11
|
+
- Architecture domains (Business, Data, Application, Technology)
|
|
12
|
+
- Governance and lifecycle concepts (baseline, target, transition architectures)
|
|
13
|
+
- Strategic alignment principles (drivers → goals → objectives → capabilities)
|
|
14
|
+
|
|
15
|
+
**ArchiMate's Role - Visual Communication:**
|
|
16
|
+
ArchiMate provides the **modeling language and notation** - defining how to visually represent and communicate architecture. Archsight uses ArchiMate concepts for:
|
|
17
|
+
|
|
18
|
+
- Visual notation and diagram syntax
|
|
19
|
+
- GraphViz-based visualizations
|
|
20
|
+
- Standardized representation of resource relationships
|
|
21
|
+
- Communication with stakeholders
|
|
22
|
+
|
|
23
|
+
**Archsight's Implementation:**
|
|
24
|
+
|
|
25
|
+
- **YAML Resources** implement TOGAF's content metamodel entities (Business Actor, Application Component, Technology Service, etc.)
|
|
26
|
+
- **Resource Relations** capture TOGAF's entity relationships for traceability and impact analysis
|
|
27
|
+
- **Directory Structure** follows TOGAF's four architecture domains
|
|
28
|
+
- **Visualizations** use ArchiMate-inspired notation to communicate these TOGAF-based resources
|
|
29
|
+
|
|
30
|
+
**In Summary:** TOGAF defines *what to document and why*, ArchiMate defines *how to visualize it*, and Archsight provides the *tool to manage and render* both as YAML-based architecture documentation.
|
|
31
|
+
|
|
32
|
+
This reference helps Archsight users understand the TOGAF concepts underlying their architecture resources, while recognizing that visual communication follows ArchiMate conventions.
|
|
33
|
+
|
|
34
|
+
## Overview
|
|
35
|
+
|
|
36
|
+
TOGAF (The Open Group Architecture Framework) is a comprehensive framework for enterprise architecture that provides an approach for designing, planning, implementing, and governing enterprise information technology architecture. TOGAF is developed and maintained by The Open Group.
|
|
37
|
+
|
|
38
|
+

|
|
39
|
+
|
|
40
|
+
## Architecture Development Method (ADM)
|
|
41
|
+
|
|
42
|
+
The ADM is TOGAF's core - a step-by-step iterative approach to developing enterprise architecture:
|
|
43
|
+
|
|
44
|
+
1. **Preliminary Phase** - Preparation and initiation
|
|
45
|
+
2. **Phase A: Architecture Vision** - Define scope, stakeholders, create vision
|
|
46
|
+
3. **Phase B: Business Architecture** - Business strategy, processes, capabilities
|
|
47
|
+
4. **Phase C: Information Systems** - Application and Data Architectures
|
|
48
|
+
5. **Phase D: Technology Architecture** - Infrastructure and platforms
|
|
49
|
+
6. **Phase E: Opportunities & Solutions** - Initial implementation planning
|
|
50
|
+
7. **Phase F: Migration Planning** - Detailed migration plans
|
|
51
|
+
8. **Phase G: Implementation Governance** - Oversight of implementation
|
|
52
|
+
9. **Phase H: Architecture Change Management** - Manage ongoing change
|
|
53
|
+
10. **Requirements Management** - Central hub managing requirements
|
|
54
|
+
|
|
55
|
+
The ADM is iterative, adaptable to organizational needs, and stakeholder-driven.
|
|
56
|
+
|
|
57
|
+
## Architecture Domains
|
|
58
|
+
|
|
59
|
+
TOGAF organizes architecture into four interconnected domains:
|
|
60
|
+
|
|
61
|
+
### Business Architecture
|
|
62
|
+
|
|
63
|
+
Strategy, governance, organization, and business processes.
|
|
64
|
+
|
|
65
|
+
**Elements:** Business capabilities, value streams, processes, functions, services, organizational structure
|
|
66
|
+
|
|
67
|
+
### Data Architecture
|
|
68
|
+
|
|
69
|
+
Logical and physical data assets and management.
|
|
70
|
+
|
|
71
|
+
**Elements:** Data entities, models, quality, governance, master data
|
|
72
|
+
|
|
73
|
+
### Application Architecture
|
|
74
|
+
|
|
75
|
+
Application systems, interactions, and business process relationships.
|
|
76
|
+
|
|
77
|
+
**Elements:** Application components, services, interfaces, functions
|
|
78
|
+
|
|
79
|
+
### Technology Architecture
|
|
80
|
+
|
|
81
|
+
Software and hardware capabilities supporting business, data, and applications.
|
|
82
|
+
|
|
83
|
+
**Elements:** Platforms, infrastructure, network, hardware, middleware, technology services
|
|
84
|
+
|
|
85
|
+
## TOGAF Content Metamodel
|
|
86
|
+
|
|
87
|
+
The metamodel defines architectural entities and their relationships across all domains. Understanding these connections is essential for comprehensive architecture documentation.
|
|
88
|
+
|
|
89
|
+
### Core Entity Categories
|
|
90
|
+
|
|
91
|
+
**Motivation Layer:**
|
|
92
|
+
|
|
93
|
+
- **Driver** → **Goal** → **Objective** → **Course of Action**
|
|
94
|
+
- Measures track objectives; value streams deliver capabilities
|
|
95
|
+
|
|
96
|
+
**Organizational:**
|
|
97
|
+
|
|
98
|
+
- **Organization Unit** contains **Actors** performing **Roles**
|
|
99
|
+
- Actors and roles participate in business functions and processes
|
|
100
|
+
|
|
101
|
+
**Business Behavior:**
|
|
102
|
+
|
|
103
|
+
- **Business Capability** realized by **Business Functions** and **Processes**
|
|
104
|
+
- **Business Service** uses functions/processes, automates application services
|
|
105
|
+
- **Value Stream** enabled by capabilities, operationalized through processes
|
|
106
|
+
- **Events** trigger processes; **Products** result from them
|
|
107
|
+
|
|
108
|
+
**Data Architecture:**
|
|
109
|
+
|
|
110
|
+
- **Data Entity** → **Logical Data Component** → **Physical Data Component**
|
|
111
|
+
- Data entities accessed by business/application services
|
|
112
|
+
|
|
113
|
+
**Application Architecture:**
|
|
114
|
+
|
|
115
|
+
- **Application Service** → **Logical Application Component** → **Physical Application Component**
|
|
116
|
+
- Application services automate business services, use data components
|
|
117
|
+
|
|
118
|
+
**Technology Architecture:**
|
|
119
|
+
|
|
120
|
+
- **Technology Service** → **Logical Technology Component** → **Physical Technology Component**
|
|
121
|
+
- Technology services support application services and components
|
|
122
|
+
|
|
123
|
+
**Cross-Cutting:**
|
|
124
|
+
|
|
125
|
+
- **Principle**, **Constraint**, **Requirement**, **Gap**, **Work Package**, **Location**
|
|
126
|
+
|
|
127
|
+
### Critical Relationships
|
|
128
|
+
|
|
129
|
+
1. **Traceability**: Drivers → Goals → Objectives → Course of Action → Business Elements → Applications → Technology
|
|
130
|
+
2. **Service Layers**: Business Services → Application Services → Technology Services
|
|
131
|
+
3. **Logical-Physical**: All domains separate logical design from physical implementation
|
|
132
|
+
4. **Value Chain**: Value Stream → Business Capability → Business Service → Application Service
|
|
133
|
+
5. **Data Flow**: Business Process → Data Entity → Logical Component → Physical Component
|
|
134
|
+
|
|
135
|
+
### Artifacts & Deliverables
|
|
136
|
+
|
|
137
|
+
**Artifacts** (work products describing architecture):
|
|
138
|
+
|
|
139
|
+
- **Catalogs** - Lists of building blocks
|
|
140
|
+
- **Matrices** - Relationship mappings
|
|
141
|
+
- **Diagrams** - Visual representations
|
|
142
|
+
|
|
143
|
+
**Deliverables** (contractual work products):
|
|
144
|
+
|
|
145
|
+
- Architecture Vision, Definition Document, Requirements Specification
|
|
146
|
+
- Architecture Roadmap, Capability Assessment
|
|
147
|
+
- Implementation and Migration Plan, Transition Architecture
|
|
148
|
+
|
|
149
|
+
## Building Blocks
|
|
150
|
+
|
|
151
|
+
### Architecture Building Blocks (ABBs)
|
|
152
|
+
|
|
153
|
+
Define **what** functionality is required - architecture entities, relationships, and requirements that guide solution development.
|
|
154
|
+
|
|
155
|
+
### Solution Building Blocks (SBBs)
|
|
156
|
+
|
|
157
|
+
Define **how** functionality is implemented - specific implementations mapping to actual products and technologies.
|
|
158
|
+
|
|
159
|
+
**Characteristics:** Well-defined interfaces and functionality, interoperable, replaceable, reusable
|
|
160
|
+
|
|
161
|
+
## Architecture Governance & Change
|
|
162
|
+
|
|
163
|
+
### Change Profiles
|
|
164
|
+
|
|
165
|
+
- **Rapid Change** - Fast iterations, minimal governance, focus on innovation
|
|
166
|
+
- **Functional Change** - Balanced approach, standard governance (most common)
|
|
167
|
+
- **Robust Change** - Rigorous governance, high assurance, compliance-critical
|
|
168
|
+
|
|
169
|
+
### Governance Framework
|
|
170
|
+
|
|
171
|
+
- Architecture Board and contracts
|
|
172
|
+
- Compliance reviews at project milestones
|
|
173
|
+
- Configuration and version management
|
|
174
|
+
- Dispensations and exception handling
|
|
175
|
+
|
|
176
|
+
### Key Concepts
|
|
177
|
+
|
|
178
|
+
- **Baseline Architecture** - Current state
|
|
179
|
+
- **Target Architecture** - Desired future state
|
|
180
|
+
- **Transition Architectures** - Intermediate states
|
|
181
|
+
- **Gap Analysis** - Compare baseline to target, identify changes needed
|
|
182
|
+
- **Architecture Repository** - Central storage for metamodel, capability, landscape, standards
|
|
183
|
+
|
|
184
|
+
## Integration with Other Frameworks
|
|
185
|
+
|
|
186
|
+
### TOGAF and ArchiMate
|
|
187
|
+
|
|
188
|
+
- **TOGAF** provides the process (ADM) and content framework
|
|
189
|
+
- **ArchiMate** provides the modeling language and notation
|
|
190
|
+
- Complementary: ArchiMate is TOGAF's recommended modeling language
|
|
191
|
+
|
|
192
|
+
### TOGAF and Agile
|
|
193
|
+
|
|
194
|
+
- ADM adapts to agile delivery through iterations
|
|
195
|
+
- Architecture vision provides guardrails
|
|
196
|
+
- Continuous architecture refinement supports rapid change
|
|
197
|
+
|
|
198
|
+
### Other Integrations
|
|
199
|
+
|
|
200
|
+
- **COBIT** - IT governance alignment
|
|
201
|
+
- **ITIL** - Service management integration
|
|
202
|
+
|
|
203
|
+
## Architecture Principles
|
|
204
|
+
|
|
205
|
+
General rules guiding IT resource use and deployment:
|
|
206
|
+
|
|
207
|
+
**Structure:** Name, Statement, Rationale, Implications
|
|
208
|
+
|
|
209
|
+
**Examples:**
|
|
210
|
+
|
|
211
|
+
- Business Continuity - Ensure operations continue
|
|
212
|
+
- Data is an Asset - Manage strategically
|
|
213
|
+
- Data is Shared - Eliminate redundancy
|
|
214
|
+
- Technology Independence - Avoid vendor lock-in
|
|
215
|
+
- Interoperability - Enable seamless integration
|
|
216
|
+
- Requirements Based Change - Justify all changes
|
|
217
|
+
|
|
218
|
+
## Viewpoints and Views
|
|
219
|
+
|
|
220
|
+
### Viewpoint
|
|
221
|
+
|
|
222
|
+
Specification for constructing views - defines stakeholders, concerns, models, techniques, and notations. Reusable across projects.
|
|
223
|
+
|
|
224
|
+
### View
|
|
225
|
+
|
|
226
|
+
Representation of the system from specific stakeholder perspectives, addressing their concerns using models defined by viewpoints.
|
|
227
|
+
|
|
228
|
+
**Common Viewpoints:** Enterprise, Information System, Computing Platform, Communications, Security, Business Process, Application
|
|
229
|
+
|
|
230
|
+
## Key TOGAF Benefits
|
|
231
|
+
|
|
232
|
+
- **Standardization** - Common language and framework across the enterprise
|
|
233
|
+
- **Efficiency** - Reusable processes and proven patterns
|
|
234
|
+
- **Risk Reduction** - Proven approach minimizes project failures
|
|
235
|
+
- **Better Decisions** - Holistic view enables informed strategic choices
|
|
236
|
+
- **Alignment** - Ensures business and IT work toward common goals
|
|
237
|
+
- **Flexibility** - Adaptable to various industries and organizational contexts
|
|
238
|
+
|
|
239
|
+
## TOGAF Terminology Quick Reference
|
|
240
|
+
|
|
241
|
+
- **Enterprise** - Collection of organizations with common goals
|
|
242
|
+
- **Architecture** - Fundamental concepts/properties of a system in its environment
|
|
243
|
+
- **Building Block** - Component of business or IT capability (reusable architectural component)
|
|
244
|
+
- **Artifact** - Architectural work product (catalog, matrix, diagram)
|
|
245
|
+
- **Deliverable** - Contractually specified work product
|
|
246
|
+
- **Viewpoint** - Perspective from which a view is taken
|
|
247
|
+
- **View** - System representation addressing specific concerns
|
|
248
|
+
- **Baseline** - Current architecture state
|
|
249
|
+
- **Target** - Desired future architecture state
|
|
250
|
+
- **Gap** - Difference between baseline and target requiring action
|
|
251
|
+
|
|
252
|
+
## Resources & Version History
|
|
253
|
+
|
|
254
|
+
**Reference:** The TOGAF® Standard, 10th Edition - The [Open Group Architecture Framework](https://www.opengroup.org/togaf)
|
|
255
|
+
Copyright © The Open Group
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
# Tool Guide
|
|
2
|
+
|
|
3
|
+
The Architecture Tool provides a web interface for exploring and managing architecture resources defined in YAML files.
|
|
4
|
+
|
|
5
|
+
## Navigation
|
|
6
|
+
|
|
7
|
+
### Home
|
|
8
|
+
|
|
9
|
+
The home page displays an overview graph of all architecture resources and their relationships. Click on any node to navigate to its detail page.
|
|
10
|
+
|
|
11
|
+
### Sidebar
|
|
12
|
+
|
|
13
|
+
The left sidebar lists all resource types (kinds). Click on a kind to see all instances of that type.
|
|
14
|
+
|
|
15
|
+
### Search
|
|
16
|
+
|
|
17
|
+
The search box in the navigation bar supports a powerful query language. See [Query Syntax](/doc/search) for details.
|
|
18
|
+
|
|
19
|
+
Quick examples:
|
|
20
|
+
|
|
21
|
+
- `kubernetes` - Find resources with "kubernetes" in the name
|
|
22
|
+
- `TechnologyArtifact:` - List all technology artifacts
|
|
23
|
+
- `activity/status == "active"` - Filter by annotation value
|
|
24
|
+
|
|
25
|
+
### Help
|
|
26
|
+
|
|
27
|
+
Click the help icon next to the search box to access this documentation.
|
|
28
|
+
|
|
29
|
+
### Reload
|
|
30
|
+
|
|
31
|
+
Click "Reload" to refresh the architecture database from YAML files. Use this after editing resource files.
|
|
32
|
+
|
|
33
|
+
## Resource Detail View
|
|
34
|
+
|
|
35
|
+
When viewing a resource, you'll see:
|
|
36
|
+
|
|
37
|
+
### Header
|
|
38
|
+
|
|
39
|
+
- Resource name and kind
|
|
40
|
+
- Icon representing the resource type
|
|
41
|
+
|
|
42
|
+
### Annotations
|
|
43
|
+
|
|
44
|
+
Key-value metadata about the resource. Click on annotation values to filter by that value.
|
|
45
|
+
|
|
46
|
+
### Relations
|
|
47
|
+
|
|
48
|
+
Connections to other resources, organized by relation type:
|
|
49
|
+
|
|
50
|
+
- **Outgoing relations** - What this resource connects to
|
|
51
|
+
- **Incoming relations** - What connects to this resource
|
|
52
|
+
|
|
53
|
+
Click on related resources to navigate to them.
|
|
54
|
+
|
|
55
|
+
### Graph
|
|
56
|
+
|
|
57
|
+
A visual representation of the resource and its immediate relationships.
|
|
58
|
+
|
|
59
|
+
## Views
|
|
60
|
+
|
|
61
|
+
Views are saved queries with custom display options. Create views to quickly access commonly needed information.
|
|
62
|
+
|
|
63
|
+
View configuration:
|
|
64
|
+
|
|
65
|
+
- `view/query` - The search query to execute
|
|
66
|
+
- `view/fields` - Comma-separated annotation fields to display as columns
|
|
67
|
+
- `view/type` - Display format (`list:name` or `list:name+kind`)
|
|
68
|
+
- `view/sort` - Sort order (prefix with `-` for descending)
|
|
69
|
+
|
|
70
|
+
## YAML Resource Files
|
|
71
|
+
|
|
72
|
+
Resources are defined in YAML files under the `resources/` directory. Each file contains one or more resource definitions.
|
|
73
|
+
|
|
74
|
+
Basic structure:
|
|
75
|
+
|
|
76
|
+
```yaml
|
|
77
|
+
kind: TechnologyArtifact
|
|
78
|
+
name: my-service
|
|
79
|
+
spec:
|
|
80
|
+
description: Service description
|
|
81
|
+
annotations:
|
|
82
|
+
activity/status: active
|
|
83
|
+
repository/artifacts: container
|
|
84
|
+
relations:
|
|
85
|
+
maintainedBy:
|
|
86
|
+
businessActors:
|
|
87
|
+
- TeamName
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
See [Architecture Modeling](/doc/modeling) for guidance on structuring your architecture.
|