retire the legacy Connexion stack and ship the FastAPI service
Closes #10 (closed). Unblocks the remaining scope of #11 and #12 (closed).
Why this exists
Until now the repository held two applications. The R2 baseline MR added src/federation_manager/ (FastAPI, PostgreSQL, OPG.04 v6.0) but changed nothing about delivery, so every image the team has ever deployed still runs the old Connexion/Flask/MongoDB service:
ENTRYPOINT ["gunicorn", "wsgi:app", "--bind", "0.0.0.0:8989", ...]CI builds that Dockerfile and pushes it as latest and develop. The new service had never been containerised. This MR deletes the legacy tree and points delivery at the new service.
What changes
| Area | Before | After |
|---|---|---|
| Image entrypoint | gunicorn wsgi:app, port 8989 |
uvicorn federation_manager.main:app, port 8082 |
| Image build | single stage, pip install -r requirements.txt |
multi-stage, installs from pyproject.toml, runs as non-root uid 10001 |
docker-compose.yaml |
legacy app + MongoDB + Keycloak | FM + PostgreSQL + NATS JetStream + Keycloak |
Dockerfile.dev, requirements.txt |
legacy pinned Flask stack | deleted |
| ruff | extend-exclude skipping 16 legacy paths |
lints the whole repository |
| CI | builds an image only | new check stage: ruff format, ruff, mypy, pytest |
| README | MongoDB, port 8990, Swagger UI at /ui/ |
current stack, configuration table, test instructions |
Port 8082 matches the platform architecture diagram in platform/architecture.md