@dbos-inc/dbos-sdk 4.28.7-preview → 4.28.11-preview

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 (77) hide show
  1. package/README.md +20 -7
  2. package/dist/schemas/system_db_schema.d.ts +0 -9
  3. package/dist/schemas/system_db_schema.d.ts.map +1 -1
  4. package/dist/schemas/system_db_schema.js.map +1 -1
  5. package/dist/src/adminserver.d.ts.map +1 -1
  6. package/dist/src/adminserver.js +5 -19
  7. package/dist/src/adminserver.js.map +1 -1
  8. package/dist/src/client.d.ts +8 -0
  9. package/dist/src/client.d.ts.map +1 -1
  10. package/dist/src/client.js +6 -7
  11. package/dist/src/client.js.map +1 -1
  12. package/dist/src/context.d.ts +0 -25
  13. package/dist/src/context.d.ts.map +1 -1
  14. package/dist/src/context.js.map +1 -1
  15. package/dist/src/dbos-executor.d.ts +5 -36
  16. package/dist/src/dbos-executor.d.ts.map +1 -1
  17. package/dist/src/dbos-executor.js +10 -31
  18. package/dist/src/dbos-executor.js.map +1 -1
  19. package/dist/src/dbos.d.ts +9 -84
  20. package/dist/src/dbos.d.ts.map +1 -1
  21. package/dist/src/dbos.js +17 -164
  22. package/dist/src/dbos.js.map +1 -1
  23. package/dist/src/debouncer.d.ts.map +1 -1
  24. package/dist/src/debouncer.js +9 -0
  25. package/dist/src/debouncer.js.map +1 -1
  26. package/dist/src/decorators.d.ts +0 -56
  27. package/dist/src/decorators.d.ts.map +1 -1
  28. package/dist/src/decorators.js +7 -331
  29. package/dist/src/decorators.js.map +1 -1
  30. package/dist/src/enqueue_options.d.ts.map +1 -1
  31. package/dist/src/enqueue_options.js +0 -1
  32. package/dist/src/enqueue_options.js.map +1 -1
  33. package/dist/src/error.d.ts +0 -8
  34. package/dist/src/error.d.ts.map +1 -1
  35. package/dist/src/error.js +1 -27
  36. package/dist/src/error.js.map +1 -1
  37. package/dist/src/eventreceiver.d.ts +5 -11
  38. package/dist/src/eventreceiver.d.ts.map +1 -1
  39. package/dist/src/eventreceiver.js +10 -18
  40. package/dist/src/eventreceiver.js.map +1 -1
  41. package/dist/src/index.d.ts +4 -5
  42. package/dist/src/index.d.ts.map +1 -1
  43. package/dist/src/index.js +3 -11
  44. package/dist/src/index.js.map +1 -1
  45. package/dist/src/scheduler/scheduler.d.ts.map +1 -1
  46. package/dist/src/scheduler/scheduler.js +0 -1
  47. package/dist/src/scheduler/scheduler.js.map +1 -1
  48. package/dist/src/sysdb_migrations/internal/migrations.js +11 -0
  49. package/dist/src/sysdb_migrations/internal/migrations.js.map +1 -1
  50. package/dist/src/system_database.d.ts +2 -4
  51. package/dist/src/system_database.d.ts.map +1 -1
  52. package/dist/src/system_database.js +19 -67
  53. package/dist/src/system_database.js.map +1 -1
  54. package/dist/src/utils.d.ts +1 -0
  55. package/dist/src/utils.d.ts.map +1 -1
  56. package/dist/src/utils.js +4 -2
  57. package/dist/src/utils.js.map +1 -1
  58. package/dist/src/wfqueue.d.ts +37 -21
  59. package/dist/src/wfqueue.d.ts.map +1 -1
  60. package/dist/src/wfqueue.js +74 -105
  61. package/dist/src/wfqueue.js.map +1 -1
  62. package/dist/src/workflow.d.ts +2 -1
  63. package/dist/src/workflow.d.ts.map +1 -1
  64. package/dist/src/workflow.js.map +1 -1
  65. package/dist/src/workflow_management.d.ts.map +1 -1
  66. package/dist/src/workflow_management.js +0 -1
  67. package/dist/src/workflow_management.js.map +1 -1
  68. package/dist/tsconfig.tsbuildinfo +1 -1
  69. package/package.json +1 -4
  70. package/dist/src/authdecorators.d.ts +0 -2
  71. package/dist/src/authdecorators.d.ts.map +0 -1
  72. package/dist/src/authdecorators.js +0 -48
  73. package/dist/src/authdecorators.js.map +0 -1
  74. package/dist/src/scheduler/scheduler_decorator.d.ts +0 -41
  75. package/dist/src/scheduler/scheduler_decorator.d.ts.map +0 -1
  76. package/dist/src/scheduler/scheduler_decorator.js +0 -174
  77. package/dist/src/scheduler/scheduler_decorator.js.map +0 -1
@@ -309,7 +309,6 @@ function mapWorkflowStatus(row) {
309
309
  authenticatedUser: row.authenticated_user,
310
310
  assumedRole: row.assumed_role,
311
311
  authenticatedRoles: JSON.parse(row.authenticated_roles),
312
- request: row.request ? JSON.parse(row.request) : {},
313
312
  executorId: row.executor_id,
314
313
  createdAt: Number(row.created_at),
315
314
  updatedAt: Number(row.updated_at),
@@ -961,7 +960,6 @@ class SystemDatabase {
961
960
  'authenticated_user',
962
961
  'assumed_role',
963
962
  'authenticated_roles',
964
- 'request',
965
963
  'executor_id',
966
964
  'application_version',
967
965
  'application_id',
@@ -998,7 +996,7 @@ class SystemDatabase {
998
996
  tuples.push(`(${columns.map(() => `$${paramIdx++}`).join(', ')})`);
999
997
  params.push(status.workflowUUID, status.status, status.workflowName,
1000
998
  // For cross-language compatibility, these MUST be NULL in the database when not set
1001
- status.workflowClassName === '' ? null : status.workflowClassName, status.workflowConfigName === '' ? null : status.workflowConfigName, status.queueName ?? null, status.authenticatedUser, status.assumedRole, JSON.stringify(status.authenticatedRoles), JSON.stringify(status.request), status.executorId, status.applicationVersion ?? null, status.applicationID, createdAt, 0, createdAt, status.timeoutMS ?? null, status.deadlineEpochMS ?? null,
999
+ status.workflowClassName === '' ? null : status.workflowClassName, status.workflowConfigName === '' ? null : status.workflowConfigName, status.queueName ?? null, status.authenticatedUser, status.assumedRole, JSON.stringify(status.authenticatedRoles), status.executorId, status.applicationVersion ?? null, status.applicationID, createdAt, 0, createdAt, status.timeoutMS ?? null, status.deadlineEpochMS ?? null,
1002
1000
  // Legacy column: the payload lives in workflow_input.
1003
1001
  null, null, status.priority, status.queuePartitionKey ?? null, status.parentWorkflowID ?? null, status.serialization, null, status.delayUntilEpochMS ?? null, status.attributes ? JSON.stringify(status.attributes) : null, status.scheduleName ?? null, status.applicationName ?? null);
1004
1002
  }
@@ -1545,7 +1543,7 @@ class SystemDatabase {
1545
1543
  const { rows: statusRows } = await client.query(`SELECT ws.workflow_uuid, ws.name, ws.class_name, ws.config_name, ws.application_id,
1546
1544
  ws.authenticated_user, ws.authenticated_roles, ws.assumed_role,
1547
1545
  COALESCE(wi.inputs, ws.inputs) AS inputs, ws.serialization,
1548
- ws.request, ws.application_version, ws.attributes, ws.application_name
1546
+ ws.application_version, ws.attributes, ws.application_name
1549
1547
  FROM "${this.schemaName}".workflow_status ws
1550
1548
  LEFT JOIN "${this.schemaName}".workflow_input wi ON wi.workflow_uuid = ws.workflow_uuid
1551
1549
  WHERE ws.workflow_uuid = ANY($1)`, [originalWorkflowIDs]);
@@ -1567,7 +1565,6 @@ class SystemDatabase {
1567
1565
  'authenticated_user',
1568
1566
  'assumed_role',
1569
1567
  'authenticated_roles',
1570
- 'request',
1571
1568
  'application_version',
1572
1569
  'application_id',
1573
1570
  'inputs',
@@ -1594,7 +1591,7 @@ class SystemDatabase {
1594
1591
  const ws = statusByID.get(origID);
1595
1592
  const placeholders = insertCols.map(() => `$${paramIdx++}`).join(', ');
1596
1593
  valuesPlaceholders.push(`(${placeholders})`);
1597
- 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,
1594
+ 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, options.applicationVersion ?? ws.application_version ?? null, ws.application_id,
1598
1595
  // Legacy column: the payload lives in workflow_input.
1599
1596
  null, options.queuePartitionKey ?? null, origID, ws.serialization, ws.attributes ? JSON.stringify(ws.attributes) : null, forkOwners.get(forkID) ?? null);
1600
1597
  if (options.timeoutMS !== undefined) {
@@ -1707,7 +1704,7 @@ class SystemDatabase {
1707
1704
  // meaningless in the target.
1708
1705
  `SELECT
1709
1706
  ws.workflow_uuid, ws.status, ws.name, ws.authenticated_user, ws.assumed_role,
1710
- ws.authenticated_roles, ws.request,
1707
+ ws.authenticated_roles,
1711
1708
  COALESCE(wo.output, ws.output) AS output, COALESCE(wo.error, ws.error) AS error,
1712
1709
  ws.executor_id,
1713
1710
  ws.created_at, ws.updated_at, ws.application_version, ws.application_id,
@@ -1768,7 +1765,7 @@ class SystemDatabase {
1768
1765
  // Import workflow_status
1769
1766
  await client.query(`INSERT INTO "${this.schemaName}".workflow_status (
1770
1767
  workflow_uuid, status, name, authenticated_user, assumed_role,
1771
- authenticated_roles, request, output, error, executor_id,
1768
+ authenticated_roles, output, error, executor_id,
1772
1769
  created_at, updated_at, application_version, application_id,
1773
1770
  class_name, config_name, recovery_attempts, queue_name,
1774
1771
  workflow_timeout_ms, workflow_deadline_epoch_ms, started_at_epoch_ms,
@@ -1776,14 +1773,13 @@ class SystemDatabase {
1776
1773
  parent_workflow_id, serialization, delay_until_epoch_ms,
1777
1774
  was_forked_from, rate_limited, completed_at, attributes, schedule_name,
1778
1775
  debounce_deadline_epoch_ms, is_debounced, application_name
1779
- ) VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16, $17, $18, $19, $20, $21, $22, $23, $24, $25, $26, $27, $28, $29, $30, $31, $32, $33, $34, $35, $36, $37)`, [
1776
+ ) VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16, $17, $18, $19, $20, $21, $22, $23, $24, $25, $26, $27, $28, $29, $30, $31, $32, $33, $34, $35, $36)`, [
1780
1777
  status.workflow_uuid,
1781
1778
  status.status,
1782
1779
  status.name,
1783
1780
  status.authenticated_user,
1784
1781
  status.assumed_role,
1785
1782
  status.authenticated_roles,
1786
- status.request,
1787
1783
  // Legacy columns: the payloads live in their own tables.
1788
1784
  null,
1789
1785
  null,
@@ -2335,47 +2331,6 @@ class SystemDatabase {
2335
2331
  }
2336
2332
  return { serializedValue: value, serialization: valueSer };
2337
2333
  }
2338
- // Event dispatcher queries / updates
2339
- async getEventDispatchState(service, workflowName, key) {
2340
- const res = await this.pool.query(`SELECT * FROM "${this.schemaName}".event_dispatch_kv
2341
- WHERE workflow_fn_name = $1 AND service_name = $2 AND key = $3;`, [workflowName, service, key]);
2342
- if (res.rows.length === 0)
2343
- return undefined;
2344
- return {
2345
- service: res.rows[0].service_name,
2346
- workflowFnName: res.rows[0].workflow_fn_name,
2347
- key: res.rows[0].key,
2348
- value: res.rows[0].value,
2349
- updateTime: res.rows[0].update_time,
2350
- updateSeq: res.rows[0].update_seq !== null && res.rows[0].update_seq !== undefined
2351
- ? BigInt(res.rows[0].update_seq)
2352
- : undefined,
2353
- };
2354
- }
2355
- async upsertEventDispatchState(state) {
2356
- const res = await this.pool.query(`INSERT INTO "${this.schemaName}".event_dispatch_kv (
2357
- service_name, workflow_fn_name, key, value, update_time, update_seq)
2358
- VALUES ($1, $2, $3, $4, $5, $6)
2359
- ON CONFLICT (service_name, workflow_fn_name, key)
2360
- DO UPDATE SET
2361
- update_time = GREATEST(EXCLUDED.update_time, event_dispatch_kv.update_time),
2362
- update_seq = GREATEST(EXCLUDED.update_seq, event_dispatch_kv.update_seq),
2363
- value = CASE WHEN (EXCLUDED.update_time > event_dispatch_kv.update_time
2364
- OR EXCLUDED.update_seq > event_dispatch_kv.update_seq
2365
- OR (event_dispatch_kv.update_time IS NULL and event_dispatch_kv.update_seq IS NULL)
2366
- ) THEN EXCLUDED.value ELSE event_dispatch_kv.value END
2367
- RETURNING value, update_time, update_seq;`, [state.service, state.workflowFnName, state.key, state.value, state.updateTime, state.updateSeq]);
2368
- return {
2369
- service: state.service,
2370
- workflowFnName: state.workflowFnName,
2371
- key: state.key,
2372
- value: res.rows[0].value,
2373
- updateTime: res.rows[0].update_time,
2374
- updateSeq: res.rows[0].update_seq !== undefined && res.rows[0].update_seq !== null
2375
- ? BigInt(res.rows[0].update_seq)
2376
- : undefined,
2377
- };
2378
- }
2379
2334
  // ==================== Streams ====================
2380
2335
  async writeStreamFromStep(workflowID, functionID, key, serializedValue, serialization) {
2381
2336
  while (true) {
@@ -2993,7 +2948,6 @@ class SystemDatabase {
2993
2948
  const payloadColumns = [];
2994
2949
  const payloadJoins = [];
2995
2950
  if (input.loadInput) {
2996
- selectColumns.push('request');
2997
2951
  payloadColumns.push('COALESCE(wi.inputs, workflow_status.inputs) AS inputs');
2998
2952
  payloadJoins.push(`LEFT JOIN "${schemaName}".workflow_input wi ON wi.workflow_uuid = workflow_status.workflow_uuid`);
2999
2953
  }
@@ -4267,7 +4221,6 @@ class SystemDatabase {
4267
4221
  authenticated_user,
4268
4222
  assumed_role,
4269
4223
  authenticated_roles,
4270
- request,
4271
4224
  executor_id,
4272
4225
  application_version,
4273
4226
  application_id,
@@ -4288,7 +4241,7 @@ class SystemDatabase {
4288
4241
  debounce_deadline_epoch_ms,
4289
4242
  is_debounced,
4290
4243
  application_name
4291
- ) VALUES($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16, $17, $18, $19, $20, $21, $22, $23, $24, $25, $26, $27, $28, $29, $30)
4244
+ ) VALUES($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16, $17, $18, $19, $20, $21, $22, $23, $24, $25, $26, $27, $28, $29)
4292
4245
  ON CONFLICT (workflow_uuid)
4293
4246
  DO UPDATE SET
4294
4247
  updated_at = (EXTRACT(EPOCH FROM now()) * 1000)::bigint,
@@ -4308,7 +4261,6 @@ class SystemDatabase {
4308
4261
  initStatus.authenticatedUser,
4309
4262
  initStatus.assumedRole,
4310
4263
  JSON.stringify(initStatus.authenticatedRoles),
4311
- JSON.stringify(initStatus.request),
4312
4264
  initStatus.executorId,
4313
4265
  initStatus.applicationVersion ?? null,
4314
4266
  initStatus.applicationID,
@@ -4776,18 +4728,6 @@ __decorate([
4776
4728
  __metadata("design:paramtypes", [String, String, Number, Object, Number]),
4777
4729
  __metadata("design:returntype", Promise)
4778
4730
  ], SystemDatabase.prototype, "getEvent", null);
4779
- __decorate([
4780
- dbRetry(),
4781
- __metadata("design:type", Function),
4782
- __metadata("design:paramtypes", [String, String, String]),
4783
- __metadata("design:returntype", Promise)
4784
- ], SystemDatabase.prototype, "getEventDispatchState", null);
4785
- __decorate([
4786
- dbRetry(),
4787
- __metadata("design:type", Function),
4788
- __metadata("design:paramtypes", [Object]),
4789
- __metadata("design:returntype", Promise)
4790
- ], SystemDatabase.prototype, "upsertEventDispatchState", null);
4791
4731
  __decorate([
4792
4732
  dbRetry(),
4793
4733
  __metadata("design:type", Function),
@@ -4830,4 +4770,16 @@ __decorate([
4830
4770
  __metadata("design:paramtypes", [String, String, Array]),
4831
4771
  __metadata("design:returntype", Promise)
4832
4772
  ], SystemDatabase.prototype, "getMetrics", null);
4773
+ __decorate([
4774
+ dbRetry(),
4775
+ __metadata("design:type", Function),
4776
+ __metadata("design:paramtypes", [String, String]),
4777
+ __metadata("design:returntype", Promise)
4778
+ ], SystemDatabase.prototype, "updateLastFiredAt", null);
4779
+ __decorate([
4780
+ dbRetry(),
4781
+ __metadata("design:type", Function),
4782
+ __metadata("design:paramtypes", [String]),
4783
+ __metadata("design:returntype", Promise)
4784
+ ], SystemDatabase.prototype, "getLatestApplicationVersion", null);
4833
4785
  //# sourceMappingURL=system_database.js.map