@dbos-inc/dbos-sdk 4.12.7-preview → 4.12.9

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 (35) hide show
  1. package/dist/schemas/system_db_schema.d.ts +1 -0
  2. package/dist/schemas/system_db_schema.d.ts.map +1 -1
  3. package/dist/schemas/system_db_schema.js.map +1 -1
  4. package/dist/src/client.d.ts +1 -0
  5. package/dist/src/client.d.ts.map +1 -1
  6. package/dist/src/client.js.map +1 -1
  7. package/dist/src/conductor/conductor.d.ts.map +1 -1
  8. package/dist/src/conductor/conductor.js +24 -0
  9. package/dist/src/conductor/conductor.js.map +1 -1
  10. package/dist/src/conductor/protocol.d.ts +26 -1
  11. package/dist/src/conductor/protocol.d.ts.map +1 -1
  12. package/dist/src/conductor/protocol.js +25 -2
  13. package/dist/src/conductor/protocol.js.map +1 -1
  14. package/dist/src/dbos-executor.d.ts +1 -0
  15. package/dist/src/dbos-executor.d.ts.map +1 -1
  16. package/dist/src/dbos-executor.js.map +1 -1
  17. package/dist/src/dbos.d.ts +1 -0
  18. package/dist/src/dbos.d.ts.map +1 -1
  19. package/dist/src/dbos.js.map +1 -1
  20. package/dist/src/sysdb_migrations/internal/migrations.d.ts.map +1 -1
  21. package/dist/src/sysdb_migrations/internal/migrations.js +3 -0
  22. package/dist/src/sysdb_migrations/internal/migrations.js.map +1 -1
  23. package/dist/src/system_database.d.ts +12 -0
  24. package/dist/src/system_database.d.ts.map +1 -1
  25. package/dist/src/system_database.js +186 -67
  26. package/dist/src/system_database.js.map +1 -1
  27. package/dist/src/workflow.d.ts +2 -0
  28. package/dist/src/workflow.d.ts.map +1 -1
  29. package/dist/src/workflow.js.map +1 -1
  30. package/dist/src/workflow_management.d.ts +1 -0
  31. package/dist/src/workflow_management.d.ts.map +1 -1
  32. package/dist/src/workflow_management.js +1 -0
  33. package/dist/src/workflow_management.js.map +1 -1
  34. package/dist/tsconfig.tsbuildinfo +1 -1
  35. package/package.json +1 -1
@@ -97,6 +97,7 @@ export interface WorkflowStatusInternal {
97
97
  queuePartitionKey?: string;
98
98
  startedAtEpochMs?: number;
99
99
  forkedFrom?: string;
100
+ wasForkedFrom?: boolean;
100
101
  parentWorkflowID?: string;
101
102
  serialization: string | null;
102
103
  delayUntilEpochMS?: number;
@@ -205,7 +206,18 @@ export declare class SystemDatabase {
205
206
  timeoutMS?: number;
206
207
  queueName?: string;
207
208
  queuePartitionKey?: string;
209
+ replacementChildren?: Record<string, string>;
208
210
  }): Promise<string>;
211
+ forkFromFailure(workflowIDs: string[], options?: {
212
+ applicationVersion?: string;
213
+ queueName?: string;
214
+ queuePartitionKey?: string;
215
+ fromLastFailure?: boolean;
216
+ fromLastStep?: boolean;
217
+ fromStep?: number;
218
+ fromStepName?: string;
219
+ }): Promise<string[]>;
220
+ private bulkForkWorkflows;
209
221
  exportWorkflow(workflowID: string, exportChildren?: boolean): Promise<ExportedWorkflow[]>;
210
222
  importWorkflow(workflows: ExportedWorkflow[]): Promise<void>;
211
223
  registerRunningWorkflow(workflowID: string, workflowPromise: Promise<unknown>): void;
@@ -1 +1 @@
1
- {"version":3,"file":"system_database.d.ts","sourceRoot":"","sources":["../../src/system_database.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"system_database.d.ts","sourceRoot":"","sources":["../../src/system_database.ts"],"names":[],"mappings":"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"}
@@ -174,6 +174,7 @@ function mapWorkflowStatus(row) {
174
174
  queuePartitionKey: row.queue_partition_key ?? undefined,
175
175
  startedAtEpochMs: row.started_at_epoch_ms ? Number(row.started_at_epoch_ms) : undefined,
176
176
  forkedFrom: row.forked_from ?? undefined,
177
+ wasForkedFrom: row.was_forked_from ?? false,
177
178
  parentWorkflowID: row.parent_workflow_id ?? undefined,
178
179
  serialization: row.serialization,
179
180
  delayUntilEpochMS: row.delay_until_epoch_ms ? Number(row.delay_until_epoch_ms) : undefined,
@@ -719,83 +720,195 @@ class SystemDatabase {
719
720
  }
720
721
  async forkWorkflow(workflowID, startStep, options = {}) {
721
722
  const newWorkflowID = options.newWorkflowID ?? (0, crypto_1.randomUUID)();
722
- const workflowStatus = await this.getWorkflowStatus(workflowID);
723
- if (workflowStatus === null) {
724
- throw new error_1.DBOSNonExistentWorkflowError(`Workflow ${workflowID} does not exist`);
723
+ const result = await this.bulkForkWorkflows([workflowID], [newWorkflowID], [startStep], options);
724
+ return result[0];
725
+ }
726
+ async forkFromFailure(workflowIDs, options = {}) {
727
+ const modes = [
728
+ options.fromLastFailure ?? false,
729
+ options.fromLastStep ?? false,
730
+ options.fromStep !== undefined,
731
+ options.fromStepName !== undefined,
732
+ ].filter(Boolean).length;
733
+ if (modes !== 1) {
734
+ throw new Error('Exactly one of fromLastFailure, fromLastStep, fromStep, or fromStepName must be specified');
735
+ }
736
+ let startSteps;
737
+ if (options.fromStep !== undefined) {
738
+ startSteps = Array(workflowIDs.length).fill(options.fromStep);
725
739
  }
726
- if (!workflowStatus.input) {
727
- throw new error_1.DBOSNonExistentWorkflowError(`Workflow ${workflowID} has no input`);
740
+ else {
741
+ let query;
742
+ const params = [workflowIDs];
743
+ if (options.fromLastFailure) {
744
+ query = `SELECT workflow_uuid,
745
+ COALESCE(
746
+ MAX(function_id) FILTER (WHERE error IS NOT NULL),
747
+ MAX(function_id)
748
+ ) AS start_step
749
+ FROM "${this.schemaName}".operation_outputs
750
+ WHERE workflow_uuid = ANY($1)
751
+ GROUP BY workflow_uuid`;
752
+ }
753
+ else if (options.fromLastStep) {
754
+ query = `SELECT workflow_uuid, MAX(function_id) AS start_step
755
+ FROM "${this.schemaName}".operation_outputs
756
+ WHERE workflow_uuid = ANY($1)
757
+ GROUP BY workflow_uuid`;
758
+ }
759
+ else {
760
+ // fromStepName
761
+ query = `SELECT workflow_uuid, MAX(function_id) AS start_step
762
+ FROM "${this.schemaName}".operation_outputs
763
+ WHERE workflow_uuid = ANY($1) AND function_name = $2
764
+ GROUP BY workflow_uuid`;
765
+ params.push(options.fromStepName);
766
+ }
767
+ const result = await this.pool.query(query, params);
768
+ const startStepByID = new Map(result.rows.map((r) => [r.workflow_uuid, Number(r.start_step)]));
769
+ for (const wid of workflowIDs) {
770
+ if (!startStepByID.has(wid)) {
771
+ if (options.fromStepName !== undefined) {
772
+ throw new Error(`Workflow ${wid} has no step named '${options.fromStepName}'`);
773
+ }
774
+ throw new Error(`Workflow ${wid} has no steps`);
775
+ }
776
+ }
777
+ startSteps = workflowIDs.map((wid) => startStepByID.get(wid));
778
+ }
779
+ const forkedIDs = workflowIDs.map(() => (0, crypto_1.randomUUID)());
780
+ return this.bulkForkWorkflows(workflowIDs, forkedIDs, startSteps, options);
781
+ }
782
+ async bulkForkWorkflows(originalWorkflowIDs, forkedWorkflowIDs, startSteps, options = {}) {
783
+ if (originalWorkflowIDs.length === 0) {
784
+ return [];
785
+ }
786
+ if (originalWorkflowIDs.length !== forkedWorkflowIDs.length || originalWorkflowIDs.length !== startSteps.length) {
787
+ throw new Error('originalWorkflowIDs, forkedWorkflowIDs, and startSteps must have the same length');
728
788
  }
729
789
  const client = await this.pool.connect();
730
790
  try {
731
791
  await client.query('BEGIN ISOLATION LEVEL READ COMMITTED');
732
- const now = Date.now();
733
- await this.insertWorkflowStatus(client, {
734
- workflowUUID: newWorkflowID,
735
- status: workflow_1.StatusString.ENQUEUED,
736
- workflowName: workflowStatus.workflowName,
737
- workflowClassName: workflowStatus.workflowClassName,
738
- workflowConfigName: workflowStatus.workflowConfigName,
739
- queueName: options.queueName ?? utils_1.INTERNAL_QUEUE_NAME,
740
- authenticatedUser: workflowStatus.authenticatedUser,
741
- assumedRole: workflowStatus.assumedRole,
742
- authenticatedRoles: workflowStatus.authenticatedRoles,
743
- output: null,
744
- error: null,
745
- request: workflowStatus.request,
746
- executorId: utils_1.globalParams.executorID,
747
- applicationVersion: options.applicationVersion ?? workflowStatus.applicationVersion,
748
- applicationID: workflowStatus.applicationID,
749
- createdAt: now,
750
- recoveryAttempts: 0,
751
- updatedAt: now,
752
- timeoutMS: options.timeoutMS ?? workflowStatus.timeoutMS,
753
- input: workflowStatus.input,
754
- deduplicationID: undefined,
755
- priority: 0,
756
- queuePartitionKey: options.queuePartitionKey,
757
- forkedFrom: workflowID,
758
- serialization: workflowStatus.serialization,
759
- }, null);
760
- if (startStep > 0) {
792
+ // Fetch the status of all original workflows inside the transaction.
793
+ const { rows: statusRows } = await client.query(`SELECT workflow_uuid, name, class_name, config_name, application_id,
794
+ authenticated_user, authenticated_roles, assumed_role, inputs, serialization,
795
+ request, application_version
796
+ FROM "${this.schemaName}".workflow_status
797
+ WHERE workflow_uuid = ANY($1)`, [originalWorkflowIDs]);
798
+ const statusByID = new Map(statusRows.map((r) => [r.workflow_uuid, r]));
799
+ for (const wid of originalWorkflowIDs) {
800
+ if (!statusByID.has(wid)) {
801
+ throw new error_1.DBOSNonExistentWorkflowError(`Workflow ${wid} does not exist`);
802
+ }
803
+ }
804
+ const queueName = options.queueName ?? utils_1.INTERNAL_QUEUE_NAME;
805
+ // Bulk insert all forked workflow status rows.
806
+ const insertCols = [
807
+ 'workflow_uuid',
808
+ 'status',
809
+ 'name',
810
+ 'class_name',
811
+ 'config_name',
812
+ 'queue_name',
813
+ 'authenticated_user',
814
+ 'assumed_role',
815
+ 'authenticated_roles',
816
+ 'request',
817
+ 'application_version',
818
+ 'application_id',
819
+ 'inputs',
820
+ 'queue_partition_key',
821
+ 'forked_from',
822
+ 'serialization',
823
+ ];
824
+ if (options.timeoutMS !== undefined) {
825
+ insertCols.push('workflow_timeout_ms');
826
+ }
827
+ const valuesPlaceholders = [];
828
+ const params = [];
829
+ let paramIdx = 1;
830
+ for (let i = 0; i < originalWorkflowIDs.length; i++) {
831
+ const origID = originalWorkflowIDs[i];
832
+ const forkID = forkedWorkflowIDs[i];
833
+ const ws = statusByID.get(origID);
834
+ const placeholders = insertCols.map(() => `$${paramIdx++}`).join(', ');
835
+ valuesPlaceholders.push(`(${placeholders})`);
836
+ params.push(forkID, workflow_1.StatusString.ENQUEUED, ws.name, ws.class_name ?? null, ws.config_name ?? null, queueName, ws.authenticated_user, ws.assumed_role, ws.authenticated_roles, ws.request, options.applicationVersion ?? ws.application_version ?? null, ws.application_id, ws.inputs, options.queuePartitionKey ?? null, origID, ws.serialization);
837
+ if (options.timeoutMS !== undefined) {
838
+ params.push(options.timeoutMS);
839
+ }
840
+ }
841
+ await client.query(`INSERT INTO "${this.schemaName}".workflow_status (${insertCols.join(', ')})
842
+ VALUES ${valuesPlaceholders.join(', ')}`, params);
843
+ // Mark all original workflows as having been forked from.
844
+ await client.query(`UPDATE "${this.schemaName}".workflow_status SET was_forked_from = TRUE WHERE workflow_uuid = ANY($1)`, [originalWorkflowIDs]);
845
+ // For workflows with start_step > 0, copy checkpoints/events/streams.
846
+ // Build a mapping CTE so each copy is a single SQL statement.
847
+ const forkMappings = originalWorkflowIDs
848
+ .map((origID, i) => ({ origID, forkID: forkedWorkflowIDs[i], startStep: startSteps[i] }))
849
+ .filter((m) => m.startStep > 0);
850
+ if (forkMappings.length > 0) {
851
+ const mappingValues = [];
852
+ const mappingParams = [];
853
+ let mIdx = 1;
854
+ for (const m of forkMappings) {
855
+ mappingValues.push(`($${mIdx}::text, $${mIdx + 1}::text, $${mIdx + 2}::int)`);
856
+ mappingParams.push(m.origID, m.forkID, m.startStep);
857
+ mIdx += 3;
858
+ }
859
+ const mappingCTE = `WITH mapping(orig_id, fork_id, start_step) AS (VALUES ${mappingValues.join(', ')})`;
860
+ // Build the child_workflow_id expression, applying replacements if provided.
861
+ let childWfExpr = 'oo.child_workflow_id';
862
+ const ooParams = [...mappingParams];
863
+ if (options.replacementChildren && Object.keys(options.replacementChildren).length > 0) {
864
+ const whenClauses = [];
865
+ for (const [oldId, newId] of Object.entries(options.replacementChildren)) {
866
+ whenClauses.push(`WHEN oo.child_workflow_id = $${mIdx} THEN $${mIdx + 1}::text`);
867
+ ooParams.push(oldId, newId);
868
+ mIdx += 2;
869
+ }
870
+ childWfExpr = `CASE ${whenClauses.join(' ')} ELSE oo.child_workflow_id END`;
871
+ }
761
872
  // Copy operation outputs
762
- const copyOutputsQuery = `INSERT INTO "${this.schemaName}".operation_outputs
763
- (workflow_uuid, function_id, output, error, serialization, function_name, child_workflow_id)
764
- SELECT $1 AS workflow_uuid, function_id, output, error, serialization, function_name, child_workflow_id
765
- FROM "${this.schemaName}".operation_outputs
766
- WHERE workflow_uuid = $2 AND function_id < $3`;
767
- await client.query(copyOutputsQuery, [newWorkflowID, workflowID, startStep]);
873
+ await client.query(`${mappingCTE}
874
+ INSERT INTO "${this.schemaName}".operation_outputs
875
+ (workflow_uuid, function_id, output, error, serialization, function_name, child_workflow_id, started_at_epoch_ms, completed_at_epoch_ms)
876
+ SELECT m.fork_id, oo.function_id, oo.output, oo.error, oo.serialization, oo.function_name, ${childWfExpr}, oo.started_at_epoch_ms, oo.completed_at_epoch_ms
877
+ FROM mapping m
878
+ JOIN "${this.schemaName}".operation_outputs oo
879
+ ON oo.workflow_uuid = m.orig_id AND oo.function_id < m.start_step`, ooParams);
768
880
  // Copy streams
769
- const copyStreamsQuery = `INSERT INTO "${this.schemaName}".streams
770
- (workflow_uuid, key, value, serialization, "offset", function_id)
771
- SELECT $1 AS workflow_uuid, key, value, serialization, "offset", function_id
772
- FROM "${this.schemaName}".streams
773
- WHERE workflow_uuid = $2 AND function_id < $3`;
774
- await client.query(copyStreamsQuery, [newWorkflowID, workflowID, startStep]);
881
+ await client.query(`${mappingCTE}
882
+ INSERT INTO "${this.schemaName}".streams
883
+ (workflow_uuid, key, value, serialization, "offset", function_id)
884
+ SELECT m.fork_id, s.key, s.value, s.serialization, s."offset", s.function_id
885
+ FROM mapping m
886
+ JOIN "${this.schemaName}".streams s
887
+ ON s.workflow_uuid = m.orig_id AND s.function_id < m.start_step`, mappingParams);
775
888
  // Copy events history
776
- const copyEventsHistoryQuery = `INSERT INTO "${this.schemaName}".workflow_events_history
777
- (workflow_uuid, function_id, key, value, serialization)
778
- SELECT $1 AS workflow_uuid, function_id, key, value, serialization
779
- FROM "${this.schemaName}".workflow_events_history
780
- WHERE workflow_uuid = $2 AND function_id < $3`;
781
- await client.query(copyEventsHistoryQuery, [newWorkflowID, workflowID, startStep]);
782
- // Copy only the latest version of each event (max function_id per key) into workflow_events
783
- const copyLatestEventsQuery = `INSERT INTO "${this.schemaName}".workflow_events
784
- (workflow_uuid, key, value, serialization)
785
- SELECT $1 AS workflow_uuid, weh1.key, weh1.value, serialization
786
- FROM "${this.schemaName}".workflow_events_history weh1
787
- WHERE weh1.workflow_uuid = $2
788
- AND weh1.function_id = (
789
- SELECT MAX(weh2.function_id)
790
- FROM "${this.schemaName}".workflow_events_history weh2
791
- WHERE weh2.workflow_uuid = $2
792
- AND weh2.key = weh1.key
793
- AND weh2.function_id < $3
794
- )`;
795
- await client.query(copyLatestEventsQuery, [newWorkflowID, workflowID, startStep]);
889
+ await client.query(`${mappingCTE}
890
+ INSERT INTO "${this.schemaName}".workflow_events_history
891
+ (workflow_uuid, function_id, key, value, serialization)
892
+ SELECT m.fork_id, weh.function_id, weh.key, weh.value, weh.serialization
893
+ FROM mapping m
894
+ JOIN "${this.schemaName}".workflow_events_history weh
895
+ ON weh.workflow_uuid = m.orig_id AND weh.function_id < m.start_step`, mappingParams);
896
+ // Copy only the latest version of each event using a window function
897
+ await client.query(`${mappingCTE}
898
+ INSERT INTO "${this.schemaName}".workflow_events
899
+ (workflow_uuid, key, value, serialization)
900
+ SELECT ranked.workflow_uuid, ranked.key, ranked.value, ranked.serialization
901
+ FROM (
902
+ SELECT m.fork_id AS workflow_uuid, weh.key, weh.value, weh.serialization,
903
+ ROW_NUMBER() OVER (PARTITION BY weh.workflow_uuid, weh.key ORDER BY weh.function_id DESC) AS rn
904
+ FROM mapping m
905
+ JOIN "${this.schemaName}".workflow_events_history weh
906
+ ON weh.workflow_uuid = m.orig_id AND weh.function_id < m.start_step
907
+ ) ranked
908
+ WHERE ranked.rn = 1`, mappingParams);
796
909
  }
797
910
  await client.query('COMMIT');
798
- return newWorkflowID;
911
+ return forkedWorkflowIDs;
799
912
  }
800
913
  catch (error) {
801
914
  await client.query('ROLLBACK');
@@ -1740,6 +1853,7 @@ class SystemDatabase {
1740
1853
  'queue_partition_key',
1741
1854
  'started_at_epoch_ms',
1742
1855
  'forked_from',
1856
+ 'was_forked_from',
1743
1857
  'parent_workflow_id',
1744
1858
  'delay_until_epoch_ms',
1745
1859
  ];
@@ -1807,6 +1921,11 @@ class SystemDatabase {
1807
1921
  addFilter('authenticated_user', input.authenticatedUser);
1808
1922
  addFilter('forked_from', input.forkedFrom);
1809
1923
  addFilter('parent_workflow_id', input.parentWorkflowID);
1924
+ if (input.wasForkedFrom !== undefined) {
1925
+ whereClauses.push(`was_forked_from = $${paramCounter}`);
1926
+ params.push(input.wasForkedFrom);
1927
+ paramCounter++;
1928
+ }
1810
1929
  if (input.startTime) {
1811
1930
  whereClauses.push(`created_at >= $${paramCounter}`);
1812
1931
  params.push(new Date(input.startTime).getTime());