@intentius/chant-lexicon-aws 0.124.51 → 0.124.52

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.
@@ -20,6 +20,7 @@
20
20
  */
21
21
  import type { Capability, PlannedOutputs } from "@intentius/chant/components/capability";
22
22
  import type { ChangeSetEntry } from "@intentius/chant/change-set";
23
+ import { type PlanShape, type PlanShapeArtifact } from "@intentius/chant/components/covered-round";
23
24
  import { type CfnChange, type CfnChangeSet, type CloudExecutor } from "./cloud-executor.js";
24
25
  /**
25
26
  * True when CloudFormation reports the change set has nothing to apply. AWS
@@ -43,7 +44,7 @@ export declare function cfnChangeReplaces(change: CfnChange): boolean;
43
44
  * replace, `Remove` a delete, `Import` an import that changes nothing else,
44
45
  * and `Dynamic` an update CloudFormation could not describe further.
45
46
  */
46
- export declare function cfnChangeEntry(member: string, change: CfnChange): ChangeSetEntry;
47
+ export declare function cfnChangeEntry(member: string, change: CfnChange, unknown?: readonly string[]): ChangeSetEntry;
47
48
  /**
48
49
  * What a `cfn-deploy` plan hands `run` through `DeployContext.plans[stack]`
49
50
  * (#3997): the stack and a digest over the changes the plan's change set
@@ -76,6 +77,29 @@ export declare class CfnPlanMovedError extends Error {
76
77
  readonly planMoved = true;
77
78
  constructor(stack: string, planned: string, now: string);
78
79
  }
80
+ /** What a previewed member hands `run`: the shape its change set had against stand-in values. */
81
+ export interface CfnShapeArtifact extends PlanShapeArtifact {
82
+ kind: "cfn-deploy-shape";
83
+ }
84
+ /** The marker every stand-in carries, so a reader of a change set can tell it from a real value. */
85
+ export declare const CFN_UNKNOWN_MARK = "known-after-apply";
86
+ /**
87
+ * A stand-in for a parameter whose value is not known yet: valid for the
88
+ * parameter's type and recognisable. An EC2 id type gets the id's prefix
89
+ * (`subnet-00000000known-after-apply`), a number gets 0, anything else gets
90
+ * `known-after-apply`. Real CloudFormation checks the AWS-specific types
91
+ * against the account and refuses an id that does not exist; the preview
92
+ * then falls back to a hole. Floci does not check.
93
+ */
94
+ export declare function cfnPlaceholder(type: string | undefined): string;
95
+ /**
96
+ * A change set's shape: each change's resource, action, replacement and
97
+ * properties, with the ones the `unknown` parameters drive marked. `unknown`
98
+ * is empty for the change set made against real values. `refs` are the
99
+ * inputs the shape names as unknown (`<component>.<output>`), the parameters
100
+ * themselves when nothing says better.
101
+ */
102
+ export declare function cfnPlanShape(stack: string, changeSet: CfnChangeSet, unknown: string[], templatePath?: string, refs?: string[]): PlanShape;
79
103
  /**
80
104
  * The outputs a stack will have once `changes` apply (#3999), from its
81
105
  * template and the outputs it has now. An output is known, at the value it
@@ -84,9 +108,16 @@ export declare class CfnPlanMovedError extends Error {
84
108
  * `Dynamic`, no replacement, no change in a nested stack under it). One
85
109
  * that reads a parameter, an import or a condition, one the stack does not
86
110
  * have yet, and every output of a template this cannot read, is unknown.
111
+ *
112
+ * Two kinds of output need no standing value. An output whose `Value` is a
113
+ * plain string is known at that string, changed or new: the template says it.
114
+ * An output that is a `Ref` to a parameter the plan was given a value for is
115
+ * known at that value (`given`, the inputs of this plan). Both are what
116
+ * the stack's outputs will be, whatever they are now.
117
+ *
87
118
  * `undefined` when there is no template or no standing stack to read from.
88
119
  */
89
- export declare function cfnPlannedOutputs(template: unknown, changes: readonly CfnChange[], standing: Record<string, string> | undefined): PlannedOutputs | undefined;
120
+ export declare function cfnPlannedOutputs(template: unknown, changes: readonly CfnChange[], standing: Record<string, string> | undefined, given?: Record<string, string>): PlannedOutputs | undefined;
90
121
  /**
91
122
  * How `cfn-deploy` handles a changeset that requires resource replacement.
92
123
  * - `block`: refuse to apply; surface the changeset for human review.
@@ -1 +1 @@
1
- {"version":3,"file":"apply.d.ts","sourceRoot":"","sources":["../../src/components/apply.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"apply.d.ts","sourceRoot":"","sources":["../../src/components/apply.ts"],"names":[],"mappings":"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"}
@@ -21,6 +21,7 @@
21
21
  import { createHash } from "node:crypto";
22
22
  import { readFileSync } from "node:fs";
23
23
  import { computePlanDigest } from "@intentius/chant/lifecycle/plan-digest";
24
+ import { normalizePlanShape, PlanShapeMovedError, planShapeDifferences, planShapeDigest, } from "@intentius/chant/components/covered-round";
24
25
  import { defaultCloudExecutor } from "./cloud-executor.js";
25
26
  /** CloudFormation's wording when a change set has nothing to apply — the stack
26
27
  * is already current. AWS phrases it "The submitted information didn't contain
@@ -58,8 +59,11 @@ export function cfnChangeReplaces(change) {
58
59
  * replace, `Remove` a delete, `Import` an import that changes nothing else,
59
60
  * and `Dynamic` an update CloudFormation could not describe further.
60
61
  */
61
- export function cfnChangeEntry(member, change) {
62
- const attributes = [...new Set(change.details ?? [])].sort().map((path) => ({ path }));
62
+ export function cfnChangeEntry(member, change, unknown = []) {
63
+ // A property an unknown input drives is known after apply (#4419); one the
64
+ // change set did not list (a create names no properties) is added for it.
65
+ const paths = [...new Set([...(change.details ?? []), ...unknown])].sort();
66
+ const attributes = paths.map((path) => (unknown.includes(path) ? { path, unknown: true } : { path }));
63
67
  // A change inside a nested stack (#3997) sits under the nested stacks'
64
68
  // logical ids, the way a terraform address sits under its module.
65
69
  const module = change.nestedStack?.length ? change.nestedStack.join("/") : undefined;
@@ -143,7 +147,9 @@ function templateDigest(path) {
143
147
  * not known yet. The proposed changes are not in it; they are the member's
144
148
  * entries, which the change-set document's digest binds (#4084).
145
149
  */
146
- function cfnPlanDigest(ctx, stack, input, parameters, unresolved) {
150
+ function cfnPlanDigest(ctx, stack, input, parameters, unresolved,
151
+ /** The digest of the preview's shape (#4423), so an approval binds what the reviewer saw of a member planned before its inputs were known. */
152
+ preview) {
147
153
  return computePlanDigest("cfn-deploy-plan", {
148
154
  env: ctx.env,
149
155
  stack,
@@ -151,6 +157,7 @@ function cfnPlanDigest(ctx, stack, input, parameters, unresolved) {
151
157
  templateDigest: templateDigest(input.template),
152
158
  parameters,
153
159
  unresolved,
160
+ ...(preview ? { preview } : {}),
154
161
  });
155
162
  }
156
163
  /**
@@ -194,7 +201,7 @@ async function planCfnDeploy(executor, ctx, input) {
194
201
  parameters[key] = typeof value === "string" ? value : JSON.stringify(value);
195
202
  }
196
203
  const unresolved = [...(ctx.unresolvedInputs ?? [])].sort();
197
- const planDigest = cfnPlanDigest(ctx, stack, input, parameters, unresolved);
204
+ let planDigest = cfnPlanDigest(ctx, stack, input, parameters, unresolved);
198
205
  const member = (holes) => ({
199
206
  member: stack,
200
207
  lexicon: "aws",
@@ -204,14 +211,26 @@ async function planCfnDeploy(executor, ctx, input) {
204
211
  holes,
205
212
  });
206
213
  if (unresolved.length > 0 || missing.length > 0) {
207
- const reason = unresolved.length > 0
208
- ? `inputs from ${unresolved.join(", ")}; re-checked on apply`
209
- : `inputs ${missing.sort().join(", ")} are known only at apply; re-checked on apply`;
210
- return {
214
+ const hole = (why) => ({
211
215
  member: stack,
212
216
  planDigest,
213
- changeSet: { member: member([{ address: stack, type: "AWS::CloudFormation::Stack", reason }]), entries: [] },
214
- };
217
+ changeSet: { member: member([{ address: stack, type: "AWS::CloudFormation::Stack", reason: why }]), entries: [] },
218
+ });
219
+ const fallback = unresolved.length > 0
220
+ ? `inputs from ${unresolved.join(", ")}; re-checked on apply`
221
+ : `inputs ${[...missing].sort().join(", ")} are known only at apply; re-checked on apply`;
222
+ // Which parameters are unknown: the inputs that hold nothing yet. When the
223
+ // upstream is unresolved but no input says which, nothing can be previewed.
224
+ if (missing.length === 0)
225
+ return hole(fallback);
226
+ const preview = await previewCfnDeploy(executor, stack, input, [...missing].sort(), unresolved.length > 0 ? unresolved : undefined);
227
+ if (typeof preview === "string")
228
+ return hole(`${fallback}; no preview: ${preview}`);
229
+ const { entries, shape, outputs } = preview;
230
+ const artifact = { kind: "cfn-deploy-shape", member: stack, shape, digest: planShapeDigest(shape) };
231
+ // The preview's shape enters the digest (#4423); `member` reads it when called below.
232
+ planDigest = cfnPlanDigest(ctx, stack, input, parameters, unresolved, artifact.digest);
233
+ return { member: stack, planDigest, artifact, shape, changeSet: { member: member([]), entries }, ...(outputs ? { outputs } : {}) };
215
234
  }
216
235
  const changeSet = await executor.cloudformation.createChangeSet({
217
236
  stackName: stack,
@@ -234,8 +253,169 @@ async function planCfnDeploy(executor, ctx, input) {
234
253
  throw new CfnReplacementBlockedError(stack, blocked);
235
254
  const entries = changeSet.changes.map((c) => cfnChangeEntry(stack, c));
236
255
  const artifact = { kind: "cfn-deploy-plan", stack, changesDigest: cfnChangesDigest(stack, changeSet) };
237
- const outputs = changeSet.stackCreated ? undefined : await plannedStackOutputs(executor, stack, input.template, changeSet.changes);
238
- return { member: stack, planDigest, artifact, changeSet: { member: member([]), entries }, ...(outputs ? { outputs } : {}) };
256
+ const outputs = changeSet.stackCreated ? undefined : await plannedStackOutputs(executor, stack, input.template, changeSet.changes, knownParameters(parameters));
257
+ // The real change set's shape, with the replacement CloudFormation reports,
258
+ // for a round that checks it against a preview (#4419).
259
+ const shape = cfnPlanShape(stack, changeSet, []);
260
+ return { member: stack, planDigest, artifact, shape, changeSet: { member: member([]), entries }, ...(outputs ? { outputs } : {}) };
261
+ }
262
+ finally {
263
+ await cleanUpPlanChangeSet(executor, changeSet);
264
+ }
265
+ }
266
+ function isCfnShapeArtifact(value) {
267
+ const v = value;
268
+ return v?.kind === "cfn-deploy-shape" && typeof v.digest === "string" && typeof v.shape === "object" && v.shape !== null;
269
+ }
270
+ /** The marker every stand-in carries, so a reader of a change set can tell it from a real value. */
271
+ export const CFN_UNKNOWN_MARK = "known-after-apply";
272
+ const ID_PREFIX = {
273
+ "AWS::EC2::Subnet::Id": "subnet",
274
+ "AWS::EC2::VPC::Id": "vpc",
275
+ "AWS::EC2::SecurityGroup::Id": "sg",
276
+ "AWS::EC2::Instance::Id": "i",
277
+ "AWS::EC2::Image::Id": "ami",
278
+ "AWS::EC2::Volume::Id": "vol",
279
+ };
280
+ /**
281
+ * A stand-in for a parameter whose value is not known yet: valid for the
282
+ * parameter's type and recognisable. An EC2 id type gets the id's prefix
283
+ * (`subnet-00000000known-after-apply`), a number gets 0, anything else gets
284
+ * `known-after-apply`. Real CloudFormation checks the AWS-specific types
285
+ * against the account and refuses an id that does not exist; the preview
286
+ * then falls back to a hole. Floci does not check.
287
+ */
288
+ export function cfnPlaceholder(type) {
289
+ if (type && ID_PREFIX[type])
290
+ return `${ID_PREFIX[type]}-00000000${CFN_UNKNOWN_MARK}`;
291
+ if (type === "Number")
292
+ return "0";
293
+ if (type?.startsWith("AWS::SSM::Parameter::Value<"))
294
+ return `/${CFN_UNKNOWN_MARK}`;
295
+ return CFN_UNKNOWN_MARK;
296
+ }
297
+ function readsParameter(value, key) {
298
+ if (typeof value === "string")
299
+ return false;
300
+ if (Array.isArray(value))
301
+ return value.some((v) => readsParameter(v, key));
302
+ if (value && typeof value === "object") {
303
+ const obj = value;
304
+ if (obj.Ref === key)
305
+ return true;
306
+ const sub = obj["Fn::Sub"];
307
+ const text = typeof sub === "string" ? sub : Array.isArray(sub) && typeof sub[0] === "string" ? sub[0] : undefined;
308
+ if (text !== undefined && (text.includes("${" + key + "}") || text.includes("${" + key + ".")))
309
+ return true;
310
+ return Object.values(obj).some((v) => readsParameter(v, key));
311
+ }
312
+ return false;
313
+ }
314
+ /** The parameter types and the properties that read `keys`, from the template. A template that cannot be read gives no facts. */
315
+ function templateFacts(path, keys) {
316
+ const facts = { parameterTypes: {}, driven: new Map() };
317
+ try {
318
+ const t = JSON.parse(readFileSync(path, "utf8"));
319
+ for (const k of keys)
320
+ if (t.Parameters?.[k]?.Type)
321
+ facts.parameterTypes[k] = t.Parameters[k].Type;
322
+ for (const [id, r] of Object.entries(t.Resources ?? {})) {
323
+ for (const [prop, value] of Object.entries(r.Properties ?? {})) {
324
+ if (keys.some((k) => readsParameter(value, k)))
325
+ (facts.driven.get(id) ?? facts.driven.set(id, new Set()).get(id)).add(prop);
326
+ }
327
+ }
328
+ }
329
+ catch {
330
+ /* unreadable or not JSON: the change set reports why, and no property is attributed */
331
+ }
332
+ return facts;
333
+ }
334
+ /** The properties of one change that the unknown parameters drive. */
335
+ function drivenProperties(change, keys, facts) {
336
+ const out = new Set();
337
+ for (const d of change.drivers ?? []) {
338
+ if (d.changeSource === "ParameterReference" && d.causingEntity && keys.some((k) => d.causingEntity === k || d.causingEntity.startsWith(`${k}.`))) {
339
+ out.add(d.property);
340
+ }
341
+ }
342
+ const scanned = facts.driven.get(change.logicalResourceId);
343
+ if (scanned && change.action !== "Remove") {
344
+ const listed = change.details ?? [];
345
+ for (const p of scanned)
346
+ if (change.action === "Add" || listed.length === 0 || listed.includes(p))
347
+ out.add(p);
348
+ }
349
+ return [...out].sort();
350
+ }
351
+ function shapeReplacement(change) {
352
+ if (change.replacementMode === "True" || change.replacement)
353
+ return "true";
354
+ return change.replacementMode === "Conditional" ? "conditional" : "false";
355
+ }
356
+ /**
357
+ * A change set's shape: each change's resource, action, replacement and
358
+ * properties, with the ones the `unknown` parameters drive marked. `unknown`
359
+ * is empty for the change set made against real values. `refs` are the
360
+ * inputs the shape names as unknown (`<component>.<output>`), the parameters
361
+ * themselves when nothing says better.
362
+ */
363
+ export function cfnPlanShape(stack, changeSet, unknown, templatePath, refs = unknown) {
364
+ const facts = unknown.length > 0 && templatePath ? templateFacts(templatePath, unknown) : { parameterTypes: {}, driven: new Map() };
365
+ const entries = isNoopChangeSet(changeSet)
366
+ ? []
367
+ : changeSet.changes.map((c) => {
368
+ const e = cfnChangeEntry(stack, c);
369
+ return {
370
+ logicalId: e.address,
371
+ action: e.action,
372
+ replacement: shapeReplacement(c),
373
+ type: c.resourceType,
374
+ properties: [...new Set(c.details ?? [])],
375
+ unknown: drivenProperties(c, unknown, facts),
376
+ };
377
+ });
378
+ return normalizePlanShape({ member: stack, unknownInputs: refs, entries });
379
+ }
380
+ /**
381
+ * Preview a stack whose parameters `unknown` are not known yet: create its
382
+ * change set with a stand-in for each, read the changes into entries that
383
+ * mark the properties those parameters drive as known after apply, take the
384
+ * shape, and delete the change set. Returns why instead when CloudFormation
385
+ * would not make the change set (real CloudFormation refuses an id that does
386
+ * not exist), so the caller plans a hole.
387
+ *
388
+ * Floci accepts a change set that real CloudFormation refuses (a missing
389
+ * export, an id that does not exist), reports `Parameters: null`, and says
390
+ * `Replacement: False` for a change that replaces. So a cross-stack value
391
+ * goes through a parameter here, never an export, and the replacement a
392
+ * preview reports is whatever the backend says; the shape check at apply
393
+ * compares like with like.
394
+ */
395
+ async function previewCfnDeploy(executor, stack, input, unknown, refs = unknown) {
396
+ const facts = templateFacts(input.template, unknown);
397
+ const parameters = { ...(flattenCfnInputs(input) ?? {}) };
398
+ for (const k of unknown)
399
+ parameters[k] = cfnPlaceholder(facts.parameterTypes[k]);
400
+ let changeSet;
401
+ try {
402
+ changeSet = await executor.cloudformation.createChangeSet({ stackName: stack, templatePath: input.template, parameters });
403
+ }
404
+ catch (err) {
405
+ return `CloudFormation refused the change set with stand-in values: ${err instanceof Error ? err.message : String(err)}`;
406
+ }
407
+ try {
408
+ if (changeSet.status === "FAILED" && !isNoopChangeSet(changeSet)) {
409
+ return `CloudFormation could not create the change set with stand-in values${changeSet.statusReason ? `: ${changeSet.statusReason}` : ""}`;
410
+ }
411
+ const noop = isNoopChangeSet(changeSet);
412
+ const entries = noop ? [] : changeSet.changes.map((c) => cfnChangeEntry(stack, c, drivenProperties(c, unknown, facts)));
413
+ // What the stack's outputs will be, for the members that read them: an
414
+ // output that reads one of the unknown parameters is unknown, one that
415
+ // reads a known parameter or states its value is not (#4419).
416
+ const given = Object.fromEntries(Object.entries(parameters).filter(([k]) => !unknown.includes(k)));
417
+ const outputs = noop || changeSet.stackCreated ? undefined : await plannedStackOutputs(executor, stack, input.template, changeSet.changes, given);
418
+ return { entries, shape: cfnPlanShape(stack, changeSet, unknown, input.template, refs), ...(outputs ? { outputs } : {}) };
239
419
  }
240
420
  finally {
241
421
  await cleanUpPlanChangeSet(executor, changeSet);
@@ -276,13 +456,13 @@ async function standingOutputs(executor, stack) {
276
456
  * What the plan says of the stack's outputs once `changes` apply: none to
277
457
  * say for a template with no `Outputs`, which needs no `DescribeStacks`.
278
458
  */
279
- async function plannedStackOutputs(executor, stack, templatePath, changes) {
459
+ async function plannedStackOutputs(executor, stack, templatePath, changes, parameters = {}) {
280
460
  const template = readTemplate(templatePath);
281
461
  if (!template || typeof template !== "object")
282
462
  return undefined;
283
463
  if (Object.keys(template.Outputs ?? {}).length === 0)
284
464
  return { known: {}, unknown: [] };
285
- return cfnPlannedOutputs(template, changes, await standingOutputs(executor, stack));
465
+ return cfnPlannedOutputs(template, changes, await standingOutputs(executor, stack), parameters);
286
466
  }
287
467
  /** The template at `path` as JSON, or `undefined` when it cannot be read or parsed here. */
288
468
  function readTemplate(path) {
@@ -364,9 +544,16 @@ function valueReads(value) {
364
544
  * `Dynamic`, no replacement, no change in a nested stack under it). One
365
545
  * that reads a parameter, an import or a condition, one the stack does not
366
546
  * have yet, and every output of a template this cannot read, is unknown.
547
+ *
548
+ * Two kinds of output need no standing value. An output whose `Value` is a
549
+ * plain string is known at that string, changed or new: the template says it.
550
+ * An output that is a `Ref` to a parameter the plan was given a value for is
551
+ * known at that value (`given`, the inputs of this plan). Both are what
552
+ * the stack's outputs will be, whatever they are now.
553
+ *
367
554
  * `undefined` when there is no template or no standing stack to read from.
368
555
  */
369
- export function cfnPlannedOutputs(template, changes, standing) {
556
+ export function cfnPlannedOutputs(template, changes, standing, given = {}) {
370
557
  if (!standing || template === null || typeof template !== "object")
371
558
  return undefined;
372
559
  const t = template;
@@ -381,6 +568,11 @@ export function cfnPlannedOutputs(template, changes, standing) {
381
568
  const known = {};
382
569
  const unknown = [];
383
570
  for (const [name, output] of Object.entries(t.Outputs ?? {}).sort(([a], [b]) => a.localeCompare(b))) {
571
+ const stated = statedOutput(output, given, t.Parameters);
572
+ if (stated !== undefined) {
573
+ known[name] = stated;
574
+ continue;
575
+ }
384
576
  const { ids, opaque } = valueReads(output?.Value);
385
577
  const stays = !opaque && output?.Condition === undefined && name in standing &&
386
578
  [...ids].every((id) => id.startsWith("AWS::") || (!parameters.has(id) && !moved.has(id)));
@@ -391,6 +583,29 @@ export function cfnPlannedOutputs(template, changes, standing) {
391
583
  }
392
584
  return { known, unknown };
393
585
  }
586
+ /** The inputs a plan was given a value for: every parameter that is not null. */
587
+ function knownParameters(parameters) {
588
+ return Object.fromEntries(Object.entries(parameters).filter((e) => e[1] !== null));
589
+ }
590
+ /**
591
+ * What an output's `Value` says outright: a plain string, or a `Ref` to a
592
+ * parameter this plan has a value for. `undefined` for anything that reads a
593
+ * resource, an import or a condition, which the standing outputs speak for.
594
+ */
595
+ function statedOutput(output, parameters, declared) {
596
+ if (output?.Condition !== undefined)
597
+ return undefined;
598
+ const value = output?.Value;
599
+ if (typeof value === "string")
600
+ return value;
601
+ if (value !== null && typeof value === "object") {
602
+ const entries = Object.entries(value);
603
+ const [key, arg] = entries[0] ?? [];
604
+ if (entries.length === 1 && key === "Ref" && typeof arg === "string" && declared && arg in declared && arg in parameters)
605
+ return parameters[arg];
606
+ }
607
+ return undefined;
608
+ }
394
609
  /** Whether a CloudFormation error says the stack does not exist. */
395
610
  const STACK_MISSING = /does not exist/i;
396
611
  /**
@@ -464,7 +679,17 @@ export function createCfnDeployCapability(executor = defaultCloudExecutor()) {
464
679
  // set that proposes the same changes. Anything else means the stack,
465
680
  // the template or the parameters moved since the plan.
466
681
  const planned = ctx.plans?.[stack];
467
- if (isCfnPlanArtifact(planned)) {
682
+ if (isCfnShapeArtifact(planned)) {
683
+ // A member planned before its inputs were known (#4419): the change
684
+ // set made now is against the real values. It must have the shape the
685
+ // preview had, differing only in what the unknown inputs drive.
686
+ const differences = planShapeDifferences(planned.shape, cfnPlanShape(stack, changeSet, []));
687
+ if (differences.length > 0) {
688
+ await cleanUpPlanChangeSet(executor, changeSet);
689
+ throw new PlanShapeMovedError(stack, differences);
690
+ }
691
+ }
692
+ else if (isCfnPlanArtifact(planned)) {
468
693
  const now = cfnChangesDigest(stack, changeSet);
469
694
  if (now !== planned.changesDigest) {
470
695
  await cleanUpPlanChangeSet(executor, changeSet);
@@ -37,6 +37,17 @@ export interface CfnChange {
37
37
  replacementMode?: "True" | "False" | "Conditional";
38
38
  /** Resource-specific detail, when the executor's changeset backend provides it (e.g. property/scope). */
39
39
  details?: string[];
40
+ /**
41
+ * What CloudFormation says drives each property change, when it says: the
42
+ * property, `ChangeSource` and `CausingEntity`. A property driven by a
43
+ * parameter reads `ParameterReference` with the parameter's name, which is
44
+ * how a preview marks it known after apply (#4419).
45
+ */
46
+ drivers?: Array<{
47
+ property: string;
48
+ changeSource?: string;
49
+ causingEntity?: string;
50
+ }>;
40
51
  /**
41
52
  * The logical ids of the nested stacks this change sits in, outermost
42
53
  * first (#3997). Absent for a change to the stack's own resources. Set when
@@ -420,6 +431,8 @@ export interface DescribedCfnChangeSet {
420
431
  Target?: {
421
432
  Name?: string;
422
433
  };
434
+ ChangeSource?: string | null;
435
+ CausingEntity?: string | null;
423
436
  }>;
424
437
  /** Set on an `AWS::CloudFormation::Stack` change when the change set includes nested stacks: the nested change set's ARN. */
425
438
  ChangeSetId?: string | null;
@@ -1 +1 @@
1
- {"version":3,"file":"cloud-executor.d.ts","sourceRoot":"","sources":["../../src/components/cloud-executor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cloud-executor.d.ts","sourceRoot":"","sources":["../../src/components/cloud-executor.ts"],"names":[],"mappings":"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"}
@@ -129,6 +129,15 @@ export async function readCfnChanges(described, describeNested, nestedStack = []
129
129
  replacement: rc.Replacement === "True",
130
130
  ...(rc.Replacement === "True" || rc.Replacement === "False" || rc.Replacement === "Conditional" ? { replacementMode: rc.Replacement } : {}),
131
131
  details: rc.Details?.map((d) => d.Target?.Name).filter((x) => !!x),
132
+ ...(rc.Details?.some((d) => d.Target?.Name && (d.ChangeSource || d.CausingEntity))
133
+ ? {
134
+ drivers: rc.Details.filter((d) => d.Target?.Name).map((d) => ({
135
+ property: d.Target.Name,
136
+ ...(d.ChangeSource ? { changeSource: d.ChangeSource } : {}),
137
+ ...(d.CausingEntity ? { causingEntity: d.CausingEntity } : {}),
138
+ })),
139
+ }
140
+ : {}),
132
141
  ...(nestedStack.length > 0 ? { nestedStack } : {}),
133
142
  });
134
143
  if (rc.ResourceType === "AWS::CloudFormation::Stack" && rc.ChangeSetId) {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "algorithm": "sha256",
3
3
  "artifacts": {
4
- "manifest.json": "c32fdc442ad95fe1498bf3b3f185bd992e31930166bb0a95cb3e5b45cd7ae71f",
4
+ "manifest.json": "89d93cb161a38540a631c454e1910bc6946da731122a4c017d162f95e8f7dd6d",
5
5
  "meta.json": "6f48557ed4203cbdeafdb47e7270fdf3533f6d6e6189987246301ed8e72170e9",
6
6
  "types/index.d.ts": "8651f9ae166668f4311eea1fe61c3fe235f345947951c1d23d1df24a4fd3384f",
7
7
  "rules/hardcoded-region.ts": "957eadcaa9f39cc17d21437565d7a94607d9b082cf28918b178fa067f07498a9",
@@ -75,5 +75,5 @@
75
75
  "skills/chant-aws-eks.md": "8789255709ff004ad0a875fd5999edcdc66fc6e33d710db058d9f42703bcfdfe",
76
76
  "skills/chant-aws-carve-terraform.md": "8780b94ce60aded935938d5ef20ea667738354051da1bf9ca6d70d9886f65d21"
77
77
  },
78
- "composite": "8ee7219a12f52d63705c15d96a7f2b1d5dfdbab8612241e884d8a8a159e67d56"
78
+ "composite": "a28f09250fff6020001c7bf9ab2e315939530ce92656d8aef7d1b13ccc93406a"
79
79
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "aws",
3
- "version": "0.124.51",
3
+ "version": "0.124.52",
4
4
  "chantVersion": ">=0.1.0",
5
5
  "namespace": "AWS",
6
6
  "intrinsics": [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@intentius/chant-lexicon-aws",
3
- "version": "0.124.51",
3
+ "version": "0.124.52",
4
4
  "description": "AWS CloudFormation lexicon for chant — declarative IaC in TypeScript",
5
5
  "license": "Apache-2.0",
6
6
  "homepage": "https://intentius.io/chant",
@@ -83,6 +83,6 @@
83
83
  "typescript": "^5.9.3"
84
84
  },
85
85
  "peerDependencies": {
86
- "@intentius/chant": "^0.124.51"
86
+ "@intentius/chant": "^0.124.52"
87
87
  }
88
88
  }