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

Merge request reports

Loading