-
Notifications
You must be signed in to change notification settings - Fork 4
Open
Infrastructure
0 / 20 of 2 issues completed
Copy link
Description
Summary
We should port ROR Reconciler to be a lightweight Python application. The existing service is a ~190-line Sinatra app running inside a Phusion Passenger/Nginx Docker container (phusion/passenger-ruby32:3.1.6). This should be replaced with a minimal Python web framework (e.g., Flask or FastAPI) to align the service with the use of Python across the rest of the ROR's services.
Tasks
- Rewrite all endpoints in Python with equivalent behavior:
GET /— redirect to ror.orgGET /heartbeat— health checkGET /reconcile— service metadata- POST /reconcile` — reconciliation queries (batch support)
GET /suggest— autocomplete suggestionsGET /flyout— inline preview dataGET /preview/*— HTML preview of ROR records
- Maintain W3C Reconciliation API compliance
- CORS support
- Create a new Dockerfile with minimal base image
- Update docker-compose.yml for local development
- Update GitHub Actions workflows (dev, staging, prod)
- Update Terraform variables
- Improved test suite
- CloudWatch monitoring for container lifecycle
Acceptance criteria
- All existing endpoints return equivalent responses to the Ruby implementation
- OpenRefine reconciliation workflows function identically against the Python service
- Test suite covers all endpoints
- CI/CD pipelines (dev/staging/prod) build and deploy the Python image
- CloudWatch alerts are in place for container restart anomalies
- No degradation in response times under normal load
- Documentation (README) updated to reflect the new stack
Reactions are currently unavailable
Sub-issues
Metadata
Metadata
Assignees
Labels
No labels
Type
Projects
Status
Backlog