-
Notifications
You must be signed in to change notification settings - Fork 17
How it Works
forefy edited this page Jul 26, 2024
·
4 revisions
The project is layed out as a docker-compose.yml specification, and the code is designed to run in docker instances.
Since the tool runs from a local/personal computer perspective, radar is the layer that the generic user interacts with.
These are the containers being managed by radar:
radar - can be thought of as the client, performs basic operations like argument parsing and copying
api - django based backend that performs the AST generation, as wall as disatching of workers
postgres - database for the api container
celeryworker - instance to run api-initiated celery tasks, mostly template execution
rabbitmq - message queue for the api and celeryworker containers
When a contract path is passed to radar, it performs these high level operations:
- Copy the contents of the contract to the execution containers
- Parses the AST of the contract into a unified JSON AST file
- Concurrently executes the rules within each template supplied against the AST
- Copy results back to the personal computer