@dbos-inc/dbos-sdk 2.8.20-preview → 2.8.45-preview.g9518e3e14d
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/schemas/system_db_schema.d.ts +4 -0
- package/dist/schemas/system_db_schema.d.ts.map +1 -1
- package/dist/src/client.js +2 -2
- package/dist/src/client.js.map +1 -1
- package/dist/src/dbos-executor.d.ts +1 -3
- package/dist/src/dbos-executor.d.ts.map +1 -1
- package/dist/src/dbos-executor.js +26 -63
- package/dist/src/dbos-executor.js.map +1 -1
- package/dist/src/dbos-runtime/workflow_management.d.ts.map +1 -1
- package/dist/src/dbos-runtime/workflow_management.js +2 -1
- package/dist/src/dbos-runtime/workflow_management.js.map +1 -1
- package/dist/src/dbos.d.ts +8 -1
- package/dist/src/dbos.d.ts.map +1 -1
- package/dist/src/dbos.js +28 -8
- package/dist/src/dbos.js.map +1 -1
- package/dist/src/error.d.ts +11 -6
- package/dist/src/error.d.ts.map +1 -1
- package/dist/src/error.js +27 -16
- package/dist/src/error.js.map +1 -1
- package/dist/src/scheduler/scheduler.js +1 -1
- package/dist/src/scheduler/scheduler.js.map +1 -1
- package/dist/src/system_database.d.ts +48 -15
- package/dist/src/system_database.d.ts.map +1 -1
- package/dist/src/system_database.js +332 -99
- package/dist/src/system_database.js.map +1 -1
- package/dist/src/workflow.d.ts.map +1 -1
- package/dist/src/workflow.js +7 -38
- package/dist/src/workflow.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/migrations/20250415000000_triggers_wfstatus.js +43 -0
- package/migrations/20250421000000_workflowcancel.js +15 -0
- package/migrations/20250421100000_triggers_wfcancel.js +35 -0
- package/package.json +1 -1
@@ -0,0 +1,43 @@
|
|
1
|
+
exports.up = function (knex) {
|
2
|
+
return knex.raw(`
|
3
|
+
CREATE OR REPLACE FUNCTION dbos.workflow_status_function() RETURNS TRIGGER AS $$
|
4
|
+
DECLARE
|
5
|
+
payload json;
|
6
|
+
BEGIN
|
7
|
+
IF TG_OP = 'INSERT' THEN
|
8
|
+
payload = json_build_object(
|
9
|
+
'wfid', NEW.workflow_uuid,
|
10
|
+
'status', NEW.status,
|
11
|
+
'oldstatus', ''
|
12
|
+
);
|
13
|
+
ELSIF TG_OP = 'UPDATE' THEN
|
14
|
+
payload = json_build_object(
|
15
|
+
'wfid', NEW.workflow_uuid,
|
16
|
+
'status', NEW.status,
|
17
|
+
'oldstatus', OLD.status
|
18
|
+
);
|
19
|
+
ELSIF TG_OP = 'DELETE' THEN
|
20
|
+
payload = json_build_object(
|
21
|
+
'wfid', NEW.workflow_uuid,
|
22
|
+
'status', '',
|
23
|
+
'oldstatus', OLD.status
|
24
|
+
);
|
25
|
+
END IF;
|
26
|
+
|
27
|
+
PERFORM pg_notify('dbos_workflow_status_channel', payload::text);
|
28
|
+
RETURN NEW;
|
29
|
+
END;
|
30
|
+
$$ LANGUAGE plpgsql;
|
31
|
+
|
32
|
+
CREATE TRIGGER dbos_workflow_status_trigger
|
33
|
+
AFTER INSERT OR UPDATE OR DELETE ON dbos.workflow_status
|
34
|
+
FOR EACH ROW EXECUTE FUNCTION dbos.workflow_status_function();
|
35
|
+
`);
|
36
|
+
};
|
37
|
+
|
38
|
+
exports.down = function (knex) {
|
39
|
+
return knex.raw(`
|
40
|
+
DROP TRIGGER IF EXISTS dbos_workflow_status_trigger ON dbos.workflow_status;
|
41
|
+
DROP FUNCTION IF EXISTS dbos.workflow_status_function;
|
42
|
+
`);
|
43
|
+
};
|
@@ -0,0 +1,15 @@
|
|
1
|
+
exports.up = function (knex) {
|
2
|
+
return knex.schema.withSchema('dbos').createTable('workflow_cancel', function (table) {
|
3
|
+
table.text('workflow_id').notNullable();
|
4
|
+
table
|
5
|
+
.bigInteger('cancelled_at_epoch_ms')
|
6
|
+
.notNullable()
|
7
|
+
.defaultTo(knex.raw('(EXTRACT(EPOCH FROM now())*1000)::bigint'));
|
8
|
+
table.primary(['workflow_id']);
|
9
|
+
table.foreign('workflow_id').references('workflow_uuid').inTable('dbos.workflow_status').onDelete('CASCADE');
|
10
|
+
});
|
11
|
+
};
|
12
|
+
|
13
|
+
exports.down = function (knex) {
|
14
|
+
return knex.schema.withSchema('dbos').dropTableIfExists('workflow_cancel');
|
15
|
+
};
|
@@ -0,0 +1,35 @@
|
|
1
|
+
exports.up = function (knex) {
|
2
|
+
return knex.raw(`
|
3
|
+
CREATE OR REPLACE FUNCTION dbos.workflow_cancel_function() RETURNS TRIGGER AS $$
|
4
|
+
DECLARE
|
5
|
+
payload json;
|
6
|
+
BEGIN
|
7
|
+
IF TG_OP = 'INSERT' THEN
|
8
|
+
payload = json_build_object(
|
9
|
+
'wfid', NEW.workflow_id,
|
10
|
+
'cancelled', 't'
|
11
|
+
);
|
12
|
+
ELSIF TG_OP = 'DELETE' THEN
|
13
|
+
payload = json_build_object(
|
14
|
+
'wfid', OLD.workflow_id,
|
15
|
+
'cancelled', 'f'
|
16
|
+
);
|
17
|
+
END IF;
|
18
|
+
|
19
|
+
PERFORM pg_notify('dbos_workflow_cancel_channel', payload::text);
|
20
|
+
RETURN NEW;
|
21
|
+
END;
|
22
|
+
$$ LANGUAGE plpgsql;
|
23
|
+
|
24
|
+
CREATE TRIGGER dbos_workflow_cancel_trigger
|
25
|
+
AFTER INSERT OR UPDATE OR DELETE ON dbos.workflow_cancel
|
26
|
+
FOR EACH ROW EXECUTE FUNCTION dbos.workflow_cancel_function();
|
27
|
+
`);
|
28
|
+
};
|
29
|
+
|
30
|
+
exports.down = function (knex) {
|
31
|
+
return knex.raw(`
|
32
|
+
DROP TRIGGER IF EXISTS dbos_workflow_cancel_trigger ON dbos.workflow_cancel;
|
33
|
+
DROP FUNCTION IF EXISTS dbos.workflow_cancel_function;
|
34
|
+
`);
|
35
|
+
};
|