Essential session storage is required to sign in. Optional analytics remain off unless you allow them.
Build a serverless REST API — API Gateway → Lambda → DynamoDB — defined ENTIRELY as Infrastructure as Code (CloudFormation or the AWS CDK), so the whole stack deploys and tears down with one command. Give each Lambda a least-privilege IAM role (only the DynamoDB actions it needs), send logs to CloudWatch with an alarm on errors, and document the cost model (pay-per-request). No console click-ops for the resources.
API Gateway + Lambda + DynamoDB wired correctly; stateless functions; the API works end to end.
The entire stack is defined in CloudFormation/CDK and deploys/destroys reproducibly — no manual console resource creation.
Each Lambda has a least-privilege role (scoped to its table/actions); CloudWatch logs + an error alarm exist.
Pay-per-request model documented; Free-Tier-friendly; stack destroyed after to avoid lingering spend.
Use this README structure to make the work reviewable.
DevPath fetches a read-only, size-capped snapshot. Submitted code is never executed.
# A serverless API defined as Infrastructure as Code ## Goal Build a serverless REST API — API Gateway → Lambda → DynamoDB — defined ENTIRELY as Infrastructure as Code (CloudFormation or the AWS CDK), so the whole stack deploys and tears down with one command. Give each Lambda a least-privilege IAM role (only the DynamoDB actions it needs), send logs to CloudWatch with an alarm on errors, and document the cost model (pay-per-request). No console click-ops for the resources. ## Acceptance criteria - [ ] Serverless architecture: API Gateway + Lambda + DynamoDB wired correctly; stateless functions; the API works end to end. - [ ] Infrastructure as Code: The entire stack is defined in CloudFormation/CDK and deploys/destroys reproducibly — no manual console resource creation. - [ ] IAM & observability: Each Lambda has a least-privilege role (scoped to its table/actions); CloudWatch logs + an error alarm exist. - [ ] Cost awareness: Pay-per-request model documented; Free-Tier-friendly; stack destroyed after to avoid lingering spend. ## Verification - [ ] Document installation and run commands. - [ ] Record automated checks and their exact commands. - [ ] Add representative output, screenshots, or a short demo where useful. - [ ] Confirm failure paths and known constraints. ## Decision log ### Decision title - Context: - Choice: - Alternatives considered: - Tradeoffs: ## Evidence - Link each rubric criterion to the file, test, or artifact that demonstrates it. ## Known limitations - List what is intentionally out of scope and what should be improved next.