@dbos-inc/dbos-sdk 1.30.21-preview.g838bed7f8d → 1.31.5-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.
@@ -12,7 +12,6 @@ import { AsyncLocalStorage } from "async_hooks";
12
12
  import { WorkflowContext, WorkflowContextImpl } from "./workflow";
13
13
  import { TransactionContextImpl } from "./transaction";
14
14
  import { StepContextImpl } from "./step";
15
- import { StoredProcedureContextImpl } from "./procedure";
16
15
  import { HandlerContextImpl } from "./httpServer/handler";
17
16
  export interface DBOSLocalCtx {
18
17
  ctx?: DBOSContext;
@@ -43,7 +42,6 @@ export declare function runWithDBOSContext<R>(ctx: DBOSContext, callback: () =>
43
42
  export declare function runWithHandlerContext<R>(ctx: HandlerContextImpl, callback: () => Promise<R>): Promise<R>;
44
43
  export declare function runWithTopContext<R>(ctx: DBOSLocalCtx, callback: () => Promise<R>): Promise<R>;
45
44
  export declare function runWithTransactionContext<Client extends UserDatabaseClient, R>(ctx: TransactionContextImpl<Client>, callback: () => Promise<R>): Promise<R>;
46
- export declare function runWithStoredProcContext<R>(ctx: StoredProcedureContextImpl, callback: () => Promise<R>): Promise<R>;
47
45
  export declare function runWithStepContext<R>(ctx: StepContextImpl, callback: () => Promise<R>): Promise<R>;
48
46
  export declare function runWithWorkflowContext<R>(ctx: WorkflowContext, callback: () => Promise<R>): Promise<R>;
49
47
  export interface HTTPRequest {
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/context.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.InitContext = exports.DBOSContextImpl = exports.runWithWorkflowContext = exports.runWithStepContext = exports.runWithStoredProcContext = exports.runWithTransactionContext = exports.runWithTopContext = exports.runWithHandlerContext = exports.runWithDBOSContext = exports.getNextWFID = exports.assertCurrentWorkflowContext = exports.assertCurrentDBOSContext = exports.getCurrentDBOSContext = exports.getCurrentContextStore = exports.asyncLocalCtx = void 0;
3
+ exports.InitContext = exports.DBOSContextImpl = exports.runWithWorkflowContext = exports.runWithStepContext = exports.runWithTransactionContext = exports.runWithTopContext = exports.runWithHandlerContext = exports.runWithDBOSContext = exports.getNextWFID = exports.assertCurrentWorkflowContext = exports.assertCurrentDBOSContext = exports.getCurrentDBOSContext = exports.getCurrentContextStore = exports.asyncLocalCtx = void 0;
4
4
  const logs_1 = require("./telemetry/logs");
5
5
  const lodash_1 = require("lodash");
6
6
  const error_1 = require("./error");
@@ -51,7 +51,8 @@ function assertCurrentDBOSContext() {
51
51
  }
52
52
  exports.assertCurrentDBOSContext = assertCurrentDBOSContext;
53
53
  function assertCurrentWorkflowContext() {
54
- if (!isInWorkflowCtx(exports.asyncLocalCtx.getStore())) {
54
+ const ctxs = getCurrentContextStore();
55
+ if (!ctxs || !isInWorkflowCtx(ctxs)) {
55
56
  throw new error_2.DBOSInvalidWorkflowTransitionError();
56
57
  }
57
58
  const ctx = assertCurrentDBOSContext();
@@ -112,21 +113,6 @@ async function runWithTransactionContext(ctx, callback) {
112
113
  }, callback);
113
114
  }
114
115
  exports.runWithTransactionContext = runWithTransactionContext;
115
- async function runWithStoredProcContext(ctx, callback) {
116
- // Check we are in a workflow context and not in a step / transaction already
117
- const pctx = getCurrentContextStore();
118
- if (!pctx)
119
- throw new error_2.DBOSInvalidWorkflowTransitionError();
120
- if (!isInWorkflowCtx(pctx))
121
- throw new error_2.DBOSInvalidWorkflowTransitionError();
122
- return await exports.asyncLocalCtx.run({
123
- ctx,
124
- workflowId: ctx.workflowUUID,
125
- curTxFunctionId: ctx.functionID,
126
- parentCtx: pctx,
127
- }, callback);
128
- }
129
- exports.runWithStoredProcContext = runWithStoredProcContext;
130
116
  async function runWithStepContext(ctx, callback) {
131
117
  // Check we are in a workflow context and not in a step / transaction already
132
118
  const pctx = getCurrentContextStore();
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/context.ts"],"names":[],"mappings":";;;AACA,2CAAgF;AAChF,mCAA6B;AAK7B,mCAAyE;AACzE,6CAAgD;AAIhD,mCAA6D;AAuB7D,SAAS,mBAAmB,CAAC,GAAiB;IAC5C,IAAI,GAAG,CAAC,UAAU,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAC/C,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,WAAW,CAAC,GAAiB;IACpC,IAAI,GAAG,CAAC,UAAU,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAC/C,IAAI,GAAG,CAAC,iBAAiB;QAAE,OAAO,IAAI,CAAC;IACvC,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,UAAU,CAAC,GAAiB;IACnC,IAAI,GAAG,CAAC,UAAU,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAC/C,IAAI,GAAG,CAAC,eAAe;QAAE,OAAO,IAAI,CAAC;IACrC,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,eAAe,CAAC,GAAiB;IACxC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,WAAW,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IACnC,IAAI,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAClC,OAAO,IAAI,CAAC;AACd,CAAC;AAEY,QAAA,aAAa,GAAG,IAAI,+BAAiB,EAAgB,CAAC;AAEnE,SAAgB,sBAAsB;IACpC,OAAO,qBAAa,CAAC,QAAQ,EAAE,CAAC;AAClC,CAAC;AAFD,wDAEC;AAED,SAAgB,qBAAqB;IACnC,OAAO,qBAAa,CAAC,QAAQ,EAAE,EAAE,GAAG,CAAC;AACvC,CAAC;AAFD,sDAEC;AAED,SAAgB,wBAAwB;IACtC,MAAM,GAAG,GAAG,qBAAa,CAAC,QAAQ,EAAE,EAAE,GAAG,CAAC;IAC1C,IAAI,CAAC,GAAG;QAAE,MAAM,IAAI,8BAAsB,CAAC,yBAAyB,CAAC,CAAC;IACtE,OAAO,GAAG,CAAC;AACb,CAAC;AAJD,4DAIC;AAED,SAAgB,4BAA4B;IAC1C,MAAM,IAAI,GAAG,sBAAsB,EAAE,CAAC;IACtC,IAAI,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,0CAAkC,EAAE,CAAC;IACjD,CAAC;IACD,MAAM,GAAG,GAAG,wBAAwB,EAAE,CAAC;IACvC,OAAO,GAA0B,CAAC;AACpC,CAAC;AAPD,oEAOC;AAED,SAAgB,WAAW,CAAC,UAAmB;IAC7C,IAAI,IAAI,GAAG,UAAU,CAAC;IACtB,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,GAAG,sBAAsB,EAAE,CAAC;QACtC,MAAM,MAAM,GAAG,IAAI,EAAE,yBAAyB,CAAC;QAC/C,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,GAAG,MAAM,CAAC;YACd,IAAI,CAAC,yBAAyB,GAAG,SAAS,CAAC;QAC7C,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAXD,kCAWC;AAEM,KAAK,UAAU,kBAAkB,CAAI,GAAgB,EAAE,QAAwB;IACpF,OAAO,MAAM,qBAAa,CAAC,GAAG,CAAC;QAC7B,GAAG;QACH,yBAAyB,EAAE,GAAG,CAAC,YAAY;QAC3C,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,kBAAkB,EAAE,GAAG,CAAC,kBAAkB;QAC1C,iBAAiB,EAAE,GAAG,CAAC,iBAAiB;QACxC,IAAI,EAAE,GAAG,CAAC,IAAI;KACf,EAAE,QAAQ,CAAC,CAAC;AACf,CAAC;AATD,gDASC;AAEM,KAAK,UAAU,qBAAqB,CAAI,GAAuB,EAAE,QAAwB;IAC9F,OAAO,MAAM,qBAAa,CAAC,GAAG,CAAC;QAC7B,GAAG;QACH,yBAAyB,EAAE,GAAG,CAAC,YAAY;QAC3C,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,kBAAkB,EAAE,GAAG,CAAC,kBAAkB;QAC1C,iBAAiB,EAAE,GAAG,CAAC,iBAAiB;QACxC,IAAI,EAAE,GAAG,CAAC,IAAI;KACf,EAAE,QAAQ,CAAC,CAAC;AACf,CAAC;AATD,sDASC;AAEM,KAAK,UAAU,iBAAiB,CAAI,GAAiB,EAAE,QAAwB;IACpF,OAAO,MAAM,qBAAa,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;AAChD,CAAC;AAFD,8CAEC;AAEM,KAAK,UAAU,yBAAyB,CAAuC,GAAmC,EAAE,QAAwB;IACjJ,6EAA6E;IAC7E,MAAM,IAAI,GAAG,sBAAsB,EAAE,CAAC;IACtC,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,0CAAkC,EAAE,CAAC;IAC1D,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;QAAE,MAAM,IAAI,0CAAkC,EAAE,CAAC;IAC3E,OAAO,MAAM,qBAAa,CAAC,GAAG,CAAC;QAC7B,GAAG;QACH,UAAU,EAAE,GAAG,CAAC,YAAY;QAC5B,eAAe,EAAE,GAAG,CAAC,UAAU;QAC/B,SAAS,EAAE,IAAI;KAChB,EACD,QAAQ,CAAC,CAAC;AACZ,CAAC;AAZD,8DAYC;AAEM,KAAK,UAAU,kBAAkB,CAAI,GAAoB,EAAE,QAAwB;IACxF,6EAA6E;IAC7E,MAAM,IAAI,GAAG,sBAAsB,EAAE,CAAC;IACtC,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,0CAAkC,EAAE,CAAC;IAC1D,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;QAAE,MAAM,IAAI,0CAAkC,EAAE,CAAC;IAE3E,OAAO,MAAM,qBAAa,CAAC,GAAG,CAAC;QAC7B,GAAG;QACH,UAAU,EAAE,GAAG,CAAC,YAAY;QAC5B,iBAAiB,EAAE,GAAG,CAAC,UAAU;QACjC,SAAS,EAAE,IAAI;KAChB,EACD,QAAQ,CAAC,CAAC;AACZ,CAAC;AAbD,gDAaC;AAEM,KAAK,UAAU,sBAAsB,CAAI,GAAoB,EAAE,QAAwB;IAC5F,uDAAuD;IACvD,OAAO,MAAM,qBAAa,CAAC,GAAG,CAAC;QAC7B,GAAG;QACH,UAAU,EAAE,GAAG,CAAC,YAAY;KAC7B,EAAE,QAAQ,CAAC,CAAC;AACf,CAAC;AAND,wDAMC;AA+BD,MAAa,eAAe;IAWL;IAAgC;IAVrD,OAAO,GAAgB,EAAE,CAAC,CAAM,6BAA6B;IAC7D,iBAAiB,GAAW,EAAE,CAAC,CAAK,uCAAuC;IAC3E,kBAAkB,GAAa,EAAE,CAAC,CAAK,qDAAqD;IAC5F,WAAW,GAAW,EAAE,CAAC,CAAM,6EAA6E;IAC5G,YAAY,GAAW,EAAE,CAAC,CAAM,4CAA4C;IAC5E,UAAU,GAAW,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,OAAO,CAAC,CAAE,mEAAmE;IAC5H,kBAAkB,GAAW,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC,yEAAyE;IAC1I,aAAa,GAAW,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC,CAAE,oEAAoE;IACnH,MAAM,CAAa,CAAM,qDAAqD;IAEvF,YAAqB,aAAqB,EAAW,IAAU,EAAE,MAAc,EAAE,SAA2B;QAAvF,kBAAa,GAAb,aAAa,CAAQ;QAAW,SAAI,GAAJ,IAAI,CAAM;QAC7D,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC;YACjC,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC,iBAAiB,CAAC;YACrD,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC,kBAAkB,CAAC;YACvD,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC,WAAW,CAAC;YACzC,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC,YAAY,CAAC;QAC7C,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,IAAI,aAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC7C,CAAC;IAED,mCAAmC;IACnC,iBAAiB,CAAU;IAG3B,SAAS,CAAI,GAAW,EAAE,YAAgB;QACxC,MAAM,KAAK,GAAG,IAAA,YAAG,EAAC,IAAI,CAAC,iBAAiB,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC;QAC7D,sGAAsG;QACtG,IAAI,KAAK,IAAI,YAAY,IAAI,OAAO,KAAK,KAAK,OAAO,YAAY,EAAE,CAAC;YAClE,MAAM,IAAI,8BAAsB,CAAC,GAAG,EAAE,OAAO,YAAY,EAAE,OAAO,KAAK,CAAC,CAAC;QAC3E,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AAlCD,0CAkCC;AAED;;GAEG;AACH,MAAa,WAAW;IAOD;IANZ,MAAM,CAAS;IAExB,0BAA0B;IAClB,YAAY,CAAe;IAC3B,WAAW,CAAU;IAE7B,YAAqB,QAAsB;QAAtB,aAAQ,GAAR,QAAQ,CAAc;QACzC,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;QAC9B,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC;QAC1C,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC;IACjD,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kIAAkI,CAAC,CAAC;QACrJ,OAAO,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC;IAC1C,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kIAAkI,CAAC,CAAC;QACrJ,OAAO,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC;IACxC,CAAC;IAED,WAAW,CAAI,GAAW,EAAE,GAAG,MAAiB;QAC9C,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,CAAC;IACjD,CAAC;IAID,SAAS,CAAI,GAAW,EAAE,YAAgB;QACxC,MAAM,KAAK,GAAG,IAAA,YAAG,EAAC,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC;QACvD,sGAAsG;QACtG,IAAI,KAAK,IAAI,YAAY,IAAI,OAAO,KAAK,KAAK,OAAO,YAAY,EAAE,CAAC;YAClE,MAAM,IAAI,8BAAsB,CAAC,GAAG,EAAE,OAAO,YAAY,EAAE,OAAO,KAAK,CAAC,CAAC;QAC3E,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AArCD,kCAqCC"}
@@ -6,9 +6,9 @@ import { TelemetryCollector } from './telemetry/collector';
6
6
  import { Tracer } from './telemetry/traces';
7
7
  import { GlobalLogger as Logger } from './telemetry/logs';
8
8
  import { TelemetryConfig } from './telemetry';
9
- import { Pool, PoolClient, PoolConfig } from 'pg';
9
+ import { Pool, PoolClient, PoolConfig, QueryResultRow } from 'pg';
10
10
  import { SystemDatabase } from './system_database';
11
- import { UserDatabase, UserDatabaseName, UserDatabaseClient } from './user_database';
11
+ import { UserDatabase, UserDatabaseName } from './user_database';
12
12
  import { MethodRegistrationBase, ConfiguredInstance } from './decorators';
13
13
  import { StoredProcedure, StoredProcedureConfig } from './procedure';
14
14
  import { DBOSEventReceiver, DBOSExecutorContext, GetWorkflowsInput, GetWorkflowsOutput } from ".";
@@ -49,7 +49,7 @@ interface StepRegInfo {
49
49
  registration: MethodRegistrationBase;
50
50
  }
51
51
  interface ProcedureRegInfo {
52
- procedure: StoredProcedure<unknown[], unknown>;
52
+ procedure: StoredProcedure<unknown>;
53
53
  config: StoredProcedureConfig;
54
54
  registration: MethodRegistrationBase;
55
55
  }
@@ -106,6 +106,7 @@ export declare class DBOSExecutor implements DBOSExecutorContext {
106
106
  methodReg: MethodRegistrationBase;
107
107
  }[];
108
108
  init(classes?: object[]): Promise<void>;
109
+ callProcedure<R extends QueryResultRow = any>(proc: StoredProcedure<unknown>, args: unknown[]): Promise<R[]>;
109
110
  destroy(): Promise<void>;
110
111
  getWorkflowInfo(wf: Workflow<unknown[], unknown>): WorkflowRegInfo | undefined;
111
112
  getWorkflowInfoByStatus(wf: WorkflowStatus): {
@@ -122,20 +123,18 @@ export declare class DBOSExecutor implements DBOSExecutorContext {
122
123
  commInfo: StepRegInfo | undefined;
123
124
  clsInst: ConfiguredInstance | null;
124
125
  };
125
- getProcedureClassName<T extends unknown[], R>(pf: StoredProcedure<T, R>): string;
126
- getProcedureInfo<T extends unknown[], R>(pf: StoredProcedure<T, R>): ProcedureRegInfo | undefined;
126
+ getProcedureClassName(pf: StoredProcedure<unknown>): string;
127
+ getProcedureInfo(pf: StoredProcedure<unknown>): ProcedureRegInfo | undefined;
127
128
  workflow<T extends unknown[], R>(wf: Workflow<T, R>, params: InternalWorkflowParams, ...args: T): Promise<WorkflowHandle<R>>;
128
129
  internalWorkflow<T extends unknown[], R>(wf: Workflow<T, R>, params: InternalWorkflowParams, callerUUID?: string, callerFunctionID?: number, ...args: T): Promise<WorkflowHandle<R>>;
129
130
  /**
130
131
  * DEBUG MODE workflow execution, skipping all the recording
131
132
  */
132
133
  debugWorkflow<T extends unknown[], R>(wf: Workflow<T, R>, params: WorkflowParams, callerUUID?: string, callerFunctionID?: number, ...args: T): Promise<WorkflowHandle<R>>;
133
- flushResultBuffer(client: UserDatabaseClient, resultBuffer: Map<number, BufferedResult>, workflowUUID: string): Promise<void>;
134
134
  transaction<T extends unknown[], R>(txn: Transaction<T, R>, params: WorkflowParams, ...args: T): Promise<R>;
135
135
  callTransactionFunction<T extends unknown[], R>(txn: Transaction<T, R>, clsinst: ConfiguredInstance | null, wfCtx: WorkflowContextImpl, ...args: T): Promise<R>;
136
- procedure<T extends unknown[], R>(proc: StoredProcedure<T, R>, params: WorkflowParams, ...args: T): Promise<R>;
137
- callProcedureFunction<T extends unknown[], R>(proc: StoredProcedure<T, R>, wfCtx: WorkflowContextImpl, ...args: T): Promise<R>;
138
- invokeStoredProcFunction<R>(func: (client: PoolClient) => Promise<R>, config: TransactionConfig): Promise<R>;
136
+ procedure<R>(proc: StoredProcedure<R>, params: WorkflowParams, ...args: unknown[]): Promise<R>;
137
+ executeProcedure<R>(func: (client: PoolClient) => Promise<R>, config: TransactionConfig): Promise<R>;
139
138
  external<T extends unknown[], R>(stepFn: StepFunction<T, R>, params: WorkflowParams, ...args: T): Promise<R>;
140
139
  /**
141
140
  * Execute a step function.
@@ -1 +1 @@
1
- {"version":3,"file":"dbos-executor.d.ts","sourceRoot":"","sources":["../../src/dbos-executor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dbos-executor.d.ts","sourceRoot":"","sources":["../../src/dbos-executor.ts"],"names":[],"mappings":"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"}
@@ -24,7 +24,6 @@ const debug_workflow_1 = require("./debugger/debug_workflow");
24
24
  const serialize_error_1 = require("serialize-error");
25
25
  const utils_1 = require("./utils");
26
26
  const node_path_1 = __importDefault(require("node:path"));
27
- const procedure_1 = require("./procedure");
28
27
  const lodash_1 = require("lodash");
29
28
  const wfqueue_1 = require("./wfqueue");
30
29
  const debugpoint_1 = require("./debugpoint");
@@ -353,6 +352,24 @@ class DBOSExecutor {
353
352
  this.logger.error(`Unknown notice severity: ${msg.severity} - ${msg.message}`);
354
353
  }
355
354
  }
355
+ async callProcedure(proc, args) {
356
+ const client = await this.procedurePool.connect();
357
+ const log = (msg) => this.#logNotice(msg);
358
+ const procClassName = this.getProcedureClassName(proc);
359
+ const plainProcName = `${procClassName}_${proc.name}_p`;
360
+ const procName = this.config.appVersion
361
+ ? `v${this.config.appVersion}_${plainProcName}`
362
+ : plainProcName;
363
+ const sql = `CALL "${procName}"(${args.map((_v, i) => `$${i + 1}`).join()});`;
364
+ try {
365
+ client.on('notice', log);
366
+ return await client.query(sql, args).then(value => value.rows);
367
+ }
368
+ finally {
369
+ client.off('notice', log);
370
+ client.release();
371
+ }
372
+ }
356
373
  async destroy() {
357
374
  if (this.pendingWorkflowMap.size > 0) {
358
375
  this.logger.info("Waiting for pending workflows to finish.");
@@ -694,128 +711,6 @@ class DBOSExecutor {
694
711
  });
695
712
  return new workflow_1.InvokedHandle(this.systemDatabase, workflowPromise, workflowUUID, wf.name, callerUUID, callerFunctionID);
696
713
  }
697
- /**
698
- * Retrieve the transaction snapshot information of the current transaction
699
- */
700
- static async #retrieveSnapshot(query) {
701
- const rows = await query("SELECT pg_current_snapshot()::text as txn_snapshot;", []);
702
- return rows[0].txn_snapshot;
703
- }
704
- /**
705
- * Check if an operation has already executed in a workflow.
706
- * If it previously executed successfully, return its output.
707
- * If it previously executed and threw an error, throw that error.
708
- * Otherwise, return DBOSNull.
709
- * Also return the transaction snapshot information of this current transaction.
710
- */
711
- async #checkExecution(query, workflowUUID, funcID) {
712
- // Note: we read the current snapshot, not the recorded one!
713
- const rows = await query("(SELECT output, error, txn_snapshot, true as recorded FROM dbos.transaction_outputs WHERE workflow_uuid=$1 AND function_id=$2 UNION ALL SELECT null as output, null as error, pg_current_snapshot()::text as txn_snapshot, false as recorded) ORDER BY recorded", [workflowUUID, funcID]);
714
- if (rows.length === 0 || rows.length > 2) {
715
- this.logger.error("Unexpected! This should never happen. Returned rows: " + rows.toString());
716
- throw new error_1.DBOSError("This should never happen. Returned rows: " + rows.toString());
717
- }
718
- const res = {
719
- output: exports.dbosNull,
720
- txn_snapshot: ""
721
- };
722
- // recorded=false row will be first because we used ORDER BY.
723
- res.txn_snapshot = rows[0].txn_snapshot;
724
- if (rows.length === 2) {
725
- if (utils_1.DBOSJSON.parse(rows[1].error) !== null) {
726
- throw (0, serialize_error_1.deserializeError)(utils_1.DBOSJSON.parse(rows[1].error));
727
- }
728
- else {
729
- res.output = utils_1.DBOSJSON.parse(rows[1].output);
730
- }
731
- }
732
- return res;
733
- }
734
- /**
735
- * Write a operation's output to the database.
736
- */
737
- static async #recordOutput(query, workflowUUID, funcID, txnSnapshot, output, isKeyConflict) {
738
- try {
739
- const serialOutput = utils_1.DBOSJSON.stringify(output);
740
- const rows = await query("INSERT INTO dbos.transaction_outputs (workflow_uuid, function_id, output, txn_id, txn_snapshot, created_at) VALUES ($1, $2, $3, (select pg_current_xact_id_if_assigned()::text), $4, $5) RETURNING txn_id;", [workflowUUID, funcID, serialOutput, txnSnapshot, Date.now()]);
741
- return rows[0].txn_id;
742
- }
743
- catch (error) {
744
- if (isKeyConflict(error)) {
745
- // Serialization and primary key conflict (Postgres).
746
- throw new error_1.DBOSWorkflowConflictUUIDError(workflowUUID);
747
- }
748
- else {
749
- throw error;
750
- }
751
- }
752
- }
753
- /**
754
- * Record an error in an operation to the database.
755
- */
756
- static async #recordError(query, workflowUUID, funcID, txnSnapshot, err, isKeyConflict) {
757
- try {
758
- const serialErr = utils_1.DBOSJSON.stringify((0, serialize_error_1.serializeError)(err));
759
- await query("INSERT INTO dbos.transaction_outputs (workflow_uuid, function_id, error, txn_id, txn_snapshot, created_at) VALUES ($1, $2, $3, null, $4, $5) RETURNING txn_id;", [workflowUUID, funcID, serialErr, txnSnapshot, Date.now()]);
760
- }
761
- catch (error) {
762
- if (isKeyConflict(error)) {
763
- // Serialization and primary key conflict (Postgres).
764
- throw new error_1.DBOSWorkflowConflictUUIDError(workflowUUID);
765
- }
766
- else {
767
- throw error;
768
- }
769
- }
770
- }
771
- /**
772
- * Write all entries in the workflow result buffer to the database.
773
- * If it encounters a primary key error, this indicates a concurrent execution with the same UUID, so throw an DBOSError.
774
- */
775
- async #flushResultBuffer(query, resultBuffer, workflowUUID, isKeyConflict) {
776
- const funcIDs = Array.from(resultBuffer.keys());
777
- if (funcIDs.length === 0) {
778
- return;
779
- }
780
- funcIDs.sort();
781
- try {
782
- let sqlStmt = "INSERT INTO dbos.transaction_outputs (workflow_uuid, function_id, output, error, txn_id, txn_snapshot, created_at) VALUES ";
783
- let paramCnt = 1;
784
- const values = [];
785
- for (const funcID of funcIDs) {
786
- // Capture output and also transaction snapshot information.
787
- // Initially, no txn_id because no queries executed.
788
- const recorded = resultBuffer.get(funcID);
789
- const output = recorded.output;
790
- const txnSnapshot = recorded.txn_snapshot;
791
- const createdAt = recorded.created_at;
792
- if (paramCnt > 1) {
793
- sqlStmt += ", ";
794
- }
795
- sqlStmt += `($${paramCnt++}, $${paramCnt++}, $${paramCnt++}, $${paramCnt++}, null, $${paramCnt++}, $${paramCnt++})`;
796
- values.push(workflowUUID, funcID, utils_1.DBOSJSON.stringify(output), utils_1.DBOSJSON.stringify(null), txnSnapshot, createdAt);
797
- }
798
- this.logger.debug(sqlStmt);
799
- await query(sqlStmt, values);
800
- }
801
- catch (error) {
802
- if (isKeyConflict(error)) {
803
- // Serialization and primary key conflict (Postgres).
804
- throw new error_1.DBOSWorkflowConflictUUIDError(workflowUUID);
805
- }
806
- else {
807
- throw error;
808
- }
809
- }
810
- }
811
- flushResultBuffer(client, resultBuffer, workflowUUID) {
812
- const func = (sql, args) => this.userDatabase.queryWithClient(client, sql, ...args);
813
- return this.#flushResultBuffer(func, resultBuffer, workflowUUID, (error) => this.userDatabase.isKeyConflictError(error));
814
- }
815
- #flushResultBufferProc(client, resultBuffer, workflowUUID) {
816
- const func = (sql, args) => client.query(sql, args).then(v => v.rows);
817
- return this.#flushResultBuffer(func, resultBuffer, workflowUUID, user_database_1.pgNodeIsKeyConflictError);
818
- }
819
714
  async transaction(txn, params, ...args) {
820
715
  // Create a workflow and call transaction.
821
716
  const temp_workflow = async (ctxt, ...args) => {
@@ -856,8 +751,7 @@ class DBOSExecutor {
856
751
  // If the UUID is preset, it is possible this execution previously happened. Check, and return its original result if it did.
857
752
  // Note: It is possible to retrieve a generated ID from a workflow handle, run a concurrent execution, and cause trouble for yourself. We recommend against this.
858
753
  if (wfCtx.presetUUID) {
859
- const func = (sql, args) => this.userDatabase.queryWithClient(client, sql, ...args);
860
- const check = await this.#checkExecution(func, workflowUUID, funcId);
754
+ const check = await wfCtx.checkTxExecution(client, funcId);
861
755
  txn_snapshot = check.txn_snapshot;
862
756
  if (check.output !== exports.dbosNull) {
863
757
  tCtxt.span.setAttribute("cached", true);
@@ -868,12 +762,11 @@ class DBOSExecutor {
868
762
  }
869
763
  else {
870
764
  // Collect snapshot information for read-only transactions and non-preset UUID transactions, if not already collected above
871
- const func = (sql, args) => this.userDatabase.queryWithClient(client, sql, ...args);
872
- txn_snapshot = await DBOSExecutor.#retrieveSnapshot(func);
765
+ txn_snapshot = await wfCtx.retrieveTxSnapshot(client);
873
766
  }
874
767
  // For non-read-only transactions, flush the result buffer.
875
768
  if (!readOnly) {
876
- await this.flushResultBuffer(client, wfCtx.resultBuffer, wfCtx.workflowUUID);
769
+ await wfCtx.flushResultBuffer(client);
877
770
  }
878
771
  // Execute the user's transaction.
879
772
  let cresult;
@@ -902,8 +795,7 @@ class DBOSExecutor {
902
795
  else {
903
796
  try {
904
797
  // Synchronously record the output of write transactions and obtain the transaction ID.
905
- const func = (sql, args) => this.userDatabase.queryWithClient(client, sql, ...args);
906
- const pg_txn_id = await DBOSExecutor.#recordOutput(func, wfCtx.workflowUUID, funcId, txn_snapshot, result, (error) => this.userDatabase.isKeyConflictError(error));
798
+ const pg_txn_id = await wfCtx.recordOutputTx(client, funcId, txn_snapshot, result);
907
799
  tCtxt.span.setAttribute("pg_txn_id", pg_txn_id);
908
800
  wfCtx.resultBuffer.clear();
909
801
  }
@@ -938,9 +830,8 @@ class DBOSExecutor {
938
830
  // Record and throw other errors.
939
831
  const e = err;
940
832
  await this.userDatabase.transaction(async (client) => {
941
- await this.flushResultBuffer(client, wfCtx.resultBuffer, wfCtx.workflowUUID);
942
- const func = (sql, args) => this.userDatabase.queryWithClient(client, sql, ...args);
943
- await DBOSExecutor.#recordError(func, wfCtx.workflowUUID, funcId, txn_snapshot, e, (error) => this.userDatabase.isKeyConflictError(error));
833
+ await wfCtx.flushResultBuffer(client);
834
+ await wfCtx.recordErrorTx(client, funcId, txn_snapshot, e);
944
835
  }, { isolationLevel: transaction_1.IsolationLevel.ReadCommitted });
945
836
  wfCtx.resultBuffer.clear();
946
837
  span.setStatus({ code: api_1.SpanStatusCode.ERROR, message: e.message });
@@ -953,201 +844,15 @@ class DBOSExecutor {
953
844
  // Create a workflow and call procedure.
954
845
  const temp_workflow = async (ctxt, ...args) => {
955
846
  const ctxtImpl = ctxt;
956
- return this.callProcedureFunction(proc, ctxtImpl, ...args);
847
+ return await ctxtImpl.procedure(proc, ...args);
957
848
  };
958
- return await (await this.workflow(temp_workflow, {
959
- ...params,
849
+ return (await this.workflow(temp_workflow, { ...params,
960
850
  tempWfType: TempWorkflowType.procedure,
961
851
  tempWfName: (0, decorators_1.getRegisteredMethodName)(proc),
962
852
  tempWfClass: (0, decorators_1.getRegisteredMethodClassName)(proc),
963
853
  }, ...args)).getResult();
964
854
  }
965
- async callProcedureFunction(proc, wfCtx, ...args) {
966
- const procInfo = this.getProcedureInfo(proc);
967
- if (procInfo === undefined) {
968
- throw new error_1.DBOSNotRegisteredError(proc.name);
969
- }
970
- const executeLocally = procInfo.config.executeLocally ?? false;
971
- const funcId = wfCtx.functionIDGetIncrement();
972
- const span = this.tracer.startSpan(proc.name, {
973
- operationUUID: wfCtx.workflowUUID,
974
- operationType: exports.OperationType.PROCEDURE,
975
- authenticatedUser: wfCtx.authenticatedUser,
976
- assumedRole: wfCtx.assumedRole,
977
- authenticatedRoles: wfCtx.authenticatedRoles,
978
- readOnly: procInfo.config.readOnly ?? false,
979
- isolationLevel: procInfo.config.isolationLevel,
980
- executeLocally,
981
- }, wfCtx.span);
982
- try {
983
- const result = executeLocally
984
- ? await this.#callProcedureFunctionLocal(proc, args, wfCtx, span, procInfo.config, funcId)
985
- : await this.#callProcedureFunctionRemote(proc, args, wfCtx, span, procInfo.config, funcId);
986
- span.setStatus({ code: api_1.SpanStatusCode.OK });
987
- return result;
988
- }
989
- catch (e) {
990
- const { message } = e;
991
- span.setStatus({ code: api_1.SpanStatusCode.ERROR, message });
992
- throw e;
993
- }
994
- finally {
995
- this.tracer.endSpan(span);
996
- }
997
- }
998
- async #callProcedureFunctionLocal(proc, args, wfCtx, span, config, funcId) {
999
- let retryWaitMillis = 1;
1000
- const backoffFactor = 1.5;
1001
- const maxRetryWaitMs = 2000; // Maximum wait 2 seconds.
1002
- const readOnly = config.readOnly ?? false;
1003
- while (true) {
1004
- let txn_snapshot = "invalid";
1005
- const wrappedProcedure = async (client) => {
1006
- const ctxt = new procedure_1.StoredProcedureContextImpl(client, wfCtx, span, this.logger, funcId, proc.name);
1007
- if (wfCtx.presetUUID) {
1008
- const func = (sql, args) => this.procedurePool.query(sql, args).then(v => v.rows);
1009
- const check = await this.#checkExecution(func, wfCtx.workflowUUID, funcId);
1010
- txn_snapshot = check.txn_snapshot;
1011
- if (check.output !== exports.dbosNull) {
1012
- ctxt.span.setAttribute("cached", true);
1013
- ctxt.span.setStatus({ code: api_1.SpanStatusCode.OK });
1014
- this.tracer.endSpan(ctxt.span);
1015
- return check.output;
1016
- }
1017
- }
1018
- else {
1019
- // Collect snapshot information for read-only transactions and non-preset UUID transactions, if not already collected above
1020
- const func = (sql, args) => this.procedurePool.query(sql, args).then(v => v.rows);
1021
- txn_snapshot = await DBOSExecutor.#retrieveSnapshot(func);
1022
- }
1023
- // For non-read-only transactions, flush the result buffer.
1024
- if (!readOnly) {
1025
- await this.#flushResultBufferProc(client, wfCtx.resultBuffer, wfCtx.workflowUUID);
1026
- }
1027
- let cresult;
1028
- await (0, context_1.runWithStoredProcContext)(ctxt, async () => {
1029
- cresult = await proc(ctxt, ...args);
1030
- });
1031
- const result = cresult;
1032
- if (readOnly) {
1033
- // Buffer the output of read-only transactions instead of synchronously writing it.
1034
- const readOutput = {
1035
- output: result,
1036
- txn_snapshot: txn_snapshot,
1037
- created_at: Date.now(),
1038
- };
1039
- wfCtx.resultBuffer.set(funcId, readOutput);
1040
- }
1041
- else {
1042
- // Synchronously record the output of write transactions and obtain the transaction ID.
1043
- const func = (sql, args) => client.query(sql, args).then(v => v.rows);
1044
- const pg_txn_id = await DBOSExecutor.#recordOutput(func, wfCtx.workflowUUID, funcId, txn_snapshot, result, user_database_1.pgNodeIsKeyConflictError);
1045
- // const pg_txn_id = await wfCtx.recordOutputProc<R>(client, funcId, txn_snapshot, result);
1046
- ctxt.span.setAttribute("pg_txn_id", pg_txn_id);
1047
- wfCtx.resultBuffer.clear();
1048
- }
1049
- return result;
1050
- };
1051
- try {
1052
- const result = await this.invokeStoredProcFunction(wrappedProcedure, { isolationLevel: config.isolationLevel });
1053
- span.setStatus({ code: api_1.SpanStatusCode.OK });
1054
- return result;
1055
- }
1056
- catch (err) {
1057
- if (this.userDatabase.isRetriableTransactionError(err)) {
1058
- // serialization_failure in PostgreSQL
1059
- span.addEvent("TXN SERIALIZATION FAILURE", { "retryWaitMillis": retryWaitMillis }, performance.now());
1060
- // Retry serialization failures.
1061
- await (0, utils_1.sleepms)(retryWaitMillis);
1062
- retryWaitMillis *= backoffFactor;
1063
- retryWaitMillis = retryWaitMillis < maxRetryWaitMs ? retryWaitMillis : maxRetryWaitMs;
1064
- continue;
1065
- }
1066
- // Record and throw other errors.
1067
- const e = err;
1068
- await this.invokeStoredProcFunction(async (client) => {
1069
- await this.#flushResultBufferProc(client, wfCtx.resultBuffer, wfCtx.workflowUUID);
1070
- const func = (sql, args) => client.query(sql, args).then(v => v.rows);
1071
- await DBOSExecutor.#recordError(func, wfCtx.workflowUUID, funcId, txn_snapshot, e, user_database_1.pgNodeIsKeyConflictError);
1072
- }, { isolationLevel: transaction_1.IsolationLevel.ReadCommitted });
1073
- await this.userDatabase.transaction(async (client) => {
1074
- this.flushResultBuffer(client, wfCtx.resultBuffer, wfCtx.workflowUUID);
1075
- const func = (sql, args) => this.userDatabase.queryWithClient(client, sql, ...args);
1076
- await DBOSExecutor.#recordError(func, wfCtx.workflowUUID, funcId, txn_snapshot, e, (error) => this.userDatabase.isKeyConflictError(error));
1077
- }, { isolationLevel: transaction_1.IsolationLevel.ReadCommitted });
1078
- wfCtx.resultBuffer.clear();
1079
- throw err;
1080
- }
1081
- }
1082
- }
1083
- async #callProcedureFunctionRemote(proc, args, wfCtx, span, config, funcId) {
1084
- const readOnly = config.readOnly ?? false;
1085
- const $jsonCtx = {
1086
- request: wfCtx.request,
1087
- authenticatedUser: wfCtx.authenticatedUser,
1088
- authenticatedRoles: wfCtx.authenticatedRoles,
1089
- assumedRole: wfCtx.assumedRole,
1090
- };
1091
- // Note, node-pg converts JS arrays to postgres array literals, so must call JSON.strigify on
1092
- // args and bufferedResults before being passed to #invokeStoredProc
1093
- const $args = [wfCtx.workflowUUID, funcId, wfCtx.presetUUID, $jsonCtx, null, JSON.stringify(args)];
1094
- if (!readOnly) {
1095
- // function_id, output, txn_snapshot, created_at
1096
- const bufferedResults = new Array();
1097
- for (const [functionID, { output, txn_snapshot, created_at }] of wfCtx.resultBuffer.entries()) {
1098
- bufferedResults.push([functionID, output, txn_snapshot, created_at]);
1099
- }
1100
- // sort by function ID
1101
- bufferedResults.sort((a, b) => a[0] - b[0]);
1102
- $args.unshift(bufferedResults.length > 0 ? JSON.stringify(bufferedResults) : null);
1103
- }
1104
- const [{ return_value }] = await this.#invokeStoredProc(proc, $args);
1105
- const { error, output, txn_snapshot, txn_id, created_at } = return_value;
1106
- // buffered results are persisted in r/w stored procs, even if it returns an error
1107
- if (!readOnly) {
1108
- wfCtx.resultBuffer.clear();
1109
- }
1110
- // if the stored proc returns an error, deserialize and throw it.
1111
- // stored proc saves the error in tx_output before returning
1112
- if (error) {
1113
- throw (0, serialize_error_1.deserializeError)(error);
1114
- }
1115
- // if txn_snapshot is provided, the output needs to be buffered
1116
- if (readOnly && txn_snapshot) {
1117
- wfCtx.resultBuffer.set(funcId, {
1118
- output,
1119
- txn_snapshot,
1120
- created_at: created_at ?? Date.now(),
1121
- });
1122
- }
1123
- if (!readOnly) {
1124
- wfCtx.resultBuffer.clear();
1125
- }
1126
- if (txn_id) {
1127
- span.setAttribute("pg_txn_id", txn_id);
1128
- }
1129
- span.setStatus({ code: api_1.SpanStatusCode.OK });
1130
- return output;
1131
- }
1132
- async #invokeStoredProc(proc, args) {
1133
- const client = await this.procedurePool.connect();
1134
- const log = (msg) => this.#logNotice(msg);
1135
- const procClassName = this.getProcedureClassName(proc);
1136
- const plainProcName = `${procClassName}_${proc.name}_p`;
1137
- const procName = this.config.appVersion
1138
- ? `v${this.config.appVersion}_${plainProcName}`
1139
- : plainProcName;
1140
- const sql = `CALL "${procName}"(${args.map((_v, i) => `$${i + 1}`).join()});`;
1141
- try {
1142
- client.on('notice', log);
1143
- return await client.query(sql, args).then(value => value.rows);
1144
- }
1145
- finally {
1146
- client.off('notice', log);
1147
- client.release();
1148
- }
1149
- }
1150
- async invokeStoredProcFunction(func, config) {
855
+ async executeProcedure(func, config) {
1151
856
  const client = await this.procedurePool.connect();
1152
857
  try {
1153
858
  const readOnly = config.readOnly ?? false;
@@ -1206,7 +911,7 @@ class DBOSExecutor {
1206
911
  }, wfCtx.span);
1207
912
  const ctxt = new step_1.StepContextImpl(wfCtx, funcID, span, this.logger, commInfo.config, stepFn.name);
1208
913
  await this.userDatabase.transaction(async (client) => {
1209
- await this.flushResultBuffer(client, wfCtx.resultBuffer, wfCtx.workflowUUID);
914
+ await wfCtx.flushResultBuffer(client);
1210
915
  }, { isolationLevel: transaction_1.IsolationLevel.ReadCommitted });
1211
916
  wfCtx.resultBuffer.clear();
1212
917
  // Check if this execution previously happened, returning its original result if it did.