@go-to-k/cdkd 0.77.0 → 0.79.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
@@ -36,9 +36,9 @@ Numbers below are deploy-phase only (CDK app synthesis is identical between cdkd
36
36
 
37
37
  Stack: S3 Bucket, DynamoDB Table, SQS Queue, SNS Topic, SSM Parameter (5 independent resources, fully parallelized by cdkd's DAG scheduler).
38
38
 
39
- | | cdkd | AWS CDK (CFn) | Speedup |
39
+ | | AWS CDK (CFn) | cdkd | Speedup |
40
40
  | --- | ---: | ---: | ---: |
41
- | Deploy | **17.0s** | **94.4s** | **5.5x** |
41
+ | Deploy | **94.4s** | **17.0s** | **5.5x** |
42
42
 
43
43
  ### VPC + CloudFront + Lambda stack — **15x faster with `--no-wait`** (40s vs 599s)
44
44
 
@@ -54,9 +54,9 @@ The 15x figure requires `cdkd deploy --no-wait`, which returns as soon as each C
54
54
 
55
55
  Stack: SSM Document × 3 + Athena WorkGroup × 2 (no SDK provider — CC API fallback).
56
56
 
57
- | | cdkd | AWS CDK (CFn) | Speedup |
57
+ | | AWS CDK (CFn) | cdkd | Speedup |
58
58
  | --- | ---: | ---: | ---: |
59
- | Deploy | **40.9s** | **64.9s** | **1.6x** |
59
+ | Deploy | **64.9s** | **40.9s** | **1.6x** |
60
60
 
61
61
  Reproduce the first two with `./tests/benchmark/run-benchmark.sh all`. See [tests/benchmark/README.md](tests/benchmark/README.md) for details.
62
62
 
@@ -99,21 +99,11 @@ For a step-by-step walkthrough of the full `cdkd deploy` pipeline (CLI
99
99
  parsing → synthesis → asset publishing → per-stack deploy), see
100
100
  [docs/architecture.md](docs/architecture.md#5-end-to-end-pipeline-walkthrough-cdkd-deploy).
101
101
 
102
- ## Supported Features
103
-
104
- cdkd supports the standard CloudFormation surface — intrinsic functions,
105
- pseudo parameters, parameters / conditions, cross-stack / cross-region
106
- references, asset publishing, custom resources, and so on. See
107
- **[docs/supported-features.md](docs/supported-features.md)** for the
108
- full reference. For per-resource-type provisioning support (SDK Providers
109
- vs Cloud Control API fallback), see
110
- **[docs/supported-resources.md](docs/supported-resources.md)**.
111
-
112
102
  ## Prerequisites
113
103
 
114
104
  - **Node.js** >= 20.0.0
115
105
  - **AWS CDK Bootstrap**: You must run `cdk bootstrap` before using cdkd. cdkd uses CDK's bootstrap bucket (`cdk-hnb659fds-assets-*`) for asset uploads (Lambda code, Docker images). Custom bootstrap qualifiers are supported — CDK embeds the correct bucket/repo names in the asset manifest during synthesis.
116
- - **AWS Credentials**: Configured via environment variables, `~/.aws/credentials`, `--profile`, or `--role-arn` option. **The credentials must have admin-equivalent permissions for the resources being deployed.** Unlike `cdk deploy`, cdkd does NOT route through CloudFormation, so there is no cfn-exec-role to delegate to — every IAM / EC2 / Lambda / etc. API call is issued from cdkd directly. CDK CLI's `cdk-hnb659fds-deploy-role-*` only carries CFn + asset-publish permissions and is therefore NOT sufficient for cdkd. See `--role-arn` in [docs/cli-reference.md](docs/cli-reference.md) for assuming a role with the right permissions.
106
+ - **AWS credentials with admin-equivalent permissions** for the resources being deployed. cdkd does NOT route through CloudFormation, so CDK CLI's `cdk-hnb659fds-deploy-role-*` is NOT sufficient see [`--role-arn`](docs/cli-reference.md).
117
107
 
118
108
  ## Installation
119
109
 
@@ -322,6 +312,16 @@ cdkd state destroy --all -y # every stack in the bucket
322
312
  cdkd state destroy MyStack --region us-east-1
323
313
  ```
324
314
 
315
+ ## Compatibility
316
+
317
+ cdkd supports the standard CloudFormation surface — intrinsic functions,
318
+ pseudo parameters, parameters / conditions, cross-stack / cross-region
319
+ references, asset publishing, custom resources, and so on. See
320
+ **[docs/supported-features.md](docs/supported-features.md)** for the
321
+ full reference. For per-resource-type provisioning support (SDK Providers
322
+ vs Cloud Control API fallback), see
323
+ **[docs/supported-resources.md](docs/supported-resources.md)**.
324
+
325
325
  ## Rollback behavior
326
326
 
327
327
  When a deploy fails mid-stack (e.g. a resource hits a validation error
@@ -498,10 +498,17 @@ 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, and Ruby runtimes (`nodejs18.x` /
502
- `nodejs20.x` / `nodejs22.x` / `nodejs24.x` / `python3.11` / `python3.12` /
503
- `python3.13` / `python3.14` / `ruby3.2` / `ruby3.3`); other runtimes
504
- (Java / .NET / Go / `provided.*`) are not yet supported.
501
+ Requires Docker. Supports Node.js, Python, Ruby, Java, and .NET runtimes
502
+ (`nodejs18.x` / `nodejs20.x` / `nodejs22.x` / `nodejs24.x` / `python3.11` /
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.
505
512
 
506
513
  **Container Lambdas** — `lambda.DockerImageFunction(...)` /
507
514
  `Code.ImageUri` is supported alongside ZIP Lambdas. cdkd reads the
package/dist/cli.js CHANGED
@@ -70573,7 +70573,13 @@ var SUPPORTED_RUNTIMES = {
70573
70573
  "python3.13": { image: "public.ecr.aws/lambda/python:3.13", fileExtension: ".py" },
70574
70574
  "python3.14": { image: "public.ecr.aws/lambda/python:3.14", fileExtension: ".py" },
70575
70575
  "ruby3.2": { image: "public.ecr.aws/lambda/ruby:3.2", fileExtension: ".rb" },
70576
- "ruby3.3": { image: "public.ecr.aws/lambda/ruby:3.3", fileExtension: ".rb" }
70576
+ "ruby3.3": { image: "public.ecr.aws/lambda/ruby:3.3", fileExtension: ".rb" },
70577
+ "java8.al2": { image: "public.ecr.aws/lambda/java:8.al2", fileExtension: null },
70578
+ java11: { image: "public.ecr.aws/lambda/java:11", fileExtension: null },
70579
+ java17: { image: "public.ecr.aws/lambda/java:17", fileExtension: null },
70580
+ java21: { image: "public.ecr.aws/lambda/java:21", fileExtension: null },
70581
+ dotnet6: { image: "public.ecr.aws/lambda/dotnet:6", fileExtension: null },
70582
+ dotnet8: { image: "public.ecr.aws/lambda/dotnet:8", fileExtension: null }
70577
70583
  };
70578
70584
  var UnsupportedRuntimeError = class _UnsupportedRuntimeError extends Error {
70579
70585
  constructor(runtime, message) {
@@ -70587,7 +70593,14 @@ function resolveRuntimeImage(runtime) {
70587
70593
  return resolveRuntimeSpec(runtime).image;
70588
70594
  }
70589
70595
  function resolveRuntimeFileExtension(runtime) {
70590
- return resolveRuntimeSpec(runtime).fileExtension;
70596
+ const spec = resolveRuntimeSpec(runtime);
70597
+ if (spec.fileExtension === null) {
70598
+ throw new UnsupportedRuntimeError(
70599
+ runtime,
70600
+ `Inline 'Code.ZipFile' is not supported for runtime '${runtime}'. The Lambda Handler shape for this runtime names a compiled artifact (a JVM class, a .NET assembly, or a native binary) that cannot be expressed as a single inline source file. Use \`lambda.Code.fromAsset(<dir>)\` with a directory containing the compiled output (.class hierarchy / JAR / DLL / binary).`
70601
+ );
70602
+ }
70603
+ return spec.fileExtension;
70591
70604
  }
70592
70605
  function resolveRuntimeSpec(runtime) {
70593
70606
  if (typeof runtime !== "string" || runtime.length === 0) {
@@ -70599,15 +70612,15 @@ function resolveRuntimeSpec(runtime) {
70599
70612
  const spec = SUPPORTED_RUNTIMES[runtime];
70600
70613
  if (spec)
70601
70614
  return spec;
70602
- if (runtime.startsWith("java") || runtime.startsWith("dotnet") || runtime.startsWith("go") || runtime.startsWith("provided")) {
70615
+ if (runtime.startsWith("go") || runtime.startsWith("provided")) {
70603
70616
  throw new UnsupportedRuntimeError(
70604
70617
  runtime,
70605
- `Runtime '${runtime}' is not yet supported in cdkd local invoke. Supported runtimes: Node.js (nodejs18.x / nodejs20.x / nodejs22.x / nodejs24.x), Python (python3.11 / python3.12 / python3.13 / python3.14), Ruby (ruby3.2 / ruby3.3). Other runtimes follow in subsequent PRs.`
70618
+ `Runtime '${runtime}' is not yet supported in cdkd local invoke. Supported runtimes: Node.js (nodejs18.x / nodejs20.x / nodejs22.x / nodejs24.x), Python (python3.11 / python3.12 / python3.13 / python3.14), Ruby (ruby3.2 / ruby3.3), Java (java8.al2 / java11 / java17 / java21), .NET (dotnet6 / dotnet8). Other runtimes follow in subsequent PRs.`
70606
70619
  );
70607
70620
  }
70608
70621
  throw new UnsupportedRuntimeError(
70609
70622
  runtime,
70610
- `Unknown runtime '${runtime}'. cdkd local invoke supports nodejs18.x / nodejs20.x / nodejs22.x / nodejs24.x / python3.11 / python3.12 / python3.13 / python3.14 / ruby3.2 / ruby3.3.`
70623
+ `Unknown runtime '${runtime}'. cdkd local invoke supports nodejs18.x / nodejs20.x / nodejs22.x / nodejs24.x / python3.11 / python3.12 / python3.13 / python3.14 / ruby3.2 / ruby3.3 / java8.al2 / java11 / java17 / java21 / dotnet6 / dotnet8.`
70611
70624
  );
70612
70625
  }
70613
70626
 
@@ -77032,7 +77045,7 @@ function reorderArgs(argv) {
77032
77045
  }
77033
77046
  async function main() {
77034
77047
  const program = new Command16();
77035
- program.name("cdkd").description("CDK Direct - Deploy AWS CDK apps directly via SDK/Cloud Control API").version("0.77.0");
77048
+ program.name("cdkd").description("CDK Direct - Deploy AWS CDK apps directly via SDK/Cloud Control API").version("0.79.0");
77036
77049
  program.addCommand(createBootstrapCommand());
77037
77050
  program.addCommand(createSynthCommand());
77038
77051
  program.addCommand(createListCommand());