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.
This commit is contained in:
Jon Chery
2026-07-23 04:24:25 +00:00
parent 58100c485e
commit e1be05287b
12 changed files with 1045 additions and 67 deletions
+14 -2
View File
@@ -36,6 +36,18 @@
"type": "string",
"description": "AWS region the load balancer is created in.",
"required": true
},
"load_balancer_type": {
"type": "string",
"description": "Load balancer type (application or network).",
"required": false,
"default": "application"
},
"target_type": {
"type": "string",
"description": "Target group target type (ip or instance).",
"required": false,
"default": "ip"
}
},
"outputs": {
@@ -73,13 +85,13 @@
{
"type": "aws:elbv2:loadbalancer",
"description": "Application load balancer in the VPC subnets.",
"inputs": ["name", "subnets", "security_group"],
"inputs": ["name", "subnets", "security_group", "load_balancer_type"],
"outputs": ["lb_arn"]
},
{
"type": "aws:elbv2:targetgroup",
"description": "Target group for the ECS service tasks.",
"inputs": ["name", "port", "protocol", "vpc_id"],
"inputs": ["name", "port", "protocol", "vpc_id", "target_type"],
"outputs": ["target_group_arn"]
},
{
+20 -2
View File
@@ -61,6 +61,24 @@
"type": "string",
"description": "ARN of the CMK for CloudWatch log group encryption; if absent, uses managed key.",
"required": false
},
"desired_count": {
"type": "number",
"description": "Desired number of ECS task replicas (Fargate).",
"required": false,
"default": 1
},
"launch_type": {
"type": "string",
"description": "ECS launch type (FARGATE or EC2).",
"required": false,
"default": "FARGATE"
},
"family": {
"type": "string",
"description": "ECS task definition family name.",
"required": false,
"default": "app"
}
},
"outputs": {
@@ -89,13 +107,13 @@
{
"type": "aws:ecs:task_definition",
"description": "Fargate task definition; the adapter jsonencodes image/port/env into container_definitions.",
"inputs": ["image", "port", "cpu", "memory", "env"],
"inputs": ["image", "port", "cpu", "memory", "env", "family"],
"outputs": ["task_def_arn"]
},
{
"type": "aws:ecs:service",
"description": "Fargate service running the task definition in the cluster + subnets.",
"inputs": ["cluster_arn", "subnets", "security_group", "lb_target_group_arn"],
"inputs": ["cluster_arn", "subnets", "security_group", "lb_target_group_arn", "desired_count", "launch_type"],
"outputs": ["service_arn"]
}
]