openworkflow 0.4.1 → 0.5.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.
- package/README.md +53 -48
- package/dist/backend-postgres/index.d.ts +44 -0
- package/dist/backend-postgres/index.d.ts.map +1 -0
- package/dist/backend-postgres/index.js +535 -0
- package/dist/backend-postgres/index.js.map +1 -0
- package/dist/backend-postgres/postgres.d.ts +42 -0
- package/dist/backend-postgres/postgres.d.ts.map +1 -0
- package/dist/backend-postgres/postgres.js +234 -0
- package/dist/backend-postgres/postgres.js.map +1 -0
- package/dist/backend-sqlite/index.d.ts +41 -1
- package/dist/backend-sqlite/index.d.ts.map +1 -1
- package/dist/backend-sqlite/index.js +654 -1
- package/dist/backend-sqlite/index.js.map +1 -1
- package/dist/backend-sqlite/sqlite.d.ts +18 -2
- package/dist/backend-sqlite/sqlite.d.ts.map +1 -1
- package/dist/backend-sqlite/sqlite.js +20 -2
- package/dist/backend-sqlite/sqlite.js.map +1 -1
- package/dist/{core/backend.d.ts → backend.d.ts} +7 -5
- package/dist/backend.d.ts.map +1 -0
- package/dist/backend.js.map +1 -0
- package/dist/bin/openworkflow.d.ts +3 -0
- package/dist/bin/openworkflow.d.ts.map +1 -0
- package/dist/bin/openworkflow.js +44 -0
- package/dist/bin/openworkflow.js.map +1 -0
- package/dist/client.d.ts +141 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/{sdk/sdk.js → client.js} +44 -71
- package/dist/client.js.map +1 -0
- package/dist/config.d.ts +27 -21
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +44 -36
- package/dist/config.js.map +1 -1
- package/dist/core/duration.d.ts +4 -2
- package/dist/core/duration.d.ts.map +1 -1
- package/dist/core/duration.js +3 -1
- package/dist/core/duration.js.map +1 -1
- package/dist/core/error.d.ts +14 -0
- package/dist/core/error.d.ts.map +1 -0
- package/dist/core/error.js +18 -0
- package/dist/core/error.js.map +1 -0
- package/dist/core/result.d.ts +14 -4
- package/dist/core/result.d.ts.map +1 -1
- package/dist/core/result.js +10 -0
- package/dist/core/result.js.map +1 -1
- package/dist/core/retry.d.ts +0 -9
- package/dist/core/retry.d.ts.map +1 -1
- package/dist/core/retry.js +0 -14
- package/dist/core/retry.js.map +1 -1
- package/dist/core/step.d.ts +1 -32
- package/dist/core/step.d.ts.map +1 -1
- package/dist/core/step.js +0 -35
- package/dist/core/step.js.map +1 -1
- package/dist/core/workflow.d.ts +2 -47
- package/dist/core/workflow.d.ts.map +1 -1
- package/dist/core/workflow.js +0 -44
- package/dist/core/workflow.js.map +1 -1
- package/dist/{execution/execution.d.ts → execution.d.ts} +4 -26
- package/dist/execution.d.ts.map +1 -0
- package/dist/{execution/execution.js → execution.js} +4 -4
- package/dist/execution.js.map +1 -0
- package/dist/index.d.ts +6 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -4
- package/dist/index.js.map +1 -1
- package/dist/internal.d.ts +8 -0
- package/dist/internal.d.ts.map +1 -0
- package/dist/internal.js +5 -0
- package/dist/internal.js.map +1 -0
- package/dist/pg/backend.d.ts +42 -0
- package/dist/pg/backend.d.ts.map +1 -0
- package/dist/pg/backend.js +534 -0
- package/dist/pg/backend.js.map +1 -0
- package/dist/pg/index.d.ts +3 -0
- package/dist/pg/index.d.ts.map +1 -0
- package/dist/pg/index.js +3 -0
- package/dist/pg/index.js.map +1 -0
- package/dist/pg/postgres.d.ts +42 -0
- package/dist/pg/postgres.d.ts.map +1 -0
- package/dist/pg/postgres.js +234 -0
- package/dist/pg/postgres.js.map +1 -0
- package/dist/pg/scripts/db-migrate.d.ts +2 -0
- package/dist/pg/scripts/db-migrate.d.ts.map +1 -0
- package/dist/pg/scripts/db-migrate.js +5 -0
- package/dist/pg/scripts/db-migrate.js.map +1 -0
- package/dist/pg/scripts/db-reset.d.ts +2 -0
- package/dist/pg/scripts/db-reset.d.ts.map +1 -0
- package/dist/pg/scripts/db-reset.js +6 -0
- package/dist/pg/scripts/db-reset.js.map +1 -0
- package/dist/pg/scripts/squawk.d.ts +2 -0
- package/dist/pg/scripts/squawk.d.ts.map +1 -0
- package/dist/pg/scripts/squawk.js +17 -0
- package/dist/pg/scripts/squawk.js.map +1 -0
- package/dist/pg/vitest.global-setup.d.ts +3 -0
- package/dist/pg/vitest.global-setup.d.ts.map +1 -0
- package/dist/pg/vitest.global-setup.js +8 -0
- package/dist/pg/vitest.global-setup.js.map +1 -0
- package/dist/registry.d.ts +27 -0
- package/dist/registry.d.ts.map +1 -0
- package/dist/registry.js +49 -0
- package/dist/registry.js.map +1 -0
- package/dist/{backend-sqlite → sqlite}/backend.d.ts +6 -4
- package/dist/sqlite/backend.d.ts.map +1 -0
- package/dist/{backend-sqlite → sqlite}/backend.js +31 -5
- package/dist/sqlite/backend.js.map +1 -0
- package/dist/sqlite/index.d.ts +3 -0
- package/dist/sqlite/index.d.ts.map +1 -0
- package/dist/sqlite/index.js +3 -0
- package/dist/sqlite/index.js.map +1 -0
- package/dist/sqlite/sqlite.d.ts +61 -0
- package/dist/sqlite/sqlite.d.ts.map +1 -0
- package/dist/sqlite/sqlite.js +247 -0
- package/dist/sqlite/sqlite.js.map +1 -0
- package/dist/testing/backend.testsuite.d.ts +20 -0
- package/dist/testing/backend.testsuite.d.ts.map +1 -0
- package/dist/{core → testing}/backend.testsuite.js +186 -53
- package/dist/testing/backend.testsuite.js.map +1 -0
- package/dist/testing/index.d.ts +2 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +2 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/{worker/worker.d.ts → worker.d.ts} +11 -4
- package/dist/worker.d.ts.map +1 -0
- package/dist/{worker/worker.js → worker.js} +20 -10
- package/dist/worker.js.map +1 -0
- package/dist/workflow.d.ts +60 -0
- package/dist/workflow.d.ts.map +1 -0
- package/dist/workflow.js +49 -0
- package/dist/workflow.js.map +1 -0
- package/package.json +13 -3
- package/dist/backend-sqlite/backend.d.ts.map +0 -1
- package/dist/backend-sqlite/backend.js.map +0 -1
- package/dist/config/config.d.ts +0 -102
- package/dist/config/config.d.ts.map +0 -1
- package/dist/config/config.js +0 -29
- package/dist/config/config.js.map +0 -1
- package/dist/config/index.d.ts +0 -3
- package/dist/config/index.d.ts.map +0 -1
- package/dist/config/index.js +0 -2
- package/dist/config/index.js.map +0 -1
- package/dist/core/backend-test-suite.d.ts +0 -22
- package/dist/core/backend-test-suite.d.ts.map +0 -1
- package/dist/core/backend-test-suite.js +0 -960
- package/dist/core/backend-test-suite.js.map +0 -1
- package/dist/core/backend.d.ts.map +0 -1
- package/dist/core/backend.js.map +0 -1
- package/dist/core/backend.testsuite.d.ts +0 -21
- package/dist/core/backend.testsuite.d.ts.map +0 -1
- package/dist/core/backend.testsuite.js.map +0 -1
- package/dist/core/duration.test.d.ts +0 -2
- package/dist/core/duration.test.d.ts.map +0 -1
- package/dist/core/duration.test.js +0 -264
- package/dist/core/duration.test.js.map +0 -1
- package/dist/core/result.test.d.ts +0 -2
- package/dist/core/result.test.d.ts.map +0 -1
- package/dist/core/result.test.js +0 -11
- package/dist/core/result.test.js.map +0 -1
- package/dist/core/retry.test.d.ts +0 -2
- package/dist/core/retry.test.d.ts.map +0 -1
- package/dist/core/retry.test.js +0 -36
- package/dist/core/retry.test.js.map +0 -1
- package/dist/core/step.test.d.ts +0 -2
- package/dist/core/step.test.d.ts.map +0 -1
- package/dist/core/step.test.js +0 -340
- package/dist/core/step.test.js.map +0 -1
- package/dist/core/workflow.test.d.ts +0 -2
- package/dist/core/workflow.test.d.ts.map +0 -1
- package/dist/core/workflow.test.js +0 -216
- package/dist/core/workflow.test.js.map +0 -1
- package/dist/execution/execution.d.ts.map +0 -1
- package/dist/execution/execution.js.map +0 -1
- package/dist/execution/execution.test.d.ts +0 -2
- package/dist/execution/execution.test.d.ts.map +0 -1
- package/dist/execution/execution.test.js +0 -382
- package/dist/execution/execution.test.js.map +0 -1
- package/dist/global.d.ts +0 -62
- package/dist/global.d.ts.map +0 -1
- package/dist/global.js +0 -78
- package/dist/global.js.map +0 -1
- package/dist/sdk/sdk.d.ts +0 -182
- package/dist/sdk/sdk.d.ts.map +0 -1
- package/dist/sdk/sdk.js.map +0 -1
- package/dist/sdk/sdk.test.d.ts +0 -2
- package/dist/sdk/sdk.test.d.ts.map +0 -1
- package/dist/sdk/sdk.test.js +0 -195
- package/dist/sdk/sdk.test.js.map +0 -1
- package/dist/worker/worker.d.ts.map +0 -1
- package/dist/worker/worker.js.map +0 -1
- package/dist/worker/worker.test.d.ts +0 -2
- package/dist/worker/worker.test.d.ts.map +0 -1
- package/dist/worker/worker.test.js +0 -786
- package/dist/worker/worker.test.js.map +0 -1
- /package/dist/{core/backend.js → backend.js} +0 -0
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
import postgres from "postgres";
|
|
2
|
+
export const DEFAULT_POSTGRES_URL = "postgresql://postgres:postgres@localhost:5432/postgres";
|
|
3
|
+
// The default schema to use for OpenWorkflow data. This type is more for
|
|
4
|
+
// documentation than for practical use. The only time we allow schema
|
|
5
|
+
// customization is during testing, specifically for testing migrations.
|
|
6
|
+
// Everywhere else uses the "openworkflow" schema directly for prepared
|
|
7
|
+
// statements.
|
|
8
|
+
export const DEFAULT_SCHEMA = "openworkflow";
|
|
9
|
+
/**
|
|
10
|
+
* newPostgres creates a new Postgres client.
|
|
11
|
+
* @param url - Database connection URL
|
|
12
|
+
* @param options - Postgres client options
|
|
13
|
+
* @returns A Postgres client
|
|
14
|
+
*/
|
|
15
|
+
export function newPostgres(url, options) {
|
|
16
|
+
return postgres(url, { ...options, transform: postgres.toCamel });
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* newPostgresMaxOne creates a new Postgres client with a maximum pool size of
|
|
20
|
+
* one, which is useful for migrations.
|
|
21
|
+
* @param url - Database connection URL
|
|
22
|
+
* @param options - Postgres client options
|
|
23
|
+
* @returns A Postgres client
|
|
24
|
+
*/
|
|
25
|
+
export function newPostgresMaxOne(url, options) {
|
|
26
|
+
return newPostgres(url, { ...options, max: 1 });
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* migrations returns the list of migration SQL statements.
|
|
30
|
+
* @param schema - Schema name
|
|
31
|
+
* @returns Migration SQL statements
|
|
32
|
+
*/
|
|
33
|
+
export function migrations(schema) {
|
|
34
|
+
return [
|
|
35
|
+
// 0 - init
|
|
36
|
+
`BEGIN;
|
|
37
|
+
|
|
38
|
+
CREATE SCHEMA IF NOT EXISTS ${schema};
|
|
39
|
+
|
|
40
|
+
CREATE TABLE IF NOT EXISTS "${schema}"."openworkflow_migrations" (
|
|
41
|
+
"version" BIGINT NOT NULL PRIMARY KEY
|
|
42
|
+
);
|
|
43
|
+
|
|
44
|
+
INSERT INTO "${schema}"."openworkflow_migrations" ("version")
|
|
45
|
+
VALUES (0)
|
|
46
|
+
ON CONFLICT DO NOTHING;
|
|
47
|
+
|
|
48
|
+
COMMIT;`,
|
|
49
|
+
// 1 - add workflow_runs and step_attempts tables
|
|
50
|
+
`BEGIN;
|
|
51
|
+
|
|
52
|
+
CREATE TABLE IF NOT EXISTS "${schema}"."workflow_runs" (
|
|
53
|
+
"namespace_id" TEXT NOT NULL,
|
|
54
|
+
"id" TEXT NOT NULL,
|
|
55
|
+
--
|
|
56
|
+
"workflow_name" TEXT NOT NULL,
|
|
57
|
+
"version" TEXT,
|
|
58
|
+
"status" TEXT NOT NULL,
|
|
59
|
+
"idempotency_key" TEXT,
|
|
60
|
+
"config" JSONB NOT NULL,
|
|
61
|
+
"context" JSONB,
|
|
62
|
+
"input" JSONB,
|
|
63
|
+
"output" JSONB,
|
|
64
|
+
"error" JSONB,
|
|
65
|
+
"attempts" INTEGER NOT NULL,
|
|
66
|
+
"parent_step_attempt_namespace_id" TEXT,
|
|
67
|
+
"parent_step_attempt_id" TEXT,
|
|
68
|
+
"worker_id" TEXT,
|
|
69
|
+
"available_at" TIMESTAMPTZ,
|
|
70
|
+
"deadline_at" TIMESTAMPTZ,
|
|
71
|
+
"started_at" TIMESTAMPTZ,
|
|
72
|
+
"finished_at" TIMESTAMPTZ,
|
|
73
|
+
"created_at" TIMESTAMPTZ NOT NULL,
|
|
74
|
+
"updated_at" TIMESTAMPTZ NOT NULL,
|
|
75
|
+
PRIMARY KEY ("namespace_id", "id")
|
|
76
|
+
);
|
|
77
|
+
|
|
78
|
+
CREATE TABLE IF NOT EXISTS "${schema}"."step_attempts" (
|
|
79
|
+
"namespace_id" TEXT NOT NULL,
|
|
80
|
+
"id" TEXT NOT NULL,
|
|
81
|
+
--
|
|
82
|
+
"workflow_run_id" TEXT NOT NULL,
|
|
83
|
+
"step_name" TEXT NOT NULL,
|
|
84
|
+
"kind" TEXT NOT NULL,
|
|
85
|
+
"status" TEXT NOT NULL,
|
|
86
|
+
"config" JSONB NOT NULL,
|
|
87
|
+
"context" JSONB,
|
|
88
|
+
"output" JSONB,
|
|
89
|
+
"error" JSONB,
|
|
90
|
+
"child_workflow_run_namespace_id" TEXT,
|
|
91
|
+
"child_workflow_run_id" TEXT,
|
|
92
|
+
"started_at" TIMESTAMPTZ,
|
|
93
|
+
"finished_at" TIMESTAMPTZ,
|
|
94
|
+
"created_at" TIMESTAMPTZ NOT NULL,
|
|
95
|
+
"updated_at" TIMESTAMPTZ NOT NULL,
|
|
96
|
+
PRIMARY KEY ("namespace_id", "id")
|
|
97
|
+
);
|
|
98
|
+
|
|
99
|
+
INSERT INTO "${schema}"."openworkflow_migrations" ("version")
|
|
100
|
+
VALUES (1)
|
|
101
|
+
ON CONFLICT DO NOTHING;
|
|
102
|
+
|
|
103
|
+
COMMIT;`,
|
|
104
|
+
// 2 - foreign keys
|
|
105
|
+
`BEGIN;
|
|
106
|
+
|
|
107
|
+
ALTER TABLE "${schema}"."step_attempts"
|
|
108
|
+
ADD CONSTRAINT "step_attempts_workflow_run_fk"
|
|
109
|
+
FOREIGN KEY ("namespace_id", "workflow_run_id")
|
|
110
|
+
REFERENCES "${schema}"."workflow_runs" ("namespace_id", "id")
|
|
111
|
+
ON DELETE CASCADE
|
|
112
|
+
NOT VALID;
|
|
113
|
+
|
|
114
|
+
ALTER TABLE "${schema}"."workflow_runs"
|
|
115
|
+
ADD CONSTRAINT "workflow_runs_parent_step_attempt_fk"
|
|
116
|
+
FOREIGN KEY ("parent_step_attempt_namespace_id", "parent_step_attempt_id")
|
|
117
|
+
REFERENCES "${schema}"."step_attempts" ("namespace_id", "id")
|
|
118
|
+
ON DELETE SET NULL
|
|
119
|
+
NOT VALID;
|
|
120
|
+
|
|
121
|
+
ALTER TABLE "${schema}"."step_attempts"
|
|
122
|
+
ADD CONSTRAINT "step_attempts_child_workflow_run_fk"
|
|
123
|
+
FOREIGN KEY ("child_workflow_run_namespace_id", "child_workflow_run_id")
|
|
124
|
+
REFERENCES "${schema}"."workflow_runs" ("namespace_id", "id")
|
|
125
|
+
ON DELETE SET NULL
|
|
126
|
+
NOT VALID;
|
|
127
|
+
|
|
128
|
+
INSERT INTO "${schema}"."openworkflow_migrations" ("version")
|
|
129
|
+
VALUES (2)
|
|
130
|
+
ON CONFLICT DO NOTHING;
|
|
131
|
+
|
|
132
|
+
COMMIT;`,
|
|
133
|
+
// 3 - validate foreign keys
|
|
134
|
+
`BEGIN;
|
|
135
|
+
|
|
136
|
+
ALTER TABLE "${schema}"."step_attempts"
|
|
137
|
+
VALIDATE CONSTRAINT "step_attempts_workflow_run_fk";
|
|
138
|
+
|
|
139
|
+
ALTER TABLE "${schema}"."workflow_runs" VALIDATE CONSTRAINT
|
|
140
|
+
"workflow_runs_parent_step_attempt_fk";
|
|
141
|
+
|
|
142
|
+
ALTER TABLE "${schema}"."step_attempts"
|
|
143
|
+
VALIDATE CONSTRAINT "step_attempts_child_workflow_run_fk";
|
|
144
|
+
|
|
145
|
+
INSERT INTO "${schema}"."openworkflow_migrations" ("version")
|
|
146
|
+
VALUES (3)
|
|
147
|
+
ON CONFLICT DO NOTHING;
|
|
148
|
+
|
|
149
|
+
COMMIT;`,
|
|
150
|
+
// 4 - indexes
|
|
151
|
+
`BEGIN;
|
|
152
|
+
|
|
153
|
+
CREATE INDEX IF NOT EXISTS "workflow_runs_status_available_at_created_at_idx"
|
|
154
|
+
ON "${schema}"."workflow_runs" ("namespace_id", "status", "available_at", "created_at");
|
|
155
|
+
|
|
156
|
+
CREATE INDEX IF NOT EXISTS "workflow_runs_workflow_name_idempotency_key_created_at_idx"
|
|
157
|
+
ON "${schema}"."workflow_runs" ("namespace_id", "workflow_name", "idempotency_key", "created_at");
|
|
158
|
+
|
|
159
|
+
CREATE INDEX IF NOT EXISTS "workflow_runs_parent_step_idx"
|
|
160
|
+
ON "${schema}"."workflow_runs" ("parent_step_attempt_namespace_id", "parent_step_attempt_id")
|
|
161
|
+
WHERE parent_step_attempt_namespace_id IS NOT NULL AND parent_step_attempt_id IS NOT NULL;
|
|
162
|
+
|
|
163
|
+
CREATE INDEX IF NOT EXISTS "workflow_runs_created_at_desc_idx"
|
|
164
|
+
ON "${schema}"."workflow_runs" ("namespace_id", "created_at" DESC);
|
|
165
|
+
|
|
166
|
+
CREATE INDEX IF NOT EXISTS "workflow_runs_status_created_at_desc_idx"
|
|
167
|
+
ON "${schema}"."workflow_runs" ("namespace_id", "status", "created_at" DESC);
|
|
168
|
+
|
|
169
|
+
CREATE INDEX IF NOT EXISTS "workflow_runs_workflow_name_status_created_at_desc_idx"
|
|
170
|
+
ON "${schema}"."workflow_runs" ("namespace_id", "workflow_name", "status", "created_at" DESC);
|
|
171
|
+
|
|
172
|
+
CREATE INDEX IF NOT EXISTS "step_attempts_workflow_run_created_at_idx"
|
|
173
|
+
ON "${schema}"."step_attempts" ("namespace_id", "workflow_run_id", "created_at");
|
|
174
|
+
|
|
175
|
+
CREATE INDEX IF NOT EXISTS "step_attempts_workflow_run_step_name_created_at_idx"
|
|
176
|
+
ON "${schema}"."step_attempts" ("namespace_id", "workflow_run_id", "step_name", "created_at");
|
|
177
|
+
|
|
178
|
+
CREATE INDEX IF NOT EXISTS "step_attempts_child_workflow_run_idx"
|
|
179
|
+
ON "${schema}"."step_attempts" ("child_workflow_run_namespace_id", "child_workflow_run_id")
|
|
180
|
+
WHERE child_workflow_run_namespace_id IS NOT NULL AND child_workflow_run_id IS NOT NULL;
|
|
181
|
+
|
|
182
|
+
INSERT INTO "${schema}"."openworkflow_migrations"("version")
|
|
183
|
+
VALUES (4)
|
|
184
|
+
ON CONFLICT DO NOTHING;
|
|
185
|
+
|
|
186
|
+
COMMIT;`,
|
|
187
|
+
];
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* migrate applies pending migrations to the database. Does nothing if the
|
|
191
|
+
* database is already up to date.
|
|
192
|
+
* @param pg - Postgres client
|
|
193
|
+
* @param schema - Schema name
|
|
194
|
+
* @returns Promise resolved when migrations complete
|
|
195
|
+
*/
|
|
196
|
+
export async function migrate(pg, schema) {
|
|
197
|
+
const currentMigrationVersion = await getCurrentMigrationVersion(pg, schema);
|
|
198
|
+
for (const [i, migrationSql] of migrations(schema).entries()) {
|
|
199
|
+
if (i <= currentMigrationVersion)
|
|
200
|
+
continue; // already applied
|
|
201
|
+
await pg.unsafe(migrationSql);
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* dropSchema drops the specified schema from the database.
|
|
206
|
+
* @param pg - Postgres client
|
|
207
|
+
* @param schema - Schema name
|
|
208
|
+
* @returns Promise resolved when the schema is dropped
|
|
209
|
+
*/
|
|
210
|
+
export async function dropSchema(pg, schema) {
|
|
211
|
+
await pg.unsafe(`DROP SCHEMA IF EXISTS ${schema} CASCADE;`);
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* getCurrentVersion returns the current migration version of the database.
|
|
215
|
+
* @param pg - Postgres client
|
|
216
|
+
* @param schema - Schema name
|
|
217
|
+
* @returns Current migration version
|
|
218
|
+
*/
|
|
219
|
+
async function getCurrentMigrationVersion(pg, schema) {
|
|
220
|
+
// check if migrations table exists
|
|
221
|
+
const existsRes = await pg.unsafe(`
|
|
222
|
+
SELECT EXISTS (
|
|
223
|
+
SELECT 1
|
|
224
|
+
FROM information_schema.tables
|
|
225
|
+
WHERE table_schema = '${schema}'
|
|
226
|
+
AND table_name = 'openworkflow_migrations'
|
|
227
|
+
)`);
|
|
228
|
+
if (!existsRes[0]?.exists)
|
|
229
|
+
return -1;
|
|
230
|
+
// get current version
|
|
231
|
+
const currentVersionRes = await pg.unsafe(`SELECT MAX("version") AS "version" FROM "${schema}"."openworkflow_migrations";`);
|
|
232
|
+
return currentVersionRes[0]?.version ?? -1;
|
|
233
|
+
}
|
|
234
|
+
//# sourceMappingURL=postgres.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"postgres.js","sourceRoot":"","sources":["../../pg/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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"db-migrate.d.ts","sourceRoot":"","sources":["../../../pg/scripts/db-migrate.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"db-migrate.js","sourceRoot":"","sources":["../../../pg/scripts/db-migrate.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,iBAAiB,EACjB,OAAO,GACR,MAAM,gBAAgB,CAAC;AAExB,MAAM,EAAE,GAAG,iBAAiB,CAAC,oBAAoB,CAAC,CAAC;AACnD,MAAM,OAAO,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC;AAClC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"db-reset.d.ts","sourceRoot":"","sources":["../../../pg/scripts/db-reset.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { DEFAULT_POSTGRES_URL, DEFAULT_SCHEMA, newPostgresMaxOne, dropSchema, migrate, } from "../postgres.js";
|
|
2
|
+
const pg = newPostgresMaxOne(DEFAULT_POSTGRES_URL);
|
|
3
|
+
await dropSchema(pg, DEFAULT_SCHEMA);
|
|
4
|
+
await migrate(pg, DEFAULT_SCHEMA);
|
|
5
|
+
await pg.end();
|
|
6
|
+
//# sourceMappingURL=db-reset.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"db-reset.js","sourceRoot":"","sources":["../../../pg/scripts/db-reset.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,iBAAiB,EACjB,UAAU,EACV,OAAO,GACR,MAAM,gBAAgB,CAAC;AAExB,MAAM,EAAE,GAAG,iBAAiB,CAAC,oBAAoB,CAAC,CAAC;AACnD,MAAM,UAAU,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC;AACrC,MAAM,OAAO,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC;AAClC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"squawk.d.ts","sourceRoot":"","sources":["../../../pg/scripts/squawk.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { DEFAULT_SCHEMA, migrations } from "../postgres.js";
|
|
2
|
+
import { execSync } from "node:child_process";
|
|
3
|
+
import { unlinkSync, writeFileSync } from "node:fs";
|
|
4
|
+
const sql = migrations(DEFAULT_SCHEMA).join("\n\n");
|
|
5
|
+
writeFileSync("squawk.sql", sql);
|
|
6
|
+
try {
|
|
7
|
+
// eslint-disable-next-line sonarjs/no-os-command-from-path
|
|
8
|
+
execSync("npx squawk squawk.sql", { stdio: "inherit" });
|
|
9
|
+
}
|
|
10
|
+
catch {
|
|
11
|
+
// ignore - squawk will produce its own error output
|
|
12
|
+
}
|
|
13
|
+
finally {
|
|
14
|
+
unlinkSync("squawk.sql");
|
|
15
|
+
console.log("");
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=squawk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"squawk.js","sourceRoot":"","sources":["../../../pg/scripts/squawk.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAEpD,MAAM,GAAG,GAAG,UAAU,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACpD,aAAa,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;AAEjC,IAAI,CAAC;IACH,2DAA2D;IAC3D,QAAQ,CAAC,uBAAuB,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;AAC1D,CAAC;AAAC,MAAM,CAAC;IACP,oDAAoD;AACtD,CAAC;QAAS,CAAC;IACT,UAAU,CAAC,YAAY,CAAC,CAAC;IACzB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vitest.global-setup.d.ts","sourceRoot":"","sources":["../../pg/vitest.global-setup.ts"],"names":[],"mappings":"AAOA,kEAAkE;AAClE,wBAAsB,KAAK,kBAI1B"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { migrate, newPostgresMaxOne, DEFAULT_SCHEMA, DEFAULT_POSTGRES_URL, } from "./postgres.js";
|
|
2
|
+
/** Run database migrations once before Postgres backend tests. */
|
|
3
|
+
export async function setup() {
|
|
4
|
+
const pg = newPostgresMaxOne(DEFAULT_POSTGRES_URL);
|
|
5
|
+
await migrate(pg, DEFAULT_SCHEMA);
|
|
6
|
+
await pg.end();
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=vitest.global-setup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vitest.global-setup.js","sourceRoot":"","sources":["../../pg/vitest.global-setup.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,iBAAiB,EACjB,cAAc,EACd,oBAAoB,GACrB,MAAM,eAAe,CAAC;AAEvB,kEAAkE;AAClE,MAAM,CAAC,KAAK,UAAU,KAAK;IACzB,MAAM,EAAE,GAAG,iBAAiB,CAAC,oBAAoB,CAAC,CAAC;IACnD,MAAM,OAAO,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC;IAClC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC;AACjB,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { Workflow } from "./workflow.js";
|
|
2
|
+
/**
|
|
3
|
+
* A registry for storing and retrieving workflows by name and version.
|
|
4
|
+
* Provides a centralized way to manage workflow registrations.
|
|
5
|
+
*/
|
|
6
|
+
export declare class WorkflowRegistry {
|
|
7
|
+
private readonly workflows;
|
|
8
|
+
/**
|
|
9
|
+
* Register a workflow in the registry.
|
|
10
|
+
* @param workflow - The workflow to register
|
|
11
|
+
* @throws {Error} If a workflow with the same name and version is already registered
|
|
12
|
+
*/
|
|
13
|
+
register(workflow: Workflow<unknown, unknown, unknown>): void;
|
|
14
|
+
/**
|
|
15
|
+
* Get a workflow from the registry by name and version.
|
|
16
|
+
* @param name - The workflow name
|
|
17
|
+
* @param version - The workflow version (null for unversioned)
|
|
18
|
+
* @returns The workflow if found, undefined otherwise
|
|
19
|
+
*/
|
|
20
|
+
get(name: string, version: string | null): Workflow<unknown, unknown, unknown> | undefined;
|
|
21
|
+
/**
|
|
22
|
+
* Get all registered workflows.
|
|
23
|
+
* @returns Array of all registered workflows
|
|
24
|
+
*/
|
|
25
|
+
getAll(): Workflow<unknown, unknown, unknown>[];
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE9C;;;GAGG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAGtB;IAEJ;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,IAAI;IAW7D;;;;;OAKG;IACH,GAAG,CACD,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,GAAG,IAAI,GACrB,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,SAAS;IAKlD;;;OAGG;IACH,MAAM,IAAI,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE;CAGhD"}
|
package/dist/registry.js
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A registry for storing and retrieving workflows by name and version.
|
|
3
|
+
* Provides a centralized way to manage workflow registrations.
|
|
4
|
+
*/
|
|
5
|
+
export class WorkflowRegistry {
|
|
6
|
+
workflows = new Map();
|
|
7
|
+
/**
|
|
8
|
+
* Register a workflow in the registry.
|
|
9
|
+
* @param workflow - The workflow to register
|
|
10
|
+
* @throws {Error} If a workflow with the same name and version is already registered
|
|
11
|
+
*/
|
|
12
|
+
register(workflow) {
|
|
13
|
+
const name = workflow.spec.name;
|
|
14
|
+
const version = workflow.spec.version ?? null;
|
|
15
|
+
const key = registryKey(name, version);
|
|
16
|
+
if (this.workflows.has(key)) {
|
|
17
|
+
const versionStr = version ? ` (version: ${version})` : "";
|
|
18
|
+
throw new Error(`Workflow "${name}"${versionStr} is already registered`);
|
|
19
|
+
}
|
|
20
|
+
this.workflows.set(key, workflow);
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Get a workflow from the registry by name and version.
|
|
24
|
+
* @param name - The workflow name
|
|
25
|
+
* @param version - The workflow version (null for unversioned)
|
|
26
|
+
* @returns The workflow if found, undefined otherwise
|
|
27
|
+
*/
|
|
28
|
+
get(name, version) {
|
|
29
|
+
const key = registryKey(name, version);
|
|
30
|
+
return this.workflows.get(key);
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Get all registered workflows.
|
|
34
|
+
* @returns Array of all registered workflows
|
|
35
|
+
*/
|
|
36
|
+
getAll() {
|
|
37
|
+
return [...this.workflows.values()];
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Build a registry key from name and version.
|
|
42
|
+
* @param name - Workflow name
|
|
43
|
+
* @param version - Workflow version (or null)
|
|
44
|
+
* @returns Registry key
|
|
45
|
+
*/
|
|
46
|
+
function registryKey(name, version) {
|
|
47
|
+
return version ? `${name}@${version}` : name;
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../registry.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,OAAO,gBAAgB;IACV,SAAS,GAAG,IAAI,GAAG,EAGjC,CAAC;IAEJ;;;;OAIG;IACH,QAAQ,CAAC,QAA6C;QACpD,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;QAChC,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC;QAC9C,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACvC,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5B,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,cAAc,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3D,MAAM,IAAI,KAAK,CAAC,aAAa,IAAI,IAAI,UAAU,wBAAwB,CAAC,CAAC;QAC3E,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IACpC,CAAC;IAED;;;;;OAKG;IACH,GAAG,CACD,IAAY,EACZ,OAAsB;QAEtB,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC;IAED;;;OAGG;IACH,MAAM;QACJ,OAAO,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;IACtC,CAAC;CACF;AAED;;;;;GAKG;AACH,SAAS,WAAW,CAAC,IAAY,EAAE,OAAsB;IACvD,OAAO,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/C,CAAC"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { Backend, CancelWorkflowRunParams, ClaimWorkflowRunParams, CreateStepAttemptParams, CreateWorkflowRunParams, GetStepAttemptParams, GetWorkflowRunParams, ExtendWorkflowRunLeaseParams, ListStepAttemptsParams, ListWorkflowRunsParams, PaginatedResponse, FailStepAttemptParams, CompleteStepAttemptParams, FailWorkflowRunParams, CompleteWorkflowRunParams, SleepWorkflowRunParams, StepAttempt, WorkflowRun } from "
|
|
2
|
-
export declare const DEFAULT_PAGINATION_PAGE_SIZE = 100;
|
|
1
|
+
import { Backend, CancelWorkflowRunParams, ClaimWorkflowRunParams, CreateStepAttemptParams, CreateWorkflowRunParams, GetStepAttemptParams, GetWorkflowRunParams, ExtendWorkflowRunLeaseParams, ListStepAttemptsParams, ListWorkflowRunsParams, PaginatedResponse, FailStepAttemptParams, CompleteStepAttemptParams, FailWorkflowRunParams, CompleteWorkflowRunParams, SleepWorkflowRunParams, StepAttempt, WorkflowRun } from "openworkflow/internal";
|
|
3
2
|
interface BackendSqliteOptions {
|
|
4
3
|
namespaceId?: string;
|
|
5
4
|
runMigrations?: boolean;
|
|
@@ -15,9 +14,12 @@ export declare class BackendSqlite implements Backend {
|
|
|
15
14
|
* Create and initialize a new BackendSqlite instance. This will
|
|
16
15
|
* automatically run migrations on startup unless `runMigrations` is set to
|
|
17
16
|
* false.
|
|
17
|
+
* @param path - Database path
|
|
18
|
+
* @param options - Backend options
|
|
19
|
+
* @returns A connected backend instance
|
|
18
20
|
*/
|
|
19
|
-
static connect(path
|
|
20
|
-
stop(): void
|
|
21
|
+
static connect(path: string, options?: BackendSqliteOptions): BackendSqlite;
|
|
22
|
+
stop(): Promise<void>;
|
|
21
23
|
createWorkflowRun(params: CreateWorkflowRunParams): Promise<WorkflowRun>;
|
|
22
24
|
getWorkflowRun(params: GetWorkflowRunParams): Promise<WorkflowRun | null>;
|
|
23
25
|
claimWorkflowRun(params: ClaimWorkflowRunParams): Promise<WorkflowRun | null>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../../sqlite/backend.ts"],"names":[],"mappings":"AAYA,OAAO,EAEL,OAAO,EACP,uBAAuB,EACvB,sBAAsB,EACtB,uBAAuB,EACvB,uBAAuB,EACvB,oBAAoB,EACpB,oBAAoB,EACpB,4BAA4B,EAC5B,sBAAsB,EACtB,sBAAsB,EACtB,iBAAiB,EACjB,qBAAqB,EACrB,yBAAyB,EACzB,qBAAqB,EACrB,yBAAyB,EACzB,sBAAsB,EACtB,WAAW,EACX,WAAW,EAGZ,MAAM,uBAAuB,CAAC;AAI/B,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,6 +1,6 @@
|
|
|
1
|
-
import { newDatabase, migrate, generateUUID, now, addMilliseconds, toJSON, fromJSON, toISO, fromISO,
|
|
2
|
-
import { DEFAULT_NAMESPACE_ID, DEFAULT_RETRY_POLICY, } from "
|
|
3
|
-
|
|
1
|
+
import { newDatabase, migrate, generateUUID, now, addMilliseconds, toJSON, fromJSON, toISO, fromISO, } from "./sqlite.js";
|
|
2
|
+
import { DEFAULT_NAMESPACE_ID, DEFAULT_RETRY_POLICY, } from "openworkflow/internal";
|
|
3
|
+
const DEFAULT_PAGINATION_PAGE_SIZE = 100;
|
|
4
4
|
/**
|
|
5
5
|
* Manages a connection to a SQLite database for workflow operations.
|
|
6
6
|
*/
|
|
@@ -15,8 +15,11 @@ export class BackendSqlite {
|
|
|
15
15
|
* Create and initialize a new BackendSqlite instance. This will
|
|
16
16
|
* automatically run migrations on startup unless `runMigrations` is set to
|
|
17
17
|
* false.
|
|
18
|
+
* @param path - Database path
|
|
19
|
+
* @param options - Backend options
|
|
20
|
+
* @returns A connected backend instance
|
|
18
21
|
*/
|
|
19
|
-
static connect(path
|
|
22
|
+
static connect(path, options) {
|
|
20
23
|
const { namespaceId, runMigrations } = {
|
|
21
24
|
namespaceId: DEFAULT_NAMESPACE_ID,
|
|
22
25
|
runMigrations: true,
|
|
@@ -28,7 +31,8 @@ export class BackendSqlite {
|
|
|
28
31
|
}
|
|
29
32
|
return new BackendSqlite(db, namespaceId);
|
|
30
33
|
}
|
|
31
|
-
|
|
34
|
+
// eslint-disable-next-line @typescript-eslint/require-await
|
|
35
|
+
async stop() {
|
|
32
36
|
this.db.close();
|
|
33
37
|
}
|
|
34
38
|
async createWorkflowRun(params) {
|
|
@@ -551,6 +555,12 @@ export class BackendSqlite {
|
|
|
551
555
|
}
|
|
552
556
|
}
|
|
553
557
|
// Conversion functions
|
|
558
|
+
/**
|
|
559
|
+
* Convert a database row to a WorkflowRun.
|
|
560
|
+
* @param row - Workflow run row
|
|
561
|
+
* @returns Workflow run
|
|
562
|
+
* @throws {Error} If required fields are missing
|
|
563
|
+
*/
|
|
554
564
|
function rowToWorkflowRun(row) {
|
|
555
565
|
const createdAt = fromISO(row.created_at);
|
|
556
566
|
const updatedAt = fromISO(row.updated_at);
|
|
@@ -585,6 +595,12 @@ function rowToWorkflowRun(row) {
|
|
|
585
595
|
updatedAt,
|
|
586
596
|
};
|
|
587
597
|
}
|
|
598
|
+
/**
|
|
599
|
+
* Convert a database row to a StepAttempt.
|
|
600
|
+
* @param row - Step attempt row
|
|
601
|
+
* @returns Step attempt
|
|
602
|
+
* @throws {Error} If required fields are missing
|
|
603
|
+
*/
|
|
588
604
|
function rowToStepAttempt(row) {
|
|
589
605
|
const createdAt = fromISO(row.created_at);
|
|
590
606
|
const updatedAt = fromISO(row.updated_at);
|
|
@@ -614,9 +630,19 @@ function rowToStepAttempt(row) {
|
|
|
614
630
|
updatedAt,
|
|
615
631
|
};
|
|
616
632
|
}
|
|
633
|
+
/**
|
|
634
|
+
* Encode a pagination cursor to a string.
|
|
635
|
+
* @param item - Cursor data
|
|
636
|
+
* @returns Encoded cursor
|
|
637
|
+
*/
|
|
617
638
|
function encodeCursor(item) {
|
|
618
639
|
return Buffer.from(JSON.stringify({ createdAt: item.createdAt, id: item.id })).toString("base64");
|
|
619
640
|
}
|
|
641
|
+
/**
|
|
642
|
+
* Decode a pagination cursor from a string.
|
|
643
|
+
* @param cursor - Encoded cursor
|
|
644
|
+
* @returns Cursor data
|
|
645
|
+
*/
|
|
620
646
|
function decodeCursor(cursor) {
|
|
621
647
|
const decoded = Buffer.from(cursor, "base64").toString("utf8");
|
|
622
648
|
const parsed = JSON.parse(decoded);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backend.js","sourceRoot":"","sources":["../../sqlite/backend.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../sqlite/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EACL,KAAK,QAAQ,EACb,WAAW,EACX,UAAU,EACV,OAAO,EACP,YAAY,EACZ,GAAG,EACH,eAAe,EACf,MAAM,EACN,QAAQ,EACR,KAAK,EACL,OAAO,GACR,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../sqlite/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAEL,WAAW,EACX,UAAU,EACV,OAAO,EACP,YAAY,EACZ,GAAG,EACH,eAAe,EACf,MAAM,EACN,QAAQ,EACR,KAAK,EACL,OAAO,GACR,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { DatabaseSync } from "node:sqlite";
|
|
2
|
+
export type Database = DatabaseSync;
|
|
3
|
+
/**
|
|
4
|
+
* newDatabase creates a new SQLite database connection.
|
|
5
|
+
* @param path - Database file path (or ":memory:") for testing
|
|
6
|
+
* @returns SQLite database connection
|
|
7
|
+
*/
|
|
8
|
+
export declare function newDatabase(path: string): Database;
|
|
9
|
+
/**
|
|
10
|
+
* migrations returns the list of migration SQL statements.
|
|
11
|
+
* @returns Migration SQL statements
|
|
12
|
+
*/
|
|
13
|
+
export declare function migrations(): string[];
|
|
14
|
+
/**
|
|
15
|
+
* migrate applies pending migrations to the database. Does nothing if the
|
|
16
|
+
* database is already up to date.
|
|
17
|
+
* @param db - SQLite database
|
|
18
|
+
*/
|
|
19
|
+
export declare function migrate(db: Database): void;
|
|
20
|
+
/**
|
|
21
|
+
* Helper to generate UUIDs (SQLite doesn't have built-in UUID generation)
|
|
22
|
+
* @returns A UUID string
|
|
23
|
+
*/
|
|
24
|
+
export declare function generateUUID(): string;
|
|
25
|
+
/**
|
|
26
|
+
* Helper to get current timestamp in ISO8601 format
|
|
27
|
+
* @returns ISO8601 timestamp string
|
|
28
|
+
*/
|
|
29
|
+
export declare function now(): string;
|
|
30
|
+
/**
|
|
31
|
+
* Helper to add milliseconds to a date and return ISO8601 string
|
|
32
|
+
* @param date - ISO8601 date string
|
|
33
|
+
* @param ms - Milliseconds to add
|
|
34
|
+
* @returns Updated ISO8601 date string
|
|
35
|
+
*/
|
|
36
|
+
export declare function addMilliseconds(date: string, ms: number): string;
|
|
37
|
+
/**
|
|
38
|
+
* Helper to serialize JSON for SQLite storage
|
|
39
|
+
* @param value - Value to serialize
|
|
40
|
+
* @returns JSON string or null
|
|
41
|
+
*/
|
|
42
|
+
export declare function toJSON(value: unknown): string | null;
|
|
43
|
+
/**
|
|
44
|
+
* Helper to deserialize JSON from SQLite storage
|
|
45
|
+
* @param value - JSON string or null
|
|
46
|
+
* @returns Parsed value
|
|
47
|
+
*/
|
|
48
|
+
export declare function fromJSON(value: string | null): unknown;
|
|
49
|
+
/**
|
|
50
|
+
* Helper to convert Date to ISO8601 string for SQLite
|
|
51
|
+
* @param date - Date or null
|
|
52
|
+
* @returns ISO8601 date string or null
|
|
53
|
+
*/
|
|
54
|
+
export declare function toISO(date: Date | null): string | null;
|
|
55
|
+
/**
|
|
56
|
+
* Helper to convert ISO8601 string from SQLite to Date
|
|
57
|
+
* @param dateStr - ISO8601 date string or null
|
|
58
|
+
* @returns Date or null
|
|
59
|
+
*/
|
|
60
|
+
export declare function fromISO(dateStr: string | null): Date | null;
|
|
61
|
+
//# sourceMappingURL=sqlite.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sqlite.d.ts","sourceRoot":"","sources":["../../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"}
|