Archinsight project tends to implement architecture-as-code definition of a standard c4 architecture model

Overview

Archinsight

Archinsight project tends to implement architecture-as-code definition of a standard c4 architecture model. This project offers a new Insight language designed in such way that an Architect can focus on architecture definition, not visualization. Compared to UML, the Insight language is more specific and is unable to describe an arbitrary entity, but shorter and probably easier to use.

Unlike other UML software, such as PlantUML, Archinsight would offer it's user:

  • A specific Insight language to describe c4 model
  • Model integrity check by compiler
  • Model interactivity
  • Architecture introspections from highest to lowest level in one place

Building a project

To build Archinsight from source, you need:

  • JDK 17
  • Docker

To run a build use command:

./gradlew clean dockerBuild

This will build Compiler, Renderer and Editor UI services into docker images and place them into your local docker repository

Insight language description

Project Wiki

Builds

Docker Hub

c4 model

https://c4model.com/

License

Archinsight - c4 architecture as code.

Copyright (C) 2022 Alexey Zaytsev <[email protected]>

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License along with this program. If not, see http://www.gnu.org/licenses/.

Comments
  • [Feature request] Store editor content on page refresh

    [Feature request] Store editor content on page refresh

    A very dangerous situation happens when a user unintentionally presses Ctrl+R: one can loose all editor content. Is there a way to keep it in case of unintentional page refresh?

    enhancement question 
    opened by lonely-lockley 3
  • Lot of internal server errors on BFF

    Lot of internal server errors on BFF

    I can see a lot of errors in BFF logs

    bff          | [Nest] 1  - 07/14/2022, 8:08:12 AM   ERROR [ExceptionsHandler] Converting circular structure to JSON
    bff          |     --> starting at object with constructor 'ClientRequest'
    bff          |     |     property 'socket' -> object with constructor 'Socket'
    bff          |     --- property '_httpMessage' closes the circle
    bff          | TypeError: Converting circular structure to JSON
    bff          |     --> starting at object with constructor 'ClientRequest'
    bff          |     |     property 'socket' -> object with constructor 'Socket'
    bff          |     --- property '_httpMessage' closes the circle
    bff          |     at JSON.stringify (<anonymous>)
    bff          |     at RenderService.getError (/app/render/render.service.js:47:36)
    bff          |     at /app/render/render.service.js:30:38
    bff          |     at runMicrotasks (<anonymous>)
    bff          |     at processTicksAndRejections (node:internal/process/task_queues:96:5)
    bff          |     at async RenderController.getImage (/app/render/render.controller.js:25:25)
    bff          |     at async /app/node_modules/@nestjs/core/router/router-execution-context.js:46:28
    bff          |     at async /app/node_modules/@nestjs/core/router/router-proxy.js:9:17
    

    Would like to find out a reason

    bug 
    opened by lonely-lockley 1
  • Server side errors are not displayed anywhere

    Server side errors are not displayed anywhere

    If a server-side error in Compiler service happens, web application shows only "Request failed with status code 500" message. Extra information needed here. If we look into a service answer, we can see that it gives extra information about an error:

    {
      "message": "Internal Server Error",
      "_links": {
        "self": {
          "href": "/compile",
          "templated": false
        }
      },
      "_embedded": {
        "errors": [
          {
            "message": "Internal Server Error: Unable to compile the source\n[kind=ERROR, line=37, message=variable acl is already defined in class com.github.lonelylockley.archinsight.gen.cp.Container]"
          }
        ]
      }
    }
    

    It would be nice to show "message.message" field value to a user.

    enhancement 
    opened by lonely-lockley 1
  • Graph view resets scale and viewport on graph refresh

    Graph view resets scale and viewport on graph refresh

    After scaling a graph i expect it to stay scaled and in the same position after it refreshes. Current behaviour: scale and viewport resets to default after graph image is updated

    enhancement 
    opened by lonely-lockley 0
  • Block page scaling

    Block page scaling

    Sometimes, when i try to scale a graph view, the whole page scales with it. This sometimes makes a code editor disappear. It would be nice if we could block browser page scaling. Grafana behaves this way.

    enhancement 
    opened by lonely-lockley 0
  • Implement Profile service

    Implement Profile service

    Profile service will keep all user information: First and Second name, email, github ssh key, and project URL's All that information will be needed later when we start implementing project work with guthub.

    enhancement 
    opened by lonely-lockley 0
  • Implement local storage for Repository service

    Implement local storage for Repository service

    Repository service should be able to work with a single git directory for all projects and files. This will be useful for single-user mode and will be improved after we get authentication.

    enhancement 
    opened by lonely-lockley 1
  • Add draw.io export feature

    Add draw.io export feature

    Archinsight for now on can only export graphs into SVG format. It would be nice to have a possibility to export render as a draw.iocompatible XML format.

    There's a python package capable of doing that: https://pypi.org/project/graphviz2drawio/ It needs to be tested and included into docker package of Renderer service

    enhancement 
    opened by lonely-lockley 0
Releases(preview)
  • preview(Jun 21, 2022)

Owner
null
Model import deployment framework for retraining models (pytorch, tensorflow,keras) deploying in JVM Micro service environments, mobile devices, iot, and Apache Spark

The Eclipse Deeplearning4J (DL4J) ecosystem is a set of projects intended to support all the needs of a JVM based deep learning application. This mean

Eclipse Foundation 12.7k Dec 30, 2022
calculator when you be using a model that employs RPN (Reverse Polish Notation)

calculator when you be using a model that employs RPN (Reverse Polish Notation) in its calculations and be a custom build all at the same time? The kids may have colour TFTs and graphing functions, but your keyboard has no equals sign, and that means something.

Eslam ElBeak 8 Oct 28, 2021
mBERT is a mutation testing tool that uses a pre-trained language model (CodeBERT) to generate mutants.

mBERT is a mutation testing tool that uses a pre-trained language model (CodeBERT) to generate mutants.

null 7 Oct 22, 2022
Oryx 2: Lambda architecture on Apache Spark, Apache Kafka for real-time large scale machine learning

Oryx 2 is a realization of the lambda architecture built on Apache Spark and Apache Kafka, but with specialization for real-time large scale machine l

Oryx Project 1.8k Dec 28, 2022
Oryx 2: Lambda architecture on Apache Spark, Apache Kafka for real-time large scale machine learning

Oryx 2 is a realization of the lambda architecture built on Apache Spark and Apache Kafka, but with specialization for real-time large scale machine l

Oryx Project 1.7k Mar 12, 2021
This repository consists of the code samples, assignments, and the curriculum for the Community Classroom complete Data Structures & Algorithms Java bootcamp.

DSA-Bootcamp-Java Subscribe to our channel Complete Playlist Syllabus Discord for discussions Telegram for announcements Connect with me     Follow Co

Kunal Kushwaha 10.2k Jan 1, 2023
oj! Algorithms - ojAlgo - is Open Source Java code that has to do with mathematics, linear algebra and optimisation.

oj! Algorithms oj! Algorithms - ojAlgo - is Open Source Java code that has to do with mathematics, linear algebra and optimisation. General informatio

Optimatika 403 Dec 14, 2022
Transform ML models into a native code (Java, C, Python, Go, JavaScript, Visual Basic, C#, R, PowerShell, PHP, Dart, Haskell, Ruby, F#, Rust) with zero dependencies

m2cgen m2cgen (Model 2 Code Generator) - is a lightweight library which provides an easy way to transpile trained statistical models into a native cod

Bayes' Witnesses 2.3k Jan 4, 2023
Workflow management system fully supporting low-code language Petriflow.

Netgrif Application Engine MySQL Create NETGRIF user: CREATE USER 'netgrif_nae'@'localhost' IDENTIFIED BY 'netgrif_nae'; GRANT ALL PRIVILEGES ON * . *

NETGRIF 17 Dec 23, 2022
Test project for learning GoF design pattern

DesignPattern Test project for learning GoF design pattern ㅁ개요 객체지향 설계의 교과서라고 불리는 Design Pattern 을 직접 Activity 별로 구현해봤습니다. ㅁ동기 물론 디자인패턴을 몰라도 기능은 얼마든지

null 11 Aug 8, 2022
This is my andriod project

FutureFurnitureUI-Android Check out the new style for App Design aims for Furniture E-commerce... ?? ?? ?? ?? Screenshots Please click the image below

Ashish Kumar 15 Jul 3, 2022
Data Structure using Java Project

CSC348-Data-Structure This repository contains end of semester project for Data Structure (UiTM diploma's subject). It is developed using Java languag

Farhana Ahmad 2 Oct 11, 2021
Java project of math function and counting

This is program for some math function created by me. They are not exactly efficient, they are just for education purposses.

null 1 Feb 2, 2022
This project was created as a simple example to show how we can implement the hexagonal architecture(software design) proposed by Netflix.

Netflix Hexagonal Architecture Table of contents About the project Description Built with Installation Requirements to run Usage information Run Licen

José Lucas 12 Dec 20, 2022
Test if a request/response matches a given raml definition

raml-tester Test if a request/response matches a given raml definition. Versioning Version Contents 0.8.x Stable version, uses RAML parser 0.8.x and s

Stefan Niederhauser 71 Mar 21, 2022
Kyrestia, named after Kyrestia the Firstborne, is a process engine supporting mainstream process definition standards.

Kyrestia Kyrestia, named after Kyrestia the Firstborne, is a process engine supporting mainstream process definition standards. It is not only lightwe

Weiran Wu 32 Feb 22, 2022
Serializes Entities, Basically converting them to namespacedkeys that can be used later, not exactly serializing with its common definition

Serializes Entities, Basically converting them to namespacedkeys that can be used later, not exactly serializing with its common definition

2Hex 2 Apr 3, 2022
This is an open source visualization for the C4 model for visualising software architecture.

c4viz: C4 Visualization This is an open source visualization for the C4 model for visualising software architecture. It expects input in the form of a

Peter Valdemar Mørch 40 Dec 6, 2022
Google App Engine Standard Environment Source Code for Java 8 and Java11

Google App Engine Standard Environment Source Code for Java 8 and Java11. This is a repository that contains the Java Source Code for Google App Engin

Google Cloud Platform 167 Jan 2, 2023