@caelo-cms/provisioning 0.11.11 → 0.11.12
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/agent-db.js +171 -15
- package/dist/converge-job-gcp.d.ts +7 -0
- package/dist/converge-job-gcp.d.ts.map +1 -1
- package/dist/converge-job-gcp.js +33 -1
- package/dist/converge-job-gcp.js.map +1 -1
- package/dist/converge-job-preflight.d.ts +34 -2
- package/dist/converge-job-preflight.d.ts.map +1 -1
- package/dist/converge-job-preflight.js +68 -1
- package/dist/converge-job-preflight.js.map +1 -1
- package/dist/converge-job-setup.d.ts.map +1 -1
- package/dist/converge-job-setup.js +4 -1
- package/dist/converge-job-setup.js.map +1 -1
- package/dist/converge-job.d.ts +27 -3
- package/dist/converge-job.d.ts.map +1 -1
- package/dist/converge-job.js +93 -11
- package/dist/converge-job.js.map +1 -1
- package/dist/install-job.d.ts +6 -0
- package/dist/install-job.d.ts.map +1 -1
- package/dist/install-job.js +6 -0
- package/dist/install-job.js.map +1 -1
- package/dist/mcp-auth-proxy-setup.d.ts +3 -1
- package/dist/mcp-auth-proxy-setup.d.ts.map +1 -1
- package/dist/mcp-auth-proxy-setup.js +9 -4
- package/dist/mcp-auth-proxy-setup.js.map +1 -1
- package/dist/upgrader-iam-preflight.d.ts +8 -6
- package/dist/upgrader-iam-preflight.d.ts.map +1 -1
- package/dist/upgrader-iam-preflight.js +5 -1
- package/dist/upgrader-iam-preflight.js.map +1 -1
- package/dist/wizards/gcp-cost.js +1 -1
- package/dist/wizards/gcp-cost.js.map +1 -1
- package/package.json +2 -2
- package/src/converge-job-gcp.ts +33 -1
- package/src/converge-job-preflight.test.ts +101 -0
- package/src/converge-job-preflight.ts +89 -3
- package/src/converge-job-setup.ts +4 -1
- package/src/converge-job.test.ts +143 -0
- package/src/converge-job.ts +143 -19
- package/src/install-job.ts +6 -0
- package/src/mcp-auth-proxy-setup.test.ts +33 -1
- package/src/mcp-auth-proxy-setup.ts +11 -4
- package/src/upgrader-iam-preflight.ts +15 -10
- package/src/wizards/gcp-cost.ts +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upgrader-iam-preflight.d.ts","sourceRoot":"","sources":["../src/upgrader-iam-preflight.ts"],"names":[],"mappings":"AA8DA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAItD,yCAAyC;AACzC,MAAM,MAAM,WAAW,GACnB;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GACxD;IAAE,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACxF;IACE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB,GACD;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE;AACtD,qFAAqF;GACnF;IAAE,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACrF;IACE,QAAQ,CAAC,IAAI,EAAE,qBAAqB,CAAC;IACrC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B,CAAC;AAEN,sEAAsE;AACtE,MAAM,WAAW,WAAW;IAC1B,8DAA8D;IAC9D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;IAC/B,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;CACzC;AAED,
|
|
1
|
+
{"version":3,"file":"upgrader-iam-preflight.d.ts","sourceRoot":"","sources":["../src/upgrader-iam-preflight.ts"],"names":[],"mappings":"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"}
|
|
@@ -248,6 +248,10 @@ export const UPGRADER_PREFLIGHT_VOICE = {
|
|
|
248
248
|
* with what it is for, then the one next step.
|
|
249
249
|
*/
|
|
250
250
|
export function preflightMissingReason(missing, voice) {
|
|
251
|
+
return `Nothing was changed: ${voice.subject} checked its access before starting and is missing permissions this update needs — ${missingAccessText(missing)}. ${voice.repair}`;
|
|
252
|
+
}
|
|
253
|
+
/** Every missing permission with what it is for, as one clause list ("it cannot …; it cannot …"). */
|
|
254
|
+
export function missingAccessText(missing) {
|
|
251
255
|
const lines = missing.map((m) => {
|
|
252
256
|
const where = resourceName(m.check.resource);
|
|
253
257
|
const parts = [
|
|
@@ -260,7 +264,7 @@ export function preflightMissingReason(missing, voice) {
|
|
|
260
264
|
];
|
|
261
265
|
return `it ${m.missing.length > 0 ? "cannot" : "may not be able to"} ${m.check.need} (${parts.join("; ")})`;
|
|
262
266
|
});
|
|
263
|
-
return
|
|
267
|
+
return lines.join("; ");
|
|
264
268
|
}
|
|
265
269
|
/** The request's end reason when IAM could not be asked. */
|
|
266
270
|
export function preflightErrorReason(errors, voice) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upgrader-iam-preflight.js","sourceRoot":"","sources":["../src/upgrader-iam-preflight.ts"],"names":[],"mappings":"AAAA,mCAAmC;AAEnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,wBAAwB,EACxB,0BAA0B,EAC1B,0BAA0B,EAC1B,+BAA+B,EAC/B,yBAAyB,EACzB,sBAAsB,EACtB,eAAe,EACf,2BAA2B,GAC5B,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AA0D/D,sGAAsG;AACtG,MAAM,CAAC,MAAM,sBAAsB,GAAG,sBAAsB,CAAC;AAE7D;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAIpC;IACC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC;IAC1C,MAAM,OAAO,GAAgB,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;IAC5D,MAAM,EAAE,GAAG,CAAC,KAAa,EAAe,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;IAC3F,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;IACxC,OAAO;QACL;YACE,IAAI,EAAE,uDAAuD;YAC7D,QAAQ,EAAE,OAAO;YACjB,WAAW,EAAE;gBACX,kBAAkB;gBAClB,mBAAmB;gBACnB,mBAAmB;gBACnB,oBAAoB;aACrB;SACF;QACD;YACE,IAAI,EAAE,wEAAwE;YAC9E,QAAQ,EAAE,OAAO;YACjB,WAAW,EAAE,CAAC,qBAAqB,EAAE,oBAAoB,CAAC;SAC3D;QACD;YACE,IAAI,EAAE,gHAAgH;YACtH,QAAQ,EAAE,OAAO;YACjB,WAAW,EAAE;gBACX,iBAAiB;gBACjB,iBAAiB;gBACjB,cAAc;gBACd,cAAc;gBACd,oBAAoB;aACrB;SACF;QACD;YACE,IAAI,EAAE,8CAA8C;YACpD,QAAQ,EAAE,OAAO;YACjB,WAAW,EAAE;gBACX,4BAA4B;gBAC5B,yBAAyB;gBACzB,0BAA0B;gBAC1B,wBAAwB;gBACxB,yBAAyB;aAC1B;SACF;QACD;YACE,IAAI,EAAE,oEAAoE;YAC1E,QAAQ,EAAE,EAAE,CAAC,sBAAsB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;YACpD,WAAW,EAAE,CAAC,2BAA2B,CAAC;SAC3C;QACD;YACE,IAAI,EAAE,wCAAwC;YAC9C,QAAQ,EAAE,EAAE,CAAC,0BAA0B,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;YACxD,WAAW,EAAE,CAAC,2BAA2B,CAAC;SAC3C;QACD;YACE,IAAI,EAAE,+CAA+C;YACrD,QAAQ,EAAE,EAAE,CAAC,+BAA+B,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;YAC7D,WAAW,EAAE,CAAC,2BAA2B,CAAC;SAC3C;QACD;YACE,qEAAqE;YACrE,uEAAuE;YACvE,sCAAsC;YACtC,IAAI,EAAE,qDAAqD;YAC3D,QAAQ,EAAE,OAAO;YACjB,WAAW,EAAE,CAAC,iBAAiB,CAAC;SACjC;QACD;YACE,IAAI,EAAE,kEAAkE;YACxE,QAAQ,EAAE,EAAE,CAAC,wBAAwB,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;YACtD,WAAW,EAAE,CAAC,2BAA2B,CAAC;SAC3C;QACD;YACE,kEAAkE;YAClE,IAAI,EAAE,4DAA4D;YAClE,QAAQ,EAAE,EAAE,CAAC,0BAA0B,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;YACxD,WAAW,EAAE,CAAC,2BAA2B,CAAC;SAC3C;QACD;YACE,IAAI,EAAE,kFAAkF;YACxF,QAAQ,EAAE,EAAE,CAAC,2BAA2B,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;YACzD,WAAW,EAAE,CAAC,2BAA2B,CAAC;SAC3C;QACD;YACE,IAAI,EAAE,wEAAwE;YAC9E,QAAQ,EAAE,EAAE,CAAC,yBAAyB,CAAC,SAAS,CAAC,CAAC;YAClD,WAAW,EAAE,CAAC,6BAA6B,CAAC;SAC7C;QACD;YACE,IAAI,EAAE,+CAA+C;YACrD,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,CAAC,GAAG,CAAC,EAAE;YAC5E,WAAW,EAAE,CAAC,cAAc,EAAE,iBAAiB,CAAC;SACjD;QACD;YACE,IAAI,EAAE,kEAAkE;YACxE,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE;YACpC,WAAW,EAAE,CAAC,sBAAsB,CAAC;SACtC;QACD;YACE,IAAI,EAAE,4DAA4D,kBAAkB,sBAAsB;YAC1G,QAAQ,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,EAAE,kBAAkB,EAAE;YACxE,WAAW,EAAE,CAAC,qBAAqB,EAAE,wBAAwB,EAAE,wBAAwB,CAAC;SACzF;QACD;YACE,IAAI,EAAE,6BAA6B;YACnC,QAAQ,EAAE;gBACR,IAAI,EAAE,qBAAqB;gBAC3B,SAAS,EAAE,gBAAgB,CAAC,OAAO;gBACnC,QAAQ,EAAE,gBAAgB,CAAC,MAAM;gBACjC,UAAU,EAAE,gBAAgB,CAAC,IAAI;aAClC;YACD,WAAW,EAAE,CAAC,iDAAiD,CAAC;SACjE;KACF,CAAC;AACJ,CAAC;AAED,uEAAuE;AACvE,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,MAA8B,EAC9B,MAAiB;IAEjB,oEAAoE;IACpE,MAAM,UAAU,GAAG,IAAI,GAAG,EAA+D,CAAC;IAC1F,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACvB,MAAM,GAAG,GAAG,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QACrC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,WAAW,EAAE,IAAI,GAAG,EAAU,EAAE,CAAC;QAC9F,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW;YAAE,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACxD,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC7B,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,GAAG,EAA+B,CAAC;IACvD,0EAA0E;IAC1E,MAAM,UAAU,GAAG,IAAI,GAAG,EAA+B,CAAC;IAC1D,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,GAAG,GAAG,KAAK,EAAE,GAAW,EAAE,QAAqB,EAAE,WAA8B,EAAE,EAAE;QACvF,IAAI,CAAgB,CAAC;QACrB,IAAI,CAAC;YACH,CAAC,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9D,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,CAAC,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QACvE,CAAC;QACD,IAAI,CAAC,CAAC,EAAE;YAAE,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;;YAC1C,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;IACzC,CAAC,CAAC;IACF,MAAM,OAAO,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC;IAChC,MAAM,OAAO,CAAC,GAAG,CACf,OAAO;SACJ,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,KAAK,gBAAgB,CAAC;SACvD,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAC/D,CAAC;IACF,yEAAyE;IACzE,yEAAyE;IACzE,yEAAyE;IACzE,yEAAyE;IACzE,MAAM,OAAO,CAAC,GAAG,CACf,OAAO;SACJ,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,KAAK,gBAAgB,CAAC;SACvD,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE;QAChB,MAAM,CAAC,GAAG,CAAC,CAAC,QAA4D,CAAC;QACzE,MAAM,QAAQ,GACZ,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,WAAW,CAAC;YACjF,KAAK,CAAC;QACR,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,IAAI,CAAC,KAAK,UAAU,CAAC,CAAC;QAC7E,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,WAAW,CAAC,IAAI;YAAE,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAClF,OAAO,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACrC,CAAC,CAAC,CACL,CAAC;IACF,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;IACvE,MAAM,OAAO,GAAoB,EAAE,CAAC;IACpC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACzC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,EAAU,CAAC;QACnD,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,EAAU,CAAC;QACzD,MAAM,OAAO,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACjF,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAClE,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/C,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAC5F,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;AAC9E,CAAC;AAED,MAAM,WAAW,GAAG,sBAAsB,CAAC;AAC3C,MAAM,UAAU,GAAG,qBAAqB,CAAC;AAczC,sFAAsF;AACtF,MAAM,CAAC,MAAM,wBAAwB,GAAmB;IACtD,OAAO,EAAE,cAAc;IACvB,MAAM,EAAE,0EAA0E;CACnF,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CACpC,OAAiC,EACjC,KAAqB;IAErB,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QAC9B,MAAM,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC7C,MAAM,KAAK,GAAG;YACZ,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAChF,GAAG,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;gBACvC,CAAC,CAAC;oBACE,GAAG,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,KAAK,kHAAkH;iBACxJ;gBACH,CAAC,CAAC,EAAE,CAAC;SACR,CAAC;QACF,OAAO,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,oBAAoB,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;IAC9G,CAAC,CAAC,CAAC;IACH,OAAO,wBAAwB,KAAK,CAAC,OAAO,sFAAsF,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;AACxK,CAAC;AAED,4DAA4D;AAC5D,MAAM,UAAU,oBAAoB,CAAC,MAAyB,EAAE,KAAqB;IACnF,OAAO,wBAAwB,KAAK,CAAC,OAAO,gDAAgD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,uDAAuD,KAAK,CAAC,MAAM,EAAE,CAAC;AACrL,CAAC;AAED,+DAA+D;AAC/D,MAAM,UAAU,YAAY,CAAC,CAAc;IACzC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;QACf,KAAK,SAAS;YACZ,OAAO,YAAY,CAAC,CAAC,SAAS,EAAE,CAAC;QACnC,KAAK,iBAAiB;YACpB,OAAO,YAAY,CAAC,CAAC,SAAS,oBAAoB,CAAC,CAAC,KAAK,EAAE,CAAC;QAC9D,KAAK,SAAS;YACZ,OAAO,YAAY,CAAC,CAAC,SAAS,cAAc,CAAC,CAAC,MAAM,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC;QACxE,KAAK,QAAQ;YACX,OAAO,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC;QAC5B,KAAK,gBAAgB;YACnB,OAAO,QAAQ,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC;QACzC,KAAK,qBAAqB;YACxB,OAAO,YAAY,CAAC,CAAC,SAAS,cAAc,CAAC,CAAC,QAAQ,iBAAiB,CAAC,CAAC,UAAU,EAAE,CAAC;IAC1F,CAAC;AACH,CAAC;AAED,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;AAElF;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CAAC,IAG7B;IACC,OAAO;QACL,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,WAAW;YACjC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;YAClC,IAAI,CAAC,MAAM;gBAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,4CAA4C,EAAE,CAAC;YACvF,MAAM,IAAI,GAAG,EAAE,aAAa,EAAE,UAAU,MAAM,EAAE,EAAE,CAAC;YACnD,IAAI,QAAQ,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;gBACvC,OAAO,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;YAC9D,CAAC;YACD,MAAM,IAAI,GAAG,WAAW,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;YAChD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;gBACpC,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,OAAO,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;gBAClF,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC1C,CAAC,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;YAC9B,IAAI,CAAC,GAAG,CAAC,EAAE;gBAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC;YAC5F,IAAI,GAAY,CAAC;YACjB,IAAI,CAAC;gBACH,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACzB,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,0CAA0C,EAAE,CAAC;YAC1E,CAAC;YACD,MAAM,MAAM,GAAG,eAAe,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YAC9C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,uDAAuD,EAAE,CAAC;YACvF,CAAC;YACD,6DAA6D;YAC7D,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,EAAE,CAAC;QAC9D,CAAC;KACF,CAAC;AACJ,CAAC;AAED,kEAAkE;AAClE,MAAM,UAAU,WAAW,CACzB,QAA0D,EAC1D,WAA8B;IAE9B,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;IAC7C,QAAQ,QAAQ,CAAC,IAAI,EAAE,CAAC;QACtB,KAAK,SAAS;YACZ,OAAO;gBACL,GAAG,EAAE,2DAA2D,kBAAkB,CAAC,QAAQ,CAAC,SAAS,CAAC,qBAAqB;gBAC3H,MAAM,EAAE,MAAM;gBACd,IAAI;aACL,CAAC;QACJ,KAAK,iBAAiB;YACpB,OAAO;gBACL,GAAG,EAAE,0CAA0C,kBAAkB,CAAC,QAAQ,CAAC,SAAS,CAAC,oBAAoB,kBAAkB,CAAC,QAAQ,CAAC,KAAK,CAAC,qBAAqB;gBAChK,MAAM,EAAE,MAAM;gBACd,IAAI;aACL,CAAC;QACJ,KAAK,SAAS;YACZ,OAAO;gBACL,GAAG,EAAE,0CAA0C,kBAAkB,CAAC,QAAQ,CAAC,SAAS,CAAC,cAAc,kBAAkB,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,qBAAqB;gBACrM,MAAM,EAAE,MAAM;gBACd,IAAI;aACL,CAAC;QACJ,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACnF,OAAO;gBACL,GAAG,EAAE,+CAA+C,kBAAkB,CAAC,QAAQ,CAAC,MAAM,CAAC,wBAAwB,CAAC,EAAE;gBAClH,MAAM,EAAE,KAAK;aACd,CAAC;QACJ,CAAC;QACD,KAAK,qBAAqB;YACxB,OAAO;gBACL,GAAG,EAAE,uDAAuD,kBAAkB,CAAC,QAAQ,CAAC,SAAS,CAAC,cAAc,kBAAkB,CAAC,QAAQ,CAAC,QAAQ,CAAC,iBAAiB,kBAAkB,CAAC,QAAQ,CAAC,UAAU,CAAC,qBAAqB;gBAClO,MAAM,EAAE,MAAM;gBACd,IAAI;aACL,CAAC;IACN,CAAC;AACH,CAAC;AAED,MAAM,aAAa,GAGf;IACF,gEAAgE;IAChE,qBAAqB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;IAC1D,8EAA8E;IAC9E,wBAAwB,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE;IACzD,8EAA8E;IAC9E,wBAAwB,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE;CACjE,CAAC;AAEF,gGAAgG;AAChG,MAAM,UAAU,eAAe,CAC7B,QAA0D,EAC1D,UAAkB;IAElB,MAAM,KAAK,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;IACxC,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,MAAM,MAAM,GAAG,kBAAkB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACnD,MAAM,MAAM,GAAG,kBAAkB,CAAC,GAAG,QAAQ,CAAC,MAAM,IAAI,sBAAsB,EAAE,CAAC,CAAC;IAClF,QAAQ,KAAK,CAAC,MAAM,EAAE,CAAC;QACrB,KAAK,KAAK;YACR,OAAO;gBACL,GAAG,EAAE,+CAA+C,MAAM,MAAM,MAAM,EAAE;gBACxE,MAAM,EAAE,KAAK;aACd,CAAC;QACJ,KAAK,MAAM;YACT,OAAO;gBACL,GAAG,EAAE,sDAAsD,MAAM,4BAA4B,MAAM,sBAAsB;gBACzH,MAAM,EAAE,MAAM;aACf,CAAC;QACJ,KAAK,QAAQ;YACX,OAAO;gBACL,GAAG,EAAE,+CAA+C,MAAM,MAAM,MAAM,sBAAsB;gBAC5F,MAAM,EAAE,QAAQ;aACjB,CAAC;IACN,CAAC;AACH,CAAC;AAED,KAAK,UAAU,YAAY,CACzB,IAAe,EACf,IAA4B,EAC5B,QAA0D,EAC1D,WAA8B;IAE9B,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;QACrC,MAAM,IAAI,GAAG,eAAe,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QACnD,MAAM,KAAK,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACpB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,gBAAgB,UAAU,OAAO,YAAY,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACzF,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;YAC/B,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EACL,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,cAAc,EAAE,0BAA0B,EAAE,CAAC,CAAC,CAAC,IAAI;YACzF,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAChD,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;QAC9B,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YACpC,iEAAiE;YACjE,8DAA8D;YAC9D,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC3B,CAAC;aAAM,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QAChC,CAAC;aAAM,CAAC;YACN,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE,WAAW,UAAU,OAAO,YAAY,CAAC,QAAQ,CAAC,UAAU,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;aAC7G,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AAC/B,CAAC"}
|
|
1
|
+
{"version":3,"file":"upgrader-iam-preflight.js","sourceRoot":"","sources":["../src/upgrader-iam-preflight.ts"],"names":[],"mappings":"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"}
|
package/dist/wizards/gcp-cost.js
CHANGED
|
@@ -127,7 +127,7 @@ export function estimateGcpCost(inputs) {
|
|
|
127
127
|
{
|
|
128
128
|
name: "Quality checks (Cloud Run audit job)",
|
|
129
129
|
monthlyUsd: 2,
|
|
130
|
-
notes: "one container per Lighthouse run, all in parallel (up to 5 pages x 3 runs, ~90 s at 2 vCPU each): ~$0.05 per audited Stage, partly in the free tier; results bucket ~$0",
|
|
130
|
+
notes: "one container per Lighthouse run, all in parallel (up to 5 pages x 3 runs, ~90 s at 2 vCPU each; a page whose runs disagree gets 2 more): ~$0.05 per audited Stage, at most ~$0.08, partly in the free tier; results bucket ~$0",
|
|
131
131
|
},
|
|
132
132
|
{
|
|
133
133
|
name: "Screenshots (Cloud Run capture job)",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gcp-cost.js","sourceRoot":"","sources":["../../src/wizards/gcp-cost.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"gcp-cost.js","sourceRoot":"","sources":["../../src/wizards/gcp-cost.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@caelo-cms/provisioning",
|
|
3
|
-
"version": "0.11.
|
|
3
|
+
"version": "0.11.12",
|
|
4
4
|
"private": false,
|
|
5
5
|
"license": "MPL-2.0",
|
|
6
6
|
"description": "Pulumi-driven provisioning for Caelo CMS — `bunx @caelo-cms/provisioning --provider <self-hosted|gcp|aws|azure>` brings up a TLS-served install with Postgres + storage + secrets manager + the admin + the API gateway.",
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
"prepublishOnly": "tsc -b --force && bun build ../platform-updater/src/agent-db.ts --target=bun --outfile=dist/agent-db.js && tsc --project stacks/gcp/tsconfig.json && tsc --project stacks/gcp-firebase/tsconfig.json"
|
|
41
41
|
},
|
|
42
42
|
"dependencies": {
|
|
43
|
-
"@caelo-cms/shared": "^0.11.
|
|
43
|
+
"@caelo-cms/shared": "^0.11.12",
|
|
44
44
|
"@clack/prompts": "1.8.1",
|
|
45
45
|
"@pulumi/command": "^1",
|
|
46
46
|
"@pulumi/gcp": "^10",
|
package/src/converge-job-gcp.ts
CHANGED
|
@@ -22,9 +22,10 @@ import { join } from "node:path";
|
|
|
22
22
|
import { CAELO_VERSION } from "@caelo-cms/shared";
|
|
23
23
|
import { readConvergeCheckpoint, writeConvergeCheckpoint } from "./converge-checkpoint.js";
|
|
24
24
|
import type { ConvergeJobDeps, ConvergeQueue, ConvergeUpgradeOutcome } from "./converge-job.js";
|
|
25
|
+
import { isSelfGrantableRole } from "./converge-job-preflight.js";
|
|
25
26
|
import { CONVERGE_TASK_TIMEOUT_MINUTES } from "./converge-job-setup.js";
|
|
26
27
|
import { gcloud } from "./gcloud.js";
|
|
27
|
-
import { type GcloudRunner, realSleep } from "./gcloud-retry.js";
|
|
28
|
+
import { type GcloudRunner, realSleep, runWithRetry } from "./gcloud-retry.js";
|
|
28
29
|
import {
|
|
29
30
|
convergeJobName,
|
|
30
31
|
GCP_STACK_ENV,
|
|
@@ -42,6 +43,7 @@ import {
|
|
|
42
43
|
} from "./install-state.js";
|
|
43
44
|
import { runMigrationsViaCloudRunJob } from "./migration-runner.js";
|
|
44
45
|
import { installIapAllowlist } from "./operator-access.js";
|
|
46
|
+
import { provisionerServiceAccountEmail } from "./provisioner-identity.js";
|
|
45
47
|
import { fetchVerifiedReleaseManifest, manifestServiceImages } from "./release-manifest.js";
|
|
46
48
|
import type { HttpFetch } from "./runtime-secrets.js";
|
|
47
49
|
import { publicSiteUrl, STAGING_HOST_ENV } from "./stack-contract.js";
|
|
@@ -203,6 +205,26 @@ export function startedExecutionName(stdout: string, stderr: string): string | n
|
|
|
203
205
|
return /^[a-z0-9-]+$/.test(name) ? name : null;
|
|
204
206
|
}
|
|
205
207
|
|
|
208
|
+
/**
|
|
209
|
+
* The `gcloud` argv that grants the install's provisioner — this job's
|
|
210
|
+
* own identity, never another principal — `role` on the project, or null
|
|
211
|
+
* when `role` is not on the self-grant allowlist (converge-job-preflight.ts).
|
|
212
|
+
* Exported for the tests that pin the boundary.
|
|
213
|
+
*/
|
|
214
|
+
export function selfGrantArgs(projectId: string, role: string): string[] | null {
|
|
215
|
+
if (!isSelfGrantableRole(role)) return null;
|
|
216
|
+
return [
|
|
217
|
+
"projects",
|
|
218
|
+
"add-iam-policy-binding",
|
|
219
|
+
projectId,
|
|
220
|
+
`--member=serviceAccount:${provisionerServiceAccountEmail(projectId)}`,
|
|
221
|
+
`--role=${role}`,
|
|
222
|
+
"--condition=None",
|
|
223
|
+
"--quiet",
|
|
224
|
+
"--format=none",
|
|
225
|
+
];
|
|
226
|
+
}
|
|
227
|
+
|
|
206
228
|
/**
|
|
207
229
|
* Every dependency of {@link runConvergeJob} except the database (the queue
|
|
208
230
|
* and how it is secured, #1373) and the log.
|
|
@@ -366,6 +388,16 @@ export function gcpConvergeDeps(
|
|
|
366
388
|
projectId,
|
|
367
389
|
region,
|
|
368
390
|
iam: gcloudIamTester(run, http),
|
|
391
|
+
grantOwnRole: async (role) => {
|
|
392
|
+
const args = selfGrantArgs(projectId, role);
|
|
393
|
+
if (!args)
|
|
394
|
+
return { ok: false, error: `${role} is not a role the converge job may grant itself` };
|
|
395
|
+
const r = await runWithRetry(run, realSleep, args);
|
|
396
|
+
return r.ok
|
|
397
|
+
? { ok: true }
|
|
398
|
+
: { ok: false, error: r.stderr.trim() || `gcloud exited ${r.exitCode}` };
|
|
399
|
+
},
|
|
400
|
+
sleep: realSleep,
|
|
369
401
|
execution: placement.execution,
|
|
370
402
|
ownVersion: CAELO_VERSION,
|
|
371
403
|
// The default deps: the fixed registry and signer, never overridden.
|
|
@@ -7,10 +7,15 @@
|
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
9
|
import { describe, expect, it } from "bun:test";
|
|
10
|
+
import { selfGrantArgs } from "./converge-job-gcp.js";
|
|
10
11
|
import {
|
|
11
12
|
CONVERGE_PREFLIGHT_VOICE,
|
|
13
|
+
CONVERGE_SELF_GRANTABLE_ROLES,
|
|
12
14
|
convergeAccessChecks,
|
|
13
15
|
INSTALL_ROLE_USES,
|
|
16
|
+
isSelfGrantableRole,
|
|
17
|
+
SELF_GRANT_FORBIDDEN_ROLES,
|
|
18
|
+
selfGrantPlan,
|
|
14
19
|
} from "./converge-job-preflight.js";
|
|
15
20
|
import { PROVISIONER_ROLE_LIST } from "./gcloud.js";
|
|
16
21
|
import { INSTALL_JOB_ROLES } from "./install-job.js";
|
|
@@ -79,6 +84,7 @@ describe("convergeAccessChecks", () => {
|
|
|
79
84
|
for (const role of INSTALL_JOB_ROLES) {
|
|
80
85
|
expect(checks).toContainEqual({
|
|
81
86
|
resource: { kind: "project", projectId: "acme" },
|
|
87
|
+
role,
|
|
82
88
|
...INSTALL_ROLE_USES[role],
|
|
83
89
|
});
|
|
84
90
|
}
|
|
@@ -111,3 +117,98 @@ describe("convergeAccessChecks", () => {
|
|
|
111
117
|
expect(reason).toContain("Cloud Shell or the computer you installed from");
|
|
112
118
|
});
|
|
113
119
|
});
|
|
120
|
+
|
|
121
|
+
describe("the converge job's self-grant allowlist (2026-11-03)", () => {
|
|
122
|
+
it("is exactly the roles converge-job-setup.ts grants the provisioner", () => {
|
|
123
|
+
expect([...CONVERGE_SELF_GRANTABLE_ROLES]).toEqual([...INSTALL_JOB_ROLES]);
|
|
124
|
+
expect(CONVERGE_SELF_GRANTABLE_ROLES).toContain("roles/workflows.editor");
|
|
125
|
+
});
|
|
126
|
+
|
|
127
|
+
it("names no ownership or IAM-policy role", () => {
|
|
128
|
+
for (const role of CONVERGE_SELF_GRANTABLE_ROLES) {
|
|
129
|
+
for (const f of SELF_GRANT_FORBIDDEN_ROLES) {
|
|
130
|
+
expect(role === f || (f.endsWith(".") && role.startsWith(f))).toBe(false);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
});
|
|
134
|
+
|
|
135
|
+
it("refuses every role outside the list, escalations first", () => {
|
|
136
|
+
for (const role of [
|
|
137
|
+
"roles/owner",
|
|
138
|
+
"roles/editor",
|
|
139
|
+
"roles/resourcemanager.projectIamAdmin",
|
|
140
|
+
"roles/iam.securityAdmin",
|
|
141
|
+
"roles/iam.serviceAccountKeyAdmin",
|
|
142
|
+
"roles/run.admin",
|
|
143
|
+
"roles/workflows.admin",
|
|
144
|
+
"roles/workflows.editor ",
|
|
145
|
+
"",
|
|
146
|
+
]) {
|
|
147
|
+
expect(isSelfGrantableRole(role)).toBe(false);
|
|
148
|
+
}
|
|
149
|
+
for (const role of INSTALL_JOB_ROLES) expect(isSelfGrantableRole(role)).toBe(true);
|
|
150
|
+
});
|
|
151
|
+
|
|
152
|
+
it("the grant names the project and the provisioner only, and refuses other roles", () => {
|
|
153
|
+
expect(selfGrantArgs("acme", "roles/workflows.editor")).toEqual([
|
|
154
|
+
"projects",
|
|
155
|
+
"add-iam-policy-binding",
|
|
156
|
+
"acme",
|
|
157
|
+
"--member=serviceAccount:caelo-provisioner@acme.iam.gserviceaccount.com",
|
|
158
|
+
"--role=roles/workflows.editor",
|
|
159
|
+
"--condition=None",
|
|
160
|
+
"--quiet",
|
|
161
|
+
"--format=none",
|
|
162
|
+
]);
|
|
163
|
+
for (const role of [
|
|
164
|
+
"roles/owner",
|
|
165
|
+
"roles/resourcemanager.projectIamAdmin",
|
|
166
|
+
"roles/run.admin",
|
|
167
|
+
]) {
|
|
168
|
+
expect(selfGrantArgs("acme", role)).toBeNull();
|
|
169
|
+
}
|
|
170
|
+
});
|
|
171
|
+
});
|
|
172
|
+
|
|
173
|
+
describe("selfGrantPlan", () => {
|
|
174
|
+
it("an install from before 0.11.11 (no workflows.editor) needs one grant and nothing blocks", async () => {
|
|
175
|
+
const r = await runIamPreflight(
|
|
176
|
+
convergeAccessChecks(TARGET),
|
|
177
|
+
provisioner([
|
|
178
|
+
...PROVISIONER_ROLE_LIST,
|
|
179
|
+
...INSTALL_JOB_ROLES.filter((role) => role !== "roles/workflows.editor"),
|
|
180
|
+
]),
|
|
181
|
+
);
|
|
182
|
+
expect(r.kind).toBe("missing");
|
|
183
|
+
if (r.kind !== "missing") return;
|
|
184
|
+
expect(selfGrantPlan(r.missing)).toEqual({ grant: ["roles/workflows.editor"], blocking: [] });
|
|
185
|
+
});
|
|
186
|
+
|
|
187
|
+
it("every install-job role missing: all of them, in list order", async () => {
|
|
188
|
+
const r = await runIamPreflight(
|
|
189
|
+
convergeAccessChecks(TARGET),
|
|
190
|
+
provisioner(PROVISIONER_ROLE_LIST),
|
|
191
|
+
);
|
|
192
|
+
if (r.kind !== "missing") throw new Error("expected missing");
|
|
193
|
+
const plan = selfGrantPlan([...r.missing].reverse());
|
|
194
|
+
expect(plan.grant).toEqual([...INSTALL_JOB_ROLES]);
|
|
195
|
+
expect(plan.blocking).toEqual([]);
|
|
196
|
+
});
|
|
197
|
+
|
|
198
|
+
it("a check without a role, or with a role off the list, blocks", () => {
|
|
199
|
+
const actAs = convergeAccessChecks(TARGET).find((c) =>
|
|
200
|
+
c.permissions.includes("iam.serviceAccounts.actAs"),
|
|
201
|
+
);
|
|
202
|
+
if (!actAs) throw new Error("no actAs check");
|
|
203
|
+
const forged = {
|
|
204
|
+
...actAs,
|
|
205
|
+
role: "roles/owner" as unknown as (typeof INSTALL_JOB_ROLES)[number],
|
|
206
|
+
};
|
|
207
|
+
const plan = selfGrantPlan([
|
|
208
|
+
{ check: actAs, missing: ["iam.serviceAccounts.actAs"] },
|
|
209
|
+
{ check: forged, missing: ["iam.serviceAccounts.actAs"] },
|
|
210
|
+
]);
|
|
211
|
+
expect(plan.grant).toEqual([]);
|
|
212
|
+
expect(plan.blocking).toHaveLength(2);
|
|
213
|
+
});
|
|
214
|
+
});
|
|
@@ -26,6 +26,23 @@
|
|
|
26
26
|
* - the Cloud SQL IAM login `ensureConvergeJob` creates (member of
|
|
27
27
|
* {@link UPGRADER_DB_ROLE}): the request row and the timeline.
|
|
28
28
|
*
|
|
29
|
+
* Self-grant (maintainer decision 2026-11-03). A release may add a role to
|
|
30
|
+
* {@link INSTALL_JOB_ROLES} (0.11.11 added roles/workflows.editor for the
|
|
31
|
+
* scheduler tick, #1140); an install set up before it lacks that role until
|
|
32
|
+
* a converge's `ensureConvergeJob` grants it, and the converge job used to
|
|
33
|
+
* stop here and send the Owner to Cloud Shell for exactly that grant. Now a
|
|
34
|
+
* missing role of {@link CONVERGE_SELF_GRANTABLE_ROLES} — this release's own
|
|
35
|
+
* compiled-in list, nothing a request, a record or the environment names —
|
|
36
|
+
* is not a reason to stop: stage 1 leaves it to stage 2, and stage 2 (the
|
|
37
|
+
* target release's verified ops image, under the state lock) grants it to
|
|
38
|
+
* the provisioner at project level, records each grant on the timeline and
|
|
39
|
+
* asks IAM again (converge-job.ts). Not an escalation: the provisioner holds
|
|
40
|
+
* roles/resourcemanager.projectIamAdmin since install, so it could grant
|
|
41
|
+
* itself any role already; the allowlist only narrows what the job does
|
|
42
|
+
* with that. {@link SELF_GRANT_FORBIDDEN_ROLES} pins that the list never
|
|
43
|
+
* names an ownership or IAM-policy role, and the upgrader job — which holds
|
|
44
|
+
* no IAM rights at all — has no grant step.
|
|
45
|
+
*
|
|
29
46
|
* Not checked: the permissions `pulumi up` needs for the stack. They are the
|
|
30
47
|
* provisioner's PROVISIONER_ROLE_LIST (gcloud.ts), granted at install by the
|
|
31
48
|
* Owner's own account; a converge cannot repair them and Pulumi names what
|
|
@@ -37,7 +54,7 @@ import { convergeJobName } from "./gcp-names.js";
|
|
|
37
54
|
import { INSTALL_JOB_ROLES, type InstallJobRole } from "./install-job.js";
|
|
38
55
|
import { provisionerServiceAccountEmail } from "./provisioner-identity.js";
|
|
39
56
|
import { OPS_INSTALL_PREFIX, opsBucketName } from "./state-backend.js";
|
|
40
|
-
import type { AccessCheck, PreflightVoice } from "./upgrader-iam-preflight.js";
|
|
57
|
+
import type { AccessCheck, MissingAccess, PreflightVoice } from "./upgrader-iam-preflight.js";
|
|
41
58
|
import { UPGRADER_DB_ROLE } from "./upgrader-setup.js";
|
|
42
59
|
|
|
43
60
|
/**
|
|
@@ -83,17 +100,86 @@ export const CONVERGE_PREFLIGHT_VOICE: PreflightVoice = {
|
|
|
83
100
|
"Run the update once from Cloud Shell or the computer you installed from (Settings → Updates shows the command); it repairs the converge job's access.",
|
|
84
101
|
};
|
|
85
102
|
|
|
103
|
+
/**
|
|
104
|
+
* The roles the converge job may grant its own account when the self-check
|
|
105
|
+
* finds them missing: exactly the roles `ensureConvergeJob` grants it, as
|
|
106
|
+
* compiled into this release (see the file comment).
|
|
107
|
+
*/
|
|
108
|
+
export const CONVERGE_SELF_GRANTABLE_ROLES: readonly InstallJobRole[] = INSTALL_JOB_ROLES;
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* Roles the converge job must never grant itself, whatever a release's list
|
|
112
|
+
* says — ownership and IAM-policy roles (prefix matches). The tests assert
|
|
113
|
+
* {@link CONVERGE_SELF_GRANTABLE_ROLES} names none of them, and the grant
|
|
114
|
+
* step refuses them again at run time.
|
|
115
|
+
*/
|
|
116
|
+
export const SELF_GRANT_FORBIDDEN_ROLES = [
|
|
117
|
+
"roles/owner",
|
|
118
|
+
"roles/editor",
|
|
119
|
+
"roles/resourcemanager.",
|
|
120
|
+
"roles/iam.securityAdmin",
|
|
121
|
+
"roles/iam.organizationRoleAdmin",
|
|
122
|
+
"roles/iam.serviceAccountKeyAdmin",
|
|
123
|
+
"roles/iam.workloadIdentityPoolAdmin",
|
|
124
|
+
"roles/orgpolicy.",
|
|
125
|
+
"roles/billing.",
|
|
126
|
+
] as const;
|
|
127
|
+
|
|
128
|
+
/** Whether the converge job may grant `role` to its own account (see the file comment). */
|
|
129
|
+
export function isSelfGrantableRole(role: string): role is InstallJobRole {
|
|
130
|
+
return (
|
|
131
|
+
(CONVERGE_SELF_GRANTABLE_ROLES as readonly string[]).includes(role) &&
|
|
132
|
+
!SELF_GRANT_FORBIDDEN_ROLES.some((f) => role === f || (f.endsWith(".") && role.startsWith(f)))
|
|
133
|
+
);
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
/** A converge self-check; `role` marks a check that granting that role repairs. */
|
|
137
|
+
export interface ConvergeAccessCheck extends AccessCheck {
|
|
138
|
+
readonly role?: InstallJobRole;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
/** What the converge job does about the self-check's missing permissions. */
|
|
142
|
+
export interface SelfGrantPlan {
|
|
143
|
+
/** Allowlisted roles to grant the provisioner, in list order. */
|
|
144
|
+
readonly grant: readonly InstallJobRole[];
|
|
145
|
+
/** What no grant of the job repairs: the run stops on any of these. */
|
|
146
|
+
readonly blocking: readonly MissingAccess<ConvergeAccessCheck>[];
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
/**
|
|
150
|
+
* Split the self-check's missing permissions into roles the job grants
|
|
151
|
+
* itself and the rest. A check counts as repairable only when its whole
|
|
152
|
+
* shortfall is permissions of an allowlisted role it is marked with.
|
|
153
|
+
*/
|
|
154
|
+
export function selfGrantPlan(
|
|
155
|
+
missing: readonly MissingAccess<ConvergeAccessCheck>[],
|
|
156
|
+
): SelfGrantPlan {
|
|
157
|
+
const grant: InstallJobRole[] = [];
|
|
158
|
+
const blocking: MissingAccess<ConvergeAccessCheck>[] = [];
|
|
159
|
+
for (const m of missing) {
|
|
160
|
+
const role = m.check.role;
|
|
161
|
+
if (role && isSelfGrantableRole(role) && !(m.unchecked && m.unchecked.length > 0)) {
|
|
162
|
+
if (!grant.includes(role)) grant.push(role);
|
|
163
|
+
} else {
|
|
164
|
+
blocking.push(m);
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
const order = CONVERGE_SELF_GRANTABLE_ROLES as readonly string[];
|
|
168
|
+
grant.sort((a, b) => order.indexOf(a) - order.indexOf(b));
|
|
169
|
+
return { grant, blocking };
|
|
170
|
+
}
|
|
171
|
+
|
|
86
172
|
/** Every permission a converge run relies on after its decision (see the file comment). */
|
|
87
173
|
export function convergeAccessChecks(target: {
|
|
88
174
|
readonly projectId: string;
|
|
89
175
|
readonly region: string;
|
|
90
176
|
readonly env: string;
|
|
91
|
-
}):
|
|
177
|
+
}): ConvergeAccessCheck[] {
|
|
92
178
|
const { projectId, region, env } = target;
|
|
93
179
|
const project = { kind: "project", projectId } as const;
|
|
94
180
|
const bucket = opsBucketName(projectId);
|
|
95
181
|
return [
|
|
96
|
-
...INSTALL_JOB_ROLES.map((role) => ({ resource: project, ...INSTALL_ROLE_USES[role] })),
|
|
182
|
+
...INSTALL_JOB_ROLES.map((role) => ({ resource: project, role, ...INSTALL_ROLE_USES[role] })),
|
|
97
183
|
{
|
|
98
184
|
need: `read and write the install's records and state lock (${OPS_INSTALL_PREFIX}/) and the update's checkpoint (${CONVERGE_STATE_PREFIX}/) in the ops bucket`,
|
|
99
185
|
resource: { kind: "bucket", bucket },
|
|
@@ -41,7 +41,10 @@
|
|
|
41
41
|
* - {@link INSTALL_JOB_ROLES} (the operator-access step of a converge
|
|
42
42
|
* creates a custom role and a Cloud Scheduler job, and the job's lines
|
|
43
43
|
* must reach Cloud Logging) — what an install-job install already
|
|
44
|
-
* grants; not an escalation, the provisioner holds projectIamAdmin
|
|
44
|
+
* grants; not an escalation, the provisioner holds projectIamAdmin. The
|
|
45
|
+
* converge job of a release that adds a role here grants it itself when
|
|
46
|
+
* it finds it missing (converge-job-preflight.ts, the self-grant), so
|
|
47
|
+
* the role reaches an older install without a terminal run;
|
|
45
48
|
* - a Cloud SQL IAM database login that is a member of `platform_updater`
|
|
46
49
|
* only (migration 0267): it reads its request and writes the timeline,
|
|
47
50
|
* nothing else in the database.
|
package/src/converge-job.test.ts
CHANGED
|
@@ -19,6 +19,7 @@ import {
|
|
|
19
19
|
type ConvergeQueue,
|
|
20
20
|
type ConvergeUpgradeOutcome,
|
|
21
21
|
runConvergeJob,
|
|
22
|
+
SELF_GRANT_RECHECK_ATTEMPTS,
|
|
22
23
|
type SecureDatabaseResult,
|
|
23
24
|
} from "./converge-job.js";
|
|
24
25
|
import type { ExecutionState } from "./install-job.js";
|
|
@@ -150,6 +151,8 @@ function harness(
|
|
|
150
151
|
iam?: IamTester;
|
|
151
152
|
/** #1373 — the database TLS step's answer; null: the queue dials the DNS name already. */
|
|
152
153
|
secureDatabase?: SecureDatabaseResult | null;
|
|
154
|
+
/** What a self-grant answers; ok by default. */
|
|
155
|
+
grant?: (role: string) => { ok: true } | { ok: false; error: string };
|
|
153
156
|
} = {},
|
|
154
157
|
): Harness {
|
|
155
158
|
const calls: string[] = [];
|
|
@@ -171,6 +174,13 @@ function harness(
|
|
|
171
174
|
iam: opts.iam ?? {
|
|
172
175
|
granted: async (_resource, permissions) => ({ ok: true, granted: permissions }),
|
|
173
176
|
},
|
|
177
|
+
grantOwnRole: async (role) => {
|
|
178
|
+
calls.push(`grant ${role}`);
|
|
179
|
+
return opts.grant ? opts.grant(role) : { ok: true };
|
|
180
|
+
},
|
|
181
|
+
sleep: async () => {
|
|
182
|
+
calls.push("sleep");
|
|
183
|
+
},
|
|
174
184
|
execution: "caelo-production-converge-run1",
|
|
175
185
|
ownVersion: opts.ownVersion ?? "0.11.0",
|
|
176
186
|
fetchManifest: async (v) => {
|
|
@@ -465,6 +475,139 @@ describe("runConvergeJob — stage 2 (the target release's own installer)", () =
|
|
|
465
475
|
});
|
|
466
476
|
});
|
|
467
477
|
|
|
478
|
+
/**
|
|
479
|
+
* An IAM that lacks the workflows.* permissions (an install set up before
|
|
480
|
+
* 0.11.11 added roles/workflows.editor, the searchviu-website case) until
|
|
481
|
+
* the job granted the role, and confirms it `lag` asks later.
|
|
482
|
+
*/
|
|
483
|
+
function lacksWorkflows(lag = 0, extraMissing: (p: string) => boolean = () => false) {
|
|
484
|
+
const state = { granted: false, asksSinceGrant: 0 };
|
|
485
|
+
const iam: IamTester = {
|
|
486
|
+
granted: async (_resource, permissions) => {
|
|
487
|
+
if (state.granted) state.asksSinceGrant += 1;
|
|
488
|
+
const workflowsHeld = state.granted && state.asksSinceGrant > lag;
|
|
489
|
+
return {
|
|
490
|
+
ok: true,
|
|
491
|
+
granted: permissions.filter(
|
|
492
|
+
(p) => !extraMissing(p) && (workflowsHeld || !p.startsWith("workflows.")),
|
|
493
|
+
),
|
|
494
|
+
};
|
|
495
|
+
},
|
|
496
|
+
};
|
|
497
|
+
const grant = (role: string) => {
|
|
498
|
+
if (role === "roles/workflows.editor") state.granted = true;
|
|
499
|
+
return { ok: true } as const;
|
|
500
|
+
};
|
|
501
|
+
return { iam, grant };
|
|
502
|
+
}
|
|
503
|
+
|
|
504
|
+
describe("runConvergeJob — the job grants itself the roles its release names (2026-11-03)", () => {
|
|
505
|
+
it("stage 1 leaves a missing allowlisted role to stage 2 and hands over without granting", async () => {
|
|
506
|
+
const { iam, grant } = lacksWorkflows();
|
|
507
|
+
const h = harness({ ownVersion: "0.10.53", iam, grant });
|
|
508
|
+
const r = await runConvergeJob(h.deps);
|
|
509
|
+
expect(r.status).toBeNull();
|
|
510
|
+
expect(h.calls.some((c) => c.startsWith("grant"))).toBe(false);
|
|
511
|
+
expect(h.calls).toContain("start");
|
|
512
|
+
expect(h.q.ends).toEqual([]);
|
|
513
|
+
expect(
|
|
514
|
+
h.q.events.some(
|
|
515
|
+
(e) =>
|
|
516
|
+
e.message.includes("lacks roles/workflows.editor") &&
|
|
517
|
+
e.message.includes("The installer of 0.11.0 grants them"),
|
|
518
|
+
),
|
|
519
|
+
).toBe(true);
|
|
520
|
+
});
|
|
521
|
+
|
|
522
|
+
it("stage 2 grants the role after the image check and under the lock, records it, re-checks, converges", async () => {
|
|
523
|
+
const { iam, grant } = lacksWorkflows();
|
|
524
|
+
const h = harness({ iam, grant });
|
|
525
|
+
const r = await runConvergeJob(h.deps);
|
|
526
|
+
expect(r.status).toBe("succeeded");
|
|
527
|
+
const g = h.calls.indexOf("grant roles/workflows.editor");
|
|
528
|
+
expect(g).toBeGreaterThan(h.calls.indexOf("lock"));
|
|
529
|
+
expect(g).toBeLessThan(h.calls.indexOf("checkpoint running"));
|
|
530
|
+
expect(g).toBeLessThan(h.calls.indexOf("upgrade"));
|
|
531
|
+
// Only the missing role, nothing else of the list.
|
|
532
|
+
expect(h.calls.filter((c) => c.startsWith("grant"))).toEqual(["grant roles/workflows.editor"]);
|
|
533
|
+
const event = h.q.events.find((e) => e.message.startsWith("Granted roles/workflows.editor"));
|
|
534
|
+
expect(event?.level).toBe("success");
|
|
535
|
+
expect(event?.message).toBe(
|
|
536
|
+
"Granted roles/workflows.editor to the converge job's account (caelo-provisioner@acme.iam.gserviceaccount.com), needed by Caelo 0.11.0 to deploy and update the workflow the scheduler tick runs (#1140).",
|
|
537
|
+
);
|
|
538
|
+
expect(h.q.events.some((e) => e.message.startsWith("IAM confirms the granted roles"))).toBe(
|
|
539
|
+
true,
|
|
540
|
+
);
|
|
541
|
+
});
|
|
542
|
+
|
|
543
|
+
it("waits for IAM to confirm a fresh grant (propagation) before it goes on", async () => {
|
|
544
|
+
const { iam, grant } = lacksWorkflows(3);
|
|
545
|
+
const h = harness({ iam, grant });
|
|
546
|
+
const r = await runConvergeJob(h.deps);
|
|
547
|
+
expect(r.status).toBe("succeeded");
|
|
548
|
+
const sleeps = h.calls.filter((c) => c === "sleep").length;
|
|
549
|
+
expect(sleeps).toBeGreaterThan(0);
|
|
550
|
+
expect(h.calls.lastIndexOf("sleep")).toBeLessThan(h.calls.indexOf("upgrade"));
|
|
551
|
+
});
|
|
552
|
+
|
|
553
|
+
it("a grant that fails (org policy) ends the request with the Cloud Shell step, before any change", async () => {
|
|
554
|
+
const { iam } = lacksWorkflows();
|
|
555
|
+
const h = harness({
|
|
556
|
+
iam,
|
|
557
|
+
grant: () => ({
|
|
558
|
+
ok: false,
|
|
559
|
+
error: "ERROR: (gcloud.projects.add-iam-policy-binding) FAILED_PRECONDITION: org policy",
|
|
560
|
+
}),
|
|
561
|
+
});
|
|
562
|
+
const r = await runConvergeJob(h.deps);
|
|
563
|
+
expect(r.status).toBe("needs_cloud_shell");
|
|
564
|
+
expect(h.q.ends[0]?.codes).toEqual(["iam-self-grant"]);
|
|
565
|
+
const reason = h.q.ends[0]?.reason ?? "";
|
|
566
|
+
expect(reason).toStartWith(
|
|
567
|
+
"Nothing was changed: the converge job could not grant its own account",
|
|
568
|
+
);
|
|
569
|
+
expect(reason).toContain("roles/workflows.editor");
|
|
570
|
+
expect(reason).toContain("org policy");
|
|
571
|
+
expect(reason).toContain("Run the update once from Cloud Shell");
|
|
572
|
+
expect(h.upgrades).toEqual([]);
|
|
573
|
+
expect(h.calls.some((c) => c.startsWith("checkpoint"))).toBe(false);
|
|
574
|
+
expect(h.calls.at(-1)).toBe("unlock");
|
|
575
|
+
});
|
|
576
|
+
|
|
577
|
+
it("a grant IAM never confirms ends with the Cloud Shell step after the wait", async () => {
|
|
578
|
+
const { iam, grant } = lacksWorkflows(10_000);
|
|
579
|
+
const h = harness({ iam, grant });
|
|
580
|
+
const r = await runConvergeJob(h.deps);
|
|
581
|
+
expect(r.status).toBe("needs_cloud_shell");
|
|
582
|
+
expect(h.q.ends[0]?.codes).toEqual(["iam-self-grant"]);
|
|
583
|
+
expect(h.q.ends[0]?.reason).toContain("workflows.workflows.create");
|
|
584
|
+
expect(h.calls.filter((c) => c === "sleep").length).toBe(SELF_GRANT_RECHECK_ATTEMPTS - 1);
|
|
585
|
+
expect(h.upgrades).toEqual([]);
|
|
586
|
+
});
|
|
587
|
+
|
|
588
|
+
it("a missing permission no allowlisted role carries stops either stage without granting anything", async () => {
|
|
589
|
+
// workflows.* is repairable, actAs on its own account is not.
|
|
590
|
+
const { iam, grant } = lacksWorkflows(0, (p) => p === "iam.serviceAccounts.actAs");
|
|
591
|
+
for (const stage of ["0.10.53", "0.11.0"]) {
|
|
592
|
+
const h = harness({ ownVersion: stage, iam, grant });
|
|
593
|
+
const r = await runConvergeJob(h.deps);
|
|
594
|
+
expect(r.status).toBe("needs_cloud_shell");
|
|
595
|
+
expect(h.q.ends[0]?.codes).toEqual(["iam-preflight"]);
|
|
596
|
+
expect(h.calls.some((c) => /^(grant|lock|point|start|upgrade)/.test(c))).toBe(false);
|
|
597
|
+
expect(h.q.ends[0]?.reason).toContain("workflows.workflows.create");
|
|
598
|
+
expect(h.q.ends[0]?.reason).toContain("iam.serviceAccounts.actAs");
|
|
599
|
+
}
|
|
600
|
+
});
|
|
601
|
+
|
|
602
|
+
it("stage 2 refuses an image the manifest does not sign before it grants anything", async () => {
|
|
603
|
+
const { iam, grant } = lacksWorkflows();
|
|
604
|
+
const h = harness({ iam, grant, ownDigest: D("9") });
|
|
605
|
+
const r = await runConvergeJob(h.deps);
|
|
606
|
+
expect(r.status).toBe("refused");
|
|
607
|
+
expect(h.calls.some((c) => c.startsWith("grant"))).toBe(false);
|
|
608
|
+
});
|
|
609
|
+
});
|
|
610
|
+
|
|
468
611
|
describe("runConvergeJob — resume after a killed run", () => {
|
|
469
612
|
it("a run that died is adopted once Cloud Run says it ended, and resumes from the checkpoint", async () => {
|
|
470
613
|
const h = harness({
|