JumpStart AMS Deployment
Local and Azure deployment facts for the JumpStart AMS backend and frontend
Updated 2026-11-03
Verified 2026-11-03
AMS deploys as two apps: backend API/worker/scheduler/migration releases and a standalone Next.js frontend.
Local Ports
| Component | Default |
|---|---|
| Backend API | http://localhost:8300 |
| Frontend portal | http://localhost:3002 |
| Backend PostgreSQL | localhost:5434 |
| Backend Redis | localhost:6380 |
Backend local start:
cp .env.example .env.local
./manage-ams-backend.sh up --build
Frontend local start:
npm ci
cp .env.example .env.local
npm run dev
Database Migration
The backend uses Alembic. Run local schema changes with:
./manage-ams-backend.sh run --rm migrate
Azure Helmfile runs the migrate release first. That release executes alembic upgrade head as a Helm-managed job, and the webserver, worker, and scheduler releases depend on it.
Deployed URLs
Each environment exposes the backend API and the frontend portal on their own hosts:
| Surface | URL |
|---|---|
| Backend API | https://<ams-backend-host> |
| Frontend portal | https://<ams-portal-host> |
The frontend image takes its public configuration as Docker build arguments: NEXT_PUBLIC_API_BASE_URL (the deployed backend API URL; defaults to http://localhost:8300), NEXT_PUBLIC_COSMOS_ENABLED, NEXT_PUBLIC_COSMOS_ORG_ID, and NEXT_PUBLIC_THEMING_ENABLED. The frontend image is built on Node.js 22 and serves on port 3002.
Config Ownership
| Owner | Examples |
|---|---|
| Backend secrets | DATABASE_URL, REDIS_URL, COSMOS_CLIENT_SECRET, service tokens, OAuth client credentials |
| Backend public/runtime config | AMS_PUBLIC_API_BASE_URL, AMS_FRONTEND_URL, AMS_CORS_ORIGINS, COSMOS_*_SERVICE_URL, COSMOS_VERIFY_TLS |
| Frontend public build config | NEXT_PUBLIC_API_BASE_URL, NEXT_PUBLIC_COSMOS_ENABLED, NEXT_PUBLIC_COSMOS_ORG_ID, NEXT_PUBLIC_THEMING_ENABLED |
Production and cloud secrets must come from Azure Key Vault or the environment secret store. Do not commit populated .env.local files.
Verification
Backend:
uv run --extra dev ruff check .
uv run --extra dev mypy src
uv run --extra dev pytest
Frontend:
npm run build
npm run test:project-tenancy
npm run smoke:cosmos-oauth