meal-order-manager/functions
Adam Moussa f2a0692577 Harden summary-PDF endpoint per cross-review
Address GPT-4.1 cross-review of the IAM change:

- Validate the week param (YYYY-WNN) and the DynamoDB-sourced PDF key
  shape before presigning, so a tampered SUMMARY record can't mint URLs
  for other report files (payroll CSVs).
- Narrow the IAM resource from reports/* to
  reports/*/weekly-summary-*.pdf — least privilege over the bucket.
- Reuse a module-level S3 client; name the URL TTL constant.
- Distinguish "week not found" from "PDF key missing" 404s.
- Tests: malformed-week 400 and tampered-key 500 (asserts no presign).
2026-06-05 18:44:25 -04:00
..
aggregate_orders Add weekly summary PDF and admin order-list download (#16) (#17) 2026-06-01 18:49:58 -04:00
close_form Add discount pricing, Google auth, and order hardening (#10) 2026-05-13 18:00:21 -04:00
email_report Fix ruff lint and format violations, update README (#5) 2026-05-12 19:31:27 -04:00
slack_notifier Add admin form bypass and send order summary to admin DMs (#15) 2026-05-22 12:24:21 -04:00
submit_order Harden summary-PDF endpoint per cross-review 2026-06-05 18:44:25 -04:00
sync_roster Fix ruff lint and format violations, update README (#5) 2026-05-12 19:31:27 -04:00