DESCRIPTION
There is no way to verify that the API's external dependencies (Supabase and Stellar testnet) are reachable and healthy. Without a health endpoint, Railway's deployment checks pass blindly and external monitoring tools cannot observe the system. This task adds GET /api/health returning structured connectivity status.
GOAL
GET /api/health returns a structured JSON status of Supabase and Stellar connectivity, with HTTP 200 when healthy or 503 when any dependency is down.
REQUIREMENTS
GET /api/health — no authentication required
- Checks: Supabase reachability (simple DB ping), Stellar Horizon reachability
- Response shape:
{ status: 'ok'|'degraded', supabase: 'up'|'down', stellar: 'up'|'down', uptime: seconds }
- HTTP 200 when all up, HTTP 503 when any dependency is down
- 3-second timeout per dependency check to avoid hanging
ACCEPTANCE CRITERIA
NOTES
Relevant files: apps/api/src/app.controller.ts or a new apps/api/src/health/ module. Good first task — no blockchain knowledge required. Consider @nestjs/terminus for structured health checks. Railway uses health checks to determine deployment success.
Difficulty: Beginner
Priority: Low
DESCRIPTION
There is no way to verify that the API's external dependencies (Supabase and Stellar testnet) are reachable and healthy. Without a health endpoint, Railway's deployment checks pass blindly and external monitoring tools cannot observe the system. This task adds
GET /api/healthreturning structured connectivity status.GOAL
GET /api/healthreturns a structured JSON status of Supabase and Stellar connectivity, with HTTP 200 when healthy or 503 when any dependency is down.REQUIREMENTS
GET /api/health— no authentication required{ status: 'ok'|'degraded', supabase: 'up'|'down', stellar: 'up'|'down', uptime: seconds }ACCEPTANCE CRITERIA
GET /api/healthreturns 200 with{ status: 'ok', ... }in normal operationsupabaseandstellarstatus fieldsNOTES
Relevant files:
apps/api/src/app.controller.tsor a newapps/api/src/health/module. Good first task — no blockchain knowledge required. Consider@nestjs/terminusfor structured health checks. Railway uses health checks to determine deployment success.Difficulty: Beginner
Priority: Low