3508671377
The L2 thin-composition layer (composition.json + contract_resolver.py + contract schema + sample contracts) has been removed completely. The implementation was unsatisfactory and is deferred for a later redesign. - Delete: composition.json x2, contract_resolver.py, contracts/ x2, contract.schema.json - Patch: run_platform.sh now loads a pre-existing IR instance instead of resolving a contract (the downstream adapter/checkov/confidence/outbox pipeline is unchanged) - Prune: L2 entries removed from registry.json (L1 entries unchanged) - Rewrite: all 7 L1 module READMEs in plain language (no jargon), each with Resources/Inputs/Outputs/Usage/Compliance-extension-points/Versioning sections derived from interface.json - Add: 2 L2 placeholder READMEs noting the composition is under redesign - Add: modules-ir/README.md catalog index + README-TEMPLATE.md ---ci--- project: acdl phase: 17 milestone: v1.3 status: execute ---/ci---
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:
- L1 primitives — a single cloud resource or a small group of
related resources (e.g. a VPC with subnets and routing). Each L1 has
an
interface.jsondeclaring its inputs and outputs, and aREADME.mdin plain language. - L2 compositions — a composition that references multiple L1s to deploy a complete stack (e.g. an ECS Fargate microservice). The L2 composition layer is being redesigned. The previous implementation has been removed; a new mechanism will be designed in a later phase.
The Terraform adapter (adapters/terraform/adapter.py) compiles a
module instance to Terraform. Each module's README documents which
Terraform resources it creates.
L1 primitives
| Module | What it creates | README |
|---|---|---|
l1-s3 |
aws_s3_bucket — a single S3 bucket |
README |
l1-vpc |
aws_vpc + aws_subnet + aws_route_table + aws_internet_gateway — VPC with subnets and routing |
README |
l1-ecs-cluster |
aws_ecs_cluster — ECS Fargate cluster |
README |
l1-ecs-service |
aws_ecs_task_definition + aws_ecs_service — Fargate service with task definition |
README |
l1-iam-role |
aws_iam_role — IAM role with assume-role policy |
README |
l1-alb |
aws_lb + aws_lb_target_group + aws_lb_listener — Application Load Balancer |
README |
l1-ecr |
aws_ecr_repository — ECR container image repository |
README |
L2 compositions
| Module | What it references | README |
|---|---|---|
l2-microservice |
6 L1s (vpc, cluster, ecr, iam-role, alb, ecs-service) — under redesign | README |
l2-static-asset |
1 L1 (s3) — under redesign | README |
Registry
Module versions are tracked in registry.json. Only L1 entries are
active; L2 entries have been pruned pending the composition redesign.
Template
New modules should use README-TEMPLATE.md as their starting point.