Objective
Codify the project's own infrastructure so environments are reproducible and reviewable, and remove long-lived Azure secrets from GitHub Actions.
Current state
- All hosting (Render services, Vercel projects, env vars, Postgres) is click-ops — nothing is reviewable or reproducible;
playbooks/terraform/ is reserved but empty (that dir is for user remediation, not our infra)
- CI smoke tests use long-lived
AZURE_CLIENT_SECRET repo secrets — rotating them is manual and forgetting is invisible
Scope
Depends on
Out of scope
- Application remediation templates in
playbooks/terraform/ (separate feature track)
Acceptance criteria
Category
Infrastructure / IaC
Objective
Codify the project's own infrastructure so environments are reproducible and reviewable, and remove long-lived Azure secrets from GitHub Actions.
Current state
playbooks/terraform/is reserved but empty (that dir is for user remediation, not our infra)AZURE_CLIENT_SECRETrepo secrets — rotating them is manual and forgetting is invisibleScope
infra/terraform/root: Render provider (API + staging + worker services, env groups), Vercel provider (dashboard + website projects), Postgres instanceterraform planposted on infra PRsAZURE_CLIENT_SECRETDepends on
Out of scope
playbooks/terraform/(separate feature track)Acceptance criteria
terraform planreproduces the live environment with no diffAZURE_CLIENT_SECRETdeleted from repo secretsCategory
Infrastructure / IaC