cdk-local 0.6.0 → 0.7.1

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/dist/cli.js CHANGED
@@ -1,10 +1,10 @@
1
1
  #!/usr/bin/env node
2
- import { i as createLocalInvokeCommand, n as createLocalRunTaskCommand, r as createLocalStartApiCommand, t as createLocalStartServiceCommand } from "./local-start-service-irdy6U57.js";
2
+ import { i as createLocalInvokeCommand, n as createLocalRunTaskCommand, r as createLocalStartApiCommand, t as createLocalStartServiceCommand } from "./local-start-service-Bh1z2yKs.js";
3
3
  import { Command } from "commander";
4
4
 
5
5
  //#region src/cli/index.ts
6
6
  const program = new Command();
7
- program.name("cdkl").description("Run AWS CDK stacks locally with Docker.").version("0.6.0");
7
+ program.name("cdkl").description("Run AWS CDK stacks locally with Docker.").version("0.7.1");
8
8
  program.addCommand(createLocalInvokeCommand());
9
9
  program.addCommand(createLocalStartApiCommand());
10
10
  program.addCommand(createLocalRunTaskCommand());
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../src/types/state.ts","../src/local/state-resolver.ts","../src/local/local-state-provider.ts","../src/cli/commands/local-state-source.ts","../src/local/embed-config.ts","../src/cli/commands/local-invoke.ts","../src/cli/commands/local-start-api.ts","../src/cli/commands/local-run-task.ts","../src/cli/commands/local-start-service.ts","../src/local/cfn-local-state-provider.ts"],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../src/types/state.ts","../src/local/state-resolver.ts","../src/local/local-state-provider.ts","../src/cli/commands/local-state-source.ts","../src/local/embed-config.ts","../src/cli/commands/local-invoke.ts","../src/cli/commands/local-start-api.ts","../src/cli/commands/local-run-task.ts","../src/cli/commands/local-start-service.ts","../src/local/cfn-local-state-provider.ts"],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,3 +1,3 @@
1
- import { a as LocalStateSourceError, c as rejectExplicitCfnStackWithMultipleStacks, d as CfnLocalStateProvider, i as createLocalInvokeCommand, l as resolveCfnRegion, n as createLocalRunTaskCommand, o as createLocalStateProvider, r as createLocalStartApiCommand, s as isCfnFlagPresent, t as createLocalStartServiceCommand, u as resolveCfnStackName } from "./local-start-service-irdy6U57.js";
1
+ import { a as LocalStateSourceError, c as rejectExplicitCfnStackWithMultipleStacks, d as CfnLocalStateProvider, i as createLocalInvokeCommand, l as resolveCfnRegion, n as createLocalRunTaskCommand, o as createLocalStateProvider, r as createLocalStartApiCommand, s as isCfnFlagPresent, t as createLocalStartServiceCommand, u as resolveCfnStackName } from "./local-start-service-Bh1z2yKs.js";
2
2
 
3
3
  export { CfnLocalStateProvider, LocalStateSourceError, createLocalInvokeCommand, createLocalRunTaskCommand, createLocalStartApiCommand, createLocalStartServiceCommand, createLocalStateProvider, isCfnFlagPresent, rejectExplicitCfnStackWithMultipleStacks, resolveCfnRegion, resolveCfnStackName };
@@ -12135,20 +12135,30 @@ function base64UrlDecodeToBuffer(input) {
12135
12135
  * 4. Compare the recomputed signature against the header's `signature`
12136
12136
  * value (constant-time compare).
12137
12137
  *
12138
- * # Local-vs-deployed semantics (per `feedback_match_aws_default_over_opinionated.md`)
12138
+ * # Local-vs-deployed semantics
12139
12139
  *
12140
12140
  * Verification can only succeed when the request was signed with the
12141
- * **same** credentials the local server can read. When the request's
12142
- * `Credential=AKID/...` scope names a different access-key-id than the
12143
- * one the dev has locally, cdk-local cannot reproduce the signing key we
12144
- * **warn-and-pass** in that case (allow + log a one-line warn), matching
12145
- * AWS's "verify locally what we can; defer real authorization to deploy
12146
- * time" model. Refusing would force every dev with a SigV4-signed client
12147
- * to use the exact same credential the local server sees, which is rarely
12148
- * what they want.
12149
- *
12150
- * Genuinely missing / malformed signatures **are** rejected — those would
12151
- * never reach the deployed API either.
12141
+ * **same** credentials the local server can read. SigV4 is an HMAC
12142
+ * (shared-secret) signature: reproducing it requires the signer's secret
12143
+ * key. For a foreign access-key-id a federated / Cognito Identity Pool /
12144
+ * cross-account signer cdk-local does not have that secret and AWS never
12145
+ * publishes it, so local verification is **impossible**. The deployed API
12146
+ * Gateway CAN verify the very same request because AWS holds the secret;
12147
+ * this asymmetry is a local-only limitation, not a sign the request is
12148
+ * invalid.
12149
+ *
12150
+ * When the request's `Credential=AKID/...` scope names a different
12151
+ * access-key-id than the one the dev has locally, we therefore **deny by
12152
+ * default** (fail-closed). A fail-open default would let anyone forge an
12153
+ * `Authorization: AWS4-HMAC-SHA256 Credential=AKID-X/...` header and be
12154
+ * admitted as principal `AKID-X` against handler code that trusts
12155
+ * `event.requestContext.identity.accessKey`. The `--allow-unverified-sigv4`
12156
+ * flag (or an OAC-fronted Function URL, where CloudFront re-signs the
12157
+ * origin request in production) is the explicit opt-in to **warn-and-pass**
12158
+ * instead: allow + a one-line warn + an obviously-fake principalId.
12159
+ *
12160
+ * Genuinely missing / malformed signatures **are** rejected too — those
12161
+ * would never reach the deployed API either.
12152
12162
  *
12153
12163
  * # NOT IN SCOPE
12154
12164
  *
@@ -12267,7 +12277,7 @@ async function verifySigV4(req, loadCredentials, opts = {}) {
12267
12277
  } catch (err) {
12268
12278
  const reason = err instanceof Error ? err.message : String(err);
12269
12279
  if (!opts.allowUnverified) {
12270
- logger.warn(`AWS_IAM authorizer: failed to resolve local AWS credentials (${reason}). Denying request; configure AWS credentials or pass --allow-unverified-sigv4 to opt into the warn-and-pass dev behavior.`);
12280
+ logger.warn(`AWS_IAM authorizer: could not resolve local AWS credentials (${reason}), so the request's SigV4 signature cannot be verified — SigV4 is an HMAC (shared-secret) signature, and reproducing it requires credentials cdk-local can read. This is a local-only limitation (the deployed API Gateway verifies the same request against AWS's copy of the secret), not a rejection of an invalid request. Denying by default; configure AWS credentials, or pass --allow-unverified-sigv4 to warn-and-pass in dev.`);
12271
12281
  return {
12272
12282
  allow: false,
12273
12283
  identityHash: void 0
@@ -12285,7 +12295,7 @@ async function verifySigV4(req, loadCredentials, opts = {}) {
12285
12295
  const dedupKey = parsed.credentialAccessKeyId.toLowerCase();
12286
12296
  if (!opts.allowUnverified) {
12287
12297
  if (!warned || !warned.has(dedupKey)) {
12288
- logger.warn(`AWS_IAM authorizer: request signed with foreign access-key-id '${parsed.credentialAccessKeyId}'. Denying; pass --allow-unverified-sigv4 to opt into the warn-and-pass dev behavior, or call with credentials whose access-key-id matches your local one.`);
12298
+ logger.warn(`AWS_IAM authorizer: request signed with access-key-id '${parsed.credentialAccessKeyId}', which differs from the AWS credentials cdk-local resolved locally. SigV4 is an HMAC (shared-secret) signature, so cdk-local can only verify signatures made with its own credentials — never a federated / Cognito Identity Pool / cross-account signer's (the deployed API Gateway verifies the same request because AWS holds that secret). This is a local-only limitation, not a rejection of an invalid request. Denying by default; pass --allow-unverified-sigv4 to warn-and-pass in dev, or sign the request with the same credentials cdk-local resolves locally.`);
12289
12299
  warned?.add(dedupKey);
12290
12300
  }
12291
12301
  return {
@@ -14312,7 +14322,9 @@ async function localStartApiCommand(target, options, extraStateProviders) {
14312
14322
  skipPull: options.pull === false,
14313
14323
  ...options.layerRoleArn !== void 0 && { layerRoleArn: options.layerRoleArn },
14314
14324
  ...profileCredentials && { profileCredentials },
14315
- ...profileCredsFile && { profileCredsFile }
14325
+ ...profileCredsFile && { profileCredsFile },
14326
+ ...profileCredentials?.region && { profileRegion: profileCredentials.region },
14327
+ ...options.stackRegion && { stackRegionOverride: options.stackRegion }
14316
14328
  });
14317
14329
  specs.set(logicalId, spec);
14318
14330
  }
@@ -14834,7 +14846,7 @@ function warnIamRoutes(routesWithAuth) {
14834
14846
  * missing, runtime not supported).
14835
14847
  */
14836
14848
  async function buildContainerSpec(args) {
14837
- const { logicalId, stacks, overrides, assumeRole, containerHost, debugPort, stsRegion, inlineTmpDirs, layerTmpDirs, stateByStack, skipPull, layerRoleArn, profileCredentials, profileCredsFile } = args;
14849
+ const { logicalId, stacks, overrides, assumeRole, containerHost, debugPort, stsRegion, inlineTmpDirs, layerTmpDirs, stateByStack, skipPull, layerRoleArn, profileCredentials, profileCredsFile, profileRegion, stackRegionOverride } = args;
14838
14850
  const lambda = resolveLambdaByLogicalId(logicalId, stacks);
14839
14851
  let codeDir;
14840
14852
  let optDir;
@@ -14895,6 +14907,14 @@ async function buildContainerSpec(args) {
14895
14907
  dockerEnv["AWS_PROFILE"] = profileCredsFile.profileName;
14896
14908
  }
14897
14909
  }
14910
+ if (!dockerEnv["AWS_REGION"]) {
14911
+ const fallbackRegion = resolveContainerFallbackRegion({
14912
+ stackRegionOverride,
14913
+ synthRegion: lambda.stack.region,
14914
+ profileRegion
14915
+ });
14916
+ if (fallbackRegion) dockerEnv["AWS_REGION"] = fallbackRegion;
14917
+ }
14898
14918
  if (debugPort !== void 0) dockerEnv["NODE_OPTIONS"] = `--inspect-brk=0.0.0.0:${debugPort}`;
14899
14919
  const tmpfs = lambda.ephemeralStorageMb !== void 0 ? {
14900
14920
  target: "/tmp",
@@ -15296,6 +15316,18 @@ function forwardAwsEnv(env) {
15296
15316
  * common dev session; long-running `--watch` sessions that outlive
15297
15317
  * the creds need a cdk-local restart (deferred refresh out of scope for
15298
15318
  * v1, see issue #654).
15319
+ *
15320
+ * Also resolves the profile's configured `region` (from `~/.aws/config`'s
15321
+ * `region = ...` for this profile) off the same client config. The
15322
+ * synthesized credentials file we mount into the container carries only
15323
+ * the credential triple — no `region =` — so without this the container
15324
+ * boots with creds but no region, and a handler's ambient-region SDK call
15325
+ * (`new XxxClient({})`) fails with "Region is missing". The caller seeds
15326
+ * the container's `AWS_REGION` fallback with it (see
15327
+ * {@link resolveContainerFallbackRegion}). Region resolution is
15328
+ * best-effort: a profile with no region (or any resolution failure)
15329
+ * yields `region: undefined` rather than throwing — a missing region is
15330
+ * not a missing-credentials error.
15299
15331
  */
15300
15332
  async function resolveProfileCredentials(profile) {
15301
15333
  const { STSClient } = await import("@aws-sdk/client-sts");
@@ -15304,16 +15336,52 @@ async function resolveProfileCredentials(profile) {
15304
15336
  const credsProvider = sts.config.credentials;
15305
15337
  const creds = typeof credsProvider === "function" ? await credsProvider() : credsProvider;
15306
15338
  if (!creds || !creds.accessKeyId || !creds.secretAccessKey) throw new Error(`--profile '${profile}': credential provider chain resolved without usable credentials. Check \`aws sso login --profile ` + profile + "` for SSO profiles, or `~/.aws/credentials` / `~/.aws/config` for regular profiles.");
15339
+ let region;
15340
+ try {
15341
+ const regionProvider = sts.config.region;
15342
+ const resolved = typeof regionProvider === "function" ? await regionProvider() : regionProvider;
15343
+ if (typeof resolved === "string" && resolved.length > 0) region = resolved;
15344
+ } catch {
15345
+ region = void 0;
15346
+ }
15307
15347
  return {
15308
15348
  accessKeyId: creds.accessKeyId,
15309
15349
  secretAccessKey: creds.secretAccessKey,
15310
- ...creds.sessionToken && { sessionToken: creds.sessionToken }
15350
+ ...creds.sessionToken && { sessionToken: creds.sessionToken },
15351
+ ...region && { region }
15311
15352
  };
15312
15353
  } finally {
15313
15354
  sts.destroy();
15314
15355
  }
15315
15356
  }
15316
15357
  /**
15358
+ * Resolve the fallback `AWS_REGION` for a Lambda container when neither
15359
+ * the assume-role STS region nor a forwarded `AWS_REGION` /
15360
+ * `AWS_DEFAULT_REGION` env var already set one.
15361
+ *
15362
+ * Precedence mirrors where the deployed function would actually run, so a
15363
+ * handler's ambient-region SDK call (`new XxxClient({})`) reaches the same
15364
+ * region locally as the resources it is bound to:
15365
+ *
15366
+ * 1. `--stack-region` — explicit; also drives the `--from-cfn-stack` CFn
15367
+ * client, so the container matches the region the bound stack was read
15368
+ * from.
15369
+ * 2. the synth-derived stack region — `env.region` on the CDK stack, read
15370
+ * from the cloud assembly manifest (`StackInfo.region`). Previously
15371
+ * used only host-side for the `--from-cfn-stack` CFn client; never
15372
+ * injected into the container.
15373
+ * 3. the `--profile`'s configured region — `~/.aws/config`'s `region =`
15374
+ * for the profile. `--profile` injected credentials but not this.
15375
+ *
15376
+ * Returns `undefined` when none is known; the caller leaves `AWS_REGION`
15377
+ * unset so the SDK's own "Region is missing" surfaces (the correct signal
15378
+ * for a region-agnostic stack with no profile region and no `AWS_REGION`
15379
+ * env).
15380
+ */
15381
+ function resolveContainerFallbackRegion(args) {
15382
+ return args.stackRegionOverride ?? args.synthRegion ?? args.profileRegion;
15383
+ }
15384
+ /**
15317
15385
  * Issue an STS AssumeRole and return temporary credentials. Mirrors
15318
15386
  * `cdkl invoke`'s helper byte-for-byte; lifted here so the
15319
15387
  * start-api command stays self-contained.
@@ -18226,4 +18294,4 @@ function createLocalStartServiceCommand(opts = {}) {
18226
18294
 
18227
18295
  //#endregion
18228
18296
  export { LocalStateSourceError as a, rejectExplicitCfnStackWithMultipleStacks as c, CfnLocalStateProvider as d, createLocalInvokeCommand as i, resolveCfnRegion as l, createLocalRunTaskCommand as n, createLocalStateProvider as o, createLocalStartApiCommand as r, isCfnFlagPresent as s, createLocalStartServiceCommand as t, resolveCfnStackName as u };
18229
- //# sourceMappingURL=local-start-service-irdy6U57.js.map
18297
+ //# sourceMappingURL=local-start-service-Bh1z2yKs.js.map