/layout-web-tool

A flask app that helps to create, modify and visualize in-toto layouts.

Primary LanguagePythonMIT LicenseMIT

in-toto Layout Creation Wizard

A Flask-based web app to guide project owners through creating an in-toto layout.

More information about in-toto and in-toto layouts can be found at the project website in-toto.io. A beta version of this web app is deployed at in-toto.engineering.nyu.edu and mockups can be found at editor-and-wizard-wip/mockups.

Installation

Requirements

  • Python -- backend
  • npm -- frontend dependencies
  • Ruby and SASS -- CSS preprocessor
  • MongoDB -- to persist user session data (for usage analysis)
# Start `mongod` (if not already running)
sudo systemctl start mongod

# Install backend (c.f. requirements.txt)
pip install -r requirements.txt

# Install and vendorize frontend dependencies and compile scss
# c.f. dependencies and scripts in package.json
npm install

Deployment

# Example configuration in FLASK_APP_ROOT/instance/config.py
DEBUG = False
SECRET_KEY = '?\xbf,\xb4\x8d\xa3"<\x9c\xb0@\x0f5\xab,w\xee\x8d$0\x13\x8b83' #CHANGE THIS!!!!!

Development Tips

  • Run the development server like this:
python wizard.py
  • Run a sass watcher during development to automatically compile css on file change:
sass --watch static/scss/main.scss:static/css/main.scss.css

Acknowledgements

This project is managed by Prof. Justin Cappos and other members of the Secure Systems Lab at NYU and the NJIT Cybersecurity Research Center.