Awesome
MITRE Caldera Plugin: Magma
The UI/UX Vue.js framework of Caldera v5.
Dependencies
- NodeJS (v16+ recommended)
- Caldera (v4.0.0+)
Installation
If you are going to run Magma without developing on it, all you have to do is run Caldera with an extra flag once. To do so:
In the Caldera directory:
- Run
python3 server.py --build
.
The --build
flag automatically installs any dependencies, bundles the Vue frontend into a dist
directory, and is served by the Caldera server.
You will only have to use the --build
flag again if you add any plugins.
Development
To serve up the UI in a development environment (with hot-reloading, etc.), do
In the magma directory:
- Run
npm install
. - Run
npm run build
In the Caldera directory:
- Run
python3 server.py --uidev localhost
.
You can reach the UI in your browser at http://localhost:3000
Code Quality
Currently Linting is done manually by the developer. To do so:
- Run
npm run lint
.
In order to run linting with it automatically formatting issues:
- Run
npm run lintfix
.
Testing
Magma uses Jest as its frontend testing framework. All tests are located at the src/tests
directory.
- Run
npm run test-all
to run all tests.
Each vue component is tested for accessibility in their respected file. This is done using a custom Jest matcher, jest-axe. Jest-axe adheres to axe-core rules. Each one of these rules can be modified or disabled when calling the axe function.
- Run
npm run test-accessibility
to run only accessibility tests.