42 lines
1.3 KiB
Markdown
42 lines
1.3 KiB
Markdown
# ariadne
|
|
|
|
Ariadne is the Atlas admin and account automation service.
|
|
|
|
It sits behind the portal and handles the jobs that are annoying or risky to do
|
|
by hand: approving access, syncing account state, rotating service passwords,
|
|
cleaning stale Kubernetes work, checking platform health, and keeping a few
|
|
service integrations lined up.
|
|
|
|
## How it works
|
|
|
|
Ariadne is a FastAPI service with a small scheduler. It talks to Keycloak,
|
|
Vault, Mailu, Nextcloud, Wger, Firefly, Jenkins, Metis, Kubernetes, and a few
|
|
Atlas-specific services through focused adapters under `ariadne/services/`.
|
|
|
|
The API is split between admin routes, account self-service routes, internal
|
|
event hooks, and Prometheus metrics. Background jobs store run history in the
|
|
Ariadne database so failures can be inspected later instead of vanishing into
|
|
logs.
|
|
|
|
Useful routes:
|
|
|
|
- `GET /health`
|
|
- `GET /metrics`
|
|
- `GET /api/admin/cluster/state`
|
|
- `POST /api/admin/access/requests/{username}/approve`
|
|
- `POST /api/account/mailu/rotate`
|
|
- `POST /api/account/wger/reset`
|
|
- `POST /api/account/firefly/reset`
|
|
- `POST /events`
|
|
|
|
## Development
|
|
|
|
```bash
|
|
python -m pytest
|
|
ruff check .
|
|
```
|
|
|
|
Most runtime behavior is configured through environment variables in
|
|
`ariadne/settings.py`. Keep service-specific logic in the small adapter modules;
|
|
`ariadne/app.py` should stay focused on request flow and task orchestration.
|