GithubHelp home page GithubHelp logo

vivek6219 / nivio Goto Github PK

View Code? Open in Web Editor NEW

This project forked from dedica-team/nivio

0.0 0.0 0.0 29.39 MB

Documentation of application landscapes for teams

Home Page: https://nivio.readthedocs.io/en/latest/

License: GNU Affero General Public License v3.0

Java 88.74% Dockerfile 0.03% CSS 0.54% HTML 0.56% TypeScript 10.11% JavaScript 0.02%

nivio's Introduction

Nivio

Codefresh build status Documentation Status

layoutedArtifact graph

Nivio is application landscape management for teams (developers, operators, managers). It follows a bottom-up no-op approach, i.e. there is no interface for manual data maintenance. It is designed to gather the application landscape information from configurable items, preferably code repos.

Get Started: try nivio at Heroku

and read the documentation

Example Graph, Input and Output

layoutedArtifact graph

input output_graph

Copyright & Trademark Acknowledgement Statements

  • Redis™ is a trademark of Redis Labs Ltd. Any rights therein are reserved to Redis Labs Ltd.
  • Apache Httpd and the logo are trademarks of the ASF.
  • WordPress and the logo are trademarks of Wordpress Foundation. http://wordpressfoundation.org/trademark-policy/

Nivio uses the Material Design Icons released under the MIT / Apache 2.0 licenses.

Development Setup

Requirements

To run nivio you need the following software installed:


Docker Setup (Linux)

Clone nivio, build and run a Docker image:

git clone https://github.com/dedica-team/nivio.git && cd nivio
mvn clean package
docker build -t nivio:latest .
docker run -e SEED=/tmp/nivio/inout.yml --mount type=bind,source="$(pwd)"/src/test/resources/example,target=/tmp/nivio -p 8080:8080 nivio:latest

then open http://localhost:8080

Docker Setup (Windows)

Clone nivio, build and run a Docker image:

  git clone https://github.com/dedica-team/nivio.git && cd nivio
  mvn clean package
  docker build -t nivio:latest .
  docker run -e SEED=//tmp/nivio/inout.yml --mount type=bind,source="C:\<your>\<path>\<to>\nivio\src\test\resources\example",target=/tmp/nivio -p 8080:8080 nivio:latest

then open http://localhost:8080

(Note: the double slashes at the beginning of the path for the SEED environment variable work as a fix to make MSYS/MinGW consoles not translate the /tmp path to a local DOS path. This is safe to use with the PowerShell. Further reading: https://stackoverflow.com/a/14189687/10000398)


Development Setup (IntelliJ)

Create a Spring Boot Configuration in IntelliJ that looks like this:

Spring Boot Config

If you need a clean build you can run

mvn clean package

You can use your own configuration files, if you add SEED=/path/to/config as an environment variable.

Open http://localhost:8080

If you want to contribute to our frontend, read further into our Frontend Readme

Nivio Backend Architecture

If you want to contribute to our backend, maybe the following diagram is of use to you. It shows some of the most important classes and interfaces. It is supposed to give you an idea on how the backend is structured, but note that not all details are displayed:

layoutedArtifact graph

If you use the ApiController as the entry point to the backend, you can see that it retrieves information and triggers events to the most important parts of the application.

The LandscapeRespository gives access to the stored landscapes.

The LandscapeDescriptionFactory is used to generate a LandscapeDescription from various sources, such as a String input, or e.g. from a yaml file.

This LandscapeDescription has to be enriched with the ItemDescription for all items in the landscape. This is managed by the InputFormatHandler, which are able to read several input formats such as e.g. kubernetes files, or the nivio description format. Access to these handlers is managed by the InputFormatHandlerFactory.

To actually create a landscape, the Indexer is used. This is able to compute the landscape graph from a LandscapeDescription. The Indexer uses several Resolver to resolve groups and item relations in landscapes and e.g. the appearance of the graph.

The Indexer can be triggered either directly through the ApiController to index or reindex a landscape, or it is triggered by an observer mechanism on files. These are the files located under the path provided through the SEED environment variable.

nivio's People

Contributors

amab avatar billigsteruser avatar bonndan avatar charberg avatar dependabot[bot] avatar marvinschoening avatar matthimatiker avatar mfbieber avatar mrgamedev07 avatar mureinik avatar ruchika8 avatar snyk-bot avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.