@go-to-k/cdkd 0.80.0 → 0.82.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -4,6 +4,7 @@
4
4
 
5
5
  - **Drop-in CDK compatible** — your existing CDK app code runs as-is.
6
6
  - **Up to 15x faster deploys than the AWS CDK CLI (CloudFormation)**
7
+ - **Run AWS resources locally without deploying** — invoke Lambdas, serve API Gateway routes, and run ECS task definitions against Docker. SAM-compatible mental model, no `template.yaml` round-trip.
7
8
 
8
9
  ![cdkd demo](https://github.com/user-attachments/assets/0128730d-186d-4bd3-abea-aabc80ba4dd5)
9
10
 
@@ -23,6 +24,7 @@
23
24
  - **Rollback on failure**: When a deploy errors mid-stack, cdkd rolls back the resources it just created so the stack state stays consistent (CloudFormation parity — but cdkd does this without round-tripping through CFn). Pass `cdkd deploy --no-rollback` to skip rollback and keep the partial state for Terraform-style inspection / repair. See [Rollback behavior](#rollback-behavior).
24
25
  - **`--no-wait` for async resources**: Skip the multi-minute wait on CloudFront / RDS / ElastiCache / NAT Gateway and return as soon as the create call returns (CloudFormation always blocks)
25
26
  - **VPC route DependsOn relaxation (on by default)**: Drop CDK-injected defensive `DependsOn` edges from VPC Lambdas onto private-subnet routes so `CloudFront::Distribution` and `Lambda::Url` start their ~3-min propagation in parallel with NAT Gateway stabilization (~50% faster on VPC + Lambda + CloudFront stacks). Pass `--no-aggressive-vpc-parallel` to opt out.
27
+ - **Local execution without deploying** (`cdkd local invoke` / `cdkd local start-api` / `cdkd local run-task`): run any Lambda — stand up every API Gateway route as a local HTTP server — or start every container in an `AWS::ECS::TaskDefinition` on a per-task docker network with the AWS-published metadata-endpoints sidecar. SAM-compatible mental model but reuses cdkd's synthesis / asset / route-discovery (no `template.yaml` round-trip). All AWS Lambda runtimes (Node.js / Python / Ruby / Java / .NET / `provided.*`) and one server per discovered API (HTTP API v2 / REST v1 / Function URL) with their own port / authorizers / CORS configs. `local run-task` is Phase 1 (single task, DependsOn ordering, IAM task-role via AssumeRole) — ECS Services / ALB routing / Service Connect are Phase 2 / Phase 3 follow-ups.
26
28
 
27
29
  > **Note**: Resource types not covered by either SDK Providers or Cloud Control API cannot be deployed with cdkd. If you encounter an unsupported resource type, deployment will fail with a clear error message.
28
30
 
@@ -584,12 +586,16 @@ containers `cdkd local invoke` uses. Modeled on `sam local start-api`
584
586
  but reusing cdkd's synthesis / route-discovery plumbing.
585
587
 
586
588
  ```bash
587
- # Auto-allocate a port (printed at startup) and serve every discovered route
589
+ # Auto-allocate one port PER discovered API (printed at startup)
588
590
  cdkd local start-api
589
591
 
590
- # Pin to port 3000 (SAM-parity / curl muscle memory)
592
+ # Pin the FIRST server to port 3000; subsequent APIs get 3001, 3002, ...
591
593
  cdkd local start-api --port 3000
592
594
 
595
+ # Restrict to a single API by its CDK logical id (HTTP API / REST API logical
596
+ # id, or the backing Lambda's logical id for Function URLs)
597
+ cdkd local start-api --api MyAdminApi
598
+
593
599
  # Pre-warm one container per Lambda at server boot — eliminates first-request cold start
594
600
  cdkd local start-api --warm
595
601
 
@@ -606,6 +612,13 @@ cdkd local start-api --watch
606
612
  cdkd local start-api --stage prod
607
613
  ```
608
614
 
615
+ **One server per API** (since v0.81): every discovered API surface gets its
616
+ own HTTP server on its own port, so authorizers, CORS configs, and stage
617
+ variables stay scoped to the owning API and never bleed across APIs that
618
+ happen to share a path. `cdkd local start-api` prints one
619
+ `Server listening on http://<host>:<port> (<API> (<kind>))` line per
620
+ server at startup; pass `--api <id>` to launch only one of them.
621
+
609
622
  Scope: REST v1 + HTTP API + Function URL with AWS_PROXY integrations.
610
623
  Authorizers (Lambda TOKEN/REQUEST + Cognito User Pool + HTTP v2 JWT),
611
624
  VPC-config Lambda warnings, CORS preflight, hot reload, and stage