https://github.com/atnog/rigourous-devprivops-ui

Web UI editor for the devprivops tool

https://github.com/atnog/rigourous-devprivops-ui

Science Score: 13.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (11.5%) to scientific vocabulary
Last synced: 10 months ago · JSON representation

Repository

Web UI editor for the devprivops tool

Basic Info
  • Host: GitHub
  • Owner: ATNoG
  • Language: Go
  • Default Branch: master
  • Size: 694 KB
Statistics
  • Stars: 1
  • Watchers: 2
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Created almost 2 years ago · Last pushed over 1 year ago
Metadata Files
Readme

README.md

Web UI

This repository holds the code for the web editor of the devprivops tool.

The web editor is a website allowing to edit the files in the local directory of the tool.
It provides not only text editors (powered by monaco) but also visual forms to aid configuration development and maintenance. It also provides a plugin system to create custom visualizers for each kind of system description.

Deployment

The UI can be deployed either through the docker container or as a native binary.

Docker Container

To use the docker container, we run the following command

sh docker run -d \ --env-file .env \ -p 8082:8082 \ -v ".devprivops:/tmp/.devprivops" \ --name devprivops-ui \ devprivops-ui

  • The environment variables can be passed at once through the --env-file argument, configured according to the documentation in the .env.example file.
  • The UI requires an exposed port, dictated by the PORT variable.
  • The tool's local directory can be on the host machine and be passed to the container as a bind mount.

Manual Compilation

To manually compile the UI and execute it:

  1. Install PrivGuide natively and copy the executable to the root of this repository.
  2. Set an adequate .env file. All the documentation for the relevant variables is in the .env.example file
  3. Build the editor with go build
    • On the first execution, it is needed to generate the styles and templates with tailwindcss -i static/css/source.css -o static/css/style.css --minify and templ generate
    • Running air will also execute these commands and is advised during development
  4. Run ./devprivops-ui
  5. Access the endpoint specified in the .env file in any web browser

Development

While developing, we provide a configuration for air that not only reloads the go code, but also the templates and styles.

To turn on the air server, run air on the repository's root. Then, whenever files change the tool will automatically be rerun and ready to test.

To manually generate these files and compile the code, run the following commands:

sh tailwindcss -i static/css/source.css -o static/css/style.css --minify templ generate go build

For better dependency management, we provide a shell.nix file with all needed dependencies. To use it, install nix and execute nix-shell --extra-experimental-features "flakes". All dependencies can also be installed manually through other means.

Features

This interface allows to:

  • Edit the raw files for trees, descriptions, reasoner rules, regulations, extra data queries, requirements and schemas;
  • Edit those files visually with user-friendly editors;
  • Colaborate seamlessly in the development and maintenance of the files;
  • Safely resolve conflicts arising from the colaboration;
  • Use custom visualizers for groups of descriptions;
  • Run analysis and tests;

Usage

...

Owner

  • Name: ATNoG - Aveiro Telecommunications and Networking Group
  • Login: ATNoG
  • Kind: organization
  • Email: info@atnog.org
  • Location: Aveiro, Portugal

GitHub Events

Total
  • Member event: 1
  • Push event: 28
  • Public event: 2
  • Create event: 3
Last Year
  • Member event: 1
  • Push event: 28
  • Public event: 2
  • Create event: 3

Dependencies

plugins/dfd/Cargo.toml cargo
  • wasm-bindgen-test 0.3.34 development
  • console_error_panic_hook 0.1.7
  • serde 1.0
  • serde_json 1.0
  • serde_yml 0.0.10
  • wasm-bindgen 0.2.84
Dockerfile docker
  • 192.168.56.1 5000/devprivops build
go.mod go
  • github.com/a-h/templ v0.2.707
  • github.com/golang-jwt/jwt v3.2.2+incompatible
  • github.com/golang-jwt/jwt/v4 v4.4.2
  • github.com/golang/protobuf v1.5.3
  • github.com/gorilla/context v1.1.1
  • github.com/gorilla/mux v1.6.2
  • github.com/gorilla/securecookie v1.1.1
  • github.com/gorilla/sessions v1.1.1
  • github.com/joho/godotenv v1.5.1
  • github.com/kr/text v0.2.0
  • github.com/labstack/echo v3.3.10+incompatible
  • github.com/labstack/echo-jwt v0.0.0-20221127215225-c84d41a71003
  • github.com/labstack/echo/v4 v4.12.0
  • github.com/labstack/gommon v0.4.2
  • github.com/markbates/goth v1.80.0
  • github.com/mattn/go-colorable v0.1.13
  • github.com/mattn/go-isatty v0.0.20
  • github.com/robert-nix/ansihtml v1.0.1
  • github.com/valyala/bytebufferpool v1.0.0
  • github.com/valyala/fasttemplate v1.2.2
  • golang.org/x/crypto v0.24.0
  • golang.org/x/net v0.24.0
  • golang.org/x/oauth2 v0.17.0
  • golang.org/x/sys v0.21.0
  • golang.org/x/text v0.16.0
  • golang.org/x/time v0.5.0
  • google.golang.org/appengine v1.6.8
  • google.golang.org/protobuf v1.32.0
  • gopkg.in/yaml.v3 v3.0.1
go.sum go
  • github.com/a-h/templ v0.2.707
  • github.com/creack/pty v1.1.9
  • github.com/davecgh/go-spew v1.1.0
  • github.com/davecgh/go-spew v1.1.1
  • github.com/golang-jwt/jwt v3.2.2+incompatible
  • github.com/golang-jwt/jwt/v4 v4.4.2
  • github.com/golang/protobuf v1.5.0
  • github.com/golang/protobuf v1.5.2
  • github.com/golang/protobuf v1.5.3
  • github.com/google/go-cmp v0.5.5
  • github.com/google/go-cmp v0.6.0
  • github.com/gorilla/context v1.1.1
  • github.com/gorilla/mux v1.6.2
  • github.com/gorilla/securecookie v1.1.1
  • github.com/gorilla/sessions v1.1.1
  • github.com/joho/godotenv v1.5.1
  • github.com/kr/pretty v0.3.1
  • github.com/kr/text v0.2.0
  • github.com/labstack/echo v3.3.10+incompatible
  • github.com/labstack/echo-jwt v0.0.0-20221127215225-c84d41a71003
  • github.com/labstack/echo/v4 v4.12.0
  • github.com/labstack/gommon v0.4.2
  • github.com/markbates/goth v1.80.0
  • github.com/mattn/go-colorable v0.1.13
  • github.com/mattn/go-isatty v0.0.16
  • github.com/mattn/go-isatty v0.0.20
  • github.com/pmezard/go-difflib v1.0.0
  • github.com/robert-nix/ansihtml v1.0.1
  • github.com/rogpeppe/go-internal v1.12.0
  • github.com/stretchr/objx v0.1.0
  • github.com/stretchr/testify v1.6.1
  • github.com/stretchr/testify v1.9.0
  • github.com/valyala/bytebufferpool v1.0.0
  • github.com/valyala/fasttemplate v1.2.2
  • github.com/yuin/goldmark v1.4.13
  • golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2
  • golang.org/x/crypto v0.0.0-20210921155107-089bfa567519
  • golang.org/x/crypto v0.24.0
  • golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4
  • golang.org/x/net v0.0.0-20190620200207-3b0461eec859
  • golang.org/x/net v0.0.0-20210226172049-e18ecbb05110
  • golang.org/x/net v0.0.0-20220722155237-a158d28d115b
  • golang.org/x/net v0.24.0
  • golang.org/x/oauth2 v0.17.0
  • golang.org/x/sync v0.0.0-20190423024810-112230192c58
  • golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4
  • golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a
  • golang.org/x/sys v0.0.0-20201119102817-f84b799fce68
  • golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1
  • golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a
  • golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f
  • golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab
  • golang.org/x/sys v0.6.0
  • golang.org/x/sys v0.21.0
  • golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1
  • golang.org/x/term v0.0.0-20210927222741-03fcf44c2211
  • golang.org/x/text v0.3.0
  • golang.org/x/text v0.3.3
  • golang.org/x/text v0.3.7
  • golang.org/x/text v0.3.8
  • golang.org/x/text v0.16.0
  • golang.org/x/time v0.5.0
  • golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e
  • golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e
  • golang.org/x/tools v0.1.12
  • golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7
  • golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543
  • google.golang.org/appengine v1.6.8
  • google.golang.org/protobuf v1.26.0-rc.1
  • google.golang.org/protobuf v1.26.0
  • google.golang.org/protobuf v1.32.0
  • gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405
  • gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c
  • gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c
  • gopkg.in/yaml.v3 v3.0.1