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.
Files changed (122) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +24 -0
  3. data/CODE_OF_CONDUCT.md +10 -0
  4. data/CONTRIBUTING.md +186 -0
  5. data/Dockerfile +39 -0
  6. data/LICENSE.txt +201 -0
  7. data/README.md +170 -0
  8. data/SECURITY.md +27 -0
  9. data/exe/archsight +9 -0
  10. data/lib/archsight/annotations/aggregators.rb +109 -0
  11. data/lib/archsight/annotations/annotation.rb +168 -0
  12. data/lib/archsight/annotations/architecture_annotations.rb +59 -0
  13. data/lib/archsight/annotations/backup_annotations.rb +21 -0
  14. data/lib/archsight/annotations/computed.rb +264 -0
  15. data/lib/archsight/annotations/email_recipient.rb +35 -0
  16. data/lib/archsight/annotations/generated_annotations.rb +17 -0
  17. data/lib/archsight/annotations/git_annotations.rb +21 -0
  18. data/lib/archsight/annotations/relation_resolver.rb +160 -0
  19. data/lib/archsight/cli.rb +120 -0
  20. data/lib/archsight/configuration.rb +36 -0
  21. data/lib/archsight/database.rb +183 -0
  22. data/lib/archsight/documentation.rb +171 -0
  23. data/lib/archsight/graph.rb +113 -0
  24. data/lib/archsight/helpers.rb +210 -0
  25. data/lib/archsight/linter.rb +77 -0
  26. data/lib/archsight/mcp/analyze_resource_tool.rb +222 -0
  27. data/lib/archsight/mcp/base.rb +48 -0
  28. data/lib/archsight/mcp/query_tool.rb +113 -0
  29. data/lib/archsight/mcp/resource_doc_tool.rb +87 -0
  30. data/lib/archsight/mcp.rb +6 -0
  31. data/lib/archsight/query/ast.rb +279 -0
  32. data/lib/archsight/query/errors.rb +39 -0
  33. data/lib/archsight/query/evaluator.rb +707 -0
  34. data/lib/archsight/query/lexer.rb +289 -0
  35. data/lib/archsight/query/parser.rb +506 -0
  36. data/lib/archsight/query.rb +68 -0
  37. data/lib/archsight/renderer.rb +134 -0
  38. data/lib/archsight/resources/application_component.rb +346 -0
  39. data/lib/archsight/resources/application_interface.rb +54 -0
  40. data/lib/archsight/resources/application_service.rb +222 -0
  41. data/lib/archsight/resources/base.rb +300 -0
  42. data/lib/archsight/resources/business_actor.rb +195 -0
  43. data/lib/archsight/resources/business_constraint.rb +32 -0
  44. data/lib/archsight/resources/business_process.rb +37 -0
  45. data/lib/archsight/resources/business_product.rb +206 -0
  46. data/lib/archsight/resources/business_requirement.rb +56 -0
  47. data/lib/archsight/resources/compliance_evidence.rb +42 -0
  48. data/lib/archsight/resources/data_object.rb +49 -0
  49. data/lib/archsight/resources/motivation_goal.rb +37 -0
  50. data/lib/archsight/resources/motivation_outcome.rb +33 -0
  51. data/lib/archsight/resources/motivation_stakeholder.rb +38 -0
  52. data/lib/archsight/resources/strategy_capability.rb +38 -0
  53. data/lib/archsight/resources/technology_artifact.rb +154 -0
  54. data/lib/archsight/resources/technology_interface.rb +34 -0
  55. data/lib/archsight/resources/technology_node.rb +42 -0
  56. data/lib/archsight/resources/technology_service.rb +35 -0
  57. data/lib/archsight/resources/technology_system_software.rb +37 -0
  58. data/lib/archsight/resources/view.rb +51 -0
  59. data/lib/archsight/resources.rb +49 -0
  60. data/lib/archsight/template.rb +49 -0
  61. data/lib/archsight/version.rb +5 -0
  62. data/lib/archsight/web/application.rb +290 -0
  63. data/lib/archsight/web/doc/archimate.md +215 -0
  64. data/lib/archsight/web/doc/computed_annotations.md +316 -0
  65. data/lib/archsight/web/doc/icons.md +303 -0
  66. data/lib/archsight/web/doc/index.md.erb +74 -0
  67. data/lib/archsight/web/doc/modeling.md +200 -0
  68. data/lib/archsight/web/doc/search.md +227 -0
  69. data/lib/archsight/web/doc/togaf.md +255 -0
  70. data/lib/archsight/web/doc/tool.md +90 -0
  71. data/lib/archsight/web/public/css/artifact.css +985 -0
  72. data/lib/archsight/web/public/css/base.css +201 -0
  73. data/lib/archsight/web/public/css/graph.css +106 -0
  74. data/lib/archsight/web/public/css/highlight.min.css +10 -0
  75. data/lib/archsight/web/public/css/iconoir.css +22 -0
  76. data/lib/archsight/web/public/css/instance.css +329 -0
  77. data/lib/archsight/web/public/css/layout.css +421 -0
  78. data/lib/archsight/web/public/css/mermaid-layers.css +188 -0
  79. data/lib/archsight/web/public/css/pico.min.css +4 -0
  80. data/lib/archsight/web/public/favicon.ico +0 -0
  81. data/lib/archsight/web/public/img/archimate.png +0 -0
  82. data/lib/archsight/web/public/img/togaf-high-level.png +0 -0
  83. data/lib/archsight/web/public/js/graph-zoom.js +18 -0
  84. data/lib/archsight/web/public/js/highlight.min.js +3899 -0
  85. data/lib/archsight/web/public/js/htmx.min.js +1 -0
  86. data/lib/archsight/web/public/js/mermaid-init.js +88 -0
  87. data/lib/archsight/web/public/js/mermaid.min.js +2811 -0
  88. data/lib/archsight/web/public/js/sparkline.js +42 -0
  89. data/lib/archsight/web/public/js/svg-pan-zoom.min.js +3 -0
  90. data/lib/archsight/web/public/js/svg-zoom-controls.js +93 -0
  91. data/lib/archsight/web/views/index.haml +12 -0
  92. data/lib/archsight/web/views/partials/artifact/_activity.haml +55 -0
  93. data/lib/archsight/web/views/partials/artifact/_agentic.haml +25 -0
  94. data/lib/archsight/web/views/partials/artifact/_deployment.haml +29 -0
  95. data/lib/archsight/web/views/partials/artifact/_git_info.haml +16 -0
  96. data/lib/archsight/web/views/partials/artifact/_language_stats.haml +53 -0
  97. data/lib/archsight/web/views/partials/artifact/_links.haml +24 -0
  98. data/lib/archsight/web/views/partials/artifact/_project_estimate.haml +26 -0
  99. data/lib/archsight/web/views/partials/artifact/_repositories.haml +55 -0
  100. data/lib/archsight/web/views/partials/artifact/_team.haml +83 -0
  101. data/lib/archsight/web/views/partials/artifact/_workflow.haml +69 -0
  102. data/lib/archsight/web/views/partials/components/_activity.haml +37 -0
  103. data/lib/archsight/web/views/partials/components/_git.haml +17 -0
  104. data/lib/archsight/web/views/partials/components/_jira.haml +18 -0
  105. data/lib/archsight/web/views/partials/components/_languages.haml +29 -0
  106. data/lib/archsight/web/views/partials/components/_owner.haml +15 -0
  107. data/lib/archsight/web/views/partials/components/_repositories.haml +37 -0
  108. data/lib/archsight/web/views/partials/components/_status.haml +23 -0
  109. data/lib/archsight/web/views/partials/instance/_detail.haml +99 -0
  110. data/lib/archsight/web/views/partials/instance/_graph.haml +6 -0
  111. data/lib/archsight/web/views/partials/instance/_list.haml +84 -0
  112. data/lib/archsight/web/views/partials/instance/_relations.haml +43 -0
  113. data/lib/archsight/web/views/partials/instance/_requirements.haml +41 -0
  114. data/lib/archsight/web/views/partials/instance/_view_detail.haml +57 -0
  115. data/lib/archsight/web/views/partials/layout/_content.haml +40 -0
  116. data/lib/archsight/web/views/partials/layout/_error.haml +22 -0
  117. data/lib/archsight/web/views/partials/layout/_head.haml +24 -0
  118. data/lib/archsight/web/views/partials/layout/_navigation.haml +20 -0
  119. data/lib/archsight/web/views/partials/layout/_sidebar.haml +27 -0
  120. data/lib/archsight/web/views/search.haml +53 -0
  121. data/lib/archsight.rb +17 -0
  122. 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
+ ![TOGAF](/img/togaf-high-level.png)
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.