ReactJS application which allows users to quickly create their application's architecture diagram and specify their configuration. This tool put security at the forefront and also allows users to select what AWS Managed Rules they want to be guided by.
- Change the endpoints in
DependencyTab.js
andConfigTab.js
to point to the correct backend API - Change into the correct directory -
cd ./
- Ensure that there isn't an existing node_modules by running
rm -rf node_modules
- Install the required node modules -
npm install
- Start the app -
npm start
- The app should be runnning on
localhost:3000
- Install Docker on your machine by following this guide
- Change to the root directory - e.g. webapp-frontend
- Run docker-compose to built the image and start the container
docker-compose up
- If you make changes, ensure you rebuild the image to see the changes by running:
docker-compose up --build
Eslint is a linter that can help to tidy up your cody and ensures everyone working on the project is practicing the same coding standards. It helps to make the code readable and easy for everyone to understand.
npx eslint ./src
npx eslint ./src --fix
The tool has been deployed onto AWS using AWS Amplify. To deploy, follow the steps below:
- Run the below command in the repository's directory.
cd ./ set DISABLE_ESLINT_PLUGIN=true npm run build
- Go to the AWS Console and navigate to the AWS Amplify dashboard
- Click New app and Host web app
- Select Deploy without a Git provider
- Drag and drop your
./build
directory into the Console - Select Save and Deploy
- Your app should be ready to access now!
The application is based on a simple drag-and-drop functionality. The resources represent the AWS instances and services that make up the system. The connections represent the data flows or linkages between the instances.
Basic functionality and usage is outlined below.
To add resources, drag a resource tile from the asset bar on the left onto the canvas.
To remove resources, click on the resource you wish to remove - a green outline should appear. Then press the BACKSPACE
or DELETE
keys to remove the resource.
To add a connection, hover over the starting resource so that the connection handlers appear. Then, drag one of the handlers over to the ending resource and drop it. A connection should appear between the two resources.
To remove a connection, click on the connection you wish to remove - it's colour should change to green. Then press the BACKSPACE
or DELETE
keys to remove the connection.
Resources can be moved around the canvas by simply dragging and dropping them.
Resources can be resized from any one of the 4 corners by dragging the resize handlers as shown below.
Each resource type has a specific list of configurable options that are available in the Configuration Panel. The Panel is accessible via the arrow located on each resource tile.
Once the resource has been configured, the CloudFormation template and Conformance Pack can be retrieved and downloaded by pressing the Submit
button at the bottom.
The Dependency Checker Tool is available for Compute resources in the Configuration Panel. Users can enter the names of the packages to be checked as well as the depth of the dependency tree that they wish to check up to. Multiple packages can be searched by entering names in the format PackageName1, PackageName2, PackageName3...
Results will then be listed in the panel.