- Python 96.3%
- Shell 3.1%
- Dockerfile 0.6%
|
|
||
|---|---|---|
| .github/workflows | ||
| app | ||
| scripts | ||
| tests | ||
| .env.example | ||
| .gitignore | ||
| Dockerfile | ||
| poetry.lock | ||
| pyproject.toml | ||
| README.md | ||
| settings.py | ||
| tox.ini | ||
Plutus
Plutus is a service for facilitating communication between Harmonia and our data warehouse. Reads Harmonia's audit logs from a message queue, translates the data to a format required by the data warehouse and puts it onto another queue.
Pre-requisites
- Python >= 3.10
- poetry
Configuration
Project configuration is done through environment variables. A convenient way
to set these is via the .env file in the project root. See settings.py for
configuration options that can be set in this file.
Your code editor should support loading environment variables from the .env
file either out of the box or with a plugin. For shell usages, you can have poetry
automatically load these environment variables by using
poetry-dotenv-plugin, or
use a tool like direnv.
Running the Project
python message_consumer.py
python dead_letter_consumer.py
The consumer modules can be found in the project's root directory. Dead letter consumer is necessary for retries.
Deployment
There is a Dockerfile provided in the project root. Build an image from this to get a deployment-ready version of the project.
Unit Tests
pytest tests
Tests will be autodiscovered.