- API liveness:
/healthz - API readiness:
/readyz - API metrics:
/metrics - Web smoke path:
/api/proxy/api/leaderboard?track=test
- Validate production settings.
- Run Alembic migrations when
WMG_AUTO_MIGRATE=true. - Initialize the configured artifact store.
- Optionally bootstrap the first admin/writer key when
WMG_BOOTSTRAP_API_KEYis set and no API keys exist yet. - Seed demo leaderboard runs when
WMG_SEED_DEMO_DATA=true.
.venv/bin/python -m worldmodel_server.cli create-api-key \
--name production-writer \
--scope runs:writeThe command prints the secret once. Store it in your deployment provider and use it with the x-api-key header.
If you use WMG_BOOTSTRAP_API_KEY, remove it after the first durable writer key is created.
- Structured request logs include request IDs, status codes, client IPs, and durations.
- Structured system logs emit startup and readiness events without printing secrets.
- Prometheus metrics are exposed from FastAPI when
WMG_ENABLE_METRICS=true. - GitHub Actions runs
Production Smokeevery 6 hours against the public Vercel and Render URLs.
Check the deployed API + web surfaces:
.venv/bin/python scripts/verify_deployment.py \
--api-base https://worldmodel-gym-api.onrender.com \
--web-base https://world-model-gym.vercel.appCreate and upload a demo run:
.venv/bin/python scripts/demo_run.py \
--api-base https://worldmodel-gym-api.onrender.com \
--api-key "$WMG_API_KEY"If web/.env.local was pulled from Vercel CLI, it may contain deployment-only environment variables that interfere with local next build. Temporarily move the file aside before building locally:
mv web/.env.local web/.env.local.bak
cd web && npm run build
mv web/.env.local.bak web/.env.local