meal-order-manager/terraform
Adam Moussa d7ad49d00f
Some checks are pending
Deploy API / Resolve target (push) Waiting to run
Deploy API / Deploy API to (push) Blocked by required conditions
feat(api): add OpenAPI Redocly contract and VPC outputs (DEV-289) (#206)
* feat(infra): export attached VPC ids and lock prod to afterhours (DEV-289)

Prod must keep existing_vpc_id pointed at the afterhours VPC. Outputs
expose the resolved vpc_id and public subnet IDs.

Co-authored-by: Adam Moussa <amoussa1229@users.noreply.github.com>

* feat(api): add OpenAPI 3.1 and Redocly lint in CI (DEV-289)

Same extends: recommended ruleset and @redocly/cli 2.52.1 as
internal-portal. Documents current { error: string } JSON errors.

Co-authored-by: Adam Moussa <amoussa1229@users.noreply.github.com>

* fix(api): document 4xx and reject invalid form-status weeks (DEV-289)

Health, form-status, and roster document 400. form-status now maps
current and returns 400 for a week that is not current or YYYY-WNN.
Redocly treats 302 as a success response, matching the portal.

Co-authored-by: Adam Moussa <amoussa1229@users.noreply.github.com>

* style(test): format VPC contract assertions for ruff (DEV-289)

Co-authored-by: Adam Moussa <amoussa1229@users.noreply.github.com>

* fix(api): fail Redocly on missing 4xx and 2xx/3xx (DEV-289)

Promote operation-4xx-response and the 2xx-or-3xx success rule to error.
Replace unused health and roster 400s with 403, matching portal health.
Form-status keeps its real 400 for invalid week.

Co-authored-by: Adam Moussa <amoussa1229@users.noreply.github.com>

* fix(api): split week params and allow live menu nulls (DEV-289)

Menu and form-status take current or YYYY-WNN. Orders take YYYY-WNN or a
calendar date and reject current. Menu payloads may emit null menu_url,
calories, protein, and image_url.

Co-authored-by: Adam Moussa <amoussa1229@users.noreply.github.com>

* fix(infra): fail prod apply without the afterhours VPC (DEV-289)

Prod never creates the 10.60 fallback VPC. A terraform_data precondition
fails plan and apply when existing_vpc_id is empty, instead of a check
block that only warns.

Co-authored-by: Adam Moussa <amoussa1229@users.noreply.github.com>

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: Adam Moussa <amoussa1229@users.noreply.github.com>
2026-09-22 00:33:48 +00:00
..
bootstrap feat(api): serve meals on ECS Fargate instead of Lambda (PLAT-215) (#199) 2026-09-21 19:34:24 +00:00
.terraform.lock.hcl feat(api): serve meals on ECS Fargate instead of Lambda (PLAT-215) (#199) 2026-09-21 19:34:24 +00:00
acm.tf feat(infra): add lightweight meal-order-manager-dev (PLAT-210) (#195) 2026-09-18 18:38:45 +00:00
alarms.tf feat(api): serve meals on ECS Fargate instead of Lambda (PLAT-215) (#199) 2026-09-21 19:34:24 +00:00
cloudfront.tf feat(api): serve meals on ECS Fargate instead of Lambda (PLAT-215) (#199) 2026-09-21 19:34:24 +00:00
data.tf feat(api): add OpenAPI Redocly contract and VPC outputs (DEV-289) (#206) 2026-09-22 00:33:48 +00:00
dynamodb.tf feat(infra): add lightweight meal-order-manager-dev (PLAT-210) (#195) 2026-09-18 18:38:45 +00:00
ecs.tf feat(api): add flask sentry sdk (#205) 2026-09-21 23:48:09 +00:00
hcp_iam.tf fix(iam): move hcptf apply grants off the 10KB inline quota (#201) 2026-09-21 20:03:22 +00:00
iam.tf fix(iam): omit checkcomponents from the ECS boundary in non-prod (#202) 2026-09-21 16:26:17 -04:00
iam_github_deploy.tf feat(api): serve meals on ECS Fargate instead of Lambda (PLAT-215) (#199) 2026-09-21 19:34:24 +00:00
iam_github_weekly_menu.tf feat(api): serve meals on ECS Fargate instead of Lambda (PLAT-215) (#199) 2026-09-21 19:34:24 +00:00
locals.tf feat(api): add OpenAPI Redocly contract and VPC outputs (DEV-289) (#206) 2026-09-22 00:33:48 +00:00
logs.tf feat(api): serve meals on ECS Fargate instead of Lambda (PLAT-215) (#199) 2026-09-21 19:34:24 +00:00
outputs.tf feat(api): add OpenAPI Redocly contract and VPC outputs (DEV-289) (#206) 2026-09-22 00:33:48 +00:00
providers.tf feat(infra): add lightweight meal-order-manager-dev (PLAT-210) (#195) 2026-09-18 18:38:45 +00:00
s3.tf feat(api): serve meals on ECS Fargate instead of Lambda (PLAT-215) (#199) 2026-09-21 19:34:24 +00:00
scheduler.tf feat(api): serve meals on ECS Fargate instead of Lambda (PLAT-215) (#199) 2026-09-21 19:34:24 +00:00
secrets.tf feat(infra): migrate meal-order-manager to HCP Terraform 2026-08-07 19:19:51 -04:00
ssm.tf feat(api): add flask sentry sdk (#205) 2026-09-21 23:48:09 +00:00
terraform.tfvars.example feat(infra): add lightweight meal-order-manager-dev (PLAT-210) (#195) 2026-09-18 18:38:45 +00:00
variables.tf feat(api): add OpenAPI Redocly contract and VPC outputs (DEV-289) (#206) 2026-09-22 00:33:48 +00:00
versions.tf feat(api): serve meals on ECS Fargate instead of Lambda (PLAT-215) (#199) 2026-09-21 19:34:24 +00:00
vpc.tf feat(api): add OpenAPI Redocly contract and VPC outputs (DEV-289) (#206) 2026-09-22 00:33:48 +00:00