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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 637000840e445d9e4582fde99804c50b034adb6696235d957078a5ad40ecfdfb
4
- data.tar.gz: 69b13da005d885a1ee2424b37e6d8668bd775e9affff6960a221bd283a33693a
3
+ metadata.gz: 5daf787a0535e787bb31a5abbe46e8da7621256e710dd59ec7328c116b988df4
4
+ data.tar.gz: e662425404ec865eef3701723135c103e688e43bb8d560708f936dd9021acd88
5
5
  SHA512:
6
- metadata.gz: ca3fd8eb1b454d6db4c82904ebea6753c9404186f0e8fd26a3fd90c1b7d10e0037062c16f40057d403467ea1235e9d981c1ae10feb9182c33c2a74c72f0b6b15
7
- data.tar.gz: 85719b9c9f422871c3d96250d276341f7566f53cc24193efdfa8ce3a29ee92c45d674965340e99835eb3c940acecfb947c57f0560ddea28ec2135f020d52aa6d
6
+ metadata.gz: c31f6486348cd3e4e2b3a8247071f3f1ddbe139b0cb20faeba51167122d860d74cf205128532d6184ac78a9eac5be64ccee28c41dec9fff094963d77e1ee34bc
7
+ data.tar.gz: cb36b1eb48ed9c44985925e2e54ffa7c74d66ee51ca0407882151db27ce34168f747dc9cb4aadbfe35c19d1fb5c5a1b3860741635a6a342a810faac926638885
data/CONTRIBUTING.md CHANGED
@@ -6,7 +6,7 @@ Thank you for your interest in contributing to Archsight! This guide will help y
6
6
 
7
7
  ### Prerequisites
8
8
 
9
- - Ruby 3.2 or later
9
+ - Ruby 3.4 or later
10
10
  - Bundler
11
11
  - GraphViz (for visualization features)
12
12
 
data/Dockerfile CHANGED
@@ -1,39 +1,38 @@
1
- FROM ruby:4.0-alpine3.23
1
+ # Build stage
2
+ FROM ruby:4.0-alpine3.23 AS builder
2
3
 
3
- # Install system dependencies required for building gems
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
- # Copy gemspec and Gemfile for dependency installation
15
- COPY archsight.gemspec Gemfile Gemfile.lock* ./
16
- COPY lib/archsight/version.rb lib/archsight/version.rb
13
+ # Runtime stage
14
+ FROM ruby:4.0-alpine3.23
17
15
 
18
- # Install Ruby dependencies
19
- RUN bundle install --jobs 4
16
+ RUN apk add --no-cache graphviz
20
17
 
21
- # Copy application code
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
- # Default command - use the archsight CLI
39
- CMD ["bundle", "exec", "exe/archsight", "web", "--port", "4567"]
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
- docker build -t archsight .
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
- - The volume mount `-v "/path/to/resources:/resources"` mounts your resources directory
53
- - Resources are accessible at `/resources` inside the container
54
- - Live YAML updates are reflected without rebuilding
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
- $LOAD_PATH.unshift File.expand_path("../lib", __dir__)
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
@@ -15,6 +15,7 @@ module Archsight
15
15
  def web
16
16
  configure_resources
17
17
  require "archsight/web/application"
18
+ Archsight::Web::Application.setup_mcp!
18
19
  Archsight::Web::Application.run!(port: options[:port], bind: options[:host])
19
20
  end
20
21
 
@@ -9,9 +9,9 @@ module Archsight
9
9
  @attrs = { rankdir: :LR }.merge(attrs)
10
10
  end
11
11
 
12
- def draw_and_render_file(&block)
12
+ def draw_and_render_file(&)
13
13
  File.open("#{@name}.dot", "w") do |f|
14
- render(f, &block)
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(&block)
25
+ def draw_svg(&)
26
26
  IO.popen([@renderer, "-Tsvg"], "r+") do |pipe|
27
- render(pipe, &block)
27
+ render(pipe, &)
28
28
  pipe.close_write
29
29
  pipe.read
30
30
  end
@@ -1,5 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ # This file is automatically generated by `rake version` from git tags.
4
+ # Do not edit manually.
5
+
3
6
  module Archsight
4
- VERSION = "0.1.0"
7
+ VERSION = "0.1.2"
5
8
  end
@@ -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, path_prefix: "/mcp"
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.0
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: 2026-01-08 00:00:00.000000000 Z
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/blob/main/CHANGELOG.md
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.2.0
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.4.1
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