rampway 0.3.1 → 0.4.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.
@@ -14,16 +14,18 @@ export function unregisterActiveDeploymentRun(id: string): void;
14
14
  */
15
15
  export function heartbeatIntervalMs(staleRunTimeoutMs: number): number;
16
16
  /**
17
- * @param {{activeRunIds: Set<string>, nowMs: number, run: {id: string, heartbeatAtMs: number|null, requestedAtMs: number}, staleRunTimeoutMs: number}} args - Lease data.
17
+ * @param {{activeRunIds: Set<string>, nowMs: number, run: {heartbeatAtMs: number|null, id: string, launchProtectedUntilMs?: number|null, requestedAtMs: number, status?: string}, staleRunTimeoutMs: number}} args - Lease data.
18
18
  * @returns {boolean} Whether ownership expired.
19
19
  */
20
20
  export function isRunLeaseExpired({ activeRunIds: localIds, nowMs, run, staleRunTimeoutMs }: {
21
21
  activeRunIds: Set<string>;
22
22
  nowMs: number;
23
23
  run: {
24
- id: string;
25
24
  heartbeatAtMs: number | null;
25
+ id: string;
26
+ launchProtectedUntilMs?: number | null;
26
27
  requestedAtMs: number;
28
+ status?: string;
27
29
  };
28
30
  staleRunTimeoutMs: number;
29
31
  }): boolean;
@@ -69,6 +71,13 @@ export default class DeploymentRunStore {
69
71
  readyPromise: Promise<void> | null;
70
72
  /** @returns {Promise<void>} */
71
73
  ensureReady(): Promise<void>;
74
+ /**
75
+ * Adds the handoff lease to databases created by the previous API schema.
76
+ *
77
+ * @param {any} db - Open Velocious database connection.
78
+ * @returns {Promise<void>}
79
+ */
80
+ _ensureLaunchProtectionColumn(db: any): Promise<void>;
72
81
  /**
73
82
  * @param {string} id - Run id.
74
83
  * @returns {Promise<DeploymentRunRow|null>} Run.
@@ -94,11 +103,32 @@ export default class DeploymentRunStore {
94
103
  outcome: string;
95
104
  run: DeploymentRunRow | null;
96
105
  }>;
106
+ /**
107
+ * @param {{id: string, startedAtMs: number}} args - Cross-process worker claim.
108
+ * @returns {Promise<DeploymentRunRow>} Claimed run.
109
+ */
110
+ claimPendingRun({ id, startedAtMs }: {
111
+ id: string;
112
+ startedAtMs: number;
113
+ }): Promise<DeploymentRunRow>;
97
114
  /** @param {{id: string, startedAtMs: number}} args - Transition. @returns {Promise<void>} */
98
115
  markRunning({ id, startedAtMs }: {
99
116
  id: string;
100
117
  startedAtMs: number;
101
118
  }): Promise<void>;
119
+ /** @param {{id: string, ownerToken: string, finishedAtMs: number, error: any}} args - Launch failure. @returns {Promise<void>} */
120
+ markPendingFailed({ id, ownerToken, finishedAtMs, error }: {
121
+ id: string;
122
+ ownerToken: string;
123
+ finishedAtMs: number;
124
+ error: any;
125
+ }): Promise<void>;
126
+ /** @param {{id: string, finishedAtMs: number, error: any}} args - Pre-claim worker failure. @returns {Promise<void>} */
127
+ failPendingRun({ id, finishedAtMs, error }: {
128
+ id: string;
129
+ finishedAtMs: number;
130
+ error: any;
131
+ }): Promise<void>;
102
132
  /** @param {{id: string, heartbeatAtMs: number}} args - Heartbeat. @returns {Promise<void>} */
103
133
  heartbeat({ id, heartbeatAtMs }: {
104
134
  id: string;
@@ -218,6 +248,7 @@ export type DeploymentRunRow = {
218
248
  finishedAtMs: number | null;
219
249
  ownerToken: string | null;
220
250
  heartbeatAtMs: number | null;
251
+ launchProtectedUntilMs: number | null;
221
252
  };
222
253
  export type DeploymentRunStoreContract = {
223
254
  findRunById: (id: string) => Promise<DeploymentRunRow | null>;
@@ -235,10 +266,25 @@ export type DeploymentRunStoreContract = {
235
266
  id: string;
236
267
  startedAtMs: number;
237
268
  }) => Promise<void>;
269
+ claimPendingRun: (args: {
270
+ id: string;
271
+ startedAtMs: number;
272
+ }) => Promise<DeploymentRunRow>;
238
273
  heartbeat: (args: {
239
274
  id: string;
240
275
  heartbeatAtMs: number;
241
276
  }) => Promise<void>;
277
+ markPendingFailed: (args: {
278
+ id: string;
279
+ ownerToken: string;
280
+ finishedAtMs: number;
281
+ error: any;
282
+ }) => Promise<void>;
283
+ failPendingRun: (args: {
284
+ id: string;
285
+ finishedAtMs: number;
286
+ error: any;
287
+ }) => Promise<void>;
242
288
  markSucceeded: (args: {
243
289
  id: string;
244
290
  ownerToken: string;
@@ -280,6 +326,7 @@ export const AUDIT_TABLE: "rampway_deployment_api_audit_events";
280
326
  * @property {number|null} finishedAtMs
281
327
  * @property {string|null} ownerToken
282
328
  * @property {number|null} heartbeatAtMs
329
+ * @property {number|null} launchProtectedUntilMs
283
330
  */
284
331
  /**
285
332
  * @typedef {object} DeploymentRunStoreContract
@@ -287,7 +334,10 @@ export const AUDIT_TABLE: "rampway_deployment_api_audit_events";
287
334
  * @property {(key: string) => Promise<DeploymentRunRow|null>} findRunByKey
288
335
  * @property {(args: {idempotencyKey: string, project: string, revision: string, stage: string}) => Promise<{outcome: string, run: DeploymentRunRow|null}>} createRunIfPossible
289
336
  * @property {(args: {id: string, startedAtMs: number}) => Promise<void>} markRunning
337
+ * @property {(args: {id: string, startedAtMs: number}) => Promise<DeploymentRunRow>} claimPendingRun
290
338
  * @property {(args: {id: string, heartbeatAtMs: number}) => Promise<void>} heartbeat
339
+ * @property {(args: {id: string, ownerToken: string, finishedAtMs: number, error: any}) => Promise<void>} markPendingFailed
340
+ * @property {(args: {id: string, finishedAtMs: number, error: any}) => Promise<void>} failPendingRun
291
341
  * @property {(args: {id: string, ownerToken: string, finishedAtMs: number, result: any}) => Promise<void>} markSucceeded
292
342
  * @property {(args: {id: string, ownerToken: string, finishedAtMs: number, error: any}) => Promise<void>} markFailed
293
343
  * @property {(args: {id: string, ownerToken: string, finishedAtMs: number, error: any}) => Promise<void>} markReconciliationRequired
@@ -1 +1 @@
1
- {"version":3,"file":"run-store.d.ts","sourceRoot":"","sources":["../../../src/velocious/run-store.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run-store.d.ts","sourceRoot":"","sources":["../../../src/velocious/run-store.js"],"names":[],"mappings":"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"}
@@ -18,6 +18,7 @@ import TableIndex from "velocious/build/src/database/table-data/table-index.js";
18
18
  * @property {number|null} finishedAtMs
19
19
  * @property {string|null} ownerToken
20
20
  * @property {number|null} heartbeatAtMs
21
+ * @property {number|null} launchProtectedUntilMs
21
22
  */
22
23
  /**
23
24
  * @typedef {object} DeploymentRunStoreContract
@@ -25,7 +26,10 @@ import TableIndex from "velocious/build/src/database/table-data/table-index.js";
25
26
  * @property {(key: string) => Promise<DeploymentRunRow|null>} findRunByKey
26
27
  * @property {(args: {idempotencyKey: string, project: string, revision: string, stage: string}) => Promise<{outcome: string, run: DeploymentRunRow|null}>} createRunIfPossible
27
28
  * @property {(args: {id: string, startedAtMs: number}) => Promise<void>} markRunning
29
+ * @property {(args: {id: string, startedAtMs: number}) => Promise<DeploymentRunRow>} claimPendingRun
28
30
  * @property {(args: {id: string, heartbeatAtMs: number}) => Promise<void>} heartbeat
31
+ * @property {(args: {id: string, ownerToken: string, finishedAtMs: number, error: any}) => Promise<void>} markPendingFailed
32
+ * @property {(args: {id: string, finishedAtMs: number, error: any}) => Promise<void>} failPendingRun
29
33
  * @property {(args: {id: string, ownerToken: string, finishedAtMs: number, result: any}) => Promise<void>} markSucceeded
30
34
  * @property {(args: {id: string, ownerToken: string, finishedAtMs: number, error: any}) => Promise<void>} markFailed
31
35
  * @property {(args: {id: string, ownerToken: string, finishedAtMs: number, error: any}) => Promise<void>} markReconciliationRequired
@@ -35,6 +39,8 @@ const RUNS_TABLE = "rampway_deployment_runs";
35
39
  const AUDIT_TABLE = "rampway_deployment_api_audit_events";
36
40
  const BLOCKING_STATUSES = ["pending", "running", "reconciliation_required"];
37
41
  const SCHEMA_LOCK = "rampway-deployment-api:schema-v1";
42
+ const MIN_LAUNCH_PROTECTION_MS = 1000;
43
+ const MAX_LAUNCH_PROTECTION_MS = 300000;
38
44
  const OWNER_TOKEN = randomUUID();
39
45
  const activeRunIds = new Set();
40
46
  /**
@@ -58,12 +64,14 @@ export function heartbeatIntervalMs(staleRunTimeoutMs) {
58
64
  return Math.max(1, Math.floor(staleRunTimeoutMs / 4));
59
65
  }
60
66
  /**
61
- * @param {{activeRunIds: Set<string>, nowMs: number, run: {id: string, heartbeatAtMs: number|null, requestedAtMs: number}, staleRunTimeoutMs: number}} args - Lease data.
67
+ * @param {{activeRunIds: Set<string>, nowMs: number, run: {heartbeatAtMs: number|null, id: string, launchProtectedUntilMs?: number|null, requestedAtMs: number, status?: string}, staleRunTimeoutMs: number}} args - Lease data.
62
68
  * @returns {boolean} Whether ownership expired.
63
69
  */
64
70
  export function isRunLeaseExpired({ activeRunIds: localIds, nowMs, run, staleRunTimeoutMs }) {
65
71
  if (localIds.has(run.id))
66
72
  return false;
73
+ if (run.status === "pending" && run.launchProtectedUntilMs != null && nowMs < run.launchProtectedUntilMs)
74
+ return false;
67
75
  return nowMs - (run.heartbeatAtMs ?? run.requestedAtMs) > staleRunTimeoutMs;
68
76
  }
69
77
  /**
@@ -95,6 +103,16 @@ export function reconciliationConditions({ mountIdentifier, run }) {
95
103
  function parseJson(value) {
96
104
  return typeof value === "string" && value.length > 0 ? JSON.parse(value) : null;
97
105
  }
106
+ /**
107
+ * Gives the package worker a durable bootstrap lease without changing the
108
+ * caller-configured execution lease. The lease is cleared by claim or failure.
109
+ *
110
+ * @param {number} staleRunTimeoutMs - Execution lease.
111
+ * @returns {number} Launch protection duration.
112
+ */
113
+ function launchProtectionDurationMs(staleRunTimeoutMs) {
114
+ return Math.min(MAX_LAUNCH_PROTECTION_MS, Math.max(MIN_LAUNCH_PROTECTION_MS, staleRunTimeoutMs * 10));
115
+ }
98
116
  /** Rampway-owned durable deployment state stored through Velocious's database abstraction. */
99
117
  export default class DeploymentRunStore {
100
118
  /**
@@ -141,12 +159,16 @@ export default class DeploymentRunStore {
141
159
  table.bigint("finished_at_ms", { null: true });
142
160
  table.string("owner_token", { null: true });
143
161
  table.bigint("heartbeat_at_ms", { null: true });
162
+ table.bigint("launch_protected_until_ms", { null: true });
144
163
  table.addIndex(new TableIndex(["mount_identifier", "idempotency_key"], {
145
164
  name: "index_rampway_runs_on_mount_and_key",
146
165
  unique: true
147
166
  }));
148
167
  await db.createTable(table);
149
168
  }
169
+ else {
170
+ await this._ensureLaunchProtectionColumn(db);
171
+ }
150
172
  if (!await db.tableExists(AUDIT_TABLE)) {
151
173
  const table = new TableData(AUDIT_TABLE, { ifNotExists: true });
152
174
  table.string("id", { null: false, primaryKey: true });
@@ -169,6 +191,22 @@ export default class DeploymentRunStore {
169
191
  this.readyPromise = null;
170
192
  }
171
193
  }
194
+ /**
195
+ * Adds the handoff lease to databases created by the previous API schema.
196
+ *
197
+ * @param {any} db - Open Velocious database connection.
198
+ * @returns {Promise<void>}
199
+ */
200
+ async _ensureLaunchProtectionColumn(db) {
201
+ const table = await db.getTableByName(RUNS_TABLE, { throwError: false });
202
+ if (await table?.getColumnByName("launch_protected_until_ms"))
203
+ return;
204
+ const alteration = new TableData(RUNS_TABLE);
205
+ alteration.bigint("launch_protected_until_ms", { null: true });
206
+ for (const sql of await db.alterTableSQLs(alteration))
207
+ await db.query(sql);
208
+ db.clearSchemaCache();
209
+ }
172
210
  /**
173
211
  * @param {string} id - Run id.
174
212
  * @returns {Promise<DeploymentRunRow|null>} Run.
@@ -225,6 +263,7 @@ export default class DeploymentRunStore {
225
263
  }
226
264
  }
227
265
  const id = randomUUID();
266
+ const requestedAtMs = Date.now();
228
267
  await db.insert({
229
268
  tableName: RUNS_TABLE,
230
269
  data: {
@@ -236,7 +275,8 @@ export default class DeploymentRunStore {
236
275
  mount_identifier: this.mountIdentifier,
237
276
  owner_token: OWNER_TOKEN,
238
277
  project,
239
- requested_at_ms: Date.now(),
278
+ launch_protected_until_ms: requestedAtMs + launchProtectionDurationMs(this.staleRunTimeoutMs),
279
+ requested_at_ms: requestedAtMs,
240
280
  result_json: null,
241
281
  revision,
242
282
  stage,
@@ -258,6 +298,26 @@ export default class DeploymentRunStore {
258
298
  }
259
299
  });
260
300
  }
301
+ /**
302
+ * @param {{id: string, startedAtMs: number}} args - Cross-process worker claim.
303
+ * @returns {Promise<DeploymentRunRow>} Claimed run.
304
+ */
305
+ async claimPendingRun({ id, startedAtMs }) {
306
+ await this.ensureReady();
307
+ return await this._withDb(async (db) => {
308
+ const affected = await db.affectedRows(db.updateSql({
309
+ tableName: RUNS_TABLE,
310
+ data: { heartbeat_at_ms: startedAtMs, launch_protected_until_ms: null, owner_token: OWNER_TOKEN, started_at_ms: startedAtMs, status: "running" },
311
+ conditions: { id, mount_identifier: this.mountIdentifier, status: "pending" }
312
+ }));
313
+ if (affected !== 1)
314
+ throw new Error(`Expected one claimable pending Rampway deployment run ${id}, updated ${affected}`);
315
+ const run = await this._findRunById(db, id);
316
+ if (!run)
317
+ throw new Error(`Rampway deployment run ${id} missing after worker claim`);
318
+ return run;
319
+ });
320
+ }
261
321
  /** @param {{id: string, startedAtMs: number}} args - Transition. @returns {Promise<void>} */
262
322
  async markRunning({ id, startedAtMs }) {
263
323
  await this.ensureReady();
@@ -271,6 +331,32 @@ export default class DeploymentRunStore {
271
331
  throw new Error(`Expected one owner-matching pending Rampway deployment run ${id}, updated ${affected}`);
272
332
  });
273
333
  }
334
+ /** @param {{id: string, ownerToken: string, finishedAtMs: number, error: any}} args - Launch failure. @returns {Promise<void>} */
335
+ async markPendingFailed({ id, ownerToken, finishedAtMs, error }) {
336
+ await this.ensureReady();
337
+ await this._withDb(async (db) => {
338
+ const affected = await db.affectedRows(db.updateSql({
339
+ tableName: RUNS_TABLE,
340
+ data: { error_json: JSON.stringify(error ?? null), finished_at_ms: finishedAtMs, launch_protected_until_ms: null, status: "failed" },
341
+ conditions: { id, mount_identifier: this.mountIdentifier, owner_token: ownerToken, status: "pending" }
342
+ }));
343
+ if (affected !== 1)
344
+ throw new Error(`Expected one owner-matching pending Rampway deployment run ${id}, updated ${affected}`);
345
+ });
346
+ }
347
+ /** @param {{id: string, finishedAtMs: number, error: any}} args - Pre-claim worker failure. @returns {Promise<void>} */
348
+ async failPendingRun({ id, finishedAtMs, error }) {
349
+ await this.ensureReady();
350
+ await this._withDb(async (db) => {
351
+ const affected = await db.affectedRows(db.updateSql({
352
+ tableName: RUNS_TABLE,
353
+ data: { error_json: JSON.stringify(error ?? null), finished_at_ms: finishedAtMs, launch_protected_until_ms: null, status: "failed" },
354
+ conditions: { id, mount_identifier: this.mountIdentifier, status: "pending" }
355
+ }));
356
+ if (affected !== 1)
357
+ throw new Error(`Expected one pending Rampway deployment run ${id}, updated ${affected}`);
358
+ });
359
+ }
274
360
  /** @param {{id: string, heartbeatAtMs: number}} args - Heartbeat. @returns {Promise<void>} */
275
361
  async heartbeat({ id, heartbeatAtMs }) {
276
362
  await this.ensureReady();
@@ -340,7 +426,7 @@ export default class DeploymentRunStore {
340
426
  : { message: "Deployment run was interrupted before execution began (ownership lease expired)" };
341
427
  const affected = await db.affectedRows(db.updateSql({
342
428
  tableName: RUNS_TABLE,
343
- data: { error_json: JSON.stringify(error), finished_at_ms: Date.now(), status },
429
+ data: { error_json: JSON.stringify(error), finished_at_ms: Date.now(), launch_protected_until_ms: null, status },
344
430
  conditions: reconciliationConditions({ mountIdentifier: this.mountIdentifier, run })
345
431
  }));
346
432
  if (affected === 0)
@@ -443,6 +529,7 @@ export default class DeploymentRunStore {
443
529
  heartbeatAtMs: row.heartbeat_at_ms == null ? null : Number(row.heartbeat_at_ms),
444
530
  id: row.id,
445
531
  idempotencyKey: row.idempotency_key,
532
+ launchProtectedUntilMs: row.launch_protected_until_ms == null ? null : Number(row.launch_protected_until_ms),
446
533
  mountIdentifier: row.mount_identifier,
447
534
  ownerToken: row.owner_token ?? null,
448
535
  project: row.project,
@@ -1 +1 @@
1
- {"version":3,"file":"run-store.js","sourceRoot":"","sources":["../../../src/velocious/run-store.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run-store.js","sourceRoot":"","sources":["../../../src/velocious/run-store.js"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * @typedef {object} WorkerContext
3
+ * @property {any} [configuration] - Reconstructed Velocious configuration.
4
+ * @property {(args: {mountIdentifier: string, runId: string}) => Promise<void>} [execute] - Test-only bootstrap execution hook.
5
+ */
6
+ /**
7
+ * Parses the package-owned worker's bounded invocation contract.
8
+ *
9
+ * @param {string[]} argv - Worker arguments.
10
+ * @returns {{bootstrapPath: string, mountIdentifier: string, runId: string}} Invocation.
11
+ */
12
+ export function parseWorkerArguments(argv: string[]): {
13
+ bootstrapPath: string;
14
+ mountIdentifier: string;
15
+ runId: string;
16
+ };
17
+ /**
18
+ * Executes one admitted deployment in a fresh application process.
19
+ *
20
+ * @param {{bootstrapPath: string, mountIdentifier: string, runId: string}} args - Worker invocation.
21
+ * @returns {Promise<void>}
22
+ */
23
+ export function runDetachedDeploymentWorker({ bootstrapPath, mountIdentifier, runId }: {
24
+ bootstrapPath: string;
25
+ mountIdentifier: string;
26
+ runId: string;
27
+ }): Promise<void>;
28
+ /**
29
+ * @param {any} configuration - Configuration.
30
+ * @param {string} context - Error context.
31
+ * @param {unknown} error - Error.
32
+ * @returns {void}
33
+ */
34
+ export function reportWorkerFrameworkError(configuration: any, context: string, error: unknown): void;
35
+ export type WorkerContext = {
36
+ /**
37
+ * - Reconstructed Velocious configuration.
38
+ */
39
+ configuration?: any;
40
+ /**
41
+ * - Test-only bootstrap execution hook.
42
+ */
43
+ execute?: ((args: {
44
+ mountIdentifier: string;
45
+ runId: string;
46
+ }) => Promise<void>) | undefined;
47
+ };
48
+ //# sourceMappingURL=worker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../../src/velocious/worker.js"],"names":[],"mappings":"AAgBA;;;;GAIG;AAEH;;;;;GAKG;AACH,2CAHW,MAAM,EAAE,GACN;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAC,CAU3E;AAED;;;;;GAKG;AACH,uFAHW;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAC,GAC7D,OAAO,CAAC,IAAI,CAAC,CAsEzB;AA+BD;;;;;GAKG;AACH,0DALW,GAAG,WACH,MAAM,SACN,OAAO,GACL,IAAI,CAQhB;;;;;oBAzIa,GAAG;;;;sBACI;QAAC,eAAe,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAC,KAAK,OAAO,CAAC,IAAI,CAAC"}
@@ -0,0 +1,165 @@
1
+ // @ts-check
2
+ import { pathToFileURL } from "node:url";
3
+ import AppRoutes from "velocious/build/src/routes/app-routes.js";
4
+ import configurationResolver from "velocious/build/src/configuration-resolver.js";
5
+ import { DeploymentControlPlane, lookupTarget } from "./control-plane.js";
6
+ import { createRampwayDeploymentExecutor } from "./executor.js";
7
+ import { validateWorkerBootstrapPath } from "./controller.js";
8
+ import DeploymentRunStore from "./run-store.js";
9
+ import { getDeploymentMountByIdentifier } from "./registry.js";
10
+ import { sanitizeErrorPayload } from "./sanitize.js";
11
+ const MAX_IDENTIFIER_LENGTH = 128;
12
+ /**
13
+ * @typedef {object} WorkerContext
14
+ * @property {any} [configuration] - Reconstructed Velocious configuration.
15
+ * @property {(args: {mountIdentifier: string, runId: string}) => Promise<void>} [execute] - Test-only bootstrap execution hook.
16
+ */
17
+ /**
18
+ * Parses the package-owned worker's bounded invocation contract.
19
+ *
20
+ * @param {string[]} argv - Worker arguments.
21
+ * @returns {{bootstrapPath: string, mountIdentifier: string, runId: string}} Invocation.
22
+ */
23
+ export function parseWorkerArguments(argv) {
24
+ if (argv.length !== 3)
25
+ throw new Error("Rampway deployment worker requires bootstrap, mount, and run identifiers");
26
+ const [bootstrapPath, mountIdentifier, runId] = argv;
27
+ if (typeof mountIdentifier !== "string" || !/^[0-9a-f]{64}$/.test(mountIdentifier))
28
+ throw new Error("Invalid Rampway deployment worker mount identifier");
29
+ if (typeof runId !== "string" || runId.length === 0 || runId.length > MAX_IDENTIFIER_LENGTH || !/^[A-Za-z0-9_-]+$/.test(runId)) {
30
+ throw new Error("Invalid Rampway deployment worker run identifier");
31
+ }
32
+ return { bootstrapPath: validateWorkerBootstrapPath(bootstrapPath), mountIdentifier, runId };
33
+ }
34
+ /**
35
+ * Executes one admitted deployment in a fresh application process.
36
+ *
37
+ * @param {{bootstrapPath: string, mountIdentifier: string, runId: string}} args - Worker invocation.
38
+ * @returns {Promise<void>}
39
+ */
40
+ export async function runDetachedDeploymentWorker({ bootstrapPath, mountIdentifier, runId }) {
41
+ /** @type {any} */
42
+ let configuration;
43
+ /** @type {DeploymentRunStore|null} */
44
+ let store = null;
45
+ /** @type {import('./control-plane.js').DeploymentMountOptions & {databaseIdentifier: string, executor: import('./executor.js').RampwayDeploymentExecutor}|null} */
46
+ let options = null;
47
+ let claimed = null;
48
+ try {
49
+ const imported = await import(pathToFileURL(bootstrapPath).href);
50
+ const bootstrap = imported.default ?? imported.createRampwayDeploymentWorkerContext;
51
+ if (typeof bootstrap !== "function")
52
+ throw new Error("Rampway worker bootstrap must default-export a context factory");
53
+ const context = /** @type {WorkerContext} */ (await bootstrap({ mountIdentifier, runId }));
54
+ if (!context || typeof context !== "object")
55
+ throw new Error("Rampway worker bootstrap must return a context object");
56
+ if (typeof context.execute === "function") {
57
+ await context.execute({ mountIdentifier, runId });
58
+ return;
59
+ }
60
+ configuration = context.configuration;
61
+ if (!configuration)
62
+ throw new Error("Rampway worker bootstrap did not return a Velocious configuration");
63
+ await initializeWorkerConfiguration(configuration);
64
+ options = deploymentWorkerOptions(configuration, mountIdentifier, bootstrapPath);
65
+ store = createWorkerStore(configuration, options, mountIdentifier);
66
+ claimed = await store.claimPendingRun({ id: runId, startedAtMs: Date.now() });
67
+ const target = lookupTarget(options.projects, claimed.project, claimed.stage);
68
+ if (!target)
69
+ throw new Error(`Deployment run ${runId} no longer has an allowlisted target`);
70
+ const plane = new DeploymentControlPlane({
71
+ detachedExecution: async () => { throw new Error("Detached workers cannot launch nested deployment workers"); },
72
+ emitFrameworkError(error) {
73
+ reportWorkerFrameworkError(configuration, error.context, error.error);
74
+ },
75
+ executor: options.executor ?? createRampwayDeploymentExecutor(),
76
+ options,
77
+ store
78
+ });
79
+ await plane._executeRun({ claimed: true, run: claimed, target });
80
+ }
81
+ catch (error) {
82
+ if (!store || !options) {
83
+ try {
84
+ const resolveConfiguration = /** @type {(args: {directory: string}) => Promise<any>} */ (configurationResolver);
85
+ configuration ??= await resolveConfiguration({ directory: process.cwd() });
86
+ await initializeWorkerConfiguration(configuration);
87
+ options = deploymentWorkerOptions(configuration, mountIdentifier, bootstrapPath);
88
+ store = createWorkerStore(configuration, options, mountIdentifier);
89
+ }
90
+ catch (recoveryError) {
91
+ reportWorkerFrameworkError(configuration, "rampway-deployment-api-worker-recovery", recoveryError);
92
+ throw new AggregateError([error, recoveryError], "Rampway worker could not reconstruct its durable failure context");
93
+ }
94
+ }
95
+ const safeError = sanitizeErrorPayload(error, options.accessTokens);
96
+ try {
97
+ if (claimed) {
98
+ await store.markFailed({ error: safeError, finishedAtMs: Date.now(), id: claimed.id, ownerToken: claimed.ownerToken ?? "" });
99
+ }
100
+ else {
101
+ await store.failPendingRun({ error: safeError, finishedAtMs: Date.now(), id: runId });
102
+ }
103
+ await store.addAuditEvent({ event: "run_failed", payload: { message: safeError.message, phase: claimed ? "worker_execution" : "worker_bootstrap" }, runId });
104
+ }
105
+ catch (persistenceError) {
106
+ reportWorkerFrameworkError(configuration, "rampway-deployment-api-worker-failure-persistence", persistenceError);
107
+ throw new AggregateError([error, persistenceError], "Rampway worker failure could not be persisted");
108
+ }
109
+ return;
110
+ }
111
+ finally {
112
+ if (configuration && typeof configuration.closeDatabaseConnections === "function")
113
+ await configuration.closeDatabaseConnections();
114
+ }
115
+ }
116
+ /** @param {any} configuration - Configuration. @returns {Promise<void>} */
117
+ async function initializeWorkerConfiguration(configuration) {
118
+ const routes = await AppRoutes.getRoutes(configuration);
119
+ await configuration.initialize({ type: "rampway-deployment-worker" });
120
+ configuration.setRoutes(routes);
121
+ }
122
+ /**
123
+ * @param {any} configuration - Configuration.
124
+ * @param {string} mountIdentifier - Mount identifier.
125
+ * @param {string} bootstrapPath - Canonical bootstrap path.
126
+ * @returns {import('./control-plane.js').DeploymentMountOptions & {databaseIdentifier: string, executor: import('./executor.js').RampwayDeploymentExecutor}} Options.
127
+ */
128
+ function deploymentWorkerOptions(configuration, mountIdentifier, bootstrapPath) {
129
+ const options = /** @type {import('./control-plane.js').DeploymentMountOptions & {databaseIdentifier: string, executor: import('./executor.js').RampwayDeploymentExecutor}} */ (getDeploymentMountByIdentifier(configuration, mountIdentifier));
130
+ if (!options || options.workerBootstrapPath !== bootstrapPath)
131
+ throw new Error("Rampway deployment worker mount was not reconstructed");
132
+ return options;
133
+ }
134
+ /**
135
+ * @param {any} configuration - Configuration.
136
+ * @param {import('./control-plane.js').DeploymentMountOptions & {databaseIdentifier: string}} options - Mount options.
137
+ * @param {string} mountIdentifier - Mount identifier.
138
+ * @returns {DeploymentRunStore} Store.
139
+ */
140
+ function createWorkerStore(configuration, options, mountIdentifier) {
141
+ return new DeploymentRunStore({ configuration, databaseIdentifier: options.databaseIdentifier, mountIdentifier, staleRunTimeoutMs: options.staleRunTimeoutMs });
142
+ }
143
+ /**
144
+ * @param {any} configuration - Configuration.
145
+ * @param {string} context - Error context.
146
+ * @param {unknown} error - Error.
147
+ * @returns {void}
148
+ */
149
+ export function reportWorkerFrameworkError(configuration, context, error) {
150
+ const events = configuration?.getErrorEvents?.();
151
+ if (!events)
152
+ return;
153
+ const payload = { context, error };
154
+ events.emit("framework-error", payload);
155
+ events.emit("all-error", { ...payload, errorType: "framework-error" });
156
+ }
157
+ if (import.meta.url === pathToFileURL(process.argv[1] ?? "").href) {
158
+ try {
159
+ await runDetachedDeploymentWorker(parseWorkerArguments(process.argv.slice(2)));
160
+ }
161
+ catch (_error) {
162
+ process.exitCode = 1;
163
+ }
164
+ }
165
+ //# sourceMappingURL=worker.js.map