aws-cdk 2.1144.0 → 2.1145.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
@@ -207,6 +207,44 @@ $ cdk diff --app='node bin/main.js' MyStackName
207
207
  $ cdk diff --app='node bin/main.js' MyStackName --template=path/to/template.yml
208
208
  ```
209
209
 
210
+ Use `--fail-on` to control which kind of change makes the command exit with code 1. It takes the same
211
+ values as `cdk deploy --require-approval`:
212
+
213
+ - `--fail-on=any-change`: fail on any difference. `--fail` is an alias for this value.
214
+ - `--fail-on=broadening`: fail only on changes that broaden security permissions, such as new IAM
215
+ statements or security group rules. All differences are still shown.
216
+ - `--fail-on=destructive`: fail only on changes that replace, delete or orphan an existing resource.
217
+ See below. `cdk deploy --require-approval=destructive` uses the same classification.
218
+ - `--fail-on=never`: never fail. `--no-fail` is an alias for this value.
219
+
220
+ ```console
221
+ # Fail in CI only when a change broadens security permissions
222
+ $ cdk diff --fail-on=broadening
223
+ ```
224
+
225
+ `--fail-on` cannot be combined with `--fail` or `--no-fail`. When none of them is given, the command does
226
+ not fail, unless the `aws-cdk:enableDiffNoFail` feature flag is set to `false`, in which case it fails on
227
+ any difference.
228
+
229
+ `--fail-on=destructive` lists the resources that would be replaced, deleted or orphaned, and exits with
230
+ code 1. Changes that update resources in place or add new resources do not cause a failure. This is
231
+ useful in CI to stop changes that would lose data, such as a stateful resource whose logical ID
232
+ changed after it was moved to another construct.
233
+
234
+ ```console
235
+ $ cdk diff --fail-on=destructive MyStackName
236
+ ...
237
+ ❌ Found 1 destructive change(s) (--fail-on=destructive):
238
+ MyStackName: AWS::DynamoDB::Table MyTable MyTable794EDED1 will be orphaned
239
+ ```
240
+
241
+ Whether a property change replaces the resource is determined by the change set, so use the default
242
+ `--method=auto` or `--method=change-set` for accurate results. With `--method=template`, a change to
243
+ a property that requires replacement is always reported as a replacement, and a change to a property
244
+ that may require replacement is reported as "may be replaced", which also causes a failure.
245
+ With `--security-only`, changes that are likely mangled non-ASCII characters are not filtered out,
246
+ so they can also be reported as destructive.
247
+
210
248
  The stack header shows the environment the stack will be deployed to. For environment-agnostic
211
249
  stacks this is the resolved account and region, not `unknown-account`/`unknown-region`. It is
212
250
  omitted when diffing against a local template with `--template`, which does not contact AWS.
@@ -268,6 +306,27 @@ currently deployed stack to the template and tags that are about to be deployed
268
306
  will skip deployment if they are identical. Use `--force` to override this behavior
269
307
  and always deploy the stack.
270
308
 
309
+ #### Requiring approval
310
+
311
+ `--require-approval` (or `requireApproval` in `cdk.json`) controls which changes need a manual
312
+ confirmation before they are deployed:
313
+
314
+ - `never`: approval is never required.
315
+ - `any-change`: approval is required for any change to the stack.
316
+ - `broadening` (default): approval is required if changes broaden permissions or security group rules.
317
+ - `destructive`: approval is required if changes replace, delete or orphan an existing resource,
318
+ including resources in nested stacks. The affected resources are listed before the confirmation.
319
+ Changes that only broaden permissions do not require approval in this mode. With `--method=direct`,
320
+ no change set is created, so a change to a property that may require replacement also requires approval.
321
+
322
+ When approval is required but no terminal is attached, for example in CI, the deployment fails.
323
+ Use `--yes` to confirm automatically.
324
+
325
+ ```console
326
+ # Stop before anything is replaced or deleted, deploy everything else unattended
327
+ $ cdk deploy --require-approval=destructive
328
+ ```
329
+
271
330
  #### Disabling Rollback
272
331
 
273
332
  If a resource fails to be created or updated, the deployment will *roll back* before the CLI returns. All changes made
@@ -5975,7 +5975,7 @@ Apache License
5975
5975
 
5976
5976
  ----------------
5977
5977
 
5978
- ** @aws-sdk/credential-providers@3.1140.0 - https://www.npmjs.com/package/@aws-sdk/credential-providers/v/3.1140.0 | Apache-2.0
5978
+ ** @aws-sdk/credential-providers@3.1145.0 - https://www.npmjs.com/package/@aws-sdk/credential-providers/v/3.1145.0 | Apache-2.0
5979
5979
  Apache License
5980
5980
  Version 2.0, January 2004
5981
5981
  http://www.apache.org/licenses/
@@ -10936,7 +10936,7 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
10936
10936
 
10937
10937
  ----------------
10938
10938
 
10939
- ** cdk-from-cfn@0.334.0 - https://www.npmjs.com/package/cdk-from-cfn/v/0.334.0 | MIT OR Apache-2.0
10939
+ ** cdk-from-cfn@0.336.0 - https://www.npmjs.com/package/cdk-from-cfn/v/0.336.0 | MIT OR Apache-2.0
10940
10940
 
10941
10941
  ----------------
10942
10942
 
package/build-info.json CHANGED
@@ -1,4 +1,4 @@
1
1
  {
2
- "comment": "Generated at 2026-09-30T20:21:29Z by generate.sh",
3
- "commit": "b9c5274"
2
+ "comment": "Generated at 2026-10-08T00:44:21Z by generate.sh",
3
+ "commit": "13877dc"
4
4
  }
package/db.json.gz CHANGED
Binary file
@@ -11,4 +11,3 @@ export * from '../../@aws-cdk/toolkit-lib/lib/api/tags/private';
11
11
  export * from '../../@aws-cdk/toolkit-lib/lib/private/activity-printer';
12
12
  export * from '../../@aws-cdk/toolkit-lib/lib/api/cloud-assembly/private/borrowed-assembly';
13
13
  export * from '../../@aws-cdk/toolkit-lib/lib/toolkit/private/count-assembly-results';
14
- export { throwIfValidationFailures } from '../../@aws-cdk/toolkit-lib/lib/toolkit/private/validation-report';
@@ -36,7 +36,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
36
36
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.throwIfValidationFailures = exports.formatExpressStabilizationWarning = exports.createIgnoreMatcher = exports.Diagnosis = exports.ChangeSetDescriber = exports.cfnApi = exports.deployStack = void 0;
39
+ exports.formatExpressStabilizationWarning = exports.createIgnoreMatcher = exports.Diagnosis = exports.ChangeSetDescriber = exports.cfnApi = exports.deployStack = void 0;
40
40
  /* eslint-disable import/no-relative-packages */
41
41
  var deploy_stack_1 = require("../../@aws-cdk/toolkit-lib/lib/api/deployments/deploy-stack");
42
42
  Object.defineProperty(exports, "deployStack", { enumerable: true, get: function () { return deploy_stack_1.deployStack; } });
@@ -54,6 +54,4 @@ __exportStar(require("../../@aws-cdk/toolkit-lib/lib/api/tags/private"), exports
54
54
  __exportStar(require("../../@aws-cdk/toolkit-lib/lib/private/activity-printer"), exports);
55
55
  __exportStar(require("../../@aws-cdk/toolkit-lib/lib/api/cloud-assembly/private/borrowed-assembly"), exports);
56
56
  __exportStar(require("../../@aws-cdk/toolkit-lib/lib/toolkit/private/count-assembly-results"), exports);
57
- var validation_report_1 = require("../../@aws-cdk/toolkit-lib/lib/toolkit/private/validation-report");
58
- Object.defineProperty(exports, "throwIfValidationFailures", { enumerable: true, get: function () { return validation_report_1.throwIfValidationFailures; } });
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLXByaXZhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJhcGktcHJpdmF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxnREFBZ0Q7QUFDaEQsNEZBQTBGO0FBQWpGLDJHQUFBLFdBQVcsT0FBQTtBQUVwQixpR0FBaUY7QUFDakYsOEVBQW9GO0FBQTNFLGlIQUFBLGtCQUFrQixPQUFBO0FBQzNCLHFGQUFvRjtBQUEzRSxzR0FBQSxTQUFTLE9BQUE7QUFFbEIsaUZBQXVGO0FBQTlFLG1IQUFBLG1CQUFtQixPQUFBO0FBQzVCLCtFQUFvRztBQUEzRixnSUFBQSxpQ0FBaUMsT0FBQTtBQUMxQyxnRkFBOEQ7QUFDOUQsa0ZBQWdFO0FBQ2hFLDBGQUF3RTtBQUN4RSw4R0FBNEY7QUFDNUYsd0dBQXNGO0FBQ3RGLHNHQUE2RztBQUFwRyw4SEFBQSx5QkFBeUIsT0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIGltcG9ydC9uby1yZWxhdGl2ZS1wYWNrYWdlcyAqL1xuZXhwb3J0IHsgZGVwbG95U3RhY2sgfSBmcm9tICcuLi8uLi9AYXdzLWNkay90b29sa2l0LWxpYi9saWIvYXBpL2RlcGxveW1lbnRzL2RlcGxveS1zdGFjayc7XG5leHBvcnQgdHlwZSB7IERlcGxveVN0YWNrT3B0aW9ucyBhcyBEZXBsb3lTdGFja0FwaU9wdGlvbnMsIERlc3Ryb3lTdGFja1Jlc3VsdCB9IGZyb20gJy4uLy4uL0Bhd3MtY2RrL3Rvb2xraXQtbGliL2xpYi9hcGkvZGVwbG95bWVudHMvZGVwbG95LXN0YWNrJztcbmV4cG9ydCAqIGFzIGNmbkFwaSBmcm9tICcuLi8uLi9AYXdzLWNkay90b29sa2l0LWxpYi9saWIvYXBpL2RlcGxveW1lbnRzL2Nmbi1hcGknO1xuZXhwb3J0IHsgQ2hhbmdlU2V0RGVzY3JpYmVyIH0gZnJvbSAnLi4vLi4vQGF3cy1jZGsvdG9vbGtpdC1saWIvbGliL2FwaS9jaGFuZ2Utc2V0cyc7XG5leHBvcnQgeyBEaWFnbm9zaXMgfSBmcm9tICcuLi8uLi9AYXdzLWNkay90b29sa2l0LWxpYi9saWIvYXBpL2RpYWdub3NpbmcvZGlhZ25vc2lzJztcbmV4cG9ydCB0eXBlIHsgQ2hhbmdlU2V0UmVwb3J0IH0gZnJvbSAnLi4vLi4vQGF3cy1jZGsvdG9vbGtpdC1saWIvbGliL2FwaS9jaGFuZ2Utc2V0cyc7XG5leHBvcnQgeyBjcmVhdGVJZ25vcmVNYXRjaGVyIH0gZnJvbSAnLi4vLi4vQGF3cy1jZGsvdG9vbGtpdC1saWIvbGliL3V0aWwvZ2xvYi1tYXRjaGVyJztcbmV4cG9ydCB7IGZvcm1hdEV4cHJlc3NTdGFiaWxpemF0aW9uV2FybmluZyB9IGZyb20gJy4uLy4uL0Bhd3MtY2RrL3Rvb2xraXQtbGliL2xpYi91dGlsL2Nmbi1leHByZXNzJztcbmV4cG9ydCAqIGZyb20gJy4uLy4uL0Bhd3MtY2RrL3Rvb2xraXQtbGliL2xpYi9hcGkvaW8vcHJpdmF0ZSc7XG5leHBvcnQgKiBmcm9tICcuLi8uLi9AYXdzLWNkay90b29sa2l0LWxpYi9saWIvYXBpL3RhZ3MvcHJpdmF0ZSc7XG5leHBvcnQgKiBmcm9tICcuLi8uLi9AYXdzLWNkay90b29sa2l0LWxpYi9saWIvcHJpdmF0ZS9hY3Rpdml0eS1wcmludGVyJztcbmV4cG9ydCAqIGZyb20gJy4uLy4uL0Bhd3MtY2RrL3Rvb2xraXQtbGliL2xpYi9hcGkvY2xvdWQtYXNzZW1ibHkvcHJpdmF0ZS9ib3Jyb3dlZC1hc3NlbWJseSc7XG5leHBvcnQgKiBmcm9tICcuLi8uLi9AYXdzLWNkay90b29sa2l0LWxpYi9saWIvdG9vbGtpdC9wcml2YXRlL2NvdW50LWFzc2VtYmx5LXJlc3VsdHMnO1xuZXhwb3J0IHsgdGhyb3dJZlZhbGlkYXRpb25GYWlsdXJlcyB9IGZyb20gJy4uLy4uL0Bhd3MtY2RrL3Rvb2xraXQtbGliL2xpYi90b29sa2l0L3ByaXZhdGUvdmFsaWRhdGlvbi1yZXBvcnQnO1xuIl19
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLXByaXZhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJhcGktcHJpdmF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxnREFBZ0Q7QUFDaEQsNEZBQTBGO0FBQWpGLDJHQUFBLFdBQVcsT0FBQTtBQUVwQixpR0FBaUY7QUFDakYsOEVBQW9GO0FBQTNFLGlIQUFBLGtCQUFrQixPQUFBO0FBQzNCLHFGQUFvRjtBQUEzRSxzR0FBQSxTQUFTLE9BQUE7QUFFbEIsaUZBQXVGO0FBQTlFLG1IQUFBLG1CQUFtQixPQUFBO0FBQzVCLCtFQUFvRztBQUEzRixnSUFBQSxpQ0FBaUMsT0FBQTtBQUMxQyxnRkFBOEQ7QUFDOUQsa0ZBQWdFO0FBQ2hFLDBGQUF3RTtBQUN4RSw4R0FBNEY7QUFDNUYsd0dBQXNGIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgaW1wb3J0L25vLXJlbGF0aXZlLXBhY2thZ2VzICovXG5leHBvcnQgeyBkZXBsb3lTdGFjayB9IGZyb20gJy4uLy4uL0Bhd3MtY2RrL3Rvb2xraXQtbGliL2xpYi9hcGkvZGVwbG95bWVudHMvZGVwbG95LXN0YWNrJztcbmV4cG9ydCB0eXBlIHsgRGVwbG95U3RhY2tPcHRpb25zIGFzIERlcGxveVN0YWNrQXBpT3B0aW9ucywgRGVzdHJveVN0YWNrUmVzdWx0IH0gZnJvbSAnLi4vLi4vQGF3cy1jZGsvdG9vbGtpdC1saWIvbGliL2FwaS9kZXBsb3ltZW50cy9kZXBsb3ktc3RhY2snO1xuZXhwb3J0ICogYXMgY2ZuQXBpIGZyb20gJy4uLy4uL0Bhd3MtY2RrL3Rvb2xraXQtbGliL2xpYi9hcGkvZGVwbG95bWVudHMvY2ZuLWFwaSc7XG5leHBvcnQgeyBDaGFuZ2VTZXREZXNjcmliZXIgfSBmcm9tICcuLi8uLi9AYXdzLWNkay90b29sa2l0LWxpYi9saWIvYXBpL2NoYW5nZS1zZXRzJztcbmV4cG9ydCB7IERpYWdub3NpcyB9IGZyb20gJy4uLy4uL0Bhd3MtY2RrL3Rvb2xraXQtbGliL2xpYi9hcGkvZGlhZ25vc2luZy9kaWFnbm9zaXMnO1xuZXhwb3J0IHR5cGUgeyBDaGFuZ2VTZXRSZXBvcnQgfSBmcm9tICcuLi8uLi9AYXdzLWNkay90b29sa2l0LWxpYi9saWIvYXBpL2NoYW5nZS1zZXRzJztcbmV4cG9ydCB7IGNyZWF0ZUlnbm9yZU1hdGNoZXIgfSBmcm9tICcuLi8uLi9AYXdzLWNkay90b29sa2l0LWxpYi9saWIvdXRpbC9nbG9iLW1hdGNoZXInO1xuZXhwb3J0IHsgZm9ybWF0RXhwcmVzc1N0YWJpbGl6YXRpb25XYXJuaW5nIH0gZnJvbSAnLi4vLi4vQGF3cy1jZGsvdG9vbGtpdC1saWIvbGliL3V0aWwvY2ZuLWV4cHJlc3MnO1xuZXhwb3J0ICogZnJvbSAnLi4vLi4vQGF3cy1jZGsvdG9vbGtpdC1saWIvbGliL2FwaS9pby9wcml2YXRlJztcbmV4cG9ydCAqIGZyb20gJy4uLy4uL0Bhd3MtY2RrL3Rvb2xraXQtbGliL2xpYi9hcGkvdGFncy9wcml2YXRlJztcbmV4cG9ydCAqIGZyb20gJy4uLy4uL0Bhd3MtY2RrL3Rvb2xraXQtbGliL2xpYi9wcml2YXRlL2FjdGl2aXR5LXByaW50ZXInO1xuZXhwb3J0ICogZnJvbSAnLi4vLi4vQGF3cy1jZGsvdG9vbGtpdC1saWIvbGliL2FwaS9jbG91ZC1hc3NlbWJseS9wcml2YXRlL2JvcnJvd2VkLWFzc2VtYmx5JztcbmV4cG9ydCAqIGZyb20gJy4uLy4uL0Bhd3MtY2RrL3Rvb2xraXQtbGliL2xpYi90b29sa2l0L3ByaXZhdGUvY291bnQtYXNzZW1ibHktcmVzdWx0cyc7XG4iXX0=
@@ -285,11 +285,16 @@ export interface DiffOptions {
285
285
  */
286
286
  readonly contextLines?: number;
287
287
  /**
288
- * Whether to fail with exit code 1 in case of diff
288
+ * Which kind of change makes the diff fail with exit code 1
289
289
  *
290
- * @default false
290
+ * - `any-change`: any difference
291
+ * - `broadening`: a change that broadens security permissions
292
+ * - `destructive`: a change that replaces, deletes or orphans an existing resource
293
+ * - `never`: the diff never fails
294
+ *
295
+ * @default RequireApproval.NEVER
291
296
  */
292
- readonly fail?: boolean;
297
+ readonly failOn?: RequireApproval;
293
298
  /**
294
299
  * Only run diff on broadened security changes
295
300
  *
@@ -386,6 +391,11 @@ export interface CliValidateOptions extends ValidateOptions {
386
391
  readonly watch?: boolean;
387
392
  }
388
393
  interface WatchOptions extends Omit<CfnDeployOptions, 'execute'> {
394
+ /**
395
+ * Path to file where stack outputs will be written after a successful deploy as JSON
396
+ * @default - Outputs are not written to any file
397
+ */
398
+ outputsFile?: string;
389
399
  /**
390
400
  * Reuse the assets with the given asset IDs
391
401
  */
@@ -446,11 +456,6 @@ export interface DeployOptions extends CfnDeployOptions, WatchOptions {
446
456
  * @default true
447
457
  */
448
458
  usePreviousParameters?: boolean;
449
- /**
450
- * Path to file where stack outputs will be written after a successful deploy as JSON
451
- * @default - Outputs are not written to any file
452
- */
453
- outputsFile?: string;
454
459
  /**
455
460
  * Whether we are on a CI system
456
461
  *