proposal-system/infra
Adam Moussa bbd185b280
feat(infra): parameterize stacks for multi-env (prod/staging) (#123)
Adds an env config layer resolved from CDK context (`-c env=staging`, default prod)
and threads it through all three stacks so a fully isolated staging environment can
be deployed in the same AWS account.

prod is byte-identical: the prod config reproduces the deployed values exactly and
stackSuffix='' keeps every construct ID, stack name, and physical resource name
unchanged. Verified via synth — prod foundation keeps proposal-system-db /
-uploads / db-credentials / -auth / seahaven; staging suffixes all of them.

- config.ts: EnvConfig (prod + staging, same account) + resolveConfig
- app.ts: env-aware stack naming + config passthrough
- foundation/compute/frontend: ~40 physical names suffixed with config.stackSuffix;
  CORS, Cognito domain/callbacks, alarms email from config; RETAIN / deletionProtection
  gated on config.retainData so staging can be torn down
- cdk.json: register `env` context (default prod)
- post-deploy.sh: STACK_SUFFIX for dynamic stack-name lookup (default prod)

Note: automated staging CI deploy needs a one-line `cdk-context` input added to the
org reusable cd-cdk.yaml (companion change). prod deploy is unaffected (default prod).
2026-06-12 18:04:53 -04:00
..
bin feat(infra): parameterize stacks for multi-env (prod/staging) (#123) 2026-06-12 18:04:53 -04:00
lib feat(infra): parameterize stacks for multi-env (prod/staging) (#123) 2026-06-12 18:04:53 -04:00
cdk.context.json Initial scaffold: monorepo structure, CDK stacks, CI/CD, domain model 2026-05-16 18:40:46 -04:00
cdk.json feat(infra): parameterize stacks for multi-env (prod/staging) (#123) 2026-06-12 18:04:53 -04:00
package-lock.json fix(deps): pin aws-cdk-lib to ==2.257.0 (#90) 2026-06-05 13:20:09 -04:00
package.json build(deps-dev): bump aws-cdk from 2.1124.1 to 2.1125.0 in /infra (#71) 2026-05-30 04:33:26 +00:00
tsconfig.json Initial scaffold: monorepo structure, CDK stacks, CI/CD, domain model 2026-05-16 18:40:46 -04:00