# Public Health Interfaces Task 001 pre-requirement contract. These interfaces are the public test surface for the dockerized foundation implementation. Tests must exercise only the Docker Compose stack and HTTP endpoints, not service internals. ## Local Stack The local stack starts from the repository root: ```sh docker compose up --build ``` The implementation must expose these local ports: | Service | URL | | --- | --- | | Frontend | `http://localhost:3000` | | Backend | `http://localhost:8000` | | Runner | `http://localhost:8010` | ## Health Endpoints ### Backend Process Health ```http GET http://localhost:8000/health ``` Expected response: ```json { "service": "backend", "status": "ok" } ``` This endpoint proves that the FastAPI process is serving HTTP. ### Backend Connectivity Smoke ```http GET http://localhost:8000/health/dependencies ``` Expected response: ```json { "service": "backend", "status": "ok", "dependencies": { "postgres": "ok", "redis": "ok", "object_storage": "ok" } } ``` This endpoint is the public smoke surface for backend connectivity to Postgres, Redis, and S3-compatible object storage. Implementations may add fields, but must preserve these keys and `ok` statuses when dependencies are reachable. ### Runner Health ```http GET http://localhost:8010/health ``` Expected response: ```json { "service": "runner", "status": "ok" } ``` ### Frontend Health ```http GET http://localhost:3000/health ``` Expected response: ```json { "service": "frontend", "status": "ok" } ``` ## Architecture Boundaries The frontend application must follow Feature-Sliced Design with these top-level layers: ```text app/ processes/ pages/ widgets/ features/ entities/ shared/ ``` The backend and runner services must use these top-level architecture layers: ```text domain/ application/ infrastructure/ presentation/ shared/ ```