QA plan: Data module — Aurora + pgvector (#22)
Story: Data module — Aurora Serverless v2 (0-ACU) + pgvector + Data API (#22)
Capability: AWS infrastructure (#19)
ADR: RAG001 — 0-ACU auto-pause, Lambda outside VPC, RDS Data API
Test scope
Section titled “Test scope”| Type | Coverage |
|---|---|
| IaC lint | terraform validate and tflint on modules/data pass |
| Static (plan review) | min_capacity = 0 on the Aurora Serverless v2 scaling configuration |
| Static (plan review) | enable_http_endpoint = true (RDS Data API enabled) |
| Static (plan review) | pgvector parameter group or cluster parameter configured |
| Static (plan review) | Storage encryption enabled (storage_encrypted = true) |
| Integration (manual, QA) | Aurora cluster starts; aws rds describe-db-clusters shows HttpEndpointEnabled: true |
| Integration (manual, QA) | Data API call via aws rds-data execute-statement succeeds and returns a result |
| Integration (manual, QA) | Aurora auto-pauses after inactivity (observe via CloudWatch ServerlessDatabaseCapacity metric dropping to 0) |
| Security | Cluster security group denies inbound from 0.0.0.0/0 (verified via network module) |
| Security | Secrets Manager secret ARN is wired to the cluster credential; no plaintext password in plan output |
Entry criteria
Section titled “Entry criteria”- Story #21 (network module) deployed to QA
- DB credential secret exists in Secrets Manager (Story #25)
Exit criteria
Section titled “Exit criteria”terraform validateandtflintexit 0- Plan shows
min_capacity = 0,enable_http_endpoint = true,storage_encrypted = true - Manual QA: Data API test call succeeds;
SELECT 1viards-data execute-statementreturns1 - Manual QA: Aurora auto-pause observed within the expected timeout window (QA configured to pause harder than Prod per RAG001)
Environments
Section titled “Environments”IaC lint: CI. Integration: manual against QA env.
Tooling
Section titled “Tooling”terraform validate, tflint, AWS CLI (rds-data, rds, cloudwatch).
How tests are written
Section titled “How tests are written”Plan-level assertions are automated in CI via terraform show -json parsing. Integration checks are manual post-deploy with documented commands in the Feature acceptance comment.
- Aurora cold-resume latency (~20s typical) will affect the first request after the cluster auto-pauses. The authorizer and API tests must account for this in QA smoke runs by warming up before timing-sensitive assertions.
- pgvector availability on Aurora Serverless v2 depends on the Aurora PostgreSQL engine version. Verify the chosen engine version supports pgvector before first apply.
Capability acceptance criteria link
Section titled “Capability acceptance criteria link”RAG001: Aurora Serverless v2 with 0-ACU auto-pause, pgvector, RDS Data API. Exit criteria directly verify each property.
© 2026 Benjamin Arunski