@go-to-k/cdkd 0.79.0 → 0.81.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
@@ -498,17 +498,19 @@ Lambda Runtime Interface Emulator (RIE). Modeled on `sam local invoke`
498
498
  but reusing cdkd's synthesis / asset / construct-path plumbing — no
499
499
  `template.yaml` to maintain, no `cdk synth | sam ...` round-trip.
500
500
 
501
- Requires Docker. Supports Node.js, Python, Ruby, Java, and .NET runtimes
501
+ Requires Docker. Supports every current AWS Lambda runtime
502
502
  (`nodejs18.x` / `nodejs20.x` / `nodejs22.x` / `nodejs24.x` / `python3.11` /
503
503
  `python3.12` / `python3.13` / `python3.14` / `ruby3.2` / `ruby3.3` /
504
- `java8.al2` / `java11` / `java17` / `java21` / `dotnet6` / `dotnet8`);
505
- other runtimes (Go / `provided.*`) are not yet supported. Java and .NET
506
- Lambdas are **asset-backed only** the Handler shape names a compiled
507
- artifact (`package.Class::method` for Java's JVM class;
508
- `Assembly::Namespace.Class::Method` for .NET's CLR assembly), so use
509
- `lambda.Code.fromAsset(<dir>)` with a directory containing the compiled
510
- output (`.class` hierarchy / `.jar` / `.dll`); inline `Code.ZipFile` is
511
- rejected with a clear routing message.
504
+ `java8.al2` / `java11` / `java17` / `java21` / `dotnet6` / `dotnet8` /
505
+ `provided.al2` / `provided.al2023`). The deprecated `go1.x` runtime is
506
+ rejected with a migration pointer to `provided.al2023`. Java, .NET, and
507
+ `provided.*` Lambdas are **asset-backed only** — the Handler shape names
508
+ a compiled artifact (`package.Class::method` for Java's JVM class;
509
+ `Assembly::Namespace.Class::Method` for .NET's CLR assembly; an
510
+ arbitrary `bootstrap` binary for the OS-only `provided.*` runtimes), so
511
+ use `lambda.Code.fromAsset(<dir>)` with a directory containing the
512
+ compiled output (`.class` hierarchy / `.jar` / `.dll` / native binary);
513
+ inline `Code.ZipFile` is rejected with a clear routing message.
512
514
 
513
515
  **Container Lambdas** — `lambda.DockerImageFunction(...)` /
514
516
  `Code.ImageUri` is supported alongside ZIP Lambdas. cdkd reads the
@@ -582,12 +584,16 @@ containers `cdkd local invoke` uses. Modeled on `sam local start-api`
582
584
  but reusing cdkd's synthesis / route-discovery plumbing.
583
585
 
584
586
  ```bash
585
- # Auto-allocate a port (printed at startup) and serve every discovered route
587
+ # Auto-allocate one port PER discovered API (printed at startup)
586
588
  cdkd local start-api
587
589
 
588
- # Pin to port 3000 (SAM-parity / curl muscle memory)
590
+ # Pin the FIRST server to port 3000; subsequent APIs get 3001, 3002, ...
589
591
  cdkd local start-api --port 3000
590
592
 
593
+ # Restrict to a single API by its CDK logical id (HTTP API / REST API logical
594
+ # id, or the backing Lambda's logical id for Function URLs)
595
+ cdkd local start-api --api MyAdminApi
596
+
591
597
  # Pre-warm one container per Lambda at server boot — eliminates first-request cold start
592
598
  cdkd local start-api --warm
593
599
 
@@ -604,6 +610,13 @@ cdkd local start-api --watch
604
610
  cdkd local start-api --stage prod
605
611
  ```
606
612
 
613
+ **One server per API** (since v0.81): every discovered API surface gets its
614
+ own HTTP server on its own port, so authorizers, CORS configs, and stage
615
+ variables stay scoped to the owning API and never bleed across APIs that
616
+ happen to share a path. `cdkd local start-api` prints one
617
+ `Server listening on http://<host>:<port> (<API> (<kind>))` line per
618
+ server at startup; pass `--api <id>` to launch only one of them.
619
+
607
620
  Scope: REST v1 + HTTP API + Function URL with AWS_PROXY integrations.
608
621
  Authorizers (Lambda TOKEN/REQUEST + Cognito User Pool + HTTP v2 JWT),
609
622
  VPC-config Lambda warnings, CORS preflight, hot reload, and stage