@dbos-inc/dbos-sdk 0.7.25-preview → 0.8.12-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/dist/src/cloud-cli/applications/configure.d.ts.map +1 -1
- package/dist/src/cloud-cli/applications/configure.js +12 -2
- package/dist/src/cloud-cli/applications/configure.js.map +1 -1
- package/dist/src/cloud-cli/applications/delete-app.js +1 -1
- package/dist/src/cloud-cli/applications/delete-app.js.map +1 -1
- package/dist/src/cloud-cli/applications/deploy-app-code.d.ts.map +1 -1
- package/dist/src/cloud-cli/applications/deploy-app-code.js +10 -2
- package/dist/src/cloud-cli/applications/deploy-app-code.js.map +1 -1
- package/dist/src/cloud-cli/applications/get-app-logs.js +1 -1
- package/dist/src/cloud-cli/applications/get-app-logs.js.map +1 -1
- package/dist/src/cloud-cli/applications/list-apps.js +1 -1
- package/dist/src/cloud-cli/applications/list-apps.js.map +1 -1
- package/dist/src/cloud-cli/applications/register-app.js +1 -1
- package/dist/src/cloud-cli/applications/register-app.js.map +1 -1
- package/dist/src/cloud-cli/applications/update-app.d.ts.map +1 -1
- package/dist/src/cloud-cli/applications/update-app.js +3 -2
- package/dist/src/cloud-cli/applications/update-app.js.map +1 -1
- package/dist/src/cloud-cli/cli.js +19 -7
- package/dist/src/cloud-cli/cli.js.map +1 -1
- package/dist/src/cloud-cli/login.d.ts.map +1 -1
- package/dist/src/cloud-cli/login.js +3 -2
- package/dist/src/cloud-cli/login.js.map +1 -1
- package/dist/src/cloud-cli/register.js +1 -1
- package/dist/src/cloud-cli/register.js.map +1 -1
- package/dist/src/cloud-cli/userdb.d.ts +2 -0
- package/dist/src/cloud-cli/userdb.d.ts.map +1 -1
- package/dist/src/cloud-cli/userdb.js +102 -8
- package/dist/src/cloud-cli/userdb.js.map +1 -1
- package/dist/src/communicator.d.ts +3 -2
- package/dist/src/communicator.d.ts.map +1 -1
- package/dist/src/communicator.js.map +1 -1
- package/dist/src/context.d.ts +3 -3
- package/dist/src/context.d.ts.map +1 -1
- package/dist/src/context.js +8 -8
- package/dist/src/context.js.map +1 -1
- package/dist/src/dbos-executor.d.ts +19 -7
- package/dist/src/dbos-executor.d.ts.map +1 -1
- package/dist/src/dbos-executor.js +186 -67
- package/dist/src/dbos-executor.js.map +1 -1
- package/dist/src/dbos-runtime/cli.d.ts +0 -1
- package/dist/src/dbos-runtime/cli.d.ts.map +1 -1
- package/dist/src/dbos-runtime/cli.js +14 -2
- package/dist/src/dbos-runtime/cli.js.map +1 -1
- package/dist/src/dbos-runtime/config.d.ts +3 -0
- package/dist/src/dbos-runtime/config.d.ts.map +1 -1
- package/dist/src/dbos-runtime/config.js +0 -1
- package/dist/src/dbos-runtime/config.js.map +1 -1
- package/dist/src/dbos-runtime/debug.d.ts +4 -0
- package/dist/src/dbos-runtime/debug.d.ts.map +1 -0
- package/dist/src/dbos-runtime/debug.js +23 -0
- package/dist/src/dbos-runtime/debug.js.map +1 -0
- package/dist/src/dbos-runtime/runtime.d.ts +2 -2
- package/dist/src/dbos-runtime/runtime.d.ts.map +1 -1
- package/dist/src/dbos-runtime/runtime.js +20 -21
- package/dist/src/dbos-runtime/runtime.js.map +1 -1
- package/dist/src/debugger/debug_workflow.d.ts +8 -8
- package/dist/src/debugger/debug_workflow.d.ts.map +1 -1
- package/dist/src/debugger/debug_workflow.js +107 -36
- package/dist/src/debugger/debug_workflow.js.map +1 -1
- package/dist/src/httpServer/handler.d.ts +1 -1
- package/dist/src/httpServer/handler.d.ts.map +1 -1
- package/dist/src/httpServer/handler.js +14 -14
- package/dist/src/httpServer/handler.js.map +1 -1
- package/dist/src/httpServer/server.d.ts +4 -4
- package/dist/src/httpServer/server.d.ts.map +1 -1
- package/dist/src/httpServer/server.js +17 -17
- package/dist/src/httpServer/server.js.map +1 -1
- package/dist/src/{dbos-runtime → staticAnalysis}/TypeParser.d.ts +4 -0
- package/dist/src/staticAnalysis/TypeParser.d.ts.map +1 -0
- package/dist/src/{dbos-runtime → staticAnalysis}/TypeParser.js +34 -1
- package/dist/src/staticAnalysis/TypeParser.js.map +1 -0
- package/dist/src/{dbos-runtime → staticAnalysis}/openApi.d.ts.map +1 -1
- package/dist/src/{dbos-runtime → staticAnalysis}/openApi.js +1 -31
- package/dist/src/staticAnalysis/openApi.js.map +1 -0
- package/dist/src/staticAnalysis/tsDiagUtil.d.ts.map +1 -0
- package/dist/src/staticAnalysis/tsDiagUtil.js.map +1 -0
- package/dist/src/system_database.d.ts +22 -9
- package/dist/src/system_database.d.ts.map +1 -1
- package/dist/src/system_database.js +44 -42
- package/dist/src/system_database.js.map +1 -1
- package/dist/src/telemetry/collector.d.ts +5 -5
- package/dist/src/telemetry/collector.d.ts.map +1 -1
- package/dist/src/telemetry/collector.js +5 -17
- package/dist/src/telemetry/collector.js.map +1 -1
- package/dist/src/telemetry/exporters.d.ts +11 -24
- package/dist/src/telemetry/exporters.d.ts.map +1 -1
- package/dist/src/telemetry/exporters.js +42 -129
- package/dist/src/telemetry/exporters.js.map +1 -1
- package/dist/src/telemetry/index.d.ts +6 -2
- package/dist/src/telemetry/index.d.ts.map +1 -1
- package/dist/src/telemetry/index.js +16 -0
- package/dist/src/telemetry/index.js.map +1 -1
- package/dist/src/telemetry/logs.d.ts +35 -11
- package/dist/src/telemetry/logs.d.ts.map +1 -1
- package/dist/src/telemetry/logs.js +158 -53
- package/dist/src/telemetry/logs.js.map +1 -1
- package/dist/src/telemetry/traces.d.ts +1 -6
- package/dist/src/telemetry/traces.d.ts.map +1 -1
- package/dist/src/telemetry/traces.js +2 -34
- package/dist/src/telemetry/traces.js.map +1 -1
- package/dist/src/testing/testing_runtime.d.ts +1 -1
- package/dist/src/testing/testing_runtime.d.ts.map +1 -1
- package/dist/src/testing/testing_runtime.js +8 -2
- 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/workflow.d.ts +16 -1
- package/dist/src/workflow.d.ts.map +1 -1
- package/dist/src/workflow.js +103 -61
- package/dist/src/workflow.js.map +1 -1
- package/examples/hello/README.md +1 -1
- package/examples/hello/dbos-config.yaml +3 -0
- package/package.json +3 -2
- package/dist/src/dbos-runtime/TypeParser.d.ts.map +0 -1
- package/dist/src/dbos-runtime/TypeParser.js.map +0 -1
- package/dist/src/dbos-runtime/openApi.js.map +0 -1
- package/dist/src/dbos-runtime/tsDiagUtil.d.ts.map +0 -1
- package/dist/src/dbos-runtime/tsDiagUtil.js.map +0 -1
- package/dist/src/telemetry/signals.d.ts +0 -20
- package/dist/src/telemetry/signals.d.ts.map +0 -1
- package/dist/src/telemetry/signals.js +0 -11
- package/dist/src/telemetry/signals.js.map +0 -1
- /package/dist/src/{dbos-runtime → staticAnalysis}/openApi.d.ts +0 -0
- /package/dist/src/{dbos-runtime → staticAnalysis}/tsDiagUtil.d.ts +0 -0
- /package/dist/src/{dbos-runtime → staticAnalysis}/tsDiagUtil.js +0 -0
@@ -3,9 +3,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
4
|
};
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
-
exports.TypeParser = void 0;
|
6
|
+
exports.findPackageInfo = exports.TypeParser = void 0;
|
7
7
|
const typescript_1 = __importDefault(require("typescript"));
|
8
8
|
const tsDiagUtil_1 = require("./tsDiagUtil");
|
9
|
+
const node_path_1 = __importDefault(require("node:path"));
|
10
|
+
const promises_1 = __importDefault(require("node:fs/promises"));
|
9
11
|
function isStaticMethod(node) {
|
10
12
|
const mods = node.modifiers ?? [];
|
11
13
|
return mods.some(m => m.kind === typescript_1.default.SyntaxKind.StaticKeyword);
|
@@ -101,4 +103,35 @@ class TypeParser {
|
|
101
103
|
}
|
102
104
|
}
|
103
105
|
exports.TypeParser = TypeParser;
|
106
|
+
async function findPackageInfo(entrypoints) {
|
107
|
+
for (const entrypoint of entrypoints) {
|
108
|
+
let dirname = node_path_1.default.dirname(entrypoint);
|
109
|
+
while (dirname !== '/') {
|
110
|
+
try {
|
111
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
112
|
+
const packageJson = JSON.parse(await promises_1.default.readFile(node_path_1.default.join(dirname, 'package.json'), { encoding: 'utf-8' }));
|
113
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
114
|
+
const name = packageJson.name ?? "unknown";
|
115
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
116
|
+
const version = packageJson.version;
|
117
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
118
|
+
const isPrivate = packageJson.private ?? false;
|
119
|
+
return {
|
120
|
+
name,
|
121
|
+
version: version
|
122
|
+
? version
|
123
|
+
: isPrivate ? "private" : "unknown"
|
124
|
+
};
|
125
|
+
}
|
126
|
+
catch (error) {
|
127
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-explicit-any
|
128
|
+
if (error.code !== 'ENOENT')
|
129
|
+
throw error;
|
130
|
+
}
|
131
|
+
dirname = node_path_1.default.dirname(dirname);
|
132
|
+
}
|
133
|
+
}
|
134
|
+
return { name: "unknown", version: "unknown" };
|
135
|
+
}
|
136
|
+
exports.findPackageInfo = findPackageInfo;
|
104
137
|
//# sourceMappingURL=TypeParser.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"TypeParser.js","sourceRoot":"","sources":["../../../src/staticAnalysis/TypeParser.ts"],"names":[],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"openApi.d.ts","sourceRoot":"","sources":["../../../src/
|
1
|
+
{"version":3,"file":"openApi.d.ts","sourceRoot":"","sources":["../../../src/staticAnalysis/openApi.ts"],"names":[],"mappings":"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"}
|
@@ -8,8 +8,6 @@ const typescript_1 = __importDefault(require("typescript"));
|
|
8
8
|
const TypeParser_1 = require("./TypeParser");
|
9
9
|
const handler_1 = require("../httpServer/handler");
|
10
10
|
const ts_json_schema_generator_1 = require("ts-json-schema-generator");
|
11
|
-
const node_path_1 = __importDefault(require("node:path"));
|
12
|
-
const promises_1 = __importDefault(require("node:fs/promises"));
|
13
11
|
const tsDiagUtil_1 = require("./tsDiagUtil");
|
14
12
|
function isValid(value) { return value !== undefined; }
|
15
13
|
// ts-json-schema-generator does not support BigInt, so OpenApiGenerator needs a custom type, formatter and parser for it
|
@@ -550,34 +548,6 @@ class OpenApiGenerator {
|
|
550
548
|
}
|
551
549
|
}
|
552
550
|
exports.OpenApiGenerator = OpenApiGenerator;
|
553
|
-
async function findPackageInfo(entrypoint) {
|
554
|
-
let dirname = node_path_1.default.dirname(entrypoint);
|
555
|
-
while (dirname !== '/') {
|
556
|
-
try {
|
557
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
558
|
-
const packageJson = JSON.parse(await promises_1.default.readFile(node_path_1.default.join(dirname, 'package.json'), { encoding: 'utf-8' }));
|
559
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
560
|
-
const name = packageJson.name ?? "unknown";
|
561
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
562
|
-
const version = packageJson.version;
|
563
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
564
|
-
const isPrivate = packageJson.private ?? false;
|
565
|
-
return {
|
566
|
-
name,
|
567
|
-
version: version
|
568
|
-
? version
|
569
|
-
: isPrivate ? "private" : "unknown"
|
570
|
-
};
|
571
|
-
}
|
572
|
-
catch (error) {
|
573
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-explicit-any
|
574
|
-
if (error.code !== 'ENOENT')
|
575
|
-
throw error;
|
576
|
-
}
|
577
|
-
dirname = node_path_1.default.dirname(dirname);
|
578
|
-
}
|
579
|
-
return { name: "unknown", version: "unknown" };
|
580
|
-
}
|
581
551
|
async function generateOpenApi(entrypoint) {
|
582
552
|
const program = typescript_1.default.createProgram([entrypoint], {});
|
583
553
|
const parser = new TypeParser_1.TypeParser(program);
|
@@ -585,7 +555,7 @@ async function generateOpenApi(entrypoint) {
|
|
585
555
|
(0, tsDiagUtil_1.logDiagnostics)(parser.diags);
|
586
556
|
if (!classes || classes.length === 0)
|
587
557
|
return undefined;
|
588
|
-
const { name, version } = await findPackageInfo(entrypoint);
|
558
|
+
const { name, version } = await (0, TypeParser_1.findPackageInfo)([entrypoint]);
|
589
559
|
const generator = new OpenApiGenerator(program);
|
590
560
|
const openapi = generator.generate(classes, name, version);
|
591
561
|
(0, tsDiagUtil_1.logDiagnostics)(generator.diags);
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"openApi.js","sourceRoot":"","sources":["../../../src/staticAnalysis/openApi.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"tsDiagUtil.d.ts","sourceRoot":"","sources":["../../../src/staticAnalysis/tsDiagUtil.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AAIjC,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC;IACf,QAAQ,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC;CAClC;AAED,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,EAAE,CAAC,UAAU,CAchG;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,UAAU,EAAE,GAAG,CAAC,GAAG,SAAS,CAEtF;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC,UAAU,EAAE,GAAG,IAAI,CAYpE;AAED,qBAAa,oBAAoB;;IAE/B,IAAI,KAAK,6BAAsD;IAE/D,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,GAAG,IAAI;IAI5C,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,GAAG,IAAI;CAG5C"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"tsDiagUtil.js","sourceRoot":"","sources":["../../../src/staticAnalysis/tsDiagUtil.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAiC;AAEjC,MAAM,OAAO,GAAG,EAAE,CAAC,aAAa,EAAE,CAAC;AAQnC,SAAgB,gBAAgB,CAAC,WAAmB,EAAE,OAA2B;IAC/E,MAAM,IAAI,GAAG,OAAO,EAAE,IAAI,CAAC;IAC3B,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,EAAE,CAAC,kBAAkB,CAAC,KAAK,CAAC;IAClE,MAAM,IAAI,GAAG,OAAO,EAAE,IAAI,IAAI,CAAC,CAAC;IAEhC,OAAO;QACL,QAAQ;QACR,IAAI;QACJ,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE;QAC3B,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE;QACxB,WAAW;QACX,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE;QACvB,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;KAClG,CAAC;AACJ,CAAC;AAdD,4CAcC;AAED,SAAgB,UAAU,CAAI,KAAQ,EAAE,KAA+B;IACrE,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,EAAE,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;AACzF,CAAC;AAFD,gCAEC;AAED,SAAgB,cAAc,CAAC,KAA+B;IAC5D,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;QACpB,MAAM,UAAU,GAA6B;YAC3C,mBAAmB,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,mBAAmB,EAAE;YACvD,UAAU,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO;YAChC,oBAAoB,EAAE,CAAC,QAAgB,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,yBAAyB;gBAC1E,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE;SACtC,CAAA;QAED,MAAM,IAAI,GAAG,EAAE,CAAC,oCAAoC,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QACxE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;KACnB;AACH,CAAC;AAZD,wCAYC;AAED,MAAa,oBAAoB;IACtB,MAAM,GAAG,IAAI,KAAK,EAAiB,CAAC;IAC7C,IAAI,KAAK,KAAK,OAAO,IAAI,CAAC,MAAkC,CAAC,CAAC,CAAC;IAE/D,KAAK,CAAC,OAAe,EAAE,IAAc;QACnC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACxD,CAAC;IAED,IAAI,CAAC,OAAe,EAAE,IAAc;QAClC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,kBAAkB,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACjG,CAAC;CACF;AAXD,oDAWC"}
|
@@ -2,17 +2,17 @@ import { DBOSNull } from "./dbos-executor";
|
|
2
2
|
import { Pool, PoolClient, PoolConfig } from "pg";
|
3
3
|
import { WorkflowStatus } from "./workflow";
|
4
4
|
import { HTTPRequest } from "./context";
|
5
|
-
import { Logger } from "
|
6
|
-
export declare const DBOSExecutorIDHeader = "dbos-executor-id";
|
5
|
+
import { GlobalLogger as Logger } from "./telemetry/logs";
|
7
6
|
export interface SystemDatabase {
|
8
7
|
init(): Promise<void>;
|
9
8
|
destroy(): Promise<void>;
|
10
9
|
checkWorkflowOutput<R>(workflowUUID: string): Promise<DBOSNull | R>;
|
11
|
-
initWorkflowStatus<T extends any[]>(
|
12
|
-
bufferWorkflowOutput
|
10
|
+
initWorkflowStatus<T extends any[]>(bufferedStatus: WorkflowStatusInternal, args: T): Promise<T>;
|
11
|
+
bufferWorkflowOutput(workflowUUID: string, status: WorkflowStatusInternal): void;
|
13
12
|
flushWorkflowStatusBuffer(): Promise<Array<string>>;
|
14
|
-
recordWorkflowError(workflowUUID: string,
|
13
|
+
recordWorkflowError(workflowUUID: string, status: WorkflowStatusInternal): Promise<void>;
|
15
14
|
getPendingWorkflows(executorID: string): Promise<Array<string>>;
|
15
|
+
setWorkflowInputs<T extends any[]>(workflowUUID: string, args: T): Promise<void>;
|
16
16
|
getWorkflowInputs<T extends any[]>(workflowUUID: string): Promise<T | null>;
|
17
17
|
checkOperationOutput<R>(workflowUUID: string, functionID: number): Promise<DBOSNull | R>;
|
18
18
|
recordOperationOutput<R>(workflowUUID: string, functionID: number, output: R): Promise<void>;
|
@@ -24,6 +24,18 @@ export interface SystemDatabase {
|
|
24
24
|
setEvent<T extends NonNullable<any>>(workflowUUID: string, functionID: number, key: string, value: T): Promise<void>;
|
25
25
|
getEvent<T extends NonNullable<any>>(workflowUUID: string, key: string, timeoutSeconds: number, callerUUID?: string, functionID?: number): Promise<T | null>;
|
26
26
|
}
|
27
|
+
export interface WorkflowStatusInternal {
|
28
|
+
workflowUUID: string;
|
29
|
+
status: string;
|
30
|
+
name: string;
|
31
|
+
authenticatedUser: string;
|
32
|
+
output: unknown;
|
33
|
+
error: string;
|
34
|
+
assumedRole: string;
|
35
|
+
authenticatedRoles: string[];
|
36
|
+
request: HTTPRequest;
|
37
|
+
executorID: string;
|
38
|
+
}
|
27
39
|
export declare class PostgresSystemDatabase implements SystemDatabase {
|
28
40
|
readonly pgPoolConfig: PoolConfig;
|
29
41
|
readonly systemDatabaseName: string;
|
@@ -32,19 +44,20 @@ export declare class PostgresSystemDatabase implements SystemDatabase {
|
|
32
44
|
notificationsClient: PoolClient | null;
|
33
45
|
readonly notificationsMap: Record<string, () => void>;
|
34
46
|
readonly workflowEventsMap: Record<string, () => void>;
|
35
|
-
readonly workflowStatusBuffer: Map<string,
|
47
|
+
readonly workflowStatusBuffer: Map<string, WorkflowStatusInternal>;
|
36
48
|
constructor(pgPoolConfig: PoolConfig, systemDatabaseName: string, logger: Logger);
|
37
49
|
init(): Promise<void>;
|
38
50
|
destroy(): Promise<void>;
|
39
51
|
checkWorkflowOutput<R>(workflowUUID: string): Promise<DBOSNull | R>;
|
40
|
-
initWorkflowStatus<T extends any[]>(
|
41
|
-
bufferWorkflowOutput
|
52
|
+
initWorkflowStatus<T extends any[]>(initStatus: WorkflowStatusInternal, args: T): Promise<T>;
|
53
|
+
bufferWorkflowOutput(workflowUUID: string, status: WorkflowStatusInternal): void;
|
42
54
|
/**
|
43
55
|
* Flush the workflow output buffer to the database.
|
44
56
|
*/
|
45
57
|
flushWorkflowStatusBuffer(): Promise<string[]>;
|
46
|
-
recordWorkflowError(workflowUUID: string,
|
58
|
+
recordWorkflowError(workflowUUID: string, status: WorkflowStatusInternal): Promise<void>;
|
47
59
|
getPendingWorkflows(executorID: string): Promise<Array<string>>;
|
60
|
+
setWorkflowInputs<T extends any[]>(workflowUUID: string, args: T): Promise<void>;
|
48
61
|
getWorkflowInputs<T extends any[]>(workflowUUID: string): Promise<T | null>;
|
49
62
|
checkOperationOutput<R>(workflowUUID: string, functionID: number): Promise<DBOSNull | R>;
|
50
63
|
recordOperationOutput<R>(workflowUUID: string, functionID: number, output: R): Promise<void>;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"system_database.d.ts","sourceRoot":"","sources":["../../src/system_database.ts"],"names":[],"mappings":"AAGA,OAAO,EAA0B,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAiB,IAAI,EAAE,UAAU,EAAgB,UAAU,EAAU,MAAM,IAAI,CAAC;AAEvF,OAAO,EAAgB,cAAc,EAAE,MAAM,YAAY,CAAC;AAG1D,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,
|
1
|
+
{"version":3,"file":"system_database.d.ts","sourceRoot":"","sources":["../../src/system_database.ts"],"names":[],"mappings":"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"}
|
@@ -1,7 +1,7 @@
|
|
1
1
|
"use strict";
|
2
2
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
4
|
-
exports.PostgresSystemDatabase =
|
4
|
+
exports.PostgresSystemDatabase = void 0;
|
5
5
|
const serialize_error_1 = require("serialize-error");
|
6
6
|
const dbos_executor_1 = require("./dbos-executor");
|
7
7
|
const pg_1 = require("pg");
|
@@ -9,7 +9,6 @@ const error_1 = require("./error");
|
|
9
9
|
const workflow_1 = require("./workflow");
|
10
10
|
const system_db_schema_1 = require("../schemas/system_db_schema");
|
11
11
|
const utils_1 = require("./utils");
|
12
|
-
exports.DBOSExecutorIDHeader = "dbos-executor-id";
|
13
12
|
class PostgresSystemDatabase {
|
14
13
|
pgPoolConfig;
|
15
14
|
systemDatabaseName;
|
@@ -31,10 +30,14 @@ class PostgresSystemDatabase {
|
|
31
30
|
const pgSystemClient = new pg_1.Client(this.pgPoolConfig);
|
32
31
|
await pgSystemClient.connect();
|
33
32
|
// Create the system database and load tables.
|
34
|
-
const dbExists = await pgSystemClient.query(`SELECT FROM pg_database WHERE datname = '${this.systemDatabaseName}'`);
|
35
|
-
if (dbExists.rows.
|
33
|
+
const dbExists = await pgSystemClient.query(`SELECT EXISTS (SELECT FROM pg_database WHERE datname = '${this.systemDatabaseName}')`);
|
34
|
+
if (!dbExists.rows[0].exists) {
|
36
35
|
// Create the DBOS system database.
|
37
36
|
await pgSystemClient.query(`CREATE DATABASE "${this.systemDatabaseName}"`);
|
37
|
+
}
|
38
|
+
// Check if the system schema exist.
|
39
|
+
const schemaExists = await this.pool.query(`SELECT EXISTS (SELECT FROM information_schema.tables WHERE table_schema = 'public' AND table_name = 'workflow_status')`);
|
40
|
+
if (!schemaExists.rows[0].exists) {
|
38
41
|
// Load the DBOS system schemas.
|
39
42
|
await this.pool.query(system_db_schema_1.systemDBSchema);
|
40
43
|
}
|
@@ -49,7 +52,7 @@ class PostgresSystemDatabase {
|
|
49
52
|
await this.pool.end();
|
50
53
|
}
|
51
54
|
async checkWorkflowOutput(workflowUUID) {
|
52
|
-
const { rows } = await this.pool.query(
|
55
|
+
const { rows } = await this.pool.query(`SELECT status, output, error FROM ${dbos_executor_1.DBOSExecutor.systemDBSchemaName}.workflow_status WHERE workflow_uuid=$1`, [workflowUUID]);
|
53
56
|
if (rows.length === 0 || rows[0].status === workflow_1.StatusString.PENDING) {
|
54
57
|
return dbos_executor_1.dbosNull;
|
55
58
|
}
|
@@ -60,17 +63,13 @@ class PostgresSystemDatabase {
|
|
60
63
|
return JSON.parse(rows[0].output);
|
61
64
|
}
|
62
65
|
}
|
63
|
-
async initWorkflowStatus(
|
64
|
-
|
65
|
-
|
66
|
-
executorID = request.headers[exports.DBOSExecutorIDHeader];
|
67
|
-
}
|
68
|
-
await this.pool.query(`INSERT INTO workflow_status (workflow_uuid, status, name, authenticated_user, assumed_role, authenticated_roles, request, output, executor_id) VALUES($1, $2, $3, $4, $5, $6, $7, $8, $9) ON CONFLICT (workflow_uuid) DO NOTHING`, [workflowUUID, workflow_1.StatusString.PENDING, name, authenticatedUser, assumedRole, JSON.stringify(authenticatedRoles), JSON.stringify(request), null, executorID]);
|
69
|
-
const { rows } = await this.pool.query(`INSERT INTO workflow_inputs (workflow_uuid, inputs) VALUES($1, $2) ON CONFLICT (workflow_uuid) DO UPDATE SET workflow_uuid = excluded.workflow_uuid RETURNING inputs`, [workflowUUID, JSON.stringify(args)]);
|
66
|
+
async initWorkflowStatus(initStatus, args) {
|
67
|
+
await this.pool.query(`INSERT INTO ${dbos_executor_1.DBOSExecutor.systemDBSchemaName}.workflow_status (workflow_uuid, status, name, authenticated_user, assumed_role, authenticated_roles, request, output, executor_id) VALUES($1, $2, $3, $4, $5, $6, $7, $8, $9) ON CONFLICT (workflow_uuid) DO NOTHING`, [initStatus.workflowUUID, initStatus.status, initStatus.name, initStatus.authenticatedUser, initStatus.assumedRole, JSON.stringify(initStatus.authenticatedRoles), JSON.stringify(initStatus.request), null, initStatus.executorID]);
|
68
|
+
const { rows } = await this.pool.query(`INSERT INTO ${dbos_executor_1.DBOSExecutor.systemDBSchemaName}.workflow_inputs (workflow_uuid, inputs) VALUES($1, $2) ON CONFLICT (workflow_uuid) DO UPDATE SET workflow_uuid = excluded.workflow_uuid RETURNING inputs`, [initStatus.workflowUUID, JSON.stringify(args)]);
|
70
69
|
return JSON.parse(rows[0].inputs);
|
71
70
|
}
|
72
|
-
bufferWorkflowOutput(workflowUUID,
|
73
|
-
this.workflowStatusBuffer.set(workflowUUID,
|
71
|
+
bufferWorkflowOutput(workflowUUID, status) {
|
72
|
+
this.workflowStatusBuffer.set(workflowUUID, status);
|
74
73
|
}
|
75
74
|
/**
|
76
75
|
* Flush the workflow output buffer to the database.
|
@@ -81,15 +80,16 @@ class PostgresSystemDatabase {
|
|
81
80
|
try {
|
82
81
|
const client = await this.pool.connect();
|
83
82
|
await client.query("BEGIN");
|
84
|
-
for (const [workflowUUID,
|
85
|
-
await client.query(`INSERT INTO workflow_status (workflow_uuid, status, output) VALUES($1, $2, $3) ON CONFLICT (workflow_uuid)
|
86
|
-
DO UPDATE SET status=EXCLUDED.status, output=EXCLUDED.output;`, [workflowUUID,
|
83
|
+
for (const [workflowUUID, status] of localBuffer) {
|
84
|
+
await client.query(`INSERT INTO ${dbos_executor_1.DBOSExecutor.systemDBSchemaName}.workflow_status (workflow_uuid, status, name, authenticated_user, assumed_role, authenticated_roles, request, output, executor_id) VALUES($1, $2, $3, $4, $5, $6, $7, $8, $9) ON CONFLICT (workflow_uuid)
|
85
|
+
DO UPDATE SET status=EXCLUDED.status, output=EXCLUDED.output;`, [workflowUUID, status.status, status.name, status.authenticatedUser, status.assumedRole, JSON.stringify(status.authenticatedRoles), JSON.stringify(status.request), JSON.stringify(status.output), status.executorID]);
|
87
86
|
}
|
88
87
|
await client.query("COMMIT");
|
89
88
|
client.release();
|
90
89
|
}
|
91
90
|
catch (error) {
|
92
|
-
|
91
|
+
error.message = `Error flushing workflow buffer: ${error.message}`;
|
92
|
+
this.logger.error(error);
|
93
93
|
// If there is a failure in flushing the buffer, return items to the global buffer for retrying later.
|
94
94
|
for (const [workflowUUID, output] of localBuffer) {
|
95
95
|
if (!this.workflowStatusBuffer.has(workflowUUID)) {
|
@@ -99,24 +99,26 @@ class PostgresSystemDatabase {
|
|
99
99
|
}
|
100
100
|
return Array.from(localBuffer.keys());
|
101
101
|
}
|
102
|
-
async recordWorkflowError(workflowUUID,
|
103
|
-
|
104
|
-
|
105
|
-
DO UPDATE SET status=EXCLUDED.status, error=EXCLUDED.error;`, [workflowUUID, workflow_1.StatusString.ERROR, serialErr]);
|
102
|
+
async recordWorkflowError(workflowUUID, status) {
|
103
|
+
await this.pool.query(`INSERT INTO ${dbos_executor_1.DBOSExecutor.systemDBSchemaName}.workflow_status (workflow_uuid, status, name, authenticated_user, assumed_role, authenticated_roles, request, error, executor_id) VALUES($1, $2, $3, $4, $5, $6, $7, $8, $9) ON CONFLICT (workflow_uuid)
|
104
|
+
DO UPDATE SET status=EXCLUDED.status, error=EXCLUDED.error;`, [workflowUUID, workflow_1.StatusString.ERROR, status.name, status.authenticatedUser, status.assumedRole, JSON.stringify(status.authenticatedRoles), JSON.stringify(status.request), status.error, status.executorID]);
|
106
105
|
}
|
107
106
|
async getPendingWorkflows(executorID) {
|
108
|
-
const { rows } = await this.pool.query(`SELECT workflow_uuid FROM workflow_status WHERE status=$1 AND executor_id=$2`, [workflow_1.StatusString.PENDING, executorID]);
|
107
|
+
const { rows } = await this.pool.query(`SELECT workflow_uuid FROM ${dbos_executor_1.DBOSExecutor.systemDBSchemaName}.workflow_status WHERE status=$1 AND executor_id=$2`, [workflow_1.StatusString.PENDING, executorID]);
|
109
108
|
return rows.map(i => i.workflow_uuid);
|
110
109
|
}
|
110
|
+
async setWorkflowInputs(workflowUUID, args) {
|
111
|
+
await this.pool.query(`INSERT INTO ${dbos_executor_1.DBOSExecutor.systemDBSchemaName}.workflow_inputs (workflow_uuid, inputs) VALUES($1, $2) ON CONFLICT (workflow_uuid) DO NOTHING`, [workflowUUID, JSON.stringify(args)]);
|
112
|
+
}
|
111
113
|
async getWorkflowInputs(workflowUUID) {
|
112
|
-
const { rows } = await this.pool.query(`SELECT inputs FROM workflow_inputs WHERE workflow_uuid=$1`, [workflowUUID]);
|
114
|
+
const { rows } = await this.pool.query(`SELECT inputs FROM ${dbos_executor_1.DBOSExecutor.systemDBSchemaName}.workflow_inputs WHERE workflow_uuid=$1`, [workflowUUID]);
|
113
115
|
if (rows.length === 0) {
|
114
116
|
return null;
|
115
117
|
}
|
116
118
|
return JSON.parse(rows[0].inputs);
|
117
119
|
}
|
118
120
|
async checkOperationOutput(workflowUUID, functionID) {
|
119
|
-
const { rows } = await this.pool.query(
|
121
|
+
const { rows } = await this.pool.query(`SELECT output, error FROM ${dbos_executor_1.DBOSExecutor.systemDBSchemaName}.operation_outputs WHERE workflow_uuid=$1 AND function_id=$2`, [workflowUUID, functionID]);
|
120
122
|
if (rows.length === 0) {
|
121
123
|
return dbos_executor_1.dbosNull;
|
122
124
|
}
|
@@ -130,7 +132,7 @@ class PostgresSystemDatabase {
|
|
130
132
|
async recordOperationOutput(workflowUUID, functionID, output) {
|
131
133
|
const serialOutput = JSON.stringify(output);
|
132
134
|
try {
|
133
|
-
await this.pool.query(
|
135
|
+
await this.pool.query(`INSERT INTO ${dbos_executor_1.DBOSExecutor.systemDBSchemaName}.operation_outputs (workflow_uuid, function_id, output) VALUES ($1, $2, $3);`, [workflowUUID, functionID, serialOutput]);
|
134
136
|
}
|
135
137
|
catch (error) {
|
136
138
|
const err = error;
|
@@ -146,7 +148,7 @@ class PostgresSystemDatabase {
|
|
146
148
|
async recordOperationError(workflowUUID, functionID, error) {
|
147
149
|
const serialErr = JSON.stringify((0, serialize_error_1.serializeError)(error));
|
148
150
|
try {
|
149
|
-
await this.pool.query(
|
151
|
+
await this.pool.query(`INSERT INTO ${dbos_executor_1.DBOSExecutor.systemDBSchemaName}.operation_outputs (workflow_uuid, function_id, error) VALUES ($1, $2, $3);`, [workflowUUID, functionID, serialErr]);
|
150
152
|
}
|
151
153
|
catch (error) {
|
152
154
|
const err = error;
|
@@ -164,7 +166,7 @@ class PostgresSystemDatabase {
|
|
164
166
|
*/
|
165
167
|
async recordNotificationOutput(client, workflowUUID, functionID, output) {
|
166
168
|
try {
|
167
|
-
await client.query(
|
169
|
+
await client.query(`INSERT INTO ${dbos_executor_1.DBOSExecutor.systemDBSchemaName}.operation_outputs (workflow_uuid, function_id, output) VALUES ($1, $2, $3);`, [workflowUUID, functionID, JSON.stringify(output)]);
|
168
170
|
}
|
169
171
|
catch (error) {
|
170
172
|
await client.query("ROLLBACK");
|
@@ -184,13 +186,13 @@ class PostgresSystemDatabase {
|
|
184
186
|
topic = topic ?? this.nullTopic;
|
185
187
|
const client = await this.pool.connect();
|
186
188
|
await client.query("BEGIN ISOLATION LEVEL READ COMMITTED");
|
187
|
-
const { rows } = await client.query(
|
189
|
+
const { rows } = await client.query(`SELECT output FROM ${dbos_executor_1.DBOSExecutor.systemDBSchemaName}.operation_outputs WHERE workflow_uuid=$1 AND function_id=$2`, [workflowUUID, functionID]);
|
188
190
|
if (rows.length > 0) {
|
189
191
|
await client.query("ROLLBACK");
|
190
192
|
client.release();
|
191
193
|
return;
|
192
194
|
}
|
193
|
-
await client.query(`INSERT INTO notifications (destination_uuid, topic, message) VALUES ($1, $2, $3);`, [destinationUUID, topic, JSON.stringify(message)]);
|
195
|
+
await client.query(`INSERT INTO ${dbos_executor_1.DBOSExecutor.systemDBSchemaName}.notifications (destination_uuid, topic, message) VALUES ($1, $2, $3);`, [destinationUUID, topic, JSON.stringify(message)]);
|
194
196
|
await this.recordNotificationOutput(client, workflowUUID, functionID, undefined);
|
195
197
|
await client.query("COMMIT");
|
196
198
|
client.release();
|
@@ -198,7 +200,7 @@ class PostgresSystemDatabase {
|
|
198
200
|
async recv(workflowUUID, functionID, topic, timeoutSeconds = dbos_executor_1.DBOSExecutor.defaultNotificationTimeoutSec) {
|
199
201
|
topic = topic ?? this.nullTopic;
|
200
202
|
// First, check for previous executions.
|
201
|
-
const checkRows = (await this.pool.query(
|
203
|
+
const checkRows = (await this.pool.query(`SELECT output FROM ${dbos_executor_1.DBOSExecutor.systemDBSchemaName}.operation_outputs WHERE workflow_uuid=$1 AND function_id=$2`, [workflowUUID, functionID])).rows;
|
202
204
|
if (checkRows.length > 0) {
|
203
205
|
return JSON.parse(checkRows[0].output);
|
204
206
|
}
|
@@ -217,7 +219,7 @@ class PostgresSystemDatabase {
|
|
217
219
|
});
|
218
220
|
const received = Promise.race([messagePromise, timeoutPromise]);
|
219
221
|
// Check if the key is already in the DB, then wait for the notification if it isn't.
|
220
|
-
const initRecvRows = (await this.pool.query(
|
222
|
+
const initRecvRows = (await this.pool.query(`SELECT topic FROM ${dbos_executor_1.DBOSExecutor.systemDBSchemaName}.notifications WHERE destination_uuid=$1 AND topic=$2;`, [workflowUUID, topic])).rows;
|
221
223
|
if (initRecvRows.length === 0) {
|
222
224
|
await received;
|
223
225
|
}
|
@@ -227,14 +229,14 @@ class PostgresSystemDatabase {
|
|
227
229
|
await client.query(`BEGIN ISOLATION LEVEL READ COMMITTED`);
|
228
230
|
const finalRecvRows = (await client.query(`WITH oldest_entry AS (
|
229
231
|
SELECT destination_uuid, topic, message, created_at_epoch_ms
|
230
|
-
FROM notifications
|
232
|
+
FROM ${dbos_executor_1.DBOSExecutor.systemDBSchemaName}.notifications
|
231
233
|
WHERE destination_uuid = $1
|
232
234
|
AND topic = $2
|
233
235
|
ORDER BY created_at_epoch_ms ASC
|
234
236
|
LIMIT 1
|
235
237
|
)
|
236
238
|
|
237
|
-
DELETE FROM notifications
|
239
|
+
DELETE FROM ${dbos_executor_1.DBOSExecutor.systemDBSchemaName}.notifications
|
238
240
|
USING oldest_entry
|
239
241
|
WHERE notifications.destination_uuid = oldest_entry.destination_uuid
|
240
242
|
AND notifications.topic = oldest_entry.topic
|
@@ -252,13 +254,13 @@ class PostgresSystemDatabase {
|
|
252
254
|
async setEvent(workflowUUID, functionID, key, message) {
|
253
255
|
const client = await this.pool.connect();
|
254
256
|
await client.query("BEGIN ISOLATION LEVEL READ COMMITTED");
|
255
|
-
let { rows } = await client.query(
|
257
|
+
let { rows } = await client.query(`SELECT output FROM ${dbos_executor_1.DBOSExecutor.systemDBSchemaName}.operation_outputs WHERE workflow_uuid=$1 AND function_id=$2`, [workflowUUID, functionID]);
|
256
258
|
if (rows.length > 0) {
|
257
259
|
await client.query("ROLLBACK");
|
258
260
|
client.release();
|
259
261
|
return;
|
260
262
|
}
|
261
|
-
({ rows } = await client.query(`INSERT INTO workflow_events (workflow_uuid, key, value) VALUES ($1, $2, $3) ON CONFLICT (workflow_uuid, key) DO NOTHING RETURNING workflow_uuid;`, [workflowUUID, key, JSON.stringify(message)]));
|
263
|
+
({ rows } = await client.query(`INSERT INTO ${dbos_executor_1.DBOSExecutor.systemDBSchemaName}.workflow_events (workflow_uuid, key, value) VALUES ($1, $2, $3) ON CONFLICT (workflow_uuid, key) DO NOTHING RETURNING workflow_uuid;`, [workflowUUID, key, JSON.stringify(message)]));
|
262
264
|
if (rows.length === 0) {
|
263
265
|
await client.query("ROLLBACK");
|
264
266
|
client.release();
|
@@ -271,7 +273,7 @@ class PostgresSystemDatabase {
|
|
271
273
|
async getEvent(workflowUUID, key, timeoutSeconds, callerUUID, functionID) {
|
272
274
|
// Check if the operation has been done before for OAOO (only do this inside a workflow).
|
273
275
|
if (callerUUID !== undefined && functionID !== undefined) {
|
274
|
-
const { rows } = await this.pool.query(
|
276
|
+
const { rows } = await this.pool.query(`SELECT output FROM ${dbos_executor_1.DBOSExecutor.systemDBSchemaName}.operation_outputs WHERE workflow_uuid=$1 AND function_id=$2`, [callerUUID, functionID]);
|
275
277
|
if (rows.length > 0) {
|
276
278
|
return JSON.parse(rows[0].output);
|
277
279
|
}
|
@@ -290,7 +292,7 @@ class PostgresSystemDatabase {
|
|
290
292
|
});
|
291
293
|
const received = Promise.race([valuePromise, timeoutPromise]);
|
292
294
|
// Check if the key is already in the DB, then wait for the notification if it isn't.
|
293
|
-
const initRecvRows = (await this.pool.query(
|
295
|
+
const initRecvRows = (await this.pool.query(`SELECT key, value FROM ${dbos_executor_1.DBOSExecutor.systemDBSchemaName}.workflow_events WHERE workflow_uuid=$1 AND key=$2;`, [workflowUUID, key])).rows;
|
294
296
|
if (initRecvRows.length === 0) {
|
295
297
|
await received;
|
296
298
|
}
|
@@ -302,7 +304,7 @@ class PostgresSystemDatabase {
|
|
302
304
|
}
|
303
305
|
else {
|
304
306
|
// Read it again from the database.
|
305
|
-
const finalRecvRows = (await this.pool.query(
|
307
|
+
const finalRecvRows = (await this.pool.query(`SELECT value FROM ${dbos_executor_1.DBOSExecutor.systemDBSchemaName}.workflow_events WHERE workflow_uuid=$1 AND key=$2;`, [workflowUUID, key])).rows;
|
306
308
|
if (finalRecvRows.length > 0) {
|
307
309
|
value = JSON.parse(finalRecvRows[0].value);
|
308
310
|
}
|
@@ -316,12 +318,12 @@ class PostgresSystemDatabase {
|
|
316
318
|
async getWorkflowStatus(workflowUUID, callerUUID, functionID) {
|
317
319
|
// Check if the operation has been done before for OAOO (only do this inside a workflow).
|
318
320
|
if (callerUUID !== undefined && functionID !== undefined) {
|
319
|
-
const { rows } = await this.pool.query(
|
321
|
+
const { rows } = await this.pool.query(`SELECT output FROM ${dbos_executor_1.DBOSExecutor.systemDBSchemaName}.operation_outputs WHERE workflow_uuid=$1 AND function_id=$2`, [callerUUID, functionID]);
|
320
322
|
if (rows.length > 0) {
|
321
323
|
return JSON.parse(rows[0].output);
|
322
324
|
}
|
323
325
|
}
|
324
|
-
const { rows } = await this.pool.query(
|
326
|
+
const { rows } = await this.pool.query(`SELECT status, name, authenticated_user, assumed_role, authenticated_roles, request FROM ${dbos_executor_1.DBOSExecutor.systemDBSchemaName}.workflow_status WHERE workflow_uuid=$1`, [workflowUUID]);
|
325
327
|
let value = null;
|
326
328
|
if (rows.length > 0) {
|
327
329
|
value = {
|
@@ -343,7 +345,7 @@ class PostgresSystemDatabase {
|
|
343
345
|
const pollingIntervalMs = 1000;
|
344
346
|
// eslint-disable-next-line no-constant-condition
|
345
347
|
while (true) {
|
346
|
-
const { rows } = await this.pool.query(
|
348
|
+
const { rows } = await this.pool.query(`SELECT status, output, error FROM ${dbos_executor_1.DBOSExecutor.systemDBSchemaName}.workflow_status WHERE workflow_uuid=$1`, [workflowUUID]);
|
347
349
|
if (rows.length > 0) {
|
348
350
|
const status = rows[0].status;
|
349
351
|
if (status === workflow_1.StatusString.SUCCESS) {
|