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
Acceptance criteria
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
GET /— redirect to ror.orgGET /heartbeat— health checkGET /reconcile— service metadataGET /suggest— autocomplete suggestionsGET /flyout— inline preview dataGET /preview/*— HTML preview of ROR recordsAcceptance criteria