archsight 0.1.0 → 0.1.2
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 +4 -4
- data/CONTRIBUTING.md +1 -1
- data/Dockerfile +21 -22
- data/README.md +12 -7
- data/exe/archsight +3 -1
- data/lib/archsight/cli.rb +1 -0
- data/lib/archsight/graph.rb +4 -4
- data/lib/archsight/version.rb +4 -1
- data/lib/archsight/web/application.rb +3 -1
- data/lib/archsight/web/doc/index.md.erb +1 -1
- metadata +5 -9
- data/CHANGELOG.md +0 -24
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 5daf787a0535e787bb31a5abbe46e8da7621256e710dd59ec7328c116b988df4
|
|
4
|
+
data.tar.gz: e662425404ec865eef3701723135c103e688e43bb8d560708f936dd9021acd88
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: c31f6486348cd3e4e2b3a8247071f3f1ddbe139b0cb20faeba51167122d860d74cf205128532d6184ac78a9eac5be64ccee28c41dec9fff094963d77e1ee34bc
|
|
7
|
+
data.tar.gz: cb36b1eb48ed9c44985925e2e54ffa7c74d66ee51ca0407882151db27ce34168f747dc9cb4aadbfe35c19d1fb5c5a1b3860741635a6a342a810faac926638885
|
data/CONTRIBUTING.md
CHANGED
data/Dockerfile
CHANGED
|
@@ -1,39 +1,38 @@
|
|
|
1
|
-
|
|
1
|
+
# Build stage
|
|
2
|
+
FROM ruby:4.0-alpine3.23 AS builder
|
|
2
3
|
|
|
3
|
-
|
|
4
|
-
RUN apk add --no-cache \
|
|
5
|
-
build-base \
|
|
6
|
-
git \
|
|
7
|
-
libffi-dev \
|
|
8
|
-
yaml-dev \
|
|
9
|
-
graphviz
|
|
4
|
+
RUN apk add --no-cache build-base git libffi-dev yaml-dev
|
|
10
5
|
|
|
11
|
-
# Set working directory
|
|
12
6
|
WORKDIR /app
|
|
7
|
+
COPY . .
|
|
8
|
+
|
|
9
|
+
# Build and install the gem
|
|
10
|
+
RUN gem build archsight.gemspec && \
|
|
11
|
+
gem install --no-document archsight-*.gem
|
|
13
12
|
|
|
14
|
-
#
|
|
15
|
-
|
|
16
|
-
COPY lib/archsight/version.rb lib/archsight/version.rb
|
|
13
|
+
# Runtime stage
|
|
14
|
+
FROM ruby:4.0-alpine3.23
|
|
17
15
|
|
|
18
|
-
|
|
19
|
-
RUN bundle install --jobs 4
|
|
16
|
+
RUN apk add --no-cache graphviz
|
|
20
17
|
|
|
21
|
-
# Copy
|
|
22
|
-
COPY
|
|
18
|
+
# Copy installed gems from builder (including default gems that were updated)
|
|
19
|
+
COPY --from=builder /usr/local/bundle /usr/local/bundle
|
|
20
|
+
COPY --from=builder /usr/local/lib/ruby/gems /usr/local/lib/ruby/gems
|
|
21
|
+
|
|
22
|
+
# Ensure Ruby finds gems in both /usr/local/bundle and default gems location
|
|
23
|
+
ENV GEM_HOME=/usr/local/bundle
|
|
24
|
+
ENV GEM_PATH=/usr/local/bundle:/usr/local/lib/ruby/gems/4.0.0
|
|
25
|
+
ENV PATH="/usr/local/bundle/bin:${PATH}"
|
|
23
26
|
|
|
24
|
-
# Create volume mount point for resources
|
|
25
27
|
RUN mkdir -p /resources
|
|
26
28
|
|
|
27
|
-
# Set resources directory environment variable
|
|
28
29
|
ENV ARCHSIGHT_RESOURCES_DIR=/resources
|
|
29
30
|
ENV APP_ENV=production
|
|
30
31
|
|
|
31
|
-
# Expose port for web server
|
|
32
32
|
EXPOSE 4567
|
|
33
33
|
|
|
34
|
-
# Health check
|
|
35
34
|
HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \
|
|
36
35
|
CMD wget --no-verbose --tries=1 --spider http://localhost:4567/ || exit 1
|
|
37
36
|
|
|
38
|
-
|
|
39
|
-
CMD ["
|
|
37
|
+
ENTRYPOINT ["archsight"]
|
|
38
|
+
CMD ["web", "--port", "4567"]
|
data/README.md
CHANGED
|
@@ -41,18 +41,23 @@ Access at: <http://localhost:4567>
|
|
|
41
41
|
### Option 2: Docker
|
|
42
42
|
|
|
43
43
|
```bash
|
|
44
|
-
|
|
45
|
-
docker run -p 4567:4567 -v "/path/to/resources:/resources" archsight
|
|
44
|
+
# Run web server (default)
|
|
45
|
+
docker run -p 4567:4567 -v "/path/to/resources:/resources" ghcr.io/ionos-cloud/archsight
|
|
46
|
+
|
|
47
|
+
# Run lint
|
|
48
|
+
docker run -v "/path/to/resources:/resources" ghcr.io/ionos-cloud/archsight lint -r /resources
|
|
49
|
+
|
|
50
|
+
# Run any command
|
|
51
|
+
docker run ghcr.io/ionos-cloud/archsight version
|
|
46
52
|
```
|
|
47
53
|
|
|
48
|
-
Access at: <http://localhost:4567>
|
|
54
|
+
Access web interface at: <http://localhost:4567>
|
|
49
55
|
|
|
50
56
|
**Notes:**
|
|
51
57
|
|
|
52
|
-
-
|
|
53
|
-
-
|
|
54
|
-
-
|
|
55
|
-
- Health check verifies the service is running
|
|
58
|
+
- Volume mount `-v "/path/to/resources:/resources"` mounts your resources directory
|
|
59
|
+
- Default command starts the web server on port 4567
|
|
60
|
+
- Pass subcommands directly (lint, version, console, template)
|
|
56
61
|
|
|
57
62
|
## CLI Commands
|
|
58
63
|
|
data/exe/archsight
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
#!/usr/bin/env ruby
|
|
2
2
|
# frozen_string_literal: true
|
|
3
3
|
|
|
4
|
-
|
|
4
|
+
# Support running from source (development)
|
|
5
|
+
lib_path = File.expand_path("../lib", __dir__)
|
|
6
|
+
$LOAD_PATH.unshift(lib_path) if File.directory?(File.join(lib_path, "archsight"))
|
|
5
7
|
|
|
6
8
|
require "archsight"
|
|
7
9
|
require "archsight/cli"
|
data/lib/archsight/cli.rb
CHANGED
data/lib/archsight/graph.rb
CHANGED
|
@@ -9,9 +9,9 @@ module Archsight
|
|
|
9
9
|
@attrs = { rankdir: :LR }.merge(attrs)
|
|
10
10
|
end
|
|
11
11
|
|
|
12
|
-
def draw_and_render_file(&
|
|
12
|
+
def draw_and_render_file(&)
|
|
13
13
|
File.open("#{@name}.dot", "w") do |f|
|
|
14
|
-
render(f, &
|
|
14
|
+
render(f, &)
|
|
15
15
|
end
|
|
16
16
|
system "#{@renderer} -Tpng #{@name}.dot -o #{@name}.png"
|
|
17
17
|
end
|
|
@@ -22,9 +22,9 @@ module Archsight
|
|
|
22
22
|
f.string
|
|
23
23
|
end
|
|
24
24
|
|
|
25
|
-
def draw_svg(&
|
|
25
|
+
def draw_svg(&)
|
|
26
26
|
IO.popen([@renderer, "-Tsvg"], "r+") do |pipe|
|
|
27
|
-
render(pipe, &
|
|
27
|
+
render(pipe, &)
|
|
28
28
|
pipe.close_write
|
|
29
29
|
pipe.read
|
|
30
30
|
end
|
data/lib/archsight/version.rb
CHANGED
|
@@ -56,7 +56,9 @@ class Archsight::Web::Application < Sinatra::Base
|
|
|
56
56
|
mcp_server.register_tool(Archsight::MCP::AnalyzeResourceTool)
|
|
57
57
|
mcp_server.register_tool(Archsight::MCP::ResourceDocTool)
|
|
58
58
|
|
|
59
|
-
use FastMcp::Transports::RackTransport, mcp_server,
|
|
59
|
+
use FastMcp::Transports::RackTransport, mcp_server,
|
|
60
|
+
path_prefix: "/mcp",
|
|
61
|
+
localhost_only: false
|
|
60
62
|
end
|
|
61
63
|
|
|
62
64
|
helpers Archsight::GraphvisHelper, Archsight::GraphvisRenderer, Archsight::Helpers
|
|
@@ -13,7 +13,7 @@ Welcome to the Architecture Documentation System. This documentation covers how
|
|
|
13
13
|
The following diagram shows all resource types organized by layer and their relationships:
|
|
14
14
|
|
|
15
15
|
```mermaid
|
|
16
|
-
<%= Documentation.generate_mermaid_diagram %>
|
|
16
|
+
<%= Archsight::Documentation.generate_mermaid_diagram %>
|
|
17
17
|
```
|
|
18
18
|
|
|
19
19
|
## Resource Types
|
metadata
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: archsight
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Vincent Landgraf
|
|
8
|
-
autorequire:
|
|
9
8
|
bindir: exe
|
|
10
9
|
cert_chain: []
|
|
11
|
-
date:
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
12
11
|
dependencies:
|
|
13
12
|
- !ruby/object:Gem::Dependency
|
|
14
13
|
name: fast-mcp
|
|
@@ -160,7 +159,6 @@ executables:
|
|
|
160
159
|
extensions: []
|
|
161
160
|
extra_rdoc_files: []
|
|
162
161
|
files:
|
|
163
|
-
- CHANGELOG.md
|
|
164
162
|
- CODE_OF_CONDUCT.md
|
|
165
163
|
- CONTRIBUTING.md
|
|
166
164
|
- Dockerfile
|
|
@@ -286,10 +284,9 @@ licenses:
|
|
|
286
284
|
metadata:
|
|
287
285
|
homepage_uri: https://github.com/ionos-cloud/archsight
|
|
288
286
|
source_code_uri: https://github.com/ionos-cloud/archsight
|
|
289
|
-
changelog_uri: https://github.com/ionos-cloud/archsight/
|
|
287
|
+
changelog_uri: https://github.com/ionos-cloud/archsight/releases
|
|
290
288
|
bug_tracker_uri: https://github.com/ionos-cloud/archsight/issues
|
|
291
289
|
rubygems_mfa_required: 'true'
|
|
292
|
-
post_install_message:
|
|
293
290
|
rdoc_options: []
|
|
294
291
|
require_paths:
|
|
295
292
|
- lib
|
|
@@ -297,15 +294,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
297
294
|
requirements:
|
|
298
295
|
- - ">="
|
|
299
296
|
- !ruby/object:Gem::Version
|
|
300
|
-
version: 3.
|
|
297
|
+
version: '3.4'
|
|
301
298
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
302
299
|
requirements:
|
|
303
300
|
- - ">="
|
|
304
301
|
- !ruby/object:Gem::Version
|
|
305
302
|
version: '0'
|
|
306
303
|
requirements: []
|
|
307
|
-
rubygems_version: 3.
|
|
308
|
-
signing_key:
|
|
304
|
+
rubygems_version: 3.6.9
|
|
309
305
|
specification_version: 4
|
|
310
306
|
summary: Enterprise architecture visualization and modeling tool
|
|
311
307
|
test_files: []
|
data/CHANGELOG.md
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
## [Unreleased]
|
|
2
|
-
|
|
3
|
-
## [0.1.0] - 2026-01-07
|
|
4
|
-
|
|
5
|
-
Initial release. Extracted from internal architecture tooling.
|
|
6
|
-
|
|
7
|
-
### Features
|
|
8
|
-
|
|
9
|
-
- **Resource Modeling**: 20+ ArchiMate-inspired resource types (TechnologyArtifact, ApplicationComponent, ApplicationInterface, BusinessRequirement, etc.)
|
|
10
|
-
- **Query Language**: Full-featured query DSL with operators (==, !=, =~, >, <), relation queries (->/<-/~>/<~), logical operators (AND/OR/NOT), and sub-queries
|
|
11
|
-
- **Web Interface**: Browse, search, and visualize architecture resources with interactive GraphViz diagrams
|
|
12
|
-
- **MCP Server**: AI assistant integration via Model Context Protocol with query, analyze_resource, and resource_doc tools
|
|
13
|
-
- **Computed Annotations**: Aggregate values across resource relations (sum, count, min, max, avg, concat)
|
|
14
|
-
- **Validation (Lint)**: YAML syntax checking, resource kind validation, relation reference verification
|
|
15
|
-
- **Template Generation**: Generate YAML templates for any resource type
|
|
16
|
-
- **Docker Support**: Production-ready container with health checks
|
|
17
|
-
- **Dark Mode**: Full dark mode support in web interface
|
|
18
|
-
|
|
19
|
-
### Documentation
|
|
20
|
-
|
|
21
|
-
- Modeling guide with resource types and relations
|
|
22
|
-
- Query language reference
|
|
23
|
-
- Computed annotations guide
|
|
24
|
-
- ArchiMate and TOGAF alignment documentation
|