openworkflow 0.5.0 → 0.6.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.
Files changed (193) hide show
  1. package/README.md +40 -347
  2. package/dist/{testing → backend-test}/backend.testsuite.d.ts +1 -1
  3. package/dist/backend-test/backend.testsuite.d.ts.map +1 -0
  4. package/dist/{testing → backend-test}/backend.testsuite.js +8 -9
  5. package/dist/backend-test/index.d.ts +2 -0
  6. package/dist/backend-test/index.d.ts.map +1 -0
  7. package/dist/{testing → backend-test}/index.js +0 -1
  8. package/dist/backend.js +0 -1
  9. package/dist/backend.testsuite.d.ts +20 -0
  10. package/dist/backend.testsuite.d.ts.map +1 -0
  11. package/dist/backend.testsuite.js +1090 -0
  12. package/dist/bin/openworkflow.js +0 -1
  13. package/dist/chaos.test.d.ts +2 -0
  14. package/dist/chaos.test.d.ts.map +1 -0
  15. package/dist/chaos.test.js +88 -0
  16. package/dist/client.js +0 -1
  17. package/dist/client.test.d.ts +2 -0
  18. package/dist/client.test.d.ts.map +1 -0
  19. package/dist/client.test.js +311 -0
  20. package/dist/core/duration.js +0 -1
  21. package/dist/core/duration.test.d.ts +2 -0
  22. package/dist/core/duration.test.d.ts.map +1 -0
  23. package/dist/core/duration.test.js +263 -0
  24. package/dist/core/error.js +0 -1
  25. package/dist/core/error.test.d.ts +2 -0
  26. package/dist/core/error.test.d.ts.map +1 -0
  27. package/dist/core/error.test.js +60 -0
  28. package/dist/core/json.js +0 -1
  29. package/dist/core/result.js +0 -1
  30. package/dist/core/result.test.d.ts +2 -0
  31. package/dist/core/result.test.d.ts.map +1 -0
  32. package/dist/core/result.test.js +11 -0
  33. package/dist/core/retry.js +0 -1
  34. package/dist/core/schema.js +0 -1
  35. package/dist/core/step.js +0 -1
  36. package/dist/core/step.test.d.ts +2 -0
  37. package/dist/core/step.test.d.ts.map +1 -0
  38. package/dist/core/step.test.js +266 -0
  39. package/dist/core/workflow.js +0 -1
  40. package/dist/core/workflow.test.d.ts +2 -0
  41. package/dist/core/workflow.test.d.ts.map +1 -0
  42. package/dist/core/workflow.test.js +113 -0
  43. package/dist/driver.d.ts +116 -0
  44. package/dist/driver.d.ts.map +1 -0
  45. package/dist/driver.js +1 -0
  46. package/dist/execution.js +0 -1
  47. package/dist/execution.test.d.ts +2 -0
  48. package/dist/execution.test.d.ts.map +1 -0
  49. package/dist/execution.test.js +381 -0
  50. package/dist/factory.d.ts +74 -0
  51. package/dist/factory.d.ts.map +1 -0
  52. package/dist/factory.js +72 -0
  53. package/dist/index.js +0 -1
  54. package/dist/internal.d.ts +4 -5
  55. package/dist/internal.d.ts.map +1 -1
  56. package/dist/internal.js +1 -4
  57. package/dist/{backend-sqlite/index.d.ts → node-sqlite/backend.d.ts} +14 -4
  58. package/dist/node-sqlite/backend.d.ts.map +1 -0
  59. package/dist/{backend-sqlite/index.js → node-sqlite/backend.js} +23 -5
  60. package/dist/node-sqlite/index.d.ts +11 -0
  61. package/dist/node-sqlite/index.d.ts.map +1 -0
  62. package/dist/node-sqlite/index.js +7 -0
  63. package/dist/{backend-sqlite → node-sqlite}/sqlite.d.ts +2 -3
  64. package/dist/node-sqlite/sqlite.d.ts.map +1 -0
  65. package/dist/{backend-sqlite → node-sqlite}/sqlite.js +0 -1
  66. package/dist/{pg → postgres}/backend.d.ts +3 -1
  67. package/dist/postgres/backend.d.ts.map +1 -0
  68. package/dist/{pg → postgres}/backend.js +5 -5
  69. package/dist/postgres/backend.test.d.ts +2 -0
  70. package/dist/postgres/backend.test.d.ts.map +1 -0
  71. package/dist/postgres/backend.test.js +19 -0
  72. package/dist/postgres/driver.d.ts +81 -0
  73. package/dist/postgres/driver.d.ts.map +1 -0
  74. package/dist/postgres/driver.js +63 -0
  75. package/dist/postgres/index.d.ts +11 -0
  76. package/dist/postgres/index.d.ts.map +1 -0
  77. package/dist/postgres/index.js +7 -0
  78. package/dist/postgres/internal.d.ts +2 -0
  79. package/dist/postgres/internal.d.ts.map +1 -0
  80. package/dist/postgres/internal.js +1 -0
  81. package/dist/postgres/postgres.d.ts.map +1 -0
  82. package/dist/{backend-postgres → postgres}/postgres.js +0 -1
  83. package/dist/postgres/postgres.test.d.ts +2 -0
  84. package/dist/postgres/postgres.test.d.ts.map +1 -0
  85. package/dist/postgres/postgres.test.js +45 -0
  86. package/dist/postgres/scripts/db-migrate.d.ts.map +1 -0
  87. package/dist/{pg → postgres}/scripts/db-migrate.js +0 -1
  88. package/dist/postgres/scripts/db-reset.d.ts.map +1 -0
  89. package/dist/{pg → postgres}/scripts/db-reset.js +0 -1
  90. package/dist/{pg → postgres}/scripts/squawk.d.ts.map +1 -1
  91. package/dist/{pg → postgres}/scripts/squawk.js +0 -1
  92. package/dist/postgres/vitest.global-setup.d.ts.map +1 -0
  93. package/dist/{pg → postgres}/vitest.global-setup.js +0 -1
  94. package/dist/postgres.d.ts +2 -0
  95. package/dist/postgres.d.ts.map +1 -0
  96. package/dist/postgres.js +1 -0
  97. package/dist/registry.js +0 -1
  98. package/dist/registry.test.d.ts +2 -0
  99. package/dist/registry.test.d.ts.map +1 -0
  100. package/dist/registry.test.js +109 -0
  101. package/dist/sqlite/backend.d.ts +3 -1
  102. package/dist/sqlite/backend.d.ts.map +1 -1
  103. package/dist/sqlite/backend.js +5 -5
  104. package/dist/sqlite/backend.test.d.ts +2 -0
  105. package/dist/sqlite/backend.test.d.ts.map +1 -0
  106. package/dist/sqlite/backend.test.js +50 -0
  107. package/dist/sqlite/driver.d.ts +79 -0
  108. package/dist/sqlite/driver.d.ts.map +1 -0
  109. package/dist/sqlite/driver.js +62 -0
  110. package/dist/sqlite/index.d.ts +12 -2
  111. package/dist/sqlite/index.d.ts.map +1 -1
  112. package/dist/sqlite/index.js +11 -3
  113. package/dist/sqlite/internal.d.ts +2 -0
  114. package/dist/sqlite/internal.d.ts.map +1 -0
  115. package/dist/sqlite/internal.js +1 -0
  116. package/dist/sqlite/sqlite.js +0 -1
  117. package/dist/sqlite/sqlite.test.d.ts +2 -0
  118. package/dist/sqlite/sqlite.test.d.ts.map +1 -0
  119. package/dist/sqlite/sqlite.test.js +171 -0
  120. package/dist/sqlite.d.ts +2 -0
  121. package/dist/sqlite.d.ts.map +1 -0
  122. package/dist/sqlite.js +1 -0
  123. package/dist/tsconfig.tsbuildinfo +1 -1
  124. package/dist/worker.js +0 -1
  125. package/dist/worker.test.d.ts +2 -0
  126. package/dist/worker.test.d.ts.map +1 -0
  127. package/dist/worker.test.js +900 -0
  128. package/dist/workflow.js +0 -1
  129. package/dist/workflow.test.d.ts +2 -0
  130. package/dist/workflow.test.d.ts.map +1 -0
  131. package/dist/workflow.test.js +84 -0
  132. package/package.json +19 -5
  133. package/dist/backend-postgres/index.d.ts +0 -44
  134. package/dist/backend-postgres/index.d.ts.map +0 -1
  135. package/dist/backend-postgres/index.js +0 -535
  136. package/dist/backend-postgres/index.js.map +0 -1
  137. package/dist/backend-postgres/postgres.d.ts.map +0 -1
  138. package/dist/backend-postgres/postgres.js.map +0 -1
  139. package/dist/backend-sqlite/index.d.ts.map +0 -1
  140. package/dist/backend-sqlite/index.js.map +0 -1
  141. package/dist/backend-sqlite/sqlite.d.ts.map +0 -1
  142. package/dist/backend-sqlite/sqlite.js.map +0 -1
  143. package/dist/backend.js.map +0 -1
  144. package/dist/bin/openworkflow.js.map +0 -1
  145. package/dist/client.js.map +0 -1
  146. package/dist/config.d.ts +0 -34
  147. package/dist/config.d.ts.map +0 -1
  148. package/dist/config.js +0 -49
  149. package/dist/config.js.map +0 -1
  150. package/dist/core/duration.js.map +0 -1
  151. package/dist/core/error.js.map +0 -1
  152. package/dist/core/json.js.map +0 -1
  153. package/dist/core/result.js.map +0 -1
  154. package/dist/core/retry.js.map +0 -1
  155. package/dist/core/schema.js.map +0 -1
  156. package/dist/core/step.js.map +0 -1
  157. package/dist/core/workflow.js.map +0 -1
  158. package/dist/execution.js.map +0 -1
  159. package/dist/index.js.map +0 -1
  160. package/dist/internal.js.map +0 -1
  161. package/dist/pg/backend.d.ts.map +0 -1
  162. package/dist/pg/backend.js.map +0 -1
  163. package/dist/pg/index.d.ts +0 -3
  164. package/dist/pg/index.d.ts.map +0 -1
  165. package/dist/pg/index.js +0 -3
  166. package/dist/pg/index.js.map +0 -1
  167. package/dist/pg/postgres.d.ts +0 -42
  168. package/dist/pg/postgres.d.ts.map +0 -1
  169. package/dist/pg/postgres.js +0 -234
  170. package/dist/pg/postgres.js.map +0 -1
  171. package/dist/pg/scripts/db-migrate.d.ts.map +0 -1
  172. package/dist/pg/scripts/db-migrate.js.map +0 -1
  173. package/dist/pg/scripts/db-reset.d.ts.map +0 -1
  174. package/dist/pg/scripts/db-reset.js.map +0 -1
  175. package/dist/pg/scripts/squawk.js.map +0 -1
  176. package/dist/pg/vitest.global-setup.d.ts.map +0 -1
  177. package/dist/pg/vitest.global-setup.js.map +0 -1
  178. package/dist/registry.js.map +0 -1
  179. package/dist/sqlite/backend.js.map +0 -1
  180. package/dist/sqlite/index.js.map +0 -1
  181. package/dist/sqlite/sqlite.js.map +0 -1
  182. package/dist/testing/backend.testsuite.d.ts.map +0 -1
  183. package/dist/testing/backend.testsuite.js.map +0 -1
  184. package/dist/testing/index.d.ts +0 -2
  185. package/dist/testing/index.d.ts.map +0 -1
  186. package/dist/testing/index.js.map +0 -1
  187. package/dist/worker.js.map +0 -1
  188. package/dist/workflow.js.map +0 -1
  189. /package/dist/{backend-postgres → postgres}/postgres.d.ts +0 -0
  190. /package/dist/{pg → postgres}/scripts/db-migrate.d.ts +0 -0
  191. /package/dist/{pg → postgres}/scripts/db-reset.d.ts +0 -0
  192. /package/dist/{pg → postgres}/scripts/squawk.d.ts +0 -0
  193. /package/dist/{pg → postgres}/vitest.global-setup.d.ts +0 -0
@@ -1,535 +0,0 @@
1
- import { DEFAULT_NAMESPACE_ID } from "../backend.js";
2
- import { DEFAULT_RETRY_POLICY } from "../core/retry.js";
3
- import { DEFAULT_SCHEMA, migrate, newPostgres, newPostgresMaxOne, } from "./postgres.js";
4
- const DEFAULT_PAGINATION_PAGE_SIZE = 100;
5
- /**
6
- * Manages a connection to a Postgres database for workflow operations.
7
- */
8
- export class BackendPostgres {
9
- pg;
10
- namespaceId;
11
- constructor(pg, namespaceId) {
12
- this.pg = pg;
13
- this.namespaceId = namespaceId;
14
- }
15
- /**
16
- * Create and initialize a new BackendPostgres instance. This will
17
- * automatically run migrations on startup unless `runMigrations` is set to
18
- * false.
19
- * @param url - Postgres connection URL
20
- * @param options - Backend options
21
- * @returns A connected backend instance
22
- */
23
- static async connect(url, options) {
24
- const { namespaceId, runMigrations } = {
25
- namespaceId: DEFAULT_NAMESPACE_ID,
26
- runMigrations: true,
27
- ...options,
28
- };
29
- if (runMigrations) {
30
- const pgForMigrate = newPostgresMaxOne(url);
31
- await migrate(pgForMigrate, DEFAULT_SCHEMA);
32
- await pgForMigrate.end();
33
- }
34
- const pg = newPostgres(url);
35
- return new BackendPostgres(pg, namespaceId);
36
- }
37
- async stop() {
38
- await this.pg.end();
39
- }
40
- async createWorkflowRun(params) {
41
- const [workflowRun] = await this.pg `
42
- INSERT INTO "openworkflow"."workflow_runs" (
43
- "namespace_id",
44
- "id",
45
- "workflow_name",
46
- "version",
47
- "status",
48
- "idempotency_key",
49
- "config",
50
- "context",
51
- "input",
52
- "attempts",
53
- "available_at",
54
- "deadline_at",
55
- "created_at",
56
- "updated_at"
57
- )
58
- VALUES (
59
- ${this.namespaceId},
60
- gen_random_uuid(),
61
- ${params.workflowName},
62
- ${params.version},
63
- 'pending',
64
- ${params.idempotencyKey},
65
- ${this.pg.json(params.config)},
66
- ${this.pg.json(params.context)},
67
- ${this.pg.json(params.input)},
68
- 0,
69
- ${sqlDateDefaultNow(this.pg, params.availableAt)},
70
- ${params.deadlineAt},
71
- date_trunc('milliseconds', NOW()),
72
- NOW()
73
- )
74
- RETURNING *
75
- `;
76
- if (!workflowRun)
77
- throw new Error("Failed to create workflow run");
78
- return workflowRun;
79
- }
80
- async getWorkflowRun(params) {
81
- const [workflowRun] = await this.pg `
82
- SELECT *
83
- FROM "openworkflow"."workflow_runs"
84
- WHERE "namespace_id" = ${this.namespaceId}
85
- AND "id" = ${params.workflowRunId}
86
- LIMIT 1
87
- `;
88
- return workflowRun ?? null;
89
- }
90
- async listWorkflowRuns(params) {
91
- const limit = params.limit ?? DEFAULT_PAGINATION_PAGE_SIZE;
92
- const { after, before } = params;
93
- let cursor = null;
94
- if (after) {
95
- cursor = decodeCursor(after);
96
- }
97
- else if (before) {
98
- cursor = decodeCursor(before);
99
- }
100
- const whereClause = this.buildListWorkflowRunsWhere(params, cursor);
101
- const order = before
102
- ? this.pg `ORDER BY "created_at" DESC, "id" DESC`
103
- : this.pg `ORDER BY "created_at" ASC, "id" ASC`;
104
- const rows = await this.pg `
105
- SELECT *
106
- FROM "openworkflow"."workflow_runs"
107
- WHERE ${whereClause}
108
- ${order}
109
- LIMIT ${limit + 1}
110
- `;
111
- return this.processPaginationResults(rows, limit, !!after, !!before);
112
- }
113
- buildListWorkflowRunsWhere(params, cursor) {
114
- const { after } = params;
115
- const conditions = [this.pg `"namespace_id" = ${this.namespaceId}`];
116
- if (cursor) {
117
- const op = after ? this.pg `>` : this.pg `<`;
118
- conditions.push(this.pg `("created_at", "id") ${op} (${cursor.createdAt}, ${cursor.id})`);
119
- }
120
- let whereClause = conditions[0];
121
- if (!whereClause)
122
- throw new Error("No conditions");
123
- for (let i = 1; i < conditions.length; i++) {
124
- const condition = conditions[i];
125
- if (condition) {
126
- whereClause = this.pg `${whereClause} AND ${condition}`;
127
- }
128
- }
129
- return whereClause;
130
- }
131
- async claimWorkflowRun(params) {
132
- // 1. mark any deadline-expired workflow runs as failed
133
- // 2. find an available workflow run to claim
134
- // 3. claim the workflow run
135
- const [claimed] = await this.pg `
136
- WITH expired AS (
137
- UPDATE "openworkflow"."workflow_runs"
138
- SET
139
- "status" = 'failed',
140
- "error" = ${this.pg.json({ message: "Workflow run deadline exceeded" })},
141
- "worker_id" = NULL,
142
- "available_at" = NULL,
143
- "finished_at" = NOW(),
144
- "updated_at" = NOW()
145
- WHERE "namespace_id" = ${this.namespaceId}
146
- AND "status" IN ('pending', 'running', 'sleeping')
147
- AND "deadline_at" IS NOT NULL
148
- AND "deadline_at" <= NOW()
149
- RETURNING "id"
150
- ),
151
- candidate AS (
152
- SELECT "id"
153
- FROM "openworkflow"."workflow_runs"
154
- WHERE "namespace_id" = ${this.namespaceId}
155
- AND "status" IN ('pending', 'running', 'sleeping')
156
- AND "available_at" <= NOW()
157
- AND ("deadline_at" IS NULL OR "deadline_at" > NOW())
158
- ORDER BY
159
- CASE WHEN "status" = 'pending' THEN 0 ELSE 1 END,
160
- "available_at",
161
- "created_at"
162
- LIMIT 1
163
- FOR UPDATE SKIP LOCKED
164
- )
165
- UPDATE "openworkflow"."workflow_runs" AS wr
166
- SET
167
- "status" = 'running',
168
- "attempts" = "attempts" + 1,
169
- "worker_id" = ${params.workerId},
170
- "available_at" = NOW() + ${params.leaseDurationMs} * INTERVAL '1 millisecond',
171
- "started_at" = COALESCE("started_at", NOW()),
172
- "updated_at" = NOW()
173
- FROM candidate
174
- WHERE wr."id" = candidate."id"
175
- AND wr."namespace_id" = ${this.namespaceId}
176
- RETURNING wr.*;
177
- `;
178
- return claimed ?? null;
179
- }
180
- async extendWorkflowRunLease(params) {
181
- const [updated] = await this.pg `
182
- UPDATE "openworkflow"."workflow_runs"
183
- SET
184
- "available_at" = ${this.pg `NOW() + ${params.leaseDurationMs} * INTERVAL '1 millisecond'`},
185
- "updated_at" = NOW()
186
- WHERE "namespace_id" = ${this.namespaceId}
187
- AND "id" = ${params.workflowRunId}
188
- AND "status" = 'running'
189
- AND "worker_id" = ${params.workerId}
190
- RETURNING *
191
- `;
192
- if (!updated)
193
- throw new Error("Failed to extend lease for workflow run");
194
- return updated;
195
- }
196
- async sleepWorkflowRun(params) {
197
- // 'succeeded' status is deprecated
198
- const [updated] = await this.pg `
199
- UPDATE "openworkflow"."workflow_runs"
200
- SET
201
- "status" = 'sleeping',
202
- "available_at" = ${params.availableAt},
203
- "worker_id" = NULL,
204
- "updated_at" = NOW()
205
- WHERE "namespace_id" = ${this.namespaceId}
206
- AND "id" = ${params.workflowRunId}
207
- AND "status" != 'succeeded'
208
- AND "status" != 'completed'
209
- AND "status" != 'failed'
210
- AND "status" != 'canceled'
211
- AND "worker_id" = ${params.workerId}
212
- RETURNING *
213
- `;
214
- if (!updated)
215
- throw new Error("Failed to sleep workflow run");
216
- return updated;
217
- }
218
- async completeWorkflowRun(params) {
219
- const [updated] = await this.pg `
220
- UPDATE "openworkflow"."workflow_runs"
221
- SET
222
- "status" = 'completed',
223
- "output" = ${this.pg.json(params.output)},
224
- "error" = NULL,
225
- "worker_id" = ${params.workerId},
226
- "available_at" = NULL,
227
- "finished_at" = NOW(),
228
- "updated_at" = NOW()
229
- WHERE "namespace_id" = ${this.namespaceId}
230
- AND "id" = ${params.workflowRunId}
231
- AND "status" = 'running'
232
- AND "worker_id" = ${params.workerId}
233
- RETURNING *
234
- `;
235
- if (!updated)
236
- throw new Error("Failed to mark workflow run completed");
237
- return updated;
238
- }
239
- async failWorkflowRun(params) {
240
- const { workflowRunId, error } = params;
241
- const { initialIntervalMs, backoffCoefficient, maximumIntervalMs } = DEFAULT_RETRY_POLICY;
242
- // this beefy query updates a workflow's status, available_at, and
243
- // finished_at based on the workflow's deadline and retry policy
244
- //
245
- // if the next retry would exceed the deadline, the run is marked as
246
- // 'failed' and finalized, otherwise, the run is rescheduled with an updated
247
- // 'available_at' timestamp for the next retry
248
- const [updated] = await this.pg `
249
- UPDATE "openworkflow"."workflow_runs"
250
- SET
251
- "status" = CASE
252
- WHEN "deadline_at" IS NOT NULL AND NOW() + (
253
- LEAST(
254
- ${initialIntervalMs} * POWER(${backoffCoefficient}, "attempts" - 1),
255
- ${maximumIntervalMs}
256
- ) * INTERVAL '1 millisecond'
257
- ) >= "deadline_at" THEN 'failed'
258
- ELSE 'pending'
259
- END,
260
-
261
- "available_at" = CASE
262
- WHEN "deadline_at" IS NOT NULL AND NOW() + (
263
- LEAST(
264
- ${initialIntervalMs} * POWER(${backoffCoefficient}, "attempts" - 1),
265
- ${maximumIntervalMs}
266
- ) * INTERVAL '1 millisecond'
267
- ) >= "deadline_at" THEN NULL
268
- ELSE NOW() + (
269
- LEAST(
270
- ${initialIntervalMs} * POWER(${backoffCoefficient}, "attempts" - 1),
271
- ${maximumIntervalMs}
272
- ) * INTERVAL '1 millisecond'
273
- )
274
- END,
275
-
276
- "finished_at" = CASE
277
- WHEN "deadline_at" IS NOT NULL AND NOW() + (
278
- LEAST(
279
- ${initialIntervalMs} * POWER(${backoffCoefficient}, "attempts" - 1),
280
- ${maximumIntervalMs}
281
- ) * INTERVAL '1 millisecond'
282
- ) >= "deadline_at" THEN NOW()
283
- ELSE NULL
284
- END,
285
- "error" = ${this.pg.json(error)},
286
- "worker_id" = NULL,
287
- "started_at" = NULL,
288
- "updated_at" = NOW()
289
- WHERE "namespace_id" = ${this.namespaceId}
290
- AND "id" = ${workflowRunId}
291
- AND "status" = 'running'
292
- AND "worker_id" = ${params.workerId}
293
- RETURNING *
294
- `;
295
- if (!updated)
296
- throw new Error("Failed to mark workflow run failed");
297
- return updated;
298
- }
299
- async cancelWorkflowRun(params) {
300
- const [updated] = await this.pg `
301
- UPDATE "openworkflow"."workflow_runs"
302
- SET
303
- "status" = 'canceled',
304
- "worker_id" = NULL,
305
- "available_at" = NULL,
306
- "finished_at" = NOW(),
307
- "updated_at" = NOW()
308
- WHERE "namespace_id" = ${this.namespaceId}
309
- AND "id" = ${params.workflowRunId}
310
- AND "status" IN ('pending', 'running', 'sleeping')
311
- RETURNING *
312
- `;
313
- if (!updated) {
314
- // workflow may already be in a terminal state
315
- const existing = await this.getWorkflowRun({
316
- workflowRunId: params.workflowRunId,
317
- });
318
- if (!existing) {
319
- throw new Error(`Workflow run ${params.workflowRunId} does not exist`);
320
- }
321
- // if already canceled, just return it
322
- if (existing.status === "canceled") {
323
- return existing;
324
- }
325
- // throw error for completed/failed workflows
326
- // 'succeeded' status is deprecated
327
- if (["succeeded", "completed", "failed"].includes(existing.status)) {
328
- throw new Error(`Cannot cancel workflow run ${params.workflowRunId} with status ${existing.status}`);
329
- }
330
- throw new Error("Failed to cancel workflow run");
331
- }
332
- return updated;
333
- }
334
- async createStepAttempt(params) {
335
- const [stepAttempt] = await this.pg `
336
- INSERT INTO "openworkflow"."step_attempts" (
337
- "namespace_id",
338
- "id",
339
- "workflow_run_id",
340
- "step_name",
341
- "kind",
342
- "status",
343
- "config",
344
- "context",
345
- "started_at",
346
- "created_at",
347
- "updated_at"
348
- )
349
- VALUES (
350
- ${this.namespaceId},
351
- gen_random_uuid(),
352
- ${params.workflowRunId},
353
- ${params.stepName},
354
- ${params.kind},
355
- 'running',
356
- ${this.pg.json(params.config)},
357
- ${this.pg.json(params.context)},
358
- NOW(),
359
- date_trunc('milliseconds', NOW()),
360
- NOW()
361
- )
362
- RETURNING *
363
- `;
364
- if (!stepAttempt)
365
- throw new Error("Failed to create step attempt");
366
- return stepAttempt;
367
- }
368
- async getStepAttempt(params) {
369
- const [stepAttempt] = await this.pg `
370
- SELECT *
371
- FROM "openworkflow"."step_attempts"
372
- WHERE "namespace_id" = ${this.namespaceId}
373
- AND "id" = ${params.stepAttemptId}
374
- LIMIT 1
375
- `;
376
- return stepAttempt ?? null;
377
- }
378
- async listStepAttempts(params) {
379
- const limit = params.limit ?? DEFAULT_PAGINATION_PAGE_SIZE;
380
- const { after, before } = params;
381
- let cursor = null;
382
- if (after) {
383
- cursor = decodeCursor(after);
384
- }
385
- else if (before) {
386
- cursor = decodeCursor(before);
387
- }
388
- const whereClause = this.buildListStepAttemptsWhere(params, cursor);
389
- const order = before
390
- ? this.pg `ORDER BY "created_at" DESC, "id" DESC`
391
- : this.pg `ORDER BY "created_at" ASC, "id" ASC`;
392
- const rows = await this.pg `
393
- SELECT *
394
- FROM "openworkflow"."step_attempts"
395
- WHERE ${whereClause}
396
- ${order}
397
- LIMIT ${limit + 1}
398
- `;
399
- return this.processPaginationResults(rows, limit, !!after, !!before);
400
- }
401
- buildListStepAttemptsWhere(params, cursor) {
402
- const { after } = params;
403
- const conditions = [
404
- this.pg `"namespace_id" = ${this.namespaceId}`,
405
- this.pg `"workflow_run_id" = ${params.workflowRunId}`,
406
- ];
407
- if (cursor) {
408
- const op = after ? this.pg `>` : this.pg `<`;
409
- conditions.push(this.pg `("created_at", "id") ${op} (${cursor.createdAt}, ${cursor.id})`);
410
- }
411
- let whereClause = conditions[0];
412
- if (!whereClause)
413
- throw new Error("No conditions");
414
- for (let i = 1; i < conditions.length; i++) {
415
- const condition = conditions[i];
416
- if (condition) {
417
- whereClause = this.pg `${whereClause} AND ${condition}`;
418
- }
419
- }
420
- return whereClause;
421
- }
422
- processPaginationResults(rows, limit, hasAfter, hasBefore) {
423
- const data = rows;
424
- let hasNext = false;
425
- let hasPrev = false;
426
- if (hasBefore) {
427
- data.reverse();
428
- if (data.length > limit) {
429
- hasPrev = true;
430
- data.shift();
431
- }
432
- hasNext = true;
433
- }
434
- else {
435
- if (data.length > limit) {
436
- hasNext = true;
437
- data.pop();
438
- }
439
- if (hasAfter) {
440
- hasPrev = true;
441
- }
442
- }
443
- const lastItem = data.at(-1);
444
- const nextCursor = hasNext && lastItem ? encodeCursor(lastItem) : null;
445
- const firstItem = data[0];
446
- const prevCursor = hasPrev && firstItem ? encodeCursor(firstItem) : null;
447
- return {
448
- data,
449
- pagination: {
450
- next: nextCursor,
451
- prev: prevCursor,
452
- },
453
- };
454
- }
455
- async completeStepAttempt(params) {
456
- const [updated] = await this.pg `
457
- UPDATE "openworkflow"."step_attempts" sa
458
- SET
459
- "status" = 'completed',
460
- "output" = ${this.pg.json(params.output)},
461
- "error" = NULL,
462
- "finished_at" = NOW(),
463
- "updated_at" = NOW()
464
- FROM "openworkflow"."workflow_runs" wr
465
- WHERE sa."namespace_id" = ${this.namespaceId}
466
- AND sa."workflow_run_id" = ${params.workflowRunId}
467
- AND sa."id" = ${params.stepAttemptId}
468
- AND sa."status" = 'running'
469
- AND wr."namespace_id" = sa."namespace_id"
470
- AND wr."id" = sa."workflow_run_id"
471
- AND wr."status" = 'running'
472
- AND wr."worker_id" = ${params.workerId}
473
- RETURNING sa.*
474
- `;
475
- if (!updated)
476
- throw new Error("Failed to mark step attempt completed");
477
- return updated;
478
- }
479
- async failStepAttempt(params) {
480
- const [updated] = await this.pg `
481
- UPDATE "openworkflow"."step_attempts" sa
482
- SET
483
- "status" = 'failed',
484
- "output" = NULL,
485
- "error" = ${this.pg.json(params.error)},
486
- "finished_at" = NOW(),
487
- "updated_at" = NOW()
488
- FROM "openworkflow"."workflow_runs" wr
489
- WHERE sa."namespace_id" = ${this.namespaceId}
490
- AND sa."workflow_run_id" = ${params.workflowRunId}
491
- AND sa."id" = ${params.stepAttemptId}
492
- AND sa."status" = 'running'
493
- AND wr."namespace_id" = sa."namespace_id"
494
- AND wr."id" = sa."workflow_run_id"
495
- AND wr."status" = 'running'
496
- AND wr."worker_id" = ${params.workerId}
497
- RETURNING sa.*
498
- `;
499
- if (!updated)
500
- throw new Error("Failed to mark step attempt failed");
501
- return updated;
502
- }
503
- }
504
- /**
505
- * sqlDateDefaultNow returns the provided date or `NOW()` if not.
506
- * This is needed so we don't have to disable the eslint rule for every query.
507
- * @param pg - Postgres client
508
- * @param date - Date to use (or null)
509
- * @returns The provided date or a NOW() expression
510
- */
511
- function sqlDateDefaultNow(pg, date) {
512
- return date ?? pg `NOW()`;
513
- }
514
- /**
515
- * Encode a pagination cursor to a string.
516
- * @param item - Cursor data
517
- * @returns Encoded cursor
518
- */
519
- function encodeCursor(item) {
520
- return Buffer.from(JSON.stringify({ createdAt: item.createdAt, id: item.id })).toString("base64");
521
- }
522
- /**
523
- * Decode a pagination cursor from a string.
524
- * @param cursor - Encoded cursor
525
- * @returns Cursor data
526
- */
527
- function decodeCursor(cursor) {
528
- const decoded = Buffer.from(cursor, "base64").toString("utf8");
529
- const parsed = JSON.parse(decoded);
530
- return {
531
- createdAt: new Date(parsed.createdAt),
532
- id: parsed.id,
533
- };
534
- }
535
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/backend-postgres/index.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"postgres.d.ts","sourceRoot":"","sources":["../../src/backend-postgres/postgres.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAEhC,eAAO,MAAM,oBAAoB,2DACyB,CAAC;AAO3D,eAAO,MAAM,cAAc,iBAAiB,CAAC;AAE7C,MAAM,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC;AACnD,MAAM,MAAM,eAAe,GAAG,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAE7D;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,oBAEjE;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,oBAEvE;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CA+JnD;AAED;;;;;;GAMG;AACH,wBAAsB,OAAO,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,iBAQzD;AAED;;;;;GAKG;AACH,wBAAsB,UAAU,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,iBAE5D"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"postgres.js","sourceRoot":"","sources":["../../src/backend-postgres/postgres.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,UAAU,CAAC;AAEhC,MAAM,CAAC,MAAM,oBAAoB,GAC/B,wDAAwD,CAAC;AAE3D,yEAAyE;AACzE,sEAAsE;AACtE,wEAAwE;AACxE,uEAAuE;AACvE,cAAc;AACd,MAAM,CAAC,MAAM,cAAc,GAAG,cAAc,CAAC;AAK7C;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,GAAW,EAAE,OAAyB;IAChE,OAAO,QAAQ,CAAC,GAAG,EAAE,EAAE,GAAG,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;AACpE,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAW,EAAE,OAAyB;IACtE,OAAO,WAAW,CAAC,GAAG,EAAE,EAAE,GAAG,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;AAClD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,MAAc;IACvC,OAAO;QACL,WAAW;QACX;;kCAE8B,MAAM;;kCAEN,MAAM;;;;mBAIrB,MAAM;;;;YAIb;QAER,iDAAiD;QACjD;;kCAE8B,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;kCA0BN,MAAM;;;;;;;;;;;;;;;;;;;;;mBAqBrB,MAAM;;;;YAIb;QAER,mBAAmB;QACnB;;mBAEe,MAAM;;;kBAGP,MAAM;;;;mBAIL,MAAM;;;kBAGP,MAAM;;;;mBAIL,MAAM;;;kBAGP,MAAM;;;;mBAIL,MAAM;;;;YAIb;QAER,4BAA4B;QAC5B;;mBAEe,MAAM;;;mBAGN,MAAM;;;mBAGN,MAAM;;;mBAGN,MAAM;;;;YAIb;QAER,cAAc;QACd;;;UAGM,MAAM;;;UAGN,MAAM;;;UAGN,MAAM;;;;UAIN,MAAM;;;UAGN,MAAM;;;UAGN,MAAM;;;UAGN,MAAM;;;UAGN,MAAM;;;UAGN,MAAM;;;mBAGG,MAAM;;;;YAIb;KACT,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,EAAY,EAAE,MAAc;IACxD,MAAM,uBAAuB,GAAG,MAAM,0BAA0B,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IAE7E,KAAK,MAAM,CAAC,CAAC,EAAE,YAAY,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;QAC7D,IAAI,CAAC,IAAI,uBAAuB;YAAE,SAAS,CAAC,kBAAkB;QAE9D,MAAM,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAChC,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,EAAY,EAAE,MAAc;IAC3D,MAAM,EAAE,CAAC,MAAM,CAAC,yBAAyB,MAAM,WAAW,CAAC,CAAC;AAC9D,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,0BAA0B,CACvC,EAAY,EACZ,MAAc;IAEd,mCAAmC;IACnC,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC,MAAM,CAAwB;;;;8BAI7B,MAAM;;MAE9B,CAAC,CAAC;IACN,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM;QAAE,OAAO,CAAC,CAAC,CAAC;IAErC,sBAAsB;IACtB,MAAM,iBAAiB,GAAG,MAAM,EAAE,CAAC,MAAM,CACvC,4CAA4C,MAAM,8BAA8B,CACjF,CAAC;IACF,OAAO,iBAAiB,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,CAAC,CAAC,CAAC;AAC7C,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/backend-sqlite/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,OAAO,EACP,uBAAuB,EACvB,sBAAsB,EACtB,yBAAyB,EACzB,yBAAyB,EACzB,uBAAuB,EACvB,uBAAuB,EACvB,4BAA4B,EAC5B,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,EACtB,iBAAiB,EACjB,sBAAsB,EACvB,MAAM,eAAe,CAAC;AAGvB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAgBvD,UAAU,oBAAoB;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;GAEG;AACH,qBAAa,aAAc,YAAW,OAAO;IAC3C,OAAO,CAAC,EAAE,CAAW;IACrB,OAAO,CAAC,WAAW,CAAS;IAE5B,OAAO;IAKP;;;;;;;OAOG;IACH,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,aAAa;IAiBrE,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrB,iBAAiB,CACrB,MAAM,EAAE,uBAAuB,GAC9B,OAAO,CAAC,WAAW,CAAC;IAgDvB,cAAc,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAenE,gBAAgB,CACpB,MAAM,EAAE,sBAAsB,GAC7B,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IA0FxB,sBAAsB,CAC1B,MAAM,EAAE,4BAA4B,GACnC,OAAO,CAAC,WAAW,CAAC;IAmCjB,gBAAgB,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,WAAW,CAAC;IAoCtE,mBAAmB,CACvB,MAAM,EAAE,yBAAyB,GAChC,OAAO,CAAC,WAAW,CAAC;IAyCjB,eAAe,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,WAAW,CAAC;IA+DpE,iBAAiB,CACrB,MAAM,EAAE,uBAAuB,GAC9B,OAAO,CAAC,WAAW,CAAC;IAuDvB,gBAAgB,CACd,MAAM,EAAE,sBAAsB,GAC7B,OAAO,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAgE1C,gBAAgB,CACd,MAAM,EAAE,sBAAsB,GAC7B,OAAO,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAmE1C,OAAO,CAAC,wBAAwB;IAyC1B,iBAAiB,CACrB,MAAM,EAAE,uBAAuB,GAC9B,OAAO,CAAC,WAAW,CAAC;IAwCvB,cAAc,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAenE,mBAAmB,CACvB,MAAM,EAAE,yBAAyB,GAChC,OAAO,CAAC,WAAW,CAAC;IA0DjB,eAAe,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,WAAW,CAAC;CAyD3E"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/backend-sqlite/index.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"sqlite.d.ts","sourceRoot":"","sources":["../../src/backend-sqlite/sqlite.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,MAAM,QAAQ,GAAG,YAAY,CAAC;AAEpC;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAQlD;AAED;;;GAGG;AACH,wBAAgB,UAAU,IAAI,MAAM,EAAE,CA2IrC;AAED;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI,CAQ1C;AAyBD;;;GAGG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED;;;GAGG;AACH,wBAAgB,GAAG,IAAI,MAAM,CAE5B;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAIhE;AAED;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAEpD;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAEtD;AAED;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAEtD;AAED;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAE3D"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"sqlite.js","sourceRoot":"","sources":["../../src/backend-sqlite/sqlite.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"backend.js","sourceRoot":"","sources":["../backend.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,MAAM,oBAAoB,GAAG,SAAS,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"openworkflow.js","sourceRoot":"","sources":["../../bin/openworkflow.ts"],"names":[],"mappings":";AACA;;;;;;;;GAQG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE/D,4EAA4E;AAC5E,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC;AACnE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC,CAEnE,CAAC;AACF,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;AAEpC,6EAA6E;AAC7E,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAEnC,yEAAyE;AACzE,uDAAuD;AACvD,MAAM,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,qBAAqB,CAAC,CAAC;AACzE,MAAM,UAAU,GAAG,UAAU,CAAC,iBAAiB,CAAC,CAAC;AAEjD,IAAI,UAAU,EAAE,CAAC;IACf,OAAO,CAAC,GAAG,CACT,6EAA6E,CAC9E,CAAC;AACJ,CAAC;AAED,MAAM,OAAO,GAAG,UAAU;IACxB,CAAC,CAAC,wCAAwC;QACxC,CAAC,KAAK,EAAE,iBAAiB,EAAE,GAAG,IAAI,CAAC;IACrC,CAAC,CAAC,+CAA+C;QAC/C,iEAAiE;QACjE,CAAC,IAAI,EAAE,qBAAqB,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC;AAEpD,0DAA0D;AAC1D,MAAM,MAAM,GAAG,SAAS;AACtB,2DAA2D;AAC3D,KAAK,EACL,OAAO,EACP;IACE,KAAK,EAAE,SAAS;IAChB,KAAK,EAAE,IAAI;CACZ,CACF,CAAC;AAEF,4CAA4C;AAC5C,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../client.ts"],"names":[],"mappings":"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"}