@dbos-inc/dbos-sdk 1.12.13-preview.g7a8a447e44 → 1.13.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.
- package/dbos-config.schema.json +2 -1
- package/dist/schemas/system_db_schema.d.ts +2 -0
- package/dist/schemas/system_db_schema.d.ts.map +1 -1
- package/dist/src/communicator.d.ts +1 -1
- package/dist/src/communicator.d.ts.map +1 -1
- package/dist/src/communicator.js.map +1 -1
- package/dist/src/context.d.ts +2 -0
- package/dist/src/context.d.ts.map +1 -1
- package/dist/src/context.js +3 -2
- package/dist/src/context.js.map +1 -1
- package/dist/src/dbos-executor.d.ts +27 -11
- package/dist/src/dbos-executor.d.ts.map +1 -1
- package/dist/src/dbos-executor.js +149 -58
- package/dist/src/dbos-executor.js.map +1 -1
- package/dist/src/dbos-runtime/config.d.ts +0 -1
- package/dist/src/dbos-runtime/config.d.ts.map +1 -1
- package/dist/src/dbos-runtime/config.js +2 -4
- package/dist/src/dbos-runtime/config.js.map +1 -1
- package/dist/src/debugger/debug_workflow.d.ts +14 -5
- package/dist/src/debugger/debug_workflow.d.ts.map +1 -1
- package/dist/src/debugger/debug_workflow.js +80 -23
- package/dist/src/debugger/debug_workflow.js.map +1 -1
- package/dist/src/decorators.d.ts +19 -2
- package/dist/src/decorators.d.ts.map +1 -1
- package/dist/src/decorators.js +104 -27
- package/dist/src/decorators.js.map +1 -1
- package/dist/src/httpServer/handler.d.ts +22 -15
- package/dist/src/httpServer/handler.d.ts.map +1 -1
- package/dist/src/httpServer/handler.js +44 -35
- package/dist/src/httpServer/handler.js.map +1 -1
- package/dist/src/httpServer/handlerTypes.d.ts +4 -1
- package/dist/src/httpServer/handlerTypes.d.ts.map +1 -1
- package/dist/src/httpServer/handlerTypes.js +3 -0
- package/dist/src/httpServer/handlerTypes.js.map +1 -1
- package/dist/src/httpServer/server.d.ts.map +1 -1
- package/dist/src/httpServer/server.js +36 -12
- package/dist/src/httpServer/server.js.map +1 -1
- package/dist/src/index.d.ts +1 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +4 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/kafka/kafka.d.ts +2 -3
- package/dist/src/kafka/kafka.d.ts.map +1 -1
- package/dist/src/kafka/kafka.js +2 -13
- package/dist/src/kafka/kafka.js.map +1 -1
- package/dist/src/scheduler/scheduler.d.ts +4 -8
- package/dist/src/scheduler/scheduler.d.ts.map +1 -1
- package/dist/src/scheduler/scheduler.js +2 -9
- package/dist/src/scheduler/scheduler.js.map +1 -1
- package/dist/src/system_database.d.ts +4 -0
- package/dist/src/system_database.d.ts.map +1 -1
- package/dist/src/system_database.js +102 -34
- package/dist/src/system_database.js.map +1 -1
- package/dist/src/telemetry/logs.d.ts.map +1 -1
- package/dist/src/telemetry/logs.js +13 -10
- package/dist/src/telemetry/logs.js.map +1 -1
- package/dist/src/telemetry/traces.d.ts +1 -0
- package/dist/src/telemetry/traces.d.ts.map +1 -1
- package/dist/src/telemetry/traces.js +5 -2
- package/dist/src/telemetry/traces.js.map +1 -1
- package/dist/src/testing/testing_runtime.d.ts +9 -5
- package/dist/src/testing/testing_runtime.d.ts.map +1 -1
- package/dist/src/testing/testing_runtime.js +24 -12
- package/dist/src/testing/testing_runtime.js.map +1 -1
- package/dist/src/transaction.d.ts +1 -1
- package/dist/src/transaction.d.ts.map +1 -1
- package/dist/src/utils.d.ts +6 -12
- package/dist/src/utils.d.ts.map +1 -1
- package/dist/src/utils.js +30 -13
- package/dist/src/utils.js.map +1 -1
- package/dist/src/workflow.d.ts +46 -10
- package/dist/src/workflow.d.ts.map +1 -1
- package/dist/src/workflow.js +78 -26
- package/dist/src/workflow.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/migrations/20240517000000_status_class_config.js +18 -0
- package/package.json +2 -2
- package/dist/src/dbos-runtime/applicationVersion.d.ts +0 -3
- package/dist/src/dbos-runtime/applicationVersion.d.ts.map +0 -1
- package/dist/src/dbos-runtime/applicationVersion.js +0 -13
- package/dist/src/dbos-runtime/applicationVersion.js.map +0 -1
package/dbos-config.schema.json
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"system_db_schema.d.ts","sourceRoot":"","sources":["../../schemas/system_db_schema.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,kBAAkB,EAAE,MAAM,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,gBAAgB,EAAE,MAAM,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,iBAAiB;IAChC,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;CACvB"}
|
1
|
+
{"version":3,"file":"system_db_schema.d.ts","sourceRoot":"","sources":["../../schemas/system_db_schema.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,gBAAgB,EAAE,MAAM,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,iBAAiB;IAChC,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;CACvB"}
|
@@ -3,7 +3,7 @@ import { GlobalLogger as Logger } from "./telemetry/logs";
|
|
3
3
|
import { WorkflowContextImpl } from "./workflow";
|
4
4
|
import { DBOSContext, DBOSContextImpl } from "./context";
|
5
5
|
import { WorkflowContextDebug } from "./debugger/debug_workflow";
|
6
|
-
export type Communicator<T extends
|
6
|
+
export type Communicator<T extends unknown[], R> = (ctxt: CommunicatorContext, ...args: T) => Promise<R>;
|
7
7
|
export interface CommunicatorConfig {
|
8
8
|
retriesAllowed?: boolean;
|
9
9
|
intervalSeconds?: number;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"communicator.d.ts","sourceRoot":"","sources":["../../src/communicator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,+BAA+B,CAAC;AACrD,OAAO,EAAE,YAAY,IAAI,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;
|
1
|
+
{"version":3,"file":"communicator.d.ts","sourceRoot":"","sources":["../../src/communicator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,+BAA+B,CAAC;AACrD,OAAO,EAAE,YAAY,IAAI,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,mBAAmB,EAAE,GAAG,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;AAEzG,MAAM,WAAW,kBAAkB;IACjC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,mBAAoB,SAAQ,WAAW;IAEtD,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED,qBAAa,uBAAwB,SAAQ,eAAgB,YAAW,mBAAmB;IACzF,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;gBAGjB,eAAe,EAAE,mBAAmB,GAAG,oBAAoB,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EACpH,MAAM,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM;CAUhD"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"communicator.js","sourceRoot":"","sources":["../../src/communicator.ts"],"names":[],"mappings":";;;AAGA,uCAAyD;
|
1
|
+
{"version":3,"file":"communicator.js","sourceRoot":"","sources":["../../src/communicator.ts"],"names":[],"mappings":";;;AAGA,uCAAyD;AAkBzD,MAAa,uBAAwB,SAAQ,yBAAe;IACjD,UAAU,CAAS;IACnB,cAAc,CAAU;IACxB,eAAe,CAAS;IACxB,WAAW,CAAS;IACpB,WAAW,CAAS;IAE7B,iCAAiC;IACjC,YAAY,eAA2D,EAAE,UAAkB,EAAE,IAAU,EAAE,MAAc,EACpH,MAA0B,EAAE,QAAgB;QAE7C,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC;QAC/C,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,IAAI,IAAI,CAAC;QACpD,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,eAAe,IAAI,CAAC,CAAC;QACnD,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,CAAC,CAAC;QAC3C,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,CAAC,CAAC;QAC3C,IAAI,CAAC,iBAAiB,GAAG,eAAe,CAAC,iBAAiB,CAAC;IAC7D,CAAC;CACF;AAnBD,0DAmBC"}
|
package/dist/src/context.d.ts
CHANGED
@@ -38,6 +38,8 @@ export declare class DBOSContextImpl implements DBOSContext {
|
|
38
38
|
assumedRole: string;
|
39
39
|
workflowUUID: string;
|
40
40
|
executorID: string;
|
41
|
+
applicationVersion: string;
|
42
|
+
applicationID: string;
|
41
43
|
readonly logger: DBOSLogger;
|
42
44
|
constructor(operationName: string, span: Span, logger: Logger, parentCtx?: DBOSContextImpl);
|
43
45
|
/*** Application configuration ***/
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/context.ts"],"names":[],"mappings":";;;AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,+BAA+B,CAAC;AACrD,OAAO,EAAE,YAAY,IAAI,MAAM,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEhF,OAAO,EAAE,mBAAmB,EAAE,MAAM,MAAM,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAI/C,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE,mBAAmB,CAAC;IACvC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,EAAE,CAAC;IACtC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IAEpB,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS,CAAC;IACzC,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,GAAG,CAAC,CAAC;CAC/C;AAED,qBAAa,eAAgB,YAAW,WAAW;
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/context.ts"],"names":[],"mappings":"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"}
|
package/dist/src/context.js
CHANGED
@@ -12,7 +12,9 @@ class DBOSContextImpl {
|
|
12
12
|
authenticatedRoles = []; // All roles the user has according to authentication
|
13
13
|
assumedRole = ""; // Role in use - that user has and provided authorization to current function
|
14
14
|
workflowUUID = ""; // Workflow UUID. Empty for HandlerContexts.
|
15
|
-
executorID = "local"; // Executor ID. Gathered from
|
15
|
+
executorID = process.env.DBOS__VMID || "local"; // Executor ID. Gathered from the environment and "local" otherwise
|
16
|
+
applicationVersion = process.env.DBOS__APPVERSION || ""; // Application version. Gathered from the environment and empty otherwise
|
17
|
+
applicationID = process.env.DBOS__APPID || ""; // Application ID. Gathered from the environment and empty otherwise
|
16
18
|
logger; // Wrapper around the global logger for this context.
|
17
19
|
constructor(operationName, span, logger, parentCtx) {
|
18
20
|
this.operationName = operationName;
|
@@ -23,7 +25,6 @@ class DBOSContextImpl {
|
|
23
25
|
this.authenticatedRoles = parentCtx.authenticatedRoles;
|
24
26
|
this.assumedRole = parentCtx.assumedRole;
|
25
27
|
this.workflowUUID = parentCtx.workflowUUID;
|
26
|
-
this.executorID = parentCtx.executorID;
|
27
28
|
}
|
28
29
|
this.logger = new logs_1.Logger(logger, this);
|
29
30
|
}
|
package/dist/src/context.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/context.ts"],"names":[],"mappings":";;;AACA,2CAAgF;AAChF,mCAA6B;AAK7B,mCAAiD;AA8BjD,MAAa,eAAe;
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/context.ts"],"names":[],"mappings":"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"}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
/// <reference types="node" />
|
2
|
-
import { Workflow, WorkflowConfig, WorkflowHandle, WorkflowParams, BufferedResult } from './workflow';
|
2
|
+
import { Workflow, WorkflowConfig, WorkflowHandle, WorkflowParams, WorkflowStatus, BufferedResult } from './workflow';
|
3
3
|
import { Transaction, TransactionConfig } from './transaction';
|
4
4
|
import { CommunicatorConfig, Communicator } from './communicator';
|
5
5
|
import { TelemetryCollector } from './telemetry/collector';
|
@@ -9,7 +9,7 @@ import { TelemetryConfig } from './telemetry';
|
|
9
9
|
import { PoolConfig } from 'pg';
|
10
10
|
import { SystemDatabase } from './system_database';
|
11
11
|
import { UserDatabase, UserDatabaseName } from './user_database';
|
12
|
-
import { MethodRegistrationBase } from './decorators';
|
12
|
+
import { MethodRegistrationBase, ConfiguredInstance } from './decorators';
|
13
13
|
export interface DBOSNull {
|
14
14
|
}
|
15
15
|
export declare const dbosNull: DBOSNull;
|
@@ -29,20 +29,21 @@ export interface DBOSConfig {
|
|
29
29
|
};
|
30
30
|
}
|
31
31
|
interface WorkflowInfo {
|
32
|
-
workflow: Workflow<
|
32
|
+
workflow: Workflow<unknown[], unknown>;
|
33
33
|
config: WorkflowConfig;
|
34
34
|
}
|
35
35
|
interface TransactionInfo {
|
36
|
-
transaction: Transaction<
|
36
|
+
transaction: Transaction<unknown[], unknown>;
|
37
37
|
config: TransactionConfig;
|
38
38
|
}
|
39
39
|
interface CommunicatorInfo {
|
40
|
-
communicator: Communicator<
|
40
|
+
communicator: Communicator<unknown[], unknown>;
|
41
41
|
config: CommunicatorConfig;
|
42
42
|
}
|
43
43
|
interface InternalWorkflowParams extends WorkflowParams {
|
44
44
|
readonly tempWfType?: string;
|
45
45
|
readonly tempWfName?: string;
|
46
|
+
readonly tempWfClass?: string;
|
46
47
|
}
|
47
48
|
export declare const OperationType: {
|
48
49
|
readonly HANDLER: "handler";
|
@@ -78,14 +79,29 @@ export declare class DBOSExecutor {
|
|
78
79
|
configureDbClient(): void;
|
79
80
|
init(...classes: object[]): Promise<void>;
|
80
81
|
destroy(): Promise<void>;
|
81
|
-
|
82
|
-
|
82
|
+
getWorkflowInfo(wf: Workflow<unknown[], unknown>): WorkflowInfo | undefined;
|
83
|
+
getWorkflowInfoByStatus(wf: WorkflowStatus): {
|
84
|
+
wfInfo: WorkflowInfo | undefined;
|
85
|
+
configuredInst: ConfiguredInstance | null;
|
86
|
+
};
|
87
|
+
getTransactionInfo(tf: Transaction<unknown[], unknown>): TransactionInfo | undefined;
|
88
|
+
getTransactionInfoByNames(className: string, functionName: string, cfgName: string): {
|
89
|
+
txnInfo: TransactionInfo | undefined;
|
90
|
+
clsInst: ConfiguredInstance | null;
|
91
|
+
};
|
92
|
+
getCommunicatorInfo(cf: Communicator<unknown[], unknown>): CommunicatorInfo | undefined;
|
93
|
+
getCommunicatorInfoByNames(className: string, functionName: string, cfgName: string): {
|
94
|
+
commInfo: CommunicatorInfo | undefined;
|
95
|
+
clsInst: ConfiguredInstance | null;
|
96
|
+
};
|
97
|
+
workflow<T extends unknown[], R>(wf: Workflow<T, R>, params: InternalWorkflowParams, ...args: T): Promise<WorkflowHandle<R>>;
|
98
|
+
internalWorkflow<T extends unknown[], R>(wf: Workflow<T, R>, params: InternalWorkflowParams, callerUUID?: string, callerFunctionID?: number, ...args: T): Promise<WorkflowHandle<R>>;
|
83
99
|
/**
|
84
100
|
* DEBUG MODE workflow execution, skipping all the recording
|
85
101
|
*/
|
86
|
-
debugWorkflow<T extends
|
87
|
-
transaction<T extends
|
88
|
-
external<T extends
|
102
|
+
debugWorkflow<T extends unknown[], R>(wf: Workflow<T, R>, params: WorkflowParams, callerUUID?: string, callerFunctionID?: number, ...args: T): Promise<WorkflowHandle<R>>;
|
103
|
+
transaction<T extends unknown[], R>(txn: Transaction<T, R>, params: WorkflowParams, ...args: T): Promise<R>;
|
104
|
+
external<T extends unknown[], R>(commFn: Communicator<T, R>, params: WorkflowParams, ...args: T): Promise<R>;
|
89
105
|
send<T>(destinationUUID: string, message: T, topic?: string, idempotencyKey?: string): Promise<void>;
|
90
106
|
/**
|
91
107
|
* Wait for a workflow to emit an event, then return its value.
|
@@ -99,7 +115,7 @@ export declare class DBOSExecutor {
|
|
99
115
|
* A recovery process that by default runs during executor init time.
|
100
116
|
* It runs to completion all pending workflows that were executing when the previous executor failed.
|
101
117
|
*/
|
102
|
-
recoverPendingWorkflows(executorIDs?: string[]): Promise<WorkflowHandle<
|
118
|
+
recoverPendingWorkflows(executorIDs?: string[]): Promise<WorkflowHandle<unknown>[]>;
|
103
119
|
executeWorkflowUUID(workflowUUID: string): Promise<WorkflowHandle<unknown>>;
|
104
120
|
/**
|
105
121
|
* Periodically flush the workflow output buffer to the system database.
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"dbos-executor.d.ts","sourceRoot":"","sources":["../../src/dbos-executor.ts"],"names":[],"mappings":";
|
1
|
+
{"version":3,"file":"dbos-executor.d.ts","sourceRoot":"","sources":["../../src/dbos-executor.ts"],"names":[],"mappings":"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"}
|
@@ -191,19 +191,13 @@ class DBOSExecutor {
|
|
191
191
|
this.registeredOperations.push(...registeredClassOperations);
|
192
192
|
for (const ro of registeredClassOperations) {
|
193
193
|
if (ro.workflowConfig) {
|
194
|
-
|
195
|
-
this.#registerWorkflow(wf, { ...ro.workflowConfig });
|
196
|
-
this.logger.debug(`Registered workflow ${ro.name}`);
|
194
|
+
this.#registerWorkflow(ro);
|
197
195
|
}
|
198
196
|
else if (ro.txnConfig) {
|
199
|
-
|
200
|
-
this.#registerTransaction(tx, ro.txnConfig);
|
201
|
-
this.logger.debug(`Registered transaction ${ro.name}`);
|
197
|
+
this.#registerTransaction(ro);
|
202
198
|
}
|
203
199
|
else if (ro.commConfig) {
|
204
|
-
|
205
|
-
this.#registerCommunicator(comm, ro.commConfig);
|
206
|
-
this.logger.debug(`Registered communicator ${ro.name}`);
|
200
|
+
this.#registerCommunicator(ro);
|
207
201
|
}
|
208
202
|
}
|
209
203
|
}
|
@@ -242,6 +236,13 @@ class DBOSExecutor {
|
|
242
236
|
this.initialized = true;
|
243
237
|
// Only execute init code if under non-debug mode
|
244
238
|
if (!this.debugMode) {
|
239
|
+
for (const cls of classes) {
|
240
|
+
// Init its configurations
|
241
|
+
const creg = (0, decorators_1.getOrCreateClassRegistration)(cls);
|
242
|
+
for (const [_cfgname, cfg] of creg.configuredInstances) {
|
243
|
+
await cfg.initialize(new context_1.InitContext(this));
|
244
|
+
}
|
245
|
+
}
|
245
246
|
for (const v of this.registeredOperations) {
|
246
247
|
const m = v;
|
247
248
|
if (m.init === true) {
|
@@ -271,35 +272,112 @@ class DBOSExecutor {
|
|
271
272
|
await this.logger.destroy();
|
272
273
|
}
|
273
274
|
/* WORKFLOW OPERATIONS */
|
274
|
-
#registerWorkflow(
|
275
|
-
|
276
|
-
|
275
|
+
#registerWorkflow(ro) {
|
276
|
+
const wf = ro.registeredFunction;
|
277
|
+
if (wf.name === DBOSExecutor.tempWorkflowName) {
|
278
|
+
throw new error_1.DBOSError(`Unexpected use of reserved workflow name: ${wf.name}`);
|
279
|
+
}
|
280
|
+
const wfn = ro.className + '.' + ro.name;
|
281
|
+
if (this.workflowInfoMap.has(wfn)) {
|
282
|
+
throw new error_1.DBOSError(`Repeated workflow name: ${wfn}`);
|
277
283
|
}
|
278
284
|
const workflowInfo = {
|
279
285
|
workflow: wf,
|
280
|
-
config:
|
286
|
+
config: { ...ro.workflowConfig },
|
281
287
|
};
|
282
|
-
this.workflowInfoMap.set(
|
288
|
+
this.workflowInfoMap.set(wfn, workflowInfo);
|
289
|
+
this.logger.debug(`Registered workflow ${wfn}`);
|
283
290
|
}
|
284
|
-
#registerTransaction(
|
285
|
-
|
286
|
-
|
291
|
+
#registerTransaction(ro) {
|
292
|
+
const txf = ro.registeredFunction;
|
293
|
+
const tfn = ro.className + '.' + ro.name;
|
294
|
+
if (this.transactionInfoMap.has(tfn)) {
|
295
|
+
throw new error_1.DBOSError(`Repeated Transaction name: ${tfn}`);
|
287
296
|
}
|
288
297
|
const txnInfo = {
|
289
|
-
transaction:
|
290
|
-
config:
|
298
|
+
transaction: txf,
|
299
|
+
config: { ...ro.txnConfig },
|
291
300
|
};
|
292
|
-
this.transactionInfoMap.set(
|
301
|
+
this.transactionInfoMap.set(tfn, txnInfo);
|
302
|
+
this.logger.debug(`Registered transaction ${tfn}`);
|
293
303
|
}
|
294
|
-
#registerCommunicator(
|
295
|
-
|
296
|
-
|
304
|
+
#registerCommunicator(ro) {
|
305
|
+
const comm = ro.registeredFunction;
|
306
|
+
const cfn = ro.className + '.' + ro.name;
|
307
|
+
if (this.communicatorInfoMap.has(cfn)) {
|
308
|
+
throw new error_1.DBOSError(`Repeated Commmunicator name: ${cfn}`);
|
297
309
|
}
|
298
310
|
const commInfo = {
|
299
311
|
communicator: comm,
|
300
|
-
config:
|
312
|
+
config: { ...ro.commConfig },
|
301
313
|
};
|
302
|
-
this.communicatorInfoMap.set(
|
314
|
+
this.communicatorInfoMap.set(cfn, commInfo);
|
315
|
+
this.logger.debug(`Registered communicator ${cfn}`);
|
316
|
+
}
|
317
|
+
getWorkflowInfo(wf) {
|
318
|
+
const wfname = (wf.name === DBOSExecutor.tempWorkflowName)
|
319
|
+
? wf.name
|
320
|
+
: (0, decorators_1.getRegisteredMethodClassName)(wf) + '.' + wf.name;
|
321
|
+
return this.workflowInfoMap.get(wfname);
|
322
|
+
}
|
323
|
+
getWorkflowInfoByStatus(wf) {
|
324
|
+
const wfname = wf.workflowClassName + '.' + wf.workflowName;
|
325
|
+
let wfInfo = this.workflowInfoMap.get(wfname);
|
326
|
+
if (!wfInfo && !wf.workflowClassName) {
|
327
|
+
for (const [_wfn, wfr] of this.workflowInfoMap) {
|
328
|
+
if (wf.workflowName === wfr.workflow.name) {
|
329
|
+
if (wfInfo) {
|
330
|
+
throw new error_1.DBOSError(`Recovered workflow function name '${wf.workflowName}' is ambiguous. The ambiguous name was recently added; remove it and recover pending workflows before re-adding the new function.`);
|
331
|
+
}
|
332
|
+
else {
|
333
|
+
wfInfo = wfr;
|
334
|
+
}
|
335
|
+
}
|
336
|
+
}
|
337
|
+
}
|
338
|
+
return { wfInfo, configuredInst: (0, decorators_1.getConfiguredInstance)(wf.workflowClassName, wf.workflowConfigName) };
|
339
|
+
}
|
340
|
+
getTransactionInfo(tf) {
|
341
|
+
const tfname = (0, decorators_1.getRegisteredMethodClassName)(tf) + '.' + tf.name;
|
342
|
+
return this.transactionInfoMap.get(tfname);
|
343
|
+
}
|
344
|
+
getTransactionInfoByNames(className, functionName, cfgName) {
|
345
|
+
const tfname = className + '.' + functionName;
|
346
|
+
let txnInfo = this.transactionInfoMap.get(tfname);
|
347
|
+
if (!txnInfo && !className) {
|
348
|
+
for (const [_wfn, tfr] of this.transactionInfoMap) {
|
349
|
+
if (functionName === tfr.transaction.name) {
|
350
|
+
if (txnInfo) {
|
351
|
+
throw new error_1.DBOSError(`Recovered transaction function name '${functionName}' is ambiguous. The ambiguous name was recently added; remove it and recover pending workflows before re-adding the new function.`);
|
352
|
+
}
|
353
|
+
else {
|
354
|
+
txnInfo = tfr;
|
355
|
+
}
|
356
|
+
}
|
357
|
+
}
|
358
|
+
}
|
359
|
+
return { txnInfo, clsInst: (0, decorators_1.getConfiguredInstance)(className, cfgName) };
|
360
|
+
}
|
361
|
+
getCommunicatorInfo(cf) {
|
362
|
+
const cfname = (0, decorators_1.getRegisteredMethodClassName)(cf) + '.' + cf.name;
|
363
|
+
return this.communicatorInfoMap.get(cfname);
|
364
|
+
}
|
365
|
+
getCommunicatorInfoByNames(className, functionName, cfgName) {
|
366
|
+
const cfname = className + '.' + functionName;
|
367
|
+
let commInfo = this.communicatorInfoMap.get(cfname);
|
368
|
+
if (!commInfo && !className) {
|
369
|
+
for (const [_wfn, cfr] of this.communicatorInfoMap) {
|
370
|
+
if (functionName === cfr.communicator.name) {
|
371
|
+
if (commInfo) {
|
372
|
+
throw new error_1.DBOSError(`Recovered communicator function name '${functionName}' is ambiguous. The ambiguous name was recently added; remove it and recover pending workflows before re-adding the new function.`);
|
373
|
+
}
|
374
|
+
else {
|
375
|
+
commInfo = cfr;
|
376
|
+
}
|
377
|
+
}
|
378
|
+
}
|
379
|
+
}
|
380
|
+
return { commInfo, clsInst: (0, decorators_1.getConfiguredInstance)(className, cfgName) };
|
303
381
|
}
|
304
382
|
async workflow(wf, params, ...args) {
|
305
383
|
if (this.debugMode) {
|
@@ -311,20 +389,18 @@ class DBOSExecutor {
|
|
311
389
|
async internalWorkflow(wf, params, callerUUID, callerFunctionID, ...args) {
|
312
390
|
const workflowUUID = params.workflowUUID ? params.workflowUUID : this.#generateUUID();
|
313
391
|
const presetUUID = params.workflowUUID ? true : false;
|
314
|
-
const wInfo = this.
|
392
|
+
const wInfo = this.getWorkflowInfo(wf);
|
315
393
|
if (wInfo === undefined) {
|
316
394
|
throw new error_1.DBOSNotRegisteredError(wf.name);
|
317
395
|
}
|
318
396
|
const wConfig = wInfo.config;
|
319
397
|
const wCtxt = new workflow_1.WorkflowContextImpl(this, params.parentCtx, workflowUUID, wConfig, wf.name, presetUUID, params.tempWfType, params.tempWfName);
|
320
|
-
// If running in DBOS Cloud, set the executor ID
|
321
|
-
if (process.env.DBOS__VMID) {
|
322
|
-
wCtxt.executorID = process.env.DBOS__VMID;
|
323
|
-
}
|
324
398
|
const internalStatus = {
|
325
399
|
workflowUUID: workflowUUID,
|
326
400
|
status: workflow_1.StatusString.PENDING,
|
327
401
|
name: wf.name,
|
402
|
+
className: wCtxt.isTempWorkflow ? "" : (0, decorators_1.getRegisteredMethodClassName)(wf),
|
403
|
+
configName: params.configuredInstance?.name || "",
|
328
404
|
authenticatedUser: wCtxt.authenticatedUser,
|
329
405
|
output: undefined,
|
330
406
|
error: "",
|
@@ -332,10 +408,13 @@ class DBOSExecutor {
|
|
332
408
|
authenticatedRoles: wCtxt.authenticatedRoles,
|
333
409
|
request: wCtxt.request,
|
334
410
|
executorID: wCtxt.executorID,
|
335
|
-
|
411
|
+
applicationVersion: wCtxt.applicationVersion,
|
412
|
+
applicationID: wCtxt.applicationID,
|
413
|
+
createdAt: Date.now(), // Remember the start time of this workflow
|
336
414
|
};
|
337
415
|
if (wCtxt.isTempWorkflow) {
|
338
416
|
internalStatus.name = `${DBOSExecutor.tempWorkflowName}-${wCtxt.tempWfOperationType}-${wCtxt.tempWfOperationName}`;
|
417
|
+
internalStatus.className = params.tempWfClass ?? "";
|
339
418
|
}
|
340
419
|
// Synchronously set the workflow's status to PENDING and record workflow inputs (for non single-transaction workflows).
|
341
420
|
// We have to do it for all types of workflows because operation_outputs table has a foreign key constraint on workflow status table.
|
@@ -346,7 +425,7 @@ class DBOSExecutor {
|
|
346
425
|
let result;
|
347
426
|
// Execute the workflow.
|
348
427
|
try {
|
349
|
-
result = await wf(wCtxt, ...args);
|
428
|
+
result = await wf.call(params.configuredInstance, wCtxt, ...args);
|
350
429
|
internalStatus.output = result;
|
351
430
|
internalStatus.status = workflow_1.StatusString.SUCCESS;
|
352
431
|
this.systemDatabase.bufferWorkflowOutput(workflowUUID, internalStatus);
|
@@ -367,7 +446,7 @@ class DBOSExecutor {
|
|
367
446
|
if (wCtxt.isTempWorkflow) {
|
368
447
|
internalStatus.name = `${DBOSExecutor.tempWorkflowName}-${wCtxt.tempWfOperationType}-${wCtxt.tempWfOperationName}`;
|
369
448
|
}
|
370
|
-
internalStatus.error =
|
449
|
+
internalStatus.error = utils_1.DBOSJSON.stringify((0, serialize_error_1.serializeError)(e));
|
371
450
|
internalStatus.status = workflow_1.StatusString.ERROR;
|
372
451
|
await this.systemDatabase.recordWorkflowError(workflowUUID, internalStatus);
|
373
452
|
// TODO: Log errors, but not in the tests when they're expected.
|
@@ -412,7 +491,7 @@ class DBOSExecutor {
|
|
412
491
|
throw new error_1.DBOSDebuggerError("Workflow UUID not found!");
|
413
492
|
}
|
414
493
|
const workflowUUID = params.workflowUUID;
|
415
|
-
const wInfo = this.
|
494
|
+
const wInfo = this.getWorkflowInfo(wf);
|
416
495
|
if (wInfo === undefined) {
|
417
496
|
throw new error_1.DBOSDebuggerError("Workflow unregistered! " + wf.name);
|
418
497
|
}
|
@@ -425,18 +504,18 @@ class DBOSExecutor {
|
|
425
504
|
throw new error_1.DBOSDebuggerError("Workflow status or inputs not found! UUID: " + workflowUUID);
|
426
505
|
}
|
427
506
|
// Make sure we use the same input.
|
428
|
-
if (
|
429
|
-
throw new error_1.DBOSDebuggerError(`Detect different input for the workflow UUID ${workflowUUID}!\n Received: ${
|
507
|
+
if (utils_1.DBOSJSON.stringify(args) !== utils_1.DBOSJSON.stringify(recordedInputs)) {
|
508
|
+
throw new error_1.DBOSDebuggerError(`Detect different input for the workflow UUID ${workflowUUID}!\n Received: ${utils_1.DBOSJSON.stringify(args)}\n Original: ${utils_1.DBOSJSON.stringify(recordedInputs)}`);
|
430
509
|
}
|
431
|
-
const workflowPromise = wf(wCtxt, ...args)
|
510
|
+
const workflowPromise = wf.call(params.configuredInstance, wCtxt, ...args)
|
432
511
|
.then(async (result) => {
|
433
512
|
// Check if the result is the same.
|
434
513
|
const recordedResult = await this.systemDatabase.getWorkflowResult(workflowUUID);
|
435
514
|
if (result === undefined && !recordedResult) {
|
436
515
|
return result;
|
437
516
|
}
|
438
|
-
if (
|
439
|
-
this.logger.error(`Detect different output for the workflow UUID ${workflowUUID}!\n Received: ${
|
517
|
+
if (utils_1.DBOSJSON.stringify(result) !== utils_1.DBOSJSON.stringify(recordedResult)) {
|
518
|
+
this.logger.error(`Detect different output for the workflow UUID ${workflowUUID}!\n Received: ${utils_1.DBOSJSON.stringify(result)}\n Original: ${utils_1.DBOSJSON.stringify(recordedResult)}`);
|
440
519
|
}
|
441
520
|
return recordedResult; // Always return the recorded result.
|
442
521
|
});
|
@@ -446,17 +525,27 @@ class DBOSExecutor {
|
|
446
525
|
// Create a workflow and call transaction.
|
447
526
|
const temp_workflow = async (ctxt, ...args) => {
|
448
527
|
const ctxtImpl = ctxt;
|
449
|
-
return await ctxtImpl.transaction(txn, ...args);
|
528
|
+
return await ctxtImpl.transaction(txn, params.configuredInstance ?? null, ...args);
|
450
529
|
};
|
451
|
-
return (await this.workflow(temp_workflow, {
|
530
|
+
return (await this.workflow(temp_workflow, {
|
531
|
+
...params,
|
532
|
+
tempWfType: TempWorkflowType.transaction,
|
533
|
+
tempWfName: (0, decorators_1.getRegisteredMethodName)(txn),
|
534
|
+
tempWfClass: (0, decorators_1.getRegisteredMethodClassName)(txn),
|
535
|
+
}, ...args)).getResult();
|
452
536
|
}
|
453
537
|
async external(commFn, params, ...args) {
|
454
538
|
// Create a workflow and call external.
|
455
539
|
const temp_workflow = async (ctxt, ...args) => {
|
456
540
|
const ctxtImpl = ctxt;
|
457
|
-
return await ctxtImpl.external(commFn, ...args);
|
541
|
+
return await ctxtImpl.external(commFn, params.configuredInstance ?? null, ...args);
|
458
542
|
};
|
459
|
-
return (await this.workflow(temp_workflow, {
|
543
|
+
return (await this.workflow(temp_workflow, {
|
544
|
+
...params,
|
545
|
+
tempWfType: TempWorkflowType.external,
|
546
|
+
tempWfName: (0, decorators_1.getRegisteredMethodName)(commFn),
|
547
|
+
tempWfClass: (0, decorators_1.getRegisteredMethodClassName)(commFn),
|
548
|
+
}, ...args)).getResult();
|
460
549
|
}
|
461
550
|
async send(destinationUUID, message, topic, idempotencyKey) {
|
462
551
|
// Create a workflow and call send.
|
@@ -464,7 +553,7 @@ class DBOSExecutor {
|
|
464
553
|
return await ctxt.send(destinationUUID, message, topic);
|
465
554
|
};
|
466
555
|
const workflowUUID = idempotencyKey ? destinationUUID + idempotencyKey : undefined;
|
467
|
-
return (await this.workflow(temp_workflow, { workflowUUID: workflowUUID, tempWfType: TempWorkflowType.send }, destinationUUID, message, topic)).getResult();
|
556
|
+
return (await this.workflow(temp_workflow, { workflowUUID: workflowUUID, tempWfType: TempWorkflowType.send, configuredInstance: null }, destinationUUID, message, topic)).getResult();
|
468
557
|
}
|
469
558
|
/**
|
470
559
|
* Wait for a workflow to emit an event, then return its value.
|
@@ -516,54 +605,56 @@ class DBOSExecutor {
|
|
516
605
|
throw new error_1.DBOSError(`Failed to find inputs for workflow UUID: ${workflowUUID}`);
|
517
606
|
}
|
518
607
|
const parentCtx = this.#getRecoveryContext(workflowUUID, wfStatus);
|
519
|
-
const wfInfo = this.
|
608
|
+
const { wfInfo, configuredInst } = this.getWorkflowInfoByStatus(wfStatus);
|
520
609
|
if (wfInfo) {
|
521
610
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
|
522
|
-
return this.workflow(wfInfo.workflow, { workflowUUID: workflowUUID, parentCtx: parentCtx
|
611
|
+
return this.workflow(wfInfo.workflow, { workflowUUID: workflowUUID, parentCtx: parentCtx, configuredInstance: configuredInst }, ...inputs);
|
523
612
|
}
|
524
613
|
// Should be temporary workflows. Parse the name of the workflow.
|
525
614
|
const wfName = wfStatus.workflowName;
|
526
615
|
const nameArr = wfName.split("-");
|
527
616
|
if (!nameArr[0].startsWith(DBOSExecutor.tempWorkflowName)) {
|
617
|
+
// CB - Doesn't this happen if the user changed the function name in their code?
|
528
618
|
throw new error_1.DBOSError(`This should never happen! Cannot find workflow info for a non-temporary workflow! UUID ${workflowUUID}, name ${wfName}`);
|
529
619
|
}
|
530
620
|
let temp_workflow;
|
621
|
+
let clsinst = null;
|
531
622
|
if (nameArr[1] === TempWorkflowType.transaction) {
|
532
|
-
const txnInfo = this.
|
623
|
+
const { txnInfo, clsInst } = this.getTransactionInfoByNames(wfStatus.workflowClassName, nameArr[2], wfStatus.workflowConfigName);
|
533
624
|
if (!txnInfo) {
|
534
625
|
this.logger.error(`Cannot find transaction info for UUID ${workflowUUID}, name ${nameArr[2]}`);
|
535
626
|
throw new error_1.DBOSNotRegisteredError(nameArr[2]);
|
536
627
|
}
|
537
628
|
temp_workflow = async (ctxt, ...args) => {
|
538
629
|
const ctxtImpl = ctxt;
|
539
|
-
|
540
|
-
return await ctxtImpl.transaction(txnInfo.transaction, ...args);
|
630
|
+
return await ctxtImpl.transaction(txnInfo.transaction, clsInst, ...args);
|
541
631
|
};
|
632
|
+
clsinst = clsInst;
|
542
633
|
}
|
543
634
|
else if (nameArr[1] === TempWorkflowType.external) {
|
544
|
-
const commInfo = this.
|
635
|
+
const { commInfo, clsInst } = this.getCommunicatorInfoByNames(wfStatus.workflowClassName, nameArr[2], wfStatus.workflowConfigName);
|
545
636
|
if (!commInfo) {
|
546
637
|
this.logger.error(`Cannot find communicator info for UUID ${workflowUUID}, name ${nameArr[2]}`);
|
547
638
|
throw new error_1.DBOSNotRegisteredError(nameArr[2]);
|
548
639
|
}
|
549
640
|
temp_workflow = async (ctxt, ...args) => {
|
550
641
|
const ctxtImpl = ctxt;
|
551
|
-
|
552
|
-
return await ctxtImpl.external(commInfo.communicator, ...args);
|
642
|
+
return await ctxtImpl.external(commInfo.communicator, clsInst, ...args);
|
553
643
|
};
|
644
|
+
clsinst = clsInst;
|
554
645
|
}
|
555
646
|
else if (nameArr[1] === TempWorkflowType.send) {
|
556
647
|
temp_workflow = async (ctxt, ...args) => {
|
557
|
-
//
|
558
|
-
return await ctxt.send(args[0], args[1], args[2]);
|
648
|
+
return await ctxt.send(args[0], args[1], args[2]); // id, value, topic
|
559
649
|
};
|
650
|
+
clsinst = null;
|
560
651
|
}
|
561
652
|
else {
|
562
653
|
this.logger.error(`Unrecognized temporary workflow! UUID ${workflowUUID}, name ${wfName}`);
|
563
654
|
throw new error_1.DBOSNotRegisteredError(wfName);
|
564
655
|
}
|
565
656
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
|
566
|
-
return this.workflow(temp_workflow, { workflowUUID: workflowUUID, parentCtx: parentCtx ?? undefined }, ...inputs);
|
657
|
+
return this.workflow(temp_workflow, { workflowUUID: workflowUUID, parentCtx: parentCtx ?? undefined, configuredInstance: clsinst }, ...inputs);
|
567
658
|
}
|
568
659
|
// NOTE: this creates a new span, it does not inherit the span from the original workflow
|
569
660
|
#getRecoveryContext(workflowUUID, status) {
|
@@ -615,7 +706,7 @@ class DBOSExecutor {
|
|
615
706
|
sqlStmt += ", ";
|
616
707
|
}
|
617
708
|
sqlStmt += `($${paramCnt++}, $${paramCnt++}, $${paramCnt++}, $${paramCnt++}, null, $${paramCnt++}, $${paramCnt++})`;
|
618
|
-
values.push(workflowUUID, funcID,
|
709
|
+
values.push(workflowUUID, funcID, utils_1.DBOSJSON.stringify(output), utils_1.DBOSJSON.stringify(null), txnSnapshot, createdAt);
|
619
710
|
}
|
620
711
|
batchUUIDs.push(workflowUUID);
|
621
712
|
finishedCnt++;
|
@@ -647,10 +738,10 @@ class DBOSExecutor {
|
|
647
738
|
this.registeredOperations.forEach((registeredOperation) => {
|
648
739
|
const ro = registeredOperation;
|
649
740
|
if (ro.apiURL) {
|
650
|
-
this.logger.info(" " + ro.apiType.padEnd(
|
741
|
+
this.logger.info(" " + ro.apiType.padEnd(6) + " : " + ro.apiURL);
|
651
742
|
const roles = ro.getRequiredRoles();
|
652
743
|
if (roles.length > 0) {
|
653
|
-
this.logger.info(" Required Roles: " +
|
744
|
+
this.logger.info(" Required Roles: " + utils_1.DBOSJSON.stringify(roles));
|
654
745
|
}
|
655
746
|
}
|
656
747
|
});
|