@dbos-inc/dbos-sdk 3.0.23-preview → 3.0.37-preview.gfd7eaf193c
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/authdecorators.d.ts +0 -7
- package/dist/src/authdecorators.d.ts.map +1 -1
- package/dist/src/authdecorators.js +1 -29
- package/dist/src/authdecorators.js.map +1 -1
- package/dist/src/context.d.ts +9 -43
- package/dist/src/context.d.ts.map +1 -1
- package/dist/src/context.js +28 -113
- package/dist/src/context.js.map +1 -1
- package/dist/src/datasource.d.ts +14 -3
- package/dist/src/datasource.d.ts.map +1 -1
- package/dist/src/datasource.js +12 -11
- package/dist/src/datasource.js.map +1 -1
- package/dist/src/dbos-executor.d.ts +37 -79
- package/dist/src/dbos-executor.d.ts.map +1 -1
- package/dist/src/dbos-executor.js +297 -498
- package/dist/src/dbos-executor.js.map +1 -1
- package/dist/src/dbos-runtime/cli.d.ts.map +1 -1
- package/dist/src/dbos-runtime/cli.js +1 -3
- package/dist/src/dbos-runtime/cli.js.map +1 -1
- package/dist/src/dbos-runtime/debug.d.ts +1 -1
- package/dist/src/dbos-runtime/debug.d.ts.map +1 -1
- package/dist/src/dbos-runtime/debug.js +2 -3
- package/dist/src/dbos-runtime/debug.js.map +1 -1
- package/dist/src/dbos-runtime/runtime.d.ts.map +1 -1
- package/dist/src/dbos-runtime/runtime.js +0 -9
- package/dist/src/dbos-runtime/runtime.js.map +1 -1
- package/dist/src/dbos.d.ts +9 -34
- package/dist/src/dbos.d.ts.map +1 -1
- package/dist/src/dbos.js +95 -273
- package/dist/src/dbos.js.map +1 -1
- package/dist/src/decorators.d.ts +35 -60
- package/dist/src/decorators.d.ts.map +1 -1
- package/dist/src/decorators.js +157 -184
- package/dist/src/decorators.js.map +1 -1
- package/dist/src/httpServer/handler.d.ts +1 -9
- package/dist/src/httpServer/handler.d.ts.map +1 -1
- package/dist/src/httpServer/handler.js +1 -1
- package/dist/src/httpServer/handler.js.map +1 -1
- package/dist/src/httpServer/server.d.ts.map +1 -1
- package/dist/src/httpServer/server.js +5 -7
- package/dist/src/httpServer/server.js.map +1 -1
- package/dist/src/index.d.ts +5 -8
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +7 -17
- package/dist/src/index.js.map +1 -1
- package/dist/src/paramdecorators.d.ts.map +1 -1
- package/dist/src/paramdecorators.js +0 -6
- package/dist/src/paramdecorators.js.map +1 -1
- package/dist/src/procedure.d.ts +0 -22
- package/dist/src/procedure.d.ts.map +1 -1
- package/dist/src/procedure.js +0 -16
- package/dist/src/procedure.js.map +1 -1
- package/dist/src/scheduler/scheduler.d.ts.map +1 -1
- package/dist/src/scheduler/scheduler.js +3 -2
- package/dist/src/scheduler/scheduler.js.map +1 -1
- package/dist/src/step.d.ts +0 -25
- package/dist/src/step.d.ts.map +1 -1
- package/dist/src/step.js +0 -20
- package/dist/src/step.js.map +1 -1
- package/dist/src/system_database.d.ts +1 -2
- package/dist/src/system_database.d.ts.map +1 -1
- package/dist/src/system_database.js.map +1 -1
- package/dist/src/transaction.d.ts +0 -25
- package/dist/src/transaction.d.ts.map +1 -1
- package/dist/src/transaction.js +1 -15
- package/dist/src/transaction.js.map +1 -1
- package/dist/src/workflow.d.ts +4 -148
- package/dist/src/workflow.d.ts.map +1 -1
- package/dist/src/workflow.js +7 -226
- package/dist/src/workflow.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/dist/src/eventreceiver.d.ts +0 -155
- package/dist/src/eventreceiver.d.ts.map +0 -1
- package/dist/src/eventreceiver.js +0 -3
- package/dist/src/eventreceiver.js.map +0 -1
@@ -1,9 +1,2 @@
|
|
1
|
-
import { DBOSContext } from './context';
|
2
1
|
export declare function registerAuthChecker(): void;
|
3
|
-
/** @deprecated Use `DBOS.defaultRequiredRole` */
|
4
|
-
export declare function DefaultRequiredRole(anyOf: string[]): <T extends new (...args: any[]) => object>(ctor: T) => void;
|
5
|
-
/**
|
6
|
-
* @deprecated - use `DBOS.requiredRole`
|
7
|
-
*/
|
8
|
-
export declare function RequiredRole(anyOf: string[]): <This, Ctx extends DBOSContext, Args extends unknown[], Return>(target: object, propertyKey: string, inDescriptor: TypedPropertyDescriptor<(this: This, ctx: Ctx, ...args: Args) => Promise<Return>>) => TypedPropertyDescriptor<(this: This, ctx: Ctx, ...args: Args) => Promise<Return>>;
|
9
2
|
//# sourceMappingURL=authdecorators.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"authdecorators.d.ts","sourceRoot":"","sources":["../../src/authdecorators.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"authdecorators.d.ts","sourceRoot":"","sources":["../../src/authdecorators.ts"],"names":[],"mappings":"AAsDA,wBAAgB,mBAAmB,SAElC"}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.
|
3
|
+
exports.registerAuthChecker = void 0;
|
4
4
|
const context_1 = require("./context");
|
5
5
|
const dbos_1 = require("./dbos");
|
6
6
|
const decorators_1 = require("./decorators");
|
@@ -16,9 +16,6 @@ function checkMethodAuth(methReg, args) {
|
|
16
16
|
for (const role of requiredRoles) {
|
17
17
|
if (set.has(role)) {
|
18
18
|
authorized = true;
|
19
|
-
if ((0, context_1.getCurrentDBOSContext)()) {
|
20
|
-
(0, context_1.getCurrentDBOSContext)().assumedRole = role;
|
21
|
-
}
|
22
19
|
if ((0, context_1.getCurrentContextStore)()) {
|
23
20
|
(0, context_1.getCurrentContextStore)().assumedRole = role;
|
24
21
|
}
|
@@ -48,29 +45,4 @@ function registerAuthChecker() {
|
|
48
45
|
(0, decorators_1.registerMiddlewareInstaller)(authChecker);
|
49
46
|
}
|
50
47
|
exports.registerAuthChecker = registerAuthChecker;
|
51
|
-
/** @deprecated Use `DBOS.defaultRequiredRole` */
|
52
|
-
function DefaultRequiredRole(anyOf) {
|
53
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
54
|
-
function clsdec(ctor) {
|
55
|
-
const clsreg = (0, decorators_1.associateClassWithExternal)(decorators_1.DBOS_AUTH, ctor);
|
56
|
-
clsreg.requiredRole = anyOf;
|
57
|
-
registerAuthChecker();
|
58
|
-
}
|
59
|
-
return clsdec;
|
60
|
-
}
|
61
|
-
exports.DefaultRequiredRole = DefaultRequiredRole;
|
62
|
-
/**
|
63
|
-
* @deprecated - use `DBOS.requiredRole`
|
64
|
-
*/
|
65
|
-
function RequiredRole(anyOf) {
|
66
|
-
function apidec(target, propertyKey, inDescriptor) {
|
67
|
-
const rr = (0, decorators_1.associateMethodWithExternal)(decorators_1.DBOS_AUTH, target, undefined, propertyKey.toString(), inDescriptor.value);
|
68
|
-
rr.regInfo.requiredRole = anyOf;
|
69
|
-
inDescriptor.value = rr.registration.wrappedFunction ?? rr.registration.registeredFunction;
|
70
|
-
registerAuthChecker();
|
71
|
-
return inDescriptor;
|
72
|
-
}
|
73
|
-
return apidec;
|
74
|
-
}
|
75
|
-
exports.RequiredRole = RequiredRole;
|
76
48
|
//# sourceMappingURL=authdecorators.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"authdecorators.js","sourceRoot":"","sources":["../../src/authdecorators.ts"],"names":[],"mappings":";;;AAAA,
|
1
|
+
{"version":3,"file":"authdecorators.js","sourceRoot":"","sources":["../../src/authdecorators.ts"],"names":[],"mappings":";;;AAAA,uCAAmD;AACnD,iCAA8B;AAC9B,6CAOsB;AACtB,mCAAiD;AAEjD,SAAS,eAAe,CAAC,OAA+B,EAAE,IAAe;IACvE,+DAA+D;IAC/D,MAAM,aAAa,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IACjD,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,WAAI,CAAC,IAAI,EAAE,YAAY,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;QACxD,MAAM,QAAQ,GAAG,WAAI,CAAC,kBAAkB,CAAC;QACzC,IAAI,UAAU,GAAG,KAAK,CAAC;QACvB,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC9B,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;YACjC,IAAI,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBAClB,UAAU,GAAG,IAAI,CAAC;gBAClB,IAAI,IAAA,gCAAsB,GAAE,EAAE,CAAC;oBAC7B,IAAA,gCAAsB,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC;gBAC/C,CAAC;gBACD,MAAM;YACR,CAAC;QACH,CAAC;QACD,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,GAAG,GAAG,IAAI,8BAAsB,CAAC,qDAAqD,OAAO,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC;YACjH,WAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,wBAAwB,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YACxE,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,WAAW;IACf,iBAAiB,CAAC,OAA+B;QAC/C,MAAM,SAAS,GAAG,OAAO,EAAE,QAAQ,EAAE,iBAAiB,CAAC,sBAAS,CAAsB,CAAC;QACvF,MAAM,UAAU,GAAG,OAAO,EAAE,iBAAiB,CAAC,sBAAS,CAAe,CAAC;QAEvE,MAAM,WAAW,GAAG,SAAS,EAAE,YAAY,KAAK,SAAS,IAAI,UAAU,EAAE,YAAY,KAAK,SAAS,CAAC;QAEpG,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,CAAC,mBAAmB,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;CACF;AAED,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;AAEtC,SAAgB,mBAAmB;IACjC,IAAA,wCAA2B,EAAC,WAAW,CAAC,CAAC;AAC3C,CAAC;AAFD,kDAEC"}
|
package/dist/src/context.d.ts
CHANGED
@@ -3,15 +3,11 @@
|
|
3
3
|
/// <reference types="node" />
|
4
4
|
/// <reference types="node/http" />
|
5
5
|
import { Span } from '@opentelemetry/sdk-trace-base';
|
6
|
-
import {
|
6
|
+
import { Logger as DBOSLogger } from './telemetry/logs';
|
7
7
|
import { IncomingHttpHeaders } from 'http';
|
8
8
|
import { ParsedUrlQuery } from 'querystring';
|
9
9
|
import { UserDatabaseClient } from './user_database';
|
10
10
|
import { AsyncLocalStorage } from 'async_hooks';
|
11
|
-
import { WorkflowContext, WorkflowContextImpl } from './workflow';
|
12
|
-
import { TransactionContextImpl } from './transaction';
|
13
|
-
import { StepContextImpl } from './step';
|
14
|
-
import { StoredProcedureContextImpl } from './procedure';
|
15
11
|
import Koa from 'koa';
|
16
12
|
export interface StepStatus {
|
17
13
|
stepID: number;
|
@@ -22,6 +18,7 @@ export interface DBOSContextOptions {
|
|
22
18
|
idAssignedForNextWorkflow?: string;
|
23
19
|
queueAssignedForWorkflows?: string;
|
24
20
|
span?: Span;
|
21
|
+
logger?: DBOSLogger;
|
25
22
|
authenticatedUser?: string;
|
26
23
|
authenticatedRoles?: string[];
|
27
24
|
assumedRole?: string;
|
@@ -31,9 +28,12 @@ export interface DBOSContextOptions {
|
|
31
28
|
workflowTimeoutMS?: number | null;
|
32
29
|
}
|
33
30
|
export interface DBOSLocalCtx extends DBOSContextOptions {
|
34
|
-
ctx?: DBOSContext;
|
35
31
|
parentCtx?: DBOSLocalCtx;
|
36
32
|
workflowId?: string;
|
33
|
+
curWFFunctionId?: number;
|
34
|
+
presetID?: boolean;
|
35
|
+
timeoutMS?: number | null;
|
36
|
+
deadlineEpochMS?: number;
|
37
37
|
inRecovery?: boolean;
|
38
38
|
curStepFunctionId?: number;
|
39
39
|
stepStatus?: StepStatus;
|
@@ -48,16 +48,12 @@ export declare function isInTxnCtx(ctx: DBOSLocalCtx): boolean;
|
|
48
48
|
export declare function isInWorkflowCtx(ctx: DBOSLocalCtx): boolean;
|
49
49
|
export declare const asyncLocalCtx: AsyncLocalStorage<DBOSLocalCtx>;
|
50
50
|
export declare function getCurrentContextStore(): DBOSLocalCtx | undefined;
|
51
|
-
export declare function getCurrentDBOSContext(): DBOSContext | undefined;
|
52
|
-
export declare function assertCurrentDBOSContext(): DBOSContext;
|
53
|
-
export declare function assertCurrentWorkflowContext(): WorkflowContextImpl;
|
54
51
|
export declare function getNextWFID(assignedID?: string): string | undefined;
|
52
|
+
export declare function functionIDGetIncrement(): number;
|
55
53
|
export declare function runWithTopContext<R>(ctx: DBOSLocalCtx, callback: () => Promise<R>): Promise<R>;
|
56
|
-
export declare function
|
57
|
-
export declare function runWithStoredProcContext<R>(ctx: StoredProcedureContextImpl, callback: () => Promise<R>): Promise<R>;
|
54
|
+
export declare function runWithParentContext<R>(pctx: DBOSLocalCtx | undefined, ctx: DBOSLocalCtx, callback: () => Promise<R>): Promise<R>;
|
58
55
|
export declare function runWithDataSourceContext<R>(callnum: number, callback: () => Promise<R>): Promise<R>;
|
59
|
-
export declare function
|
60
|
-
export declare function runWithWorkflowContext<R>(ctx: WorkflowContext, callback: () => Promise<R>): Promise<R>;
|
56
|
+
export declare function runInStepContext<R>(pctx: DBOSLocalCtx, stepID: number, maxAttempts: number | undefined, currentAttempt: number | undefined, callback: () => Promise<R>): Promise<R>;
|
61
57
|
/**
|
62
58
|
* HTTPRequest includes useful information from http.IncomingMessage and parsed body,
|
63
59
|
* URL parameters, and parsed query string.
|
@@ -76,34 +72,4 @@ export interface HTTPRequest {
|
|
76
72
|
readonly ip?: string;
|
77
73
|
readonly requestID?: string;
|
78
74
|
}
|
79
|
-
/**
|
80
|
-
* @deprecated Use `DBOS.workflow`, `DBOS.step`, `DBOS.transaction`, and other decorators that do not pass contexts around.
|
81
|
-
*/
|
82
|
-
export interface DBOSContext {
|
83
|
-
readonly request: object;
|
84
|
-
readonly workflowUUID: string;
|
85
|
-
readonly authenticatedUser: string;
|
86
|
-
readonly authenticatedRoles: string[];
|
87
|
-
readonly assumedRole: string;
|
88
|
-
readonly logger: DBOSLogger;
|
89
|
-
readonly span: Span;
|
90
|
-
getConfig<T>(key: string): T | undefined;
|
91
|
-
getConfig<T>(key: string, defaultValue: T): T;
|
92
|
-
}
|
93
|
-
export declare class DBOSContextImpl implements DBOSContext {
|
94
|
-
readonly operationName: string;
|
95
|
-
readonly span: Span;
|
96
|
-
request: object;
|
97
|
-
authenticatedUser: string;
|
98
|
-
authenticatedRoles: string[];
|
99
|
-
assumedRole: string;
|
100
|
-
workflowUUID: string;
|
101
|
-
executorID: string;
|
102
|
-
applicationID: string;
|
103
|
-
readonly logger: DBOSLogger;
|
104
|
-
constructor(operationName: string, span: Span, logger: Logger, parentCtx?: DBOSContextImpl);
|
105
|
-
applicationConfig?: object;
|
106
|
-
getConfig<T>(key: string): T | undefined;
|
107
|
-
getConfig<T>(key: string, defaultValue: T): T;
|
108
|
-
}
|
109
75
|
//# sourceMappingURL=context.d.ts.map
|
@@ -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,
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/context.ts"],"names":[],"mappings":"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"}
|
package/dist/src/context.js
CHANGED
@@ -1,12 +1,8 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.
|
4
|
-
const logs_1 = require("./telemetry/logs");
|
5
|
-
const lodash_1 = require("lodash");
|
6
|
-
const error_1 = require("./error");
|
3
|
+
exports.runInStepContext = exports.runWithDataSourceContext = exports.runWithParentContext = exports.runWithTopContext = exports.functionIDGetIncrement = exports.getNextWFID = exports.getCurrentContextStore = exports.asyncLocalCtx = exports.isInWorkflowCtx = exports.isInTxnCtx = exports.isInStepCtx = exports.isWithinWorkflowCtx = void 0;
|
7
4
|
const async_hooks_1 = require("async_hooks");
|
8
|
-
const
|
9
|
-
const utils_1 = require("./utils");
|
5
|
+
const error_1 = require("./error");
|
10
6
|
function isWithinWorkflowCtx(ctx) {
|
11
7
|
if (ctx.workflowId === undefined)
|
12
8
|
return false;
|
@@ -44,26 +40,6 @@ function getCurrentContextStore() {
|
|
44
40
|
return exports.asyncLocalCtx.getStore();
|
45
41
|
}
|
46
42
|
exports.getCurrentContextStore = getCurrentContextStore;
|
47
|
-
function getCurrentDBOSContext() {
|
48
|
-
return exports.asyncLocalCtx.getStore()?.ctx;
|
49
|
-
}
|
50
|
-
exports.getCurrentDBOSContext = getCurrentDBOSContext;
|
51
|
-
function assertCurrentDBOSContext() {
|
52
|
-
const ctx = exports.asyncLocalCtx.getStore()?.ctx;
|
53
|
-
if (!ctx)
|
54
|
-
throw new error_2.DBOSInvalidWorkflowTransitionError('No current DBOS Context');
|
55
|
-
return ctx;
|
56
|
-
}
|
57
|
-
exports.assertCurrentDBOSContext = assertCurrentDBOSContext;
|
58
|
-
function assertCurrentWorkflowContext() {
|
59
|
-
const ctxs = getCurrentContextStore();
|
60
|
-
if (!ctxs || !isInWorkflowCtx(ctxs)) {
|
61
|
-
throw new error_2.DBOSInvalidWorkflowTransitionError();
|
62
|
-
}
|
63
|
-
const ctx = assertCurrentDBOSContext();
|
64
|
-
return ctx;
|
65
|
-
}
|
66
|
-
exports.assertCurrentWorkflowContext = assertCurrentWorkflowContext;
|
67
43
|
function getNextWFID(assignedID) {
|
68
44
|
let wfId = assignedID;
|
69
45
|
if (!wfId) {
|
@@ -77,117 +53,56 @@ function getNextWFID(assignedID) {
|
|
77
53
|
return wfId;
|
78
54
|
}
|
79
55
|
exports.getNextWFID = getNextWFID;
|
80
|
-
|
81
|
-
return await exports.asyncLocalCtx.run(ctx, callback);
|
82
|
-
}
|
83
|
-
exports.runWithTopContext = runWithTopContext;
|
84
|
-
async function runWithTransactionContext(ctx, callback) {
|
85
|
-
// Check we are in a workflow context and not in a step / transaction already
|
56
|
+
function functionIDGetIncrement() {
|
86
57
|
const pctx = getCurrentContextStore();
|
87
58
|
if (!pctx)
|
88
|
-
throw new
|
59
|
+
throw new error_1.DBOSInvalidWorkflowTransitionError(`Attempt to get a call ID number outside of a workflow`);
|
89
60
|
if (!isInWorkflowCtx(pctx))
|
90
|
-
throw new
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
curTxFunctionId: ctx.functionID,
|
95
|
-
parentCtx: pctx,
|
96
|
-
}, callback);
|
61
|
+
throw new error_1.DBOSInvalidWorkflowTransitionError(`Attempt to get a call ID number in a workflow that is already in a call`);
|
62
|
+
if (pctx.curWFFunctionId === undefined)
|
63
|
+
pctx.curWFFunctionId = 0;
|
64
|
+
return pctx.curWFFunctionId++;
|
97
65
|
}
|
98
|
-
exports.
|
99
|
-
async function
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
if (!isInWorkflowCtx(pctx))
|
105
|
-
throw new error_2.DBOSInvalidWorkflowTransitionError();
|
66
|
+
exports.functionIDGetIncrement = functionIDGetIncrement;
|
67
|
+
async function runWithTopContext(ctx, callback) {
|
68
|
+
return await exports.asyncLocalCtx.run(ctx, callback);
|
69
|
+
}
|
70
|
+
exports.runWithTopContext = runWithTopContext;
|
71
|
+
async function runWithParentContext(pctx, ctx, callback) {
|
106
72
|
return await exports.asyncLocalCtx.run({
|
107
|
-
|
108
|
-
|
109
|
-
curTxFunctionId: ctx.functionID,
|
73
|
+
...pctx,
|
74
|
+
workflowTimeoutMS: undefined, // Becomes deadline
|
110
75
|
parentCtx: pctx,
|
111
|
-
|
76
|
+
...ctx,
|
112
77
|
}, callback);
|
113
78
|
}
|
114
|
-
exports.
|
79
|
+
exports.runWithParentContext = runWithParentContext;
|
115
80
|
async function runWithDataSourceContext(callnum, callback) {
|
116
81
|
// Check we are in a workflow context and not in a step / transaction already
|
117
|
-
const pctx = getCurrentContextStore();
|
82
|
+
const pctx = getCurrentContextStore() ?? {};
|
118
83
|
return await exports.asyncLocalCtx.run({
|
119
|
-
|
84
|
+
...pctx,
|
120
85
|
curTxFunctionId: callnum,
|
121
86
|
parentCtx: pctx,
|
122
87
|
}, callback);
|
123
88
|
}
|
124
89
|
exports.runWithDataSourceContext = runWithDataSourceContext;
|
125
|
-
async function
|
90
|
+
async function runInStepContext(pctx, stepID, maxAttempts, currentAttempt, callback) {
|
126
91
|
// Check we are in a workflow context and not in a step / transaction already
|
127
|
-
const pctx = getCurrentContextStore();
|
128
92
|
if (!pctx)
|
129
|
-
throw new
|
93
|
+
throw new error_1.DBOSInvalidWorkflowTransitionError();
|
130
94
|
if (!isInWorkflowCtx(pctx))
|
131
|
-
throw new
|
95
|
+
throw new error_1.DBOSInvalidWorkflowTransitionError();
|
132
96
|
const stepStatus = {
|
133
|
-
stepID:
|
97
|
+
stepID: stepID,
|
134
98
|
currentAttempt: currentAttempt,
|
135
|
-
maxAttempts: currentAttempt ?
|
99
|
+
maxAttempts: currentAttempt ? maxAttempts : undefined,
|
136
100
|
};
|
137
|
-
return await
|
138
|
-
ctx,
|
101
|
+
return await runWithParentContext(pctx, {
|
139
102
|
stepStatus: stepStatus,
|
140
|
-
|
141
|
-
curStepFunctionId: ctx.functionID,
|
103
|
+
curStepFunctionId: stepID,
|
142
104
|
parentCtx: pctx,
|
143
105
|
}, callback);
|
144
106
|
}
|
145
|
-
exports.
|
146
|
-
async function runWithWorkflowContext(ctx, callback) {
|
147
|
-
// TODO: Check context, this could be a child workflow?
|
148
|
-
return await exports.asyncLocalCtx.run({
|
149
|
-
ctx,
|
150
|
-
workflowId: ctx.workflowUUID,
|
151
|
-
}, callback);
|
152
|
-
}
|
153
|
-
exports.runWithWorkflowContext = runWithWorkflowContext;
|
154
|
-
class DBOSContextImpl {
|
155
|
-
operationName;
|
156
|
-
span;
|
157
|
-
request = {}; // Raw incoming HTTP request.
|
158
|
-
authenticatedUser = ''; // The user that has been authenticated
|
159
|
-
authenticatedRoles = []; // All roles the user has according to authentication
|
160
|
-
assumedRole = ''; // Role in use - that user has and provided authorization to current function
|
161
|
-
workflowUUID = ''; // Workflow UUID. Empty for HandlerContexts.
|
162
|
-
executorID = utils_1.globalParams.executorID; // Executor ID. Gathered from the environment and "local" otherwise
|
163
|
-
applicationID = utils_1.globalParams.appID; // Application ID. Gathered from the environment and empty otherwise
|
164
|
-
logger; // Wrapper around the global logger for this context.
|
165
|
-
constructor(operationName, span, logger, parentCtx) {
|
166
|
-
this.operationName = operationName;
|
167
|
-
this.span = span;
|
168
|
-
if (parentCtx) {
|
169
|
-
this.request = parentCtx.request;
|
170
|
-
this.authenticatedUser = parentCtx.authenticatedUser;
|
171
|
-
this.authenticatedRoles = parentCtx.authenticatedRoles;
|
172
|
-
this.assumedRole = parentCtx.assumedRole;
|
173
|
-
this.workflowUUID = parentCtx.workflowUUID;
|
174
|
-
}
|
175
|
-
else {
|
176
|
-
this.authenticatedUser = getCurrentContextStore()?.authenticatedUser ?? '';
|
177
|
-
this.authenticatedRoles = getCurrentContextStore()?.authenticatedRoles ?? [];
|
178
|
-
this.assumedRole = getCurrentContextStore()?.assumedRole ?? '';
|
179
|
-
}
|
180
|
-
this.logger = new logs_1.Logger(logger, this);
|
181
|
-
}
|
182
|
-
applicationConfig;
|
183
|
-
getConfig(key, defaultValue) {
|
184
|
-
const value = (0, lodash_1.get)(this.applicationConfig, key, defaultValue);
|
185
|
-
// If the key is found and the default value is provided, check whether the value is of the same type.
|
186
|
-
if (value && defaultValue && typeof value !== typeof defaultValue) {
|
187
|
-
throw new error_1.DBOSConfigKeyTypeError(key, typeof defaultValue, typeof value);
|
188
|
-
}
|
189
|
-
return value;
|
190
|
-
}
|
191
|
-
}
|
192
|
-
exports.DBOSContextImpl = DBOSContextImpl;
|
107
|
+
exports.runInStepContext = runInStepContext;
|
193
108
|
//# sourceMappingURL=context.js.map
|
package/dist/src/context.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/context.ts"],"names":[],"mappings":";;;
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/context.ts"],"names":[],"mappings":"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"}
|
package/dist/src/datasource.d.ts
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
import type { Notification } from 'pg';
|
1
2
|
/**
|
2
3
|
* This interface is to be used for implementers of transactional data sources
|
3
4
|
* This is what gets registered for the transaction control framework
|
@@ -42,11 +43,14 @@ export interface DBOSDataSource<Config extends {
|
|
42
43
|
* Providing a static version of this functionality is optional.
|
43
44
|
*
|
44
45
|
* @param func - Function to wrap
|
45
|
-
* @param
|
46
|
-
* @param
|
46
|
+
* @param config - Transaction settings, including function `name`
|
47
|
+
* @param target - Class name, or class ctor/prototype
|
47
48
|
* @returns Wrapped function, to be called instead of `func`
|
48
49
|
*/
|
49
|
-
registerTransaction<This, Args extends unknown[], Return>(func: (this: This, ...args: Args) => Promise<Return>, config?: Config
|
50
|
+
registerTransaction<This, Args extends unknown[], Return>(func: (this: This, ...args: Args) => Promise<Return>, config?: Config, target?: {
|
51
|
+
ctorOrProto?: object;
|
52
|
+
className?: string;
|
53
|
+
}): (this: This, ...args: Args) => Promise<Return>;
|
50
54
|
/**
|
51
55
|
* Produce a Stage 2 method decorator
|
52
56
|
* @param config - Configuration to apply to the decorated method
|
@@ -69,6 +73,8 @@ export declare function runTransaction<T>(callback: () => Promise<T>, funcName:
|
|
69
73
|
config?: unknown;
|
70
74
|
}): Promise<T>;
|
71
75
|
export declare function registerTransaction<This, Args extends unknown[], Return>(dsName: string, func: (this: This, ...args: Args) => Promise<Return>, options: {
|
76
|
+
ctorOrProto?: object;
|
77
|
+
className?: string;
|
72
78
|
name: string;
|
73
79
|
}, config?: unknown): (this: This, ...args: Args) => Promise<Return>;
|
74
80
|
/**
|
@@ -102,5 +108,10 @@ export declare function getPGErrorCode(error: unknown): string | undefined;
|
|
102
108
|
export declare function isPGRetriableTransactionError(error: unknown): boolean;
|
103
109
|
export declare function isPGKeyConflictError(error: unknown): boolean;
|
104
110
|
export declare function isPGFailedSqlTransactionError(error: unknown): boolean;
|
111
|
+
export type PGDBNotification = Notification;
|
112
|
+
export type PGDBNotificationCallback = (n: PGDBNotification) => void;
|
113
|
+
export interface PGDBNotificationListener {
|
114
|
+
close(): Promise<void>;
|
115
|
+
}
|
105
116
|
export {};
|
106
117
|
//# sourceMappingURL=datasource.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"datasource.d.ts","sourceRoot":"","sources":["../../src/datasource.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"datasource.d.ts","sourceRoot":"","sources":["../../src/datasource.ts"],"names":[],"mappings":"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"}
|
package/dist/src/datasource.js
CHANGED
@@ -33,16 +33,15 @@ async function runTransaction(callback, funcName, options = {}) {
|
|
33
33
|
if (!dbos_1.DBOS.isInWorkflow()) {
|
34
34
|
throw new error_1.DBOSInvalidWorkflowTransitionError(`Invalid call to \`${funcName}\` inside a \`step\`, \`transaction\`, or \`procedure\``);
|
35
35
|
}
|
36
|
-
const
|
37
|
-
const callnum = wfctx.functionIDGetIncrement();
|
36
|
+
const callnum = (0, context_1.functionIDGetIncrement)();
|
38
37
|
const span = dbos_executor_1.DBOSExecutor.globalInstance.tracer.startSpan(funcName, {
|
39
|
-
operationUUID:
|
38
|
+
operationUUID: dbos_1.DBOS.workflowID,
|
40
39
|
operationType: dbos_executor_1.OperationType.TRANSACTION,
|
41
|
-
authenticatedUser:
|
42
|
-
assumedRole:
|
43
|
-
authenticatedRoles:
|
40
|
+
authenticatedUser: dbos_1.DBOS.authenticatedUser,
|
41
|
+
assumedRole: dbos_1.DBOS.assumedRole,
|
42
|
+
authenticatedRoles: dbos_1.DBOS.authenticatedRoles,
|
44
43
|
// isolationLevel: txnInfo.config.isolationLevel, // TODO: Pluggable
|
45
|
-
},
|
44
|
+
}, dbos_1.DBOS.span);
|
46
45
|
try {
|
47
46
|
const res = await dbos_executor_1.DBOSExecutor.globalInstance.runInternalStep(async () => {
|
48
47
|
return await (0, context_1.runWithDataSourceContext)(callnum, async () => {
|
@@ -66,27 +65,29 @@ exports.runTransaction = runTransaction;
|
|
66
65
|
// Transaction wrapper
|
67
66
|
function registerTransaction(dsName, func, options, config) {
|
68
67
|
const dsn = dsName ?? '<default>';
|
68
|
+
const reg = (0, decorators_1.registerAndWrapDBOSFunctionByName)(options?.ctorOrProto, options.className, options.name || func.name, func);
|
69
69
|
const invokeWrapper = async function (...rawArgs) {
|
70
70
|
const ds = (0, decorators_1.getTransactionalDataSource)(dsn);
|
71
|
+
const callFunc = reg.registration.registeredFunction ?? reg.registration.origFunction;
|
71
72
|
if (!dbos_1.DBOS.isWithinWorkflow()) {
|
72
73
|
if ((0, context_1.getNextWFID)(undefined)) {
|
73
74
|
throw new error_1.DBOSInvalidWorkflowTransitionError(`Call to transaction '${options.name}' made without starting workflow`);
|
74
75
|
}
|
75
76
|
return await (0, context_1.runWithDataSourceContext)(0, async () => {
|
76
|
-
return await ds.invokeTransactionFunction(config, this,
|
77
|
+
return await ds.invokeTransactionFunction(config, this, callFunc, ...rawArgs);
|
77
78
|
});
|
78
79
|
}
|
79
80
|
if (dbos_1.DBOS.isInTransaction() || dbos_1.DBOS.isInStep()) {
|
80
81
|
throw new error_1.DBOSInvalidWorkflowTransitionError('Invalid call to a `trasaction` function from within a `step` or `transaction`');
|
81
82
|
}
|
82
|
-
const
|
83
|
-
const callnum = wfctx.functionIDGetIncrement();
|
83
|
+
const callnum = (0, context_1.functionIDGetIncrement)();
|
84
84
|
return dbos_executor_1.DBOSExecutor.globalInstance.runInternalStep(async () => {
|
85
85
|
return await (0, context_1.runWithDataSourceContext)(callnum, async () => {
|
86
|
-
return await ds.invokeTransactionFunction(config, this,
|
86
|
+
return await ds.invokeTransactionFunction(config, this, callFunc, ...rawArgs);
|
87
87
|
});
|
88
88
|
}, options.name, dbos_1.DBOS.workflowID, callnum);
|
89
89
|
};
|
90
|
+
(0, decorators_1.registerFunctionWrapper)(invokeWrapper, reg.registration);
|
90
91
|
Object.defineProperty(invokeWrapper, 'name', {
|
91
92
|
value: options.name,
|
92
93
|
});
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"datasource.js","sourceRoot":"","sources":["../../src/datasource.ts"],"names":[],"mappings":";;;AAAA,4CAAoD;AAEpD,
|
1
|
+
{"version":3,"file":"datasource.js","sourceRoot":"","sources":["../../src/datasource.ts"],"names":[],"mappings":"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"}
|