Skip to content

Latest commit

 

History

History
46 lines (30 loc) · 1.67 KB

README.md

File metadata and controls

46 lines (30 loc) · 1.67 KB

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:

  1. 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:

  1. Run npm install.
  2. Run npm run build

In the Caldera directory:

  1. 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:

  1. Run npm run lint.

In order to run linting with it automatically formatting issues:

  1. Run npm run lintfix.

Testing

Magma uses Jest as its frontend testing framework. All tests are located at the src/tests directory.

  1. 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.

  1. Run npm run test-accessibility to run only accessibility tests.