@intentius/chant-lexicon-aws 0.80.0 → 0.82.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.
@@ -1 +1 @@
1
- {"version":3,"file":"mock-cloud-executor.d.ts","sourceRoot":"","sources":["../../../src/components/__tests__/mock-cloud-executor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mock-cloud-executor.d.ts","sourceRoot":"","sources":["../../../src/components/__tests__/mock-cloud-executor.ts"],"names":[],"mappings":"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"}
@@ -117,15 +117,27 @@ export interface EcsUpdateServiceInput {
117
117
  export interface EcsUpdateServiceOutput {
118
118
  /** ARN of the new/updated service deployment. */
119
119
  deploymentId: string;
120
+ /**
121
+ * The task definition the service ran before this step updated it, read with
122
+ * `describe-services` ahead of `update-service`. The rollback sends it back.
123
+ * Absent when the service could not be described or reported none (#2609).
124
+ */
125
+ previousTaskDefinition?: string;
126
+ /** The service's desired count before this step, recorded only when the step sets `desiredCount`. */
127
+ previousDesiredCount?: number;
120
128
  }
121
129
  /**
122
130
  * Roll a new task definition/image out to an ECS service via `UpdateService`.
123
- * Rollback re-invokes `updateService` with the same input — a best-effort
124
- * capability-level compensation for the common case (recorded here so the
125
- * capability is never rollback-silent); a component whose service swap needs
126
- * a specific prior task definition/count restored (rather than a re-apply of
127
- * the same input) supplies its own explicit rollback phase instead, such as
128
- * `rollback-previous` with that `taskDefinition`.
131
+ * Before the update, `run` reads the service with `describe-services` and
132
+ * records the task definition it was running in its output. The rollback sends
133
+ * that previous task definition back (and the previous desired count, when the
134
+ * step changed it). The step's own `imageRef` is never the rollback target:
135
+ * it is the revision the step just rolled out, so re-sending it restores
136
+ * nothing (#2609). When the previous task definition could not be read, the
137
+ * rollback fails with a message naming the service rather than report a
138
+ * restore that changed nothing (#2605). A component that needs a specific
139
+ * task definition restored can still give itself an explicit rollback phase,
140
+ * such as `rollback-previous` with that `taskDefinition`.
129
141
  */
130
142
  export declare function createEcsUpdateServiceCapability(executor?: CloudExecutor): Capability<EcsUpdateServiceInput, EcsUpdateServiceOutput>;
131
143
  /** Default `ecs-update-service` capability, backed by the real `CloudExecutor`. */
@@ -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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"}
@@ -86,6 +86,8 @@ export interface EcsServiceState {
86
86
  desiredCount: number;
87
87
  /** True once `runningCount === desiredCount` and no deployments are in flight. */
88
88
  stable: boolean;
89
+ /** The task definition the service is set to run, when the describe call reports one. */
90
+ taskDefinition?: string;
89
91
  }
90
92
  export interface EcsRunTaskArgs {
91
93
  cluster: string;
@@ -119,7 +121,7 @@ export interface EcsClient {
119
121
  }>;
120
122
  /** Current running/desired counts for a service, used by `wait-steady-state`. */
121
123
  describeService(cluster: string, service: string): Promise<EcsServiceState>;
122
- /** Roll a service back to a previously recorded task definition/count (saga compensation). */
124
+ /** Roll a service back to the given task definition (and count, if set) (saga compensation). Throws without a `taskDefinition`: the executor records no previous one. */
123
125
  rollbackService(args: EcsUpdateServiceArgs): Promise<void>;
124
126
  /** Run a one-off task (e.g. a DB migration) and return its arn for `waitForTask`. */
125
127
  runTask(args: EcsRunTaskArgs): Promise<{
@@ -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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"}
@@ -34,15 +34,14 @@ export interface RollbackPreviousSnapshotInput {
34
34
  /** Resource identifier being restored. */
35
35
  resource: string;
36
36
  }
37
- /** Roll an ECS service back to its previously recorded task definition — the
38
- * shape the `ecs-fargate` preset and the ALB/ECS pilot compose for an
39
- * ALB-fronted frontend service. */
37
+ /** Roll an ECS service back to a named task definition. */
40
38
  export interface RollbackPreviousEcsInput {
41
39
  /** ECS service name. */
42
40
  service: string;
43
41
  /** ECS cluster (name or ARN). */
44
42
  cluster: string;
45
- /** Explicit task definition to roll to; omitted → the executor's recorded previous. */
43
+ /** Task definition to roll back to (family:revision or ARN). Required: nothing
44
+ * records a service's previous task definition, so the step fails without it. */
46
45
  taskDefinition?: string;
47
46
  desiredCount?: number;
48
47
  }
@@ -56,8 +55,8 @@ export interface RollbackPreviousOutput {
56
55
  /**
57
56
  * Roll a resource back to its prior state — an explicit, caller-composed
58
57
  * compensation (not the auto-triggered per-capability `rollback`). Dispatches by
59
- * the input shape: an ECS service (`{service, cluster}`) rolls to its previous
60
- * task definition; a snapshot (`{snapshotId, resource}`) restores that capture.
58
+ * the input shape: an ECS service (`{service, cluster, taskDefinition}`) rolls to
59
+ * that task definition, and fails without one (#2605); a snapshot (`{snapshotId, resource}`) restores that capture.
61
60
  * An unrecognized shape fails with a clear message rather than a cryptic
62
61
  * `undefined` access (chant #990 — an ECS-shaped input used to reach the
63
62
  * snapshot path and throw "reading 'includes'" on the absent snapshotId).
@@ -1 +1 @@
1
- {"version":3,"file":"safety.d.ts","sourceRoot":"","sources":["../../src/components/safety.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wCAAwC,CAAC;AACzE,OAAO,EAAwB,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAI5E,MAAM,WAAW,mBAAmB;IAClC,wFAAwF;IACxF,QAAQ,EAAE,MAAM,CAAC;IACjB,kEAAkE;IAClE,YAAY,EAAE,gBAAgB,GAAG,cAAc,GAAG,mBAAmB,GAAG,YAAY,CAAC;CACtF;AAED,MAAM,WAAW,oBAAoB;IACnC,oEAAoE;IACpE,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAAC,QAAQ,GAAE,aAAsC,GAAG,UAAU,CAAC,mBAAmB,EAAE,oBAAoB,CAAC,CAOtJ;AAED,gFAAgF;AAChF,eAAO,MAAM,wBAAwB,EAAE,UAAU,CAAC,mBAAmB,EAAE,oBAAoB,CACzD,CAAC;AAInC,oFAAoF;AACpF,MAAM,WAAW,6BAA6B;IAC5C,kFAAkF;IAClF,UAAU,EAAE,MAAM,CAAC;IACnB,0CAA0C;IAC1C,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;mCAEmC;AACnC,MAAM,WAAW,wBAAwB;IACvC,wBAAwB;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,iCAAiC;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,uFAAuF;IACvF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;mEACmE;AACnE,MAAM,MAAM,qBAAqB,GAAG,6BAA6B,GAAG,wBAAwB,CAAC;AAE7F,MAAM,WAAW,sBAAsB;IACrC,gDAAgD;IAChD,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;;;GAQG;AACH,wBAAgB,gCAAgC,CAAC,QAAQ,GAAE,aAAsC,GAAG,UAAU,CAAC,qBAAqB,EAAE,sBAAsB,CAAC,CAuB5J;AAED,kFAAkF;AAClF,eAAO,MAAM,0BAA0B,EAAE,UAAU,CAAC,qBAAqB,EAAE,sBAAsB,CAC7D,CAAC"}
1
+ {"version":3,"file":"safety.d.ts","sourceRoot":"","sources":["../../src/components/safety.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wCAAwC,CAAC;AACzE,OAAO,EAAwB,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAI5E,MAAM,WAAW,mBAAmB;IAClC,wFAAwF;IACxF,QAAQ,EAAE,MAAM,CAAC;IACjB,kEAAkE;IAClE,YAAY,EAAE,gBAAgB,GAAG,cAAc,GAAG,mBAAmB,GAAG,YAAY,CAAC;CACtF;AAED,MAAM,WAAW,oBAAoB;IACnC,oEAAoE;IACpE,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAAC,QAAQ,GAAE,aAAsC,GAAG,UAAU,CAAC,mBAAmB,EAAE,oBAAoB,CAAC,CAOtJ;AAED,gFAAgF;AAChF,eAAO,MAAM,wBAAwB,EAAE,UAAU,CAAC,mBAAmB,EAAE,oBAAoB,CACzD,CAAC;AAInC,oFAAoF;AACpF,MAAM,WAAW,6BAA6B;IAC5C,kFAAkF;IAClF,UAAU,EAAE,MAAM,CAAC;IACnB,0CAA0C;IAC1C,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,2DAA2D;AAC3D,MAAM,WAAW,wBAAwB;IACvC,wBAAwB;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,iCAAiC;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB;qFACiF;IACjF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;mEACmE;AACnE,MAAM,MAAM,qBAAqB,GAAG,6BAA6B,GAAG,wBAAwB,CAAC;AAE7F,MAAM,WAAW,sBAAsB;IACrC,gDAAgD;IAChD,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;;;GAQG;AACH,wBAAgB,gCAAgC,CAAC,QAAQ,GAAE,aAAsC,GAAG,UAAU,CAAC,qBAAqB,EAAE,sBAAsB,CAAC,CA6B5J;AAED,kFAAkF;AAClF,eAAO,MAAM,0BAA0B,EAAE,UAAU,CAAC,qBAAqB,EAAE,sBAAsB,CAC7D,CAAC"}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "algorithm": "sha256",
3
3
  "artifacts": {
4
- "manifest.json": "d41955abfee73ff321172c907028877048d322f6305bfd90673ce5768245d5d9",
4
+ "manifest.json": "f19fe2f05179243308b6447c40d9b506b0e626170a79db52881062656363b0cc",
5
5
  "meta.json": "31795ba62a1da7503a8d55192c212ac44c56a56cdb2d4fde47966a1abc8b021b",
6
6
  "types/index.d.ts": "1038589dccfc1e690e3373014bff4d319e4ed3b421db2448ed4e70d51eb9d1f2",
7
7
  "rules/hardcoded-region.ts": "5a0eaf7ab391231fe6cd51426ece29539cb4b36f31c8dd060956638fed55722a",
@@ -73,5 +73,5 @@
73
73
  "skills/chant-aws-eks.md": "8789255709ff004ad0a875fd5999edcdc66fc6e33d710db058d9f42703bcfdfe",
74
74
  "skills/chant-aws-carve-terraform.md": "8780b94ce60aded935938d5ef20ea667738354051da1bf9ca6d70d9886f65d21"
75
75
  },
76
- "composite": "76fcd6b2effef2df35ff5e01a3dbd11def617990258cf782bf42774e8d96d320"
76
+ "composite": "b6350be3017607b7a9df9f5e14614f34af3c0f817ffd9402cffe062f5524b36c"
77
77
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "aws",
3
- "version": "0.80.0",
3
+ "version": "0.82.0",
4
4
  "chantVersion": ">=0.1.0",
5
5
  "namespace": "AWS",
6
6
  "intrinsics": [
@@ -1 +1 @@
1
- {"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../src/spec/fetch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../src/spec/fetch.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@intentius/chant-lexicon-aws",
3
- "version": "0.80.0",
3
+ "version": "0.82.0",
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",
@@ -80,7 +80,7 @@
80
80
  "typescript": "^5.9.3"
81
81
  },
82
82
  "peerDependencies": {
83
- "@intentius/chant": "^0.80.0",
83
+ "@intentius/chant": "^0.82.0",
84
84
  "typescript": "^5.9.3"
85
85
  }
86
86
  }
@@ -252,8 +252,10 @@ export function createMockCloudExecutor(options: MockCloudExecutorOptions = {}):
252
252
  async updateService(args: EcsUpdateServiceArgs) {
253
253
  record("ecs", "updateService", args);
254
254
  const key = `${args.cluster}/${args.service}`;
255
- const desired = args.desiredCount ?? ecsServices.get(key)?.desiredCount ?? 1;
256
- ecsServices.set(key, { runningCount: desired, desiredCount: desired, stable: true });
255
+ const current = ecsServices.get(key);
256
+ const desired = args.desiredCount ?? current?.desiredCount ?? 1;
257
+ const taskDefinition = args.taskDefinition ?? current?.taskDefinition;
258
+ ecsServices.set(key, { runningCount: desired, desiredCount: desired, stable: true, ...(taskDefinition ? { taskDefinition } : {}) });
257
259
  return { deploymentId: `mock-deployment-${key}` };
258
260
  },
259
261
  async describeService(cluster: string, service: string) {
@@ -264,7 +266,9 @@ export function createMockCloudExecutor(options: MockCloudExecutorOptions = {}):
264
266
  record("ecs", "rollbackService", args);
265
267
  const key = `${args.cluster}/${args.service}`;
266
268
  const current = ecsServices.get(key);
267
- ecsServices.set(key, { runningCount: current?.desiredCount ?? 1, desiredCount: current?.desiredCount ?? 1, stable: true });
269
+ const desired = args.desiredCount ?? current?.desiredCount ?? 1;
270
+ const taskDefinition = args.taskDefinition ?? current?.taskDefinition;
271
+ ecsServices.set(key, { runningCount: desired, desiredCount: desired, stable: true, ...(taskDefinition ? { taskDefinition } : {}) });
268
272
  },
269
273
  async runTask(args: EcsRunTaskArgs) {
270
274
  record("ecs", "runTask", args);
@@ -246,12 +246,31 @@ describe("ecs-update-service (#557)", () => {
246
246
  expect(updateCall.args).toMatchObject({ cluster: "prod", service: "search", taskDefinition: "sha256:abc" });
247
247
  });
248
248
 
249
- it("declares a capability-level rollback that re-invokes updateService (best-effort)", async () => {
249
+ it("run records the task definition the service ran before the update, and rollback sends it (#2609)", async () => {
250
+ const mock = createMockCloudExecutor({
251
+ ecsServices: { "prod/search": { runningCount: 2, desiredCount: 2, stable: true, taskDefinition: "search:6" } },
252
+ });
253
+ const capability = createEcsUpdateServiceCapability(mock.executor);
254
+ const input = { cluster: "prod", service: "search", imageRef: "search:7", desiredCount: 4 };
255
+ const output = await capability.run(svcCtx, input);
256
+ expect(output).toMatchObject({ previousTaskDefinition: "search:6", previousDesiredCount: 2 });
257
+ expect(mock.calls.map((c) => c.method)).toEqual(["describeService", "updateService"]);
258
+
259
+ await capability.rollback!(svcCtx, input, output);
260
+ const rollbackCall = mock.calls.find((c) => c.method === "rollbackService")!;
261
+ expect(rollbackCall.args).toMatchObject({ taskDefinition: "search:6", desiredCount: 2 });
262
+ });
263
+
264
+ it("rollback without a recorded previous task definition fails instead of re-sending the imageRef (#2605, #2609)", async () => {
250
265
  const mock = createMockCloudExecutor();
251
266
  const capability = createEcsUpdateServiceCapability(mock.executor);
252
- expect(typeof capability.rollback).toBe("function");
253
- await capability.rollback!(svcCtx, { cluster: "prod", service: "search" });
254
- expect(mock.calls.map((c) => c.method)).toEqual(["rollbackService"]);
267
+ await expect(capability.rollback!(svcCtx, { cluster: "prod", service: "search", imageRef: "search:7" })).rejects.toThrow(
268
+ /service "search" ran before the step was not recorded/,
269
+ );
270
+ await expect(capability.rollback!(svcCtx, { cluster: "prod", service: "search", desiredCount: 2 }, { deploymentId: "d" })).rejects.toThrow(
271
+ /service "search" ran before the step was not recorded/,
272
+ );
273
+ expect(mock.calls).toEqual([]);
255
274
  });
256
275
  });
257
276
 
@@ -251,16 +251,28 @@ export interface EcsUpdateServiceInput {
251
251
  export interface EcsUpdateServiceOutput {
252
252
  /** ARN of the new/updated service deployment. */
253
253
  deploymentId: string;
254
+ /**
255
+ * The task definition the service ran before this step updated it, read with
256
+ * `describe-services` ahead of `update-service`. The rollback sends it back.
257
+ * Absent when the service could not be described or reported none (#2609).
258
+ */
259
+ previousTaskDefinition?: string;
260
+ /** The service's desired count before this step, recorded only when the step sets `desiredCount`. */
261
+ previousDesiredCount?: number;
254
262
  }
255
263
 
256
264
  /**
257
265
  * Roll a new task definition/image out to an ECS service via `UpdateService`.
258
- * Rollback re-invokes `updateService` with the same input — a best-effort
259
- * capability-level compensation for the common case (recorded here so the
260
- * capability is never rollback-silent); a component whose service swap needs
261
- * a specific prior task definition/count restored (rather than a re-apply of
262
- * the same input) supplies its own explicit rollback phase instead, such as
263
- * `rollback-previous` with that `taskDefinition`.
266
+ * Before the update, `run` reads the service with `describe-services` and
267
+ * records the task definition it was running in its output. The rollback sends
268
+ * that previous task definition back (and the previous desired count, when the
269
+ * step changed it). The step's own `imageRef` is never the rollback target:
270
+ * it is the revision the step just rolled out, so re-sending it restores
271
+ * nothing (#2609). When the previous task definition could not be read, the
272
+ * rollback fails with a message naming the service rather than report a
273
+ * restore that changed nothing (#2605). A component that needs a specific
274
+ * task definition restored can still give itself an explicit rollback phase,
275
+ * such as `rollback-previous` with that `taskDefinition`.
264
276
  */
265
277
  export function createEcsUpdateServiceCapability(
266
278
  executor: CloudExecutor = defaultCloudExecutor(),
@@ -268,6 +280,9 @@ export function createEcsUpdateServiceCapability(
268
280
  return {
269
281
  kind: "ecs-update-service",
270
282
  async run(_ctx, input) {
283
+ // A failed read only costs the rollback its target; the forward update
284
+ // still runs, and the rollback then fails saying it has nothing to restore.
285
+ const before = await executor.ecs.describeService(input.cluster, input.service).catch(() => undefined);
271
286
  const { deploymentId } = await executor.ecs.updateService({
272
287
  cluster: input.cluster,
273
288
  service: input.service,
@@ -275,14 +290,26 @@ export function createEcsUpdateServiceCapability(
275
290
  desiredCount: input.desiredCount,
276
291
  forceNewDeployment: input.forceNewDeployment,
277
292
  });
278
- return { deploymentId };
293
+ return {
294
+ deploymentId,
295
+ ...(before?.taskDefinition ? { previousTaskDefinition: before.taskDefinition } : {}),
296
+ ...(before && input.desiredCount !== undefined ? { previousDesiredCount: before.desiredCount } : {}),
297
+ };
279
298
  },
280
- async rollback(_ctx, input) {
299
+ async rollback(_ctx, input, output) {
300
+ const previous = output?.previousTaskDefinition;
301
+ if (!previous) {
302
+ throw new Error(
303
+ `ecs-update-service rollback: the task definition service "${input.service}" ran before the step ` +
304
+ `was not recorded, so there is nothing to roll back to; ` +
305
+ `give the component a rollback phase that names the taskDefinition`,
306
+ );
307
+ }
281
308
  await executor.ecs.rollbackService({
282
309
  cluster: input.cluster,
283
310
  service: input.service,
284
- taskDefinition: input.imageRef,
285
- desiredCount: input.desiredCount,
311
+ taskDefinition: previous,
312
+ desiredCount: output?.previousDesiredCount,
286
313
  });
287
314
  },
288
315
  };
@@ -109,6 +109,8 @@ export interface EcsServiceState {
109
109
  desiredCount: number;
110
110
  /** True once `runningCount === desiredCount` and no deployments are in flight. */
111
111
  stable: boolean;
112
+ /** The task definition the service is set to run, when the describe call reports one. */
113
+ taskDefinition?: string;
112
114
  }
113
115
 
114
116
  export interface EcsRunTaskArgs {
@@ -143,7 +145,7 @@ export interface EcsClient {
143
145
  updateService(args: EcsUpdateServiceArgs): Promise<{ deploymentId: string }>;
144
146
  /** Current running/desired counts for a service, used by `wait-steady-state`. */
145
147
  describeService(cluster: string, service: string): Promise<EcsServiceState>;
146
- /** Roll a service back to a previously recorded task definition/count (saga compensation). */
148
+ /** Roll a service back to the given task definition (and count, if set) (saga compensation). Throws without a `taskDefinition`: the executor records no previous one. */
147
149
  rollbackService(args: EcsUpdateServiceArgs): Promise<void>;
148
150
  /** Run a one-off task (e.g. a DB migration) and return its arn for `waitForTask`. */
149
151
  runTask(args: EcsRunTaskArgs): Promise<{ taskArn: string }>;
@@ -547,12 +549,25 @@ const realEcs: EcsClient = {
547
549
  `aws ecs describe-services --cluster ${q(cluster)} --services ${q(service)}`,
548
550
  );
549
551
  const described = JSON.parse(stdout) as {
550
- services: Array<{ runningCount: number; desiredCount: number; deployments?: unknown[] }>;
552
+ services?: Array<{ runningCount: number; desiredCount: number; deployments?: unknown[]; taskDefinition?: string }>;
553
+ };
554
+ const svc = described.services?.[0];
555
+ return {
556
+ runningCount: svc?.runningCount ?? 0,
557
+ desiredCount: svc?.desiredCount ?? 0,
558
+ stable: ecsServiceStable(svc),
559
+ ...(svc?.taskDefinition ? { taskDefinition: svc.taskDefinition } : {}),
551
560
  };
552
- const svc = described.services[0];
553
- return { runningCount: svc?.runningCount ?? 0, desiredCount: svc?.desiredCount ?? 0, stable: ecsServiceStable(svc) };
554
561
  },
555
562
  async rollbackService(args) {
563
+ // The executor records no previous task definition itself, so a rollback
564
+ // without one would leave the service as it is and still report success (#2605).
565
+ // Callers read it with describeService before they update (#2609).
566
+ if (!args.taskDefinition) {
567
+ throw new Error(
568
+ `ecs rollback of service "${args.service}" on "${args.cluster}" needs the taskDefinition to roll back to`,
569
+ );
570
+ }
556
571
  await realEcs.updateService(args);
557
572
  },
558
573
  async runTask(args) {
@@ -0,0 +1,135 @@
1
+ import { beforeEach, describe, expect, it, vi } from "vitest";
2
+
3
+ // The real executor shells out through `exec`; record each command and answer
4
+ // `aws ecs update-service` with a minimal service, so these tests run the real
5
+ // executor's argument checks without an `aws` CLI (#2605).
6
+ const execMock = vi.fn<(cmd: string) => { stdout: string; stderr: string }>();
7
+
8
+ vi.mock("node:child_process", async () => {
9
+ const actual = await vi.importActual<typeof import("node:child_process")>("node:child_process");
10
+ return {
11
+ ...actual,
12
+ exec: (
13
+ cmd: string,
14
+ optsOrCb: unknown,
15
+ maybeCb?: (err: Error | null, out: { stdout: string; stderr: string }) => void,
16
+ ) => {
17
+ const cb = (typeof optsOrCb === "function" ? optsOrCb : maybeCb) as (
18
+ err: Error | null,
19
+ out: { stdout: string; stderr: string },
20
+ ) => void;
21
+ try {
22
+ cb(null, execMock(cmd));
23
+ } catch (err) {
24
+ cb(err as Error, { stdout: "", stderr: "" });
25
+ }
26
+ },
27
+ };
28
+ });
29
+
30
+ const { realCloudExecutor } = await import("./cloud-executor");
31
+ const { createRollbackPreviousCapability } = await import("./safety");
32
+ const { createEcsUpdateServiceCapability } = await import("./apply");
33
+
34
+ const ctx = { env: "dev", component: "search-service" };
35
+ const updateServiceReply = { stdout: JSON.stringify({ service: { deployments: [{ id: "ecs-svc/1" }] } }), stderr: "" };
36
+ const describeServicesReply = {
37
+ stdout: JSON.stringify({
38
+ services: [{ runningCount: 2, desiredCount: 2, deployments: [{}], taskDefinition: "arn:aws:ecs:us-east-1:1:task-definition/search:6" }],
39
+ }),
40
+ stderr: "",
41
+ };
42
+
43
+ beforeEach(() => {
44
+ execMock.mockReset();
45
+ execMock.mockImplementation((cmd) => (cmd.includes("describe-services") ? describeServicesReply : updateServiceReply));
46
+ });
47
+
48
+ describe("real ECS executor argument checks (#2605)", () => {
49
+ it("rollbackService without a taskDefinition throws and runs no aws command", async () => {
50
+ const executor = realCloudExecutor();
51
+ await expect(executor.ecs.rollbackService({ cluster: "prod", service: "search", desiredCount: 2 })).rejects.toThrow(
52
+ /needs the taskDefinition to roll back to/,
53
+ );
54
+ expect(execMock).not.toHaveBeenCalled();
55
+ });
56
+
57
+ it("the forward updateService keeps accepting the preset's { cluster, service } shape", async () => {
58
+ // The ECS preset and the ALB/ECS pilot run ecs-update-service after a
59
+ // cfn-deploy that already changed the task definition; that forward step
60
+ // is unchanged here.
61
+ const out = await createEcsUpdateServiceCapability(realCloudExecutor()).run(ctx, { cluster: "prod", service: "search" });
62
+ expect(out.deploymentId).toBe("ecs-svc/1");
63
+ expect(execMock).toHaveBeenCalledTimes(2);
64
+ expect(execMock.mock.calls[1]![0]).toMatch(/ecs update-service /);
65
+ expect(execMock.mock.calls[1]![0]).not.toMatch(/--task-definition/);
66
+ });
67
+ });
68
+
69
+ describe("rollback-previous on the real executor (#2605)", () => {
70
+ it("an ECS service without a taskDefinition fails and changes nothing", async () => {
71
+ const cap = createRollbackPreviousCapability(realCloudExecutor());
72
+ await expect(cap.run(ctx, { service: "search", cluster: "prod" })).rejects.toThrow(
73
+ /rollback-previous: ECS service "search" needs a taskDefinition to roll back to/,
74
+ );
75
+ expect(execMock).not.toHaveBeenCalled();
76
+ });
77
+
78
+ it("an ECS service with a taskDefinition runs update-service with it and reports restored", async () => {
79
+ const cap = createRollbackPreviousCapability(realCloudExecutor());
80
+ const out = await cap.run(ctx, { service: "search", cluster: "prod", taskDefinition: "search:41" });
81
+ expect(out).toEqual({ restored: true });
82
+ expect(execMock).toHaveBeenCalledTimes(1);
83
+ expect(execMock.mock.calls[0]![0]).toMatch(/ecs update-service .*--task-definition '?search:41'?/);
84
+ });
85
+ });
86
+
87
+ describe("ecs-update-service rollback on the real executor (#2605, #2609)", () => {
88
+ it("run reads the running task definition before update-service, and rollback sends that one, not the imageRef", async () => {
89
+ const cap = createEcsUpdateServiceCapability(realCloudExecutor());
90
+ const input = { cluster: "prod", service: "search", imageRef: "search:7" };
91
+ const out = await cap.run(ctx, input);
92
+ expect(execMock.mock.calls.map((c) => c[0].split(" ").slice(0, 3).join(" "))).toEqual([
93
+ "aws ecs describe-services",
94
+ "aws ecs update-service",
95
+ ]);
96
+ expect(execMock.mock.calls[1]![0]).toMatch(/--task-definition '?search:7'?/);
97
+ expect(out.previousTaskDefinition).toBe("arn:aws:ecs:us-east-1:1:task-definition/search:6");
98
+
99
+ execMock.mockClear();
100
+ await cap.rollback!(ctx, input, out);
101
+ expect(execMock).toHaveBeenCalledTimes(1);
102
+ const sent = execMock.mock.calls[0]![0];
103
+ expect(sent).toMatch(/ecs update-service .*--task-definition '?arn:aws:ecs:us-east-1:1:task-definition\/search:6'?/);
104
+ expect(sent).not.toMatch(/search:7/);
105
+ });
106
+
107
+ it("when describe-services fails, the update still runs and the rollback fails naming the service", async () => {
108
+ execMock.mockImplementation((cmd) => {
109
+ if (cmd.includes("describe-services")) throw new Error("AccessDeniedException: ecs:DescribeServices");
110
+ return updateServiceReply;
111
+ });
112
+ const cap = createEcsUpdateServiceCapability(realCloudExecutor());
113
+ const input = { cluster: "prod", service: "search", imageRef: "search:7" };
114
+ const out = await cap.run(ctx, input);
115
+ expect(out).toEqual({ deploymentId: "ecs-svc/1" });
116
+
117
+ execMock.mockClear();
118
+ await expect(cap.rollback!(ctx, input, out)).rejects.toThrow(
119
+ /ecs-update-service rollback: the task definition service "search" ran before the step was not recorded/,
120
+ );
121
+ expect(execMock).not.toHaveBeenCalled();
122
+ });
123
+
124
+ it("when describe-services reports no task definition, the rollback fails and runs no aws command", async () => {
125
+ execMock.mockImplementation((cmd) =>
126
+ cmd.includes("describe-services") ? { stdout: JSON.stringify({ services: [] }), stderr: "" } : updateServiceReply,
127
+ );
128
+ const cap = createEcsUpdateServiceCapability(realCloudExecutor());
129
+ const input = { cluster: "prod", service: "search", imageRef: "search:7" };
130
+ const out = await cap.run(ctx, input);
131
+ execMock.mockClear();
132
+ await expect(cap.rollback!(ctx, input, out)).rejects.toThrow(/service "search" ran before the step was not recorded/);
133
+ expect(execMock).not.toHaveBeenCalled();
134
+ });
135
+ });
@@ -447,19 +447,19 @@ describe("Every mutating #557 capability declares a rollback, or the pilot suppl
447
447
  });
448
448
 
449
449
  it("the ALB/ECS pilot declares no rollback-previous phase (#2576): with no taskDefinition it restored nothing", async () => {
450
- // The phase it used to declare passed only `service` and `cluster`. The
451
- // real capability turns that into `rollbackService` with no task
452
- // definition, which the real executor sends as an `aws ecs update-service`
453
- // that changes nothing. An earlier release is `chant components rollback`.
450
+ // The phase it used to declare passed only `service` and `cluster`. That
451
+ // input used to reach the real executor as an `aws ecs update-service` that
452
+ // changed nothing; it now fails (#2605). An earlier release is
453
+ // `chant components rollback`.
454
454
  expect(searchService.rollback).toBeUndefined();
455
455
  const mock = createMockCloudExecutor();
456
- await createRollbackPreviousCapability(mock.executor).run(
457
- { env: "dev", component: "search-service" },
458
- { service: "search", cluster: "prod" },
459
- );
460
- expect(mock.calls).toEqual([
461
- { client: "ecs", method: "rollbackService", args: { cluster: "prod", service: "search", taskDefinition: undefined, desiredCount: undefined } },
462
- ]);
456
+ await expect(
457
+ createRollbackPreviousCapability(mock.executor).run(
458
+ { env: "dev", component: "search-service" },
459
+ { service: "search", cluster: "prod" },
460
+ ),
461
+ ).rejects.toThrow(/needs a taskDefinition/);
462
+ expect(mock.calls).toEqual([]);
463
463
  });
464
464
 
465
465
  it("the DynamoDB pilot declares no component-level rollback — a blocked replacement is a stop, not something to compensate (documented opt-out)", () => {
@@ -41,22 +41,29 @@ describe("rollback-previous (#557)", () => {
41
41
  ]);
42
42
  });
43
43
 
44
- it("rolls an ECS service back via the executor for the {service, cluster} shape (#990)", async () => {
45
- // The ecs-fargate preset / ALB-ECS pilot compose rollback-previous with an
46
- // ECS service, NOT a snapshot id. This used to reach the snapshot path and
47
- // throw "Cannot read properties of undefined (reading 'includes')" on the
48
- // absent snapshotId.
44
+ it("rolls an ECS service back to the named taskDefinition for the {service, cluster} shape (#990)", async () => {
45
+ // An ECS-shaped input used to reach the snapshot path and throw "Cannot
46
+ // read properties of undefined (reading 'includes')" on the absent snapshotId.
49
47
  const mock = createMockCloudExecutor();
50
48
  const out = await createRollbackPreviousCapability(mock.executor).run(ctx, {
51
49
  service: "loom-frontend-svc",
52
50
  cluster: "arn:aws:ecs:us-east-1:1:cluster/loom",
51
+ taskDefinition: "loom-frontend:41",
53
52
  });
54
53
  expect(out).toEqual({ restored: true });
55
54
  expect(mock.calls).toEqual([
56
- { client: "ecs", method: "rollbackService", args: { cluster: "arn:aws:ecs:us-east-1:1:cluster/loom", service: "loom-frontend-svc", taskDefinition: undefined, desiredCount: undefined } },
55
+ { client: "ecs", method: "rollbackService", args: { cluster: "arn:aws:ecs:us-east-1:1:cluster/loom", service: "loom-frontend-svc", taskDefinition: "loom-frontend:41", desiredCount: undefined } },
57
56
  ]);
58
57
  });
59
58
 
59
+ it("fails for an ECS service without a taskDefinition instead of reporting restored (#2605)", async () => {
60
+ const mock = createMockCloudExecutor();
61
+ await expect(
62
+ createRollbackPreviousCapability(mock.executor).run(ctx, { service: "loom-frontend-svc", cluster: "loom" }),
63
+ ).rejects.toThrow(/needs a taskDefinition to roll back to/);
64
+ expect(mock.calls).toEqual([]);
65
+ });
66
+
60
67
  it("fails with a clear message (not a cryptic undefined access) for an unrecognized shape", async () => {
61
68
  const cap = createRollbackPreviousCapability(createMockCloudExecutor().executor);
62
69
  await expect(cap.run(ctx, {} as never)).rejects.toThrow(/expected \{ service, cluster \}|\{ snapshotId, resource \}/);
@@ -53,15 +53,14 @@ export interface RollbackPreviousSnapshotInput {
53
53
  resource: string;
54
54
  }
55
55
 
56
- /** Roll an ECS service back to its previously recorded task definition — the
57
- * shape the `ecs-fargate` preset and the ALB/ECS pilot compose for an
58
- * ALB-fronted frontend service. */
56
+ /** Roll an ECS service back to a named task definition. */
59
57
  export interface RollbackPreviousEcsInput {
60
58
  /** ECS service name. */
61
59
  service: string;
62
60
  /** ECS cluster (name or ARN). */
63
61
  cluster: string;
64
- /** Explicit task definition to roll to; omitted → the executor's recorded previous. */
62
+ /** Task definition to roll back to (family:revision or ARN). Required: nothing
63
+ * records a service's previous task definition, so the step fails without it. */
65
64
  taskDefinition?: string;
66
65
  desiredCount?: number;
67
66
  }
@@ -78,8 +77,8 @@ export interface RollbackPreviousOutput {
78
77
  /**
79
78
  * Roll a resource back to its prior state — an explicit, caller-composed
80
79
  * compensation (not the auto-triggered per-capability `rollback`). Dispatches by
81
- * the input shape: an ECS service (`{service, cluster}`) rolls to its previous
82
- * task definition; a snapshot (`{snapshotId, resource}`) restores that capture.
80
+ * the input shape: an ECS service (`{service, cluster, taskDefinition}`) rolls to
81
+ * that task definition, and fails without one (#2605); a snapshot (`{snapshotId, resource}`) restores that capture.
83
82
  * An unrecognized shape fails with a clear message rather than a cryptic
84
83
  * `undefined` access (chant #990 — an ECS-shaped input used to reach the
85
84
  * snapshot path and throw "reading 'includes'" on the absent snapshotId).
@@ -89,6 +88,12 @@ export function createRollbackPreviousCapability(executor: CloudExecutor = defau
89
88
  kind: "rollback-previous",
90
89
  async run(_ctx, input) {
91
90
  if ("service" in input && input.service) {
91
+ if (!input.taskDefinition) {
92
+ throw new Error(
93
+ `rollback-previous: ECS service "${input.service}" needs a taskDefinition to roll back to; ` +
94
+ `nothing records the previous one. For an earlier release use \`chant components rollback\``,
95
+ );
96
+ }
92
97
  await executor.ecs.rollbackService({
93
98
  cluster: input.cluster,
94
99
  service: input.service,
package/src/spec/fetch.ts CHANGED
@@ -7,6 +7,9 @@ import { fetchWithCache, extractFromZip, clearCacheFile } from "@intentius/chant
7
7
  import { RELEASE_GATE_ENV } from "@intentius/chant/codegen/validate";
8
8
  import { ACCEPT_ENV, AWS_SPEC_PIN, specContentDigest, type SpecPin } from "./pin";
9
9
 
10
+ /** Per-attempt download timeout for a multi-megabyte archive. */
11
+ const ARCHIVE_ATTEMPT_TIMEOUT_MS = 120_000;
12
+
10
13
  /**
11
14
  * Top-level CloudFormation Registry JSON Schema for a single resource type.
12
15
  */
@@ -232,7 +235,7 @@ export async function fetchSchemaZip(
232
235
  console.error(`pinned spec asset unavailable (${pinAssetUrl()}); falling back to the live CloudFormation archive`);
233
236
  }
234
237
  const zipData = await fetchWithCache(
235
- { url: SCHEMA_ZIP_URL, cacheFile: CACHE_FILE },
238
+ { url: SCHEMA_ZIP_URL, cacheFile: CACHE_FILE, attemptTimeoutMs: ARCHIVE_ATTEMPT_TIMEOUT_MS },
236
239
  force || accepting,
237
240
  );
238
241
  const schemas = await extractRawSchemas(zipData);