feat(P02 W0): dynamodb L1 primitive — interface, terraform, registry, tests (REQ-322)

New L1 module modules/l1/dynamodb/ (stack type aws:dynamodb:table).
Terraform aws_dynamodb_table with PK + optional SK, PAY_PER_REQUEST
default, SSE-KMS + PITR + prevent_destroy per v1.8 NFR defaults.
Registry entry (kind l1), catalog row, test_adapter.py updated to
15 entries / 13 L1. 45 tests passing.

---ci---
project: acdl
phase: 2
milestone: v1.26
status: execute
phase_role: execution
wave: 0
requirements: [REQ-322]
---/ci---
This commit is contained in:
Jon Chery
2026-08-18 00:22:19 +00:00
parent d022ddcea6
commit 9f94103c57
8 changed files with 207 additions and 5 deletions
+38
View File
@@ -0,0 +1,38 @@
# DynamoDB L1 Primitive
> Stack type: `aws:dynamodb:table` → Terraform `aws_dynamodb_table`
## Description
A DynamoDB table primitive with encryption + point-in-time recovery
enabled by default (per v1.8 NFR defaults). Supports a partition key
(required) + optional sort key. Default billing mode is
`PAY_PER_REQUEST` (on-demand).
## Inputs
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| `table_name` | string | yes | — | Globally-unique table name |
| `region` | string | yes | — | AWS region |
| `pk` | string | yes | — | Partition key attribute name |
| `sk` | string | no | `""` | Sort key attribute name |
| `billing_mode` | string | no | `PAY_PER_REQUEST` | Billing mode |
| `enabled` | boolean | no | `true` | Feature flag |
## Outputs
| Name | Type | Description |
|---|---|---|
| `table_arn` | arn | The table ARN |
| `table_name` | string | The table name |
## NFRs
- **Encryption:** SSE-KMS enabled by default.
- **Point-in-time recovery:** Enabled by default.
- **Deletion protection:** `prevent_destroy = true` (Terraform lifecycle).
## Examples
See `examples/simple.yaml`.