Files
acdl/modules
Jon Chery e1be05287b feat(P39): refresh design docs + parameterize adapter (P1-1)
---ci---
project: acdl
phase: 39
milestone: v1.9
status: execute
---/ci---

Phase 39 — design-doc-refresh-and-p1-1-parameterization:

Design docs (REQ-100, REQ-101):
- hitl_matrix_design.md: 'dev-only spike'/'v1.2 wires the gates' framing
  replaced with v1.9 wired-gates reality; 8-concern matrix marked
  implemented (offline-testable subset + signed evidence artifacts,
  D-084); v1.9 wiring section cross-references hitl_gates.py +
  attestation_matrix.py; approver_dr noted.
- audit_ledger_design.md: outbox marked shipped+production since v1.8;
  S3 Object Lock + JWS + async worker + DLQ + daily checkpoints clearly
  labeled 'Deferred to a future milestone (D-083)'; RPO/RTO table updated;
  approver fields note v1.9 hitl_gates.attest.

P1-1 adapter parameterization (REQ-102, D-085):
- ecs-service interface.json: desired_count (default 1), launch_type
  (FARGATE), family (app) inputs added.
- alb interface.json: load_balancer_type (application), target_type (ip).
- adapter.py: hardcoded defaults replaced with inputs.get(<name>, <default>);
  hardcoded 'acdl-microservice-rt'/'acdl-microservice-igw' Name tags
  derive from the VPC name input.
- contract_resolver.py: child_input_map routes wires to the sub-resource
  that declares the input (desired_count → aws:ecs:service, family →
  aws:ecs:task_definition, target_type → targetgroup, etc.).
- microservice composition.json: wires added for the new inputs.

Tests: +21 (test_p1_1_adapter_parameterization.py, test_design_docs_current.py).
371 passed; run_ci.sh green; run_platform.sh --check-only green; v1.1 S3
regression preserved.
2026-07-23 04:24:25 +00:00
..

ACDL Modules

Reusable building blocks for cloud infrastructure. Each module is self-documented with a README.md following the template.

How the modules work

There are two kinds of module:

  • Primitives — a single cloud resource or a small group of related resources (e.g. a VPC with subnets and routing). Each primitive has an interface.json declaring its inputs and outputs, and a README.md in plain language.
  • Modules — a pattern that references multiple primitives to deploy a complete stack (e.g. an ECS Fargate microservice). Each module has a composition.json declaring its children and wires.

The substrate adapter (adapters/terraform/adapter.py) compiles a module instance to infrastructure. Each module's README documents which resources it creates.

Primitives

Module What it creates README
s3 aws_s3_bucket — a single S3 bucket README
vpc aws_vpc + aws_subnet + aws_route_table + aws_internet_gateway — VPC with subnets and routing README
ecs-cluster aws_ecs_cluster — ECS Fargate cluster README
ecs-service aws_ecs_task_definition + aws_ecs_service — Fargate service with task definition README
iam-role aws_iam_role — IAM role with assume-role policy README
alb aws_lb + aws_lb_target_group + aws_lb_listener — Application Load Balancer README
ecr aws_ecr_repository — ECR container image repository README
cloudfront aws_cloudfront_distribution + aws_cloudfront_origin_access_control — CloudFront distribution with S3 origin via OAC README
waf aws_wafv2_web_acl — WAFv2 Web ACL (CloudFront-scoped) README
rds aws_db_instance — Relational database (PostgreSQL, MySQL, etc.) with multi-engine support README
kms-key aws_kms_key — Customer-managed KMS key with rotation enabled (per-stack CMK) README
uptime aws_ecs_service — Uptime-kuma monitoring on ECS Fargate with alert channels README

Modules

Module What it references README
microservice 6 primitives (vpc, cluster, ecr, iam-role, alb, ecs-service) README
static-assets 3 primitives (s3, cloudfront, waf) README

Registry

Module versions are tracked in registry.json. Both primitives and modules are registered.

Template

New modules should use README-TEMPLATE.md as their starting point.

Module patterns (roadmap)

The current composition.json mechanism is a thin pattern layer. A future redesign will let a consumer dynamically create a module directly from the contract file (an agentic "composition" flow). That is on the roadmap, not implemented today.