Security/Projects/Minion/ImplDetails
Minion Implementation Details
OK, so this is a brain dump at the moment - will need to restructure soon ;)
Configuration Abstraction
To pass data between components, a standard configuration and data scheme must be used. For Minion, we have decided to use JSON and a REST API as the format for passing data. For example, the user interface will collect the necessary options, then call the task engine and pass it a JSON string of those options. The task engine will read the options and use each installed tool's REST API to make requests to the tool (some tools may need different options than others). The tool will pass its results back to the task engine as a JSON string and the task engine will compile all returned results into a single JSON string which will be returned to the interface. The interface will deconstruct the string into human-readable results and display them on the results page.
Installation Notes
PYTHONPATH="$PYTHONPATH:$HOME/minion/task_engine" PYTHONPATH="$PYTHONPATH:$HOME/minion/plugins" export PYTHONPATH
Libraries
The libraries we're currently using (in alphabetical order):
What | Why |
bottle | Simple comms - may well be replaced in the future |
logging | Logging (well, what else can you say?) |
unittest | Regression tests |
zap | ZAP python client API |