<aside> โ ๏ธ
Ready to deploy, not deployed. Templates compile and the package is ready. No Azure resources, Entra registrations, role assignments or secrets exist yet (task P08, due 16 Oct).
</aside>
<aside> ๐
Australia East
default region
</aside>
<aside> ๐ฆ
0.5 CPU / 1 GiB
1โ3 replicas
</aside>
<aside> ๐
D2ds_v5 ยท 128 GiB
private PostgreSQL
</aside>
<aside> ๐พ
14-day backups
flowchart LR
User[Browser] -->|"HTTPS + Entra token"| App["Container Apps: React + API"]
Entra["Microsoft Entra ID"] --> User
ACR["Azure Container Registry"] --> App
App -->|"Restricted DB role / TLS"| PG["Private PostgreSQL 16"]
App -->|"Managed identity"| Blob["Private document container"]
App -->|"Managed identity"| KV["Key Vault"]
Job["One-off migration job"] -->|"Separate identity / admin role"| PG
Job --> KV
App --> Logs["Log Analytics"]
No zone-redundancy or multi-region commitment in the initial config.
Prerequisites
Entra
node scripts/entra-manifest.mjs APPLICATION_CLIENT_ID https://APP_HOST > /tmp/steelman-entra-fields.json
Single-tenant registration ยท access_as_user scope ยท token v2 ยท SPA redirect = app origin ยท 7 app roles ยท assignment required. No client secret in the browser.
Validate
python3 scripts/deploy.py validate --subscription SUB_ID --resource-group RG --client-id CLIENT_ID --location australiaeast
Review ARM validation and what-if before continuing.
Deploy
python3 scripts/deploy.py deploy --subscription SUB_ID --resource-group RG --client-id CLIENT_ID --location australiaeast
Foundation โ image built in ACR โ migration job must succeed โ app deployed. Production starts empty.
/api/bootstrap returns 401; demo headers rejected<aside> ๐
The schema is the rollback boundary. The app refuses to start unless schema_migrations matches its bundled migrations exactly.
</aside>