@versori/run 0.5.3 → 0.5.4
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/esm/src/interpreter/vanilla/ObservableCompiler.d.ts +2 -0
- package/esm/src/interpreter/vanilla/ObservableCompiler.d.ts.map +1 -1
- package/esm/src/interpreter/vanilla/VanillaInterpreter.d.ts +3 -1
- package/esm/src/interpreter/vanilla/VanillaInterpreter.d.ts.map +1 -1
- package/esm/src/interpreter/vanilla/VanillaInterpreter.js +11 -3
- package/esm/src/interpreter/vanilla/compilers/durableworkflow.d.ts.map +1 -1
- package/esm/src/interpreter/vanilla/compilers/durableworkflow.js +35 -26
- package/package.json +1 -1
- package/script/src/interpreter/vanilla/ObservableCompiler.d.ts +2 -0
- package/script/src/interpreter/vanilla/ObservableCompiler.d.ts.map +1 -1
- package/script/src/interpreter/vanilla/VanillaInterpreter.d.ts +3 -1
- package/script/src/interpreter/vanilla/VanillaInterpreter.d.ts.map +1 -1
- package/script/src/interpreter/vanilla/VanillaInterpreter.js +11 -3
- package/script/src/interpreter/vanilla/compilers/durableworkflow.d.ts.map +1 -1
- package/script/src/interpreter/vanilla/compilers/durableworkflow.js +35 -26
|
@@ -9,6 +9,7 @@ import { ConfigReader } from '../../dsl/http/types.js';
|
|
|
9
9
|
import { Task } from '../../dsl/Task.js';
|
|
10
10
|
import { Trigger } from '../../dsl/Trigger.js';
|
|
11
11
|
import { Logger } from '../../observability/logging/Logger.js';
|
|
12
|
+
import { PlatformApi } from '../../services/platform/PlatformApi.js';
|
|
12
13
|
import { QueueAPI } from '../durable/Queue.js';
|
|
13
14
|
import { ContextOperatorFunction, TaskCompiler, TriggerCompiler } from './compilers/types.js';
|
|
14
15
|
export type VanillaCompilerContext = {
|
|
@@ -17,6 +18,7 @@ export type VanillaCompilerContext = {
|
|
|
17
18
|
tracer: Tracer;
|
|
18
19
|
contextProvider: ContextProvider;
|
|
19
20
|
cnxFactory: ConnectionFactory;
|
|
21
|
+
platformApi: PlatformApi;
|
|
20
22
|
queueProvider: QueueAPI;
|
|
21
23
|
webhookRouter: Router;
|
|
22
24
|
cronRouter: Router;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ObservableCompiler.d.ts","sourceRoot":"","sources":["../../../../src/src/interpreter/vanilla/ObservableCompiler.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,MAAM,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,IAAI,EAAY,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAe,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,uCAAuC,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAU/C,OAAO,EAAE,uBAAuB,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAI9F,MAAM,MAAM,sBAAsB,GAAG;IACjC,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,eAAe,CAAC;IACjC,UAAU,EAAE,iBAAiB,CAAC;IAC9B,aAAa,EAAE,QAAQ,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,YAAY,CAAC;IAC3B,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,cAAc,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,UAa/B,CAAC;AAEF,MAAM,MAAM,YAAY,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,CAAC,SAAS,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,CACrF,GAAG,EAAE,sBAAsB,EAC3B,IAAI,EAAE,CAAC,KACN,gBAAgB,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;AAE/B,qBAAa,kBAAkB;IAC3B,OAAO,CAAC,aAAa,CAAkD;IACvE,OAAO,CAAC,gBAAgB,CAAgD;;IAkBxE,WAAW,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,KAAK,GAAG,IAAI,EACzC,GAAG,EAAE,sBAAsB,EAC3B,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,GACpB,uBAAuB,CAAC,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC;IAe1C,cAAc,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,SAAS,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,EAC3D,GAAG,EAAE,sBAAsB,EAC3B,OAAO,EAAE,CAAC,EACV,MAAM,EAAE,WAAW,GACpB,UAAU,CAAC,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAexC,YAAY,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,SAAS,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;IAKjF,eAAe,CAAC,GAAG,EAAE,CAAC,SAAS,OAAO,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,eAAe,CAAC,GAAG,EAAE,CAAC,CAAC;CAIjF"}
|
|
1
|
+
{"version":3,"file":"ObservableCompiler.d.ts","sourceRoot":"","sources":["../../../../src/src/interpreter/vanilla/ObservableCompiler.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,MAAM,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,IAAI,EAAY,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAe,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,uCAAuC,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAC;AACrE,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAU/C,OAAO,EAAE,uBAAuB,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAI9F,MAAM,MAAM,sBAAsB,GAAG;IACjC,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,eAAe,CAAC;IACjC,UAAU,EAAE,iBAAiB,CAAC;IAC9B,WAAW,EAAE,WAAW,CAAC;IACzB,aAAa,EAAE,QAAQ,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,YAAY,CAAC;IAC3B,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,cAAc,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,UAa/B,CAAC;AAEF,MAAM,MAAM,YAAY,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,CAAC,SAAS,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,CACrF,GAAG,EAAE,sBAAsB,EAC3B,IAAI,EAAE,CAAC,KACN,gBAAgB,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;AAE/B,qBAAa,kBAAkB;IAC3B,OAAO,CAAC,aAAa,CAAkD;IACvE,OAAO,CAAC,gBAAgB,CAAgD;;IAkBxE,WAAW,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,KAAK,GAAG,IAAI,EACzC,GAAG,EAAE,sBAAsB,EAC3B,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,GACpB,uBAAuB,CAAC,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC;IAe1C,cAAc,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,SAAS,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,EAC3D,GAAG,EAAE,sBAAsB,EAC3B,OAAO,EAAE,CAAC,EACV,MAAM,EAAE,WAAW,GACpB,UAAU,CAAC,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAexC,YAAY,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,SAAS,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;IAKjF,eAAe,CAAC,GAAG,EAAE,CAAC,SAAS,OAAO,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,eAAe,CAAC,GAAG,EAAE,CAAC,CAAC;CAIjF"}
|
|
@@ -8,6 +8,7 @@ import { VanillaContext, VanillaContextProvider } from '../../context/VanillaCon
|
|
|
8
8
|
import { ConfigReader, CronProvider } from '../../dsl/http/types.js';
|
|
9
9
|
import { Workflow } from '../../dsl/Workflow.js';
|
|
10
10
|
import { Logger } from '../../observability/logging/Logger.js';
|
|
11
|
+
import { PlatformApi } from '../../services/platform/PlatformApi.js';
|
|
11
12
|
import { QueueAPI } from '../durable/Queue.js';
|
|
12
13
|
import { ContextOperatorFunction } from './compilers/types.js';
|
|
13
14
|
import { ObservableCompiler } from './ObservableCompiler.js';
|
|
@@ -79,6 +80,7 @@ export declare class VanillaInterpreter {
|
|
|
79
80
|
private readonly cronProvider;
|
|
80
81
|
private readonly tracer;
|
|
81
82
|
private readonly cfgReader;
|
|
83
|
+
private readonly platformApi;
|
|
82
84
|
private readonly queueProvider;
|
|
83
85
|
private readonly otelSDK?;
|
|
84
86
|
private registeredWorkflows;
|
|
@@ -86,7 +88,7 @@ export declare class VanillaInterpreter {
|
|
|
86
88
|
private cronServer?;
|
|
87
89
|
private shutdownServer?;
|
|
88
90
|
private isShuttingDown;
|
|
89
|
-
constructor(log: Logger, compiler: ObservableCompiler, contextProvider: ContextProvider, webhookRouter: Router, cronRouter: Router, cronRegistry: Map<string, string>, cnxFetchFactory: DefaultConnectionFactory, cronProvider: CronProvider, tracer: Tracer, cfgReader: ConfigReader, queueProvider: QueueAPI, otelSDK?: NodeSDK | undefined);
|
|
91
|
+
constructor(log: Logger, compiler: ObservableCompiler, contextProvider: ContextProvider, webhookRouter: Router, cronRouter: Router, cronRegistry: Map<string, string>, cnxFetchFactory: DefaultConnectionFactory, cronProvider: CronProvider, tracer: Tracer, cfgReader: ConfigReader, platformApi: PlatformApi, queueProvider: QueueAPI, otelSDK?: NodeSDK | undefined);
|
|
90
92
|
static newInstance(options?: VanillaInterpreterOptions): Promise<VanillaInterpreter>;
|
|
91
93
|
register<O>(workflow: Workflow<O>, options?: VanillaInterpreterOptions): Registration;
|
|
92
94
|
start(): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VanillaInterpreter.d.ts","sourceRoot":"","sources":["../../../../src/src/interpreter/vanilla/VanillaInterpreter.ts"],"names":[],"mappings":"AAaA,OAAsB,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAG3D,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAgB,EAAqB,MAAM,EAAE,MAAM,SAAS,CAAC;AAE7D,OAAO,EAA+B,UAAU,EAAM,YAAY,EAAO,MAAM,MAAM,CAAC;AACtF,OAAO,EAAE,wBAAwB,EAAE,MAAM,8CAA8C,CAAC;AACxF,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AACzF,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAarE,OAAO,EAAE,QAAQ,EAAgB,MAAM,uBAAuB,CAAC;AAM/D,OAAO,EAAE,MAAM,EAAE,MAAM,uCAAuC,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAa,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAA0B,MAAM,yBAAyB,CAAC;AAErF;;;GAGG;AACH,MAAM,MAAM,yBAAyB,GAAG;IACpC;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IAE9B;;OAEG;IACH,eAAe,CAAC,EAAE,sBAAsB,CAAC;IAEzC;;OAEG;IACH,MAAM,CAAC,EAAE,WAAW,CAAC;IAErB;;OAEG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAC;CACpC,CAAC;AAEF,KAAK,YAAY,GAAG;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,UAAU,CAAC,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;IAChD,KAAK,EAAE,uBAAuB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAC9C,oBAAoB,EAAE,eAAe,CAAC;IACtC,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,YAAY,CAAC,EAAE,YAAY,CAAC;CAC/B,CAAC;AAUF;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,kBAAkB;IAQvB,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"VanillaInterpreter.d.ts","sourceRoot":"","sources":["../../../../src/src/interpreter/vanilla/VanillaInterpreter.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,6 +26,7 @@ import { IssueImpl } from '../../issues/Issues.js';
|
|
|
26
26
|
import { MemoryKeyValueProvider } from '../../kv/memory/MemoryKeyValueProvider.js';
|
|
27
27
|
import { SDKKeyValueProvider } from '../../kv/sdk/SDKKeyValueProvider.js';
|
|
28
28
|
import { ConsoleLogger } from '../../observability/logging/ConsoleLogger.js';
|
|
29
|
+
import { PlatformApiImpl } from '../../services/platform/PlatformApi.js';
|
|
29
30
|
import { QueueImpl } from '../durable/Queue.js';
|
|
30
31
|
import { ObservableCompiler } from './ObservableCompiler.js';
|
|
31
32
|
function getKVProvider(runLocal) {
|
|
@@ -58,7 +59,7 @@ function getKVProvider(runLocal) {
|
|
|
58
59
|
* ```
|
|
59
60
|
*/
|
|
60
61
|
export class VanillaInterpreter {
|
|
61
|
-
constructor(log, compiler, contextProvider, webhookRouter, cronRouter, cronRegistry, cnxFetchFactory, cronProvider, tracer, cfgReader, queueProvider, otelSDK) {
|
|
62
|
+
constructor(log, compiler, contextProvider, webhookRouter, cronRouter, cronRegistry, cnxFetchFactory, cronProvider, tracer, cfgReader, platformApi, queueProvider, otelSDK) {
|
|
62
63
|
Object.defineProperty(this, "log", {
|
|
63
64
|
enumerable: true,
|
|
64
65
|
configurable: true,
|
|
@@ -119,6 +120,12 @@ export class VanillaInterpreter {
|
|
|
119
120
|
writable: true,
|
|
120
121
|
value: cfgReader
|
|
121
122
|
});
|
|
123
|
+
Object.defineProperty(this, "platformApi", {
|
|
124
|
+
enumerable: true,
|
|
125
|
+
configurable: true,
|
|
126
|
+
writable: true,
|
|
127
|
+
value: platformApi
|
|
128
|
+
});
|
|
122
129
|
Object.defineProperty(this, "queueProvider", {
|
|
123
130
|
enumerable: true,
|
|
124
131
|
configurable: true,
|
|
@@ -204,13 +211,13 @@ export class VanillaInterpreter {
|
|
|
204
211
|
const connectionFactory = new DefaultConnectionFactory();
|
|
205
212
|
const issuesProvider = new IssueImpl(log);
|
|
206
213
|
if (options.contextProvider) {
|
|
207
|
-
return new VanillaInterpreter(log, compiler, options.contextProvider, express.Router(), express.Router(), new Map(), connectionFactory, CronAPIClient.fromEnv(), tracer, configReader, queueProvider, otelSDK);
|
|
214
|
+
return new VanillaInterpreter(log, compiler, options.contextProvider, express.Router(), express.Router(), new Map(), connectionFactory, CronAPIClient.fromEnv(), tracer, configReader, PlatformApiImpl.fromEnv(), queueProvider, otelSDK);
|
|
208
215
|
}
|
|
209
216
|
const kvp = await getKVProvider(runLocal);
|
|
210
217
|
const organisationId = Deno.env.get(envVarOrgId) || 'development';
|
|
211
218
|
const environmentId = Deno.env.get(envVarEnvId) || 'development';
|
|
212
219
|
const ctxProvider = new VanillaContextProvider(log, kvp, organisationId, environmentId, issuesProvider, queueProvider);
|
|
213
|
-
return new VanillaInterpreter(log, compiler, ctxProvider, express.Router(), express.Router(), new Map(), connectionFactory, CronAPIClient.fromEnv(), tracer, configReader, queueProvider, otelSDK);
|
|
220
|
+
return new VanillaInterpreter(log, compiler, ctxProvider, express.Router(), express.Router(), new Map(), connectionFactory, CronAPIClient.fromEnv(), tracer, configReader, PlatformApiImpl.fromEnv(), queueProvider, otelSDK);
|
|
214
221
|
}
|
|
215
222
|
register(workflow, options) {
|
|
216
223
|
const localAbortController = new AbortController();
|
|
@@ -226,6 +233,7 @@ export class VanillaInterpreter {
|
|
|
226
233
|
tracer: this.tracer,
|
|
227
234
|
contextProvider: this.contextProvider,
|
|
228
235
|
webhookRouter: this.webhookRouter,
|
|
236
|
+
platformApi: this.platformApi,
|
|
229
237
|
queueProvider: this.queueProvider,
|
|
230
238
|
cronRouter: this.cronRouter,
|
|
231
239
|
cronRegistry: this.cronRegistry,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"durableworkflow.d.ts","sourceRoot":"","sources":["../../../../../src/src/interpreter/vanilla/compilers/durableworkflow.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"durableworkflow.d.ts","sourceRoot":"","sources":["../../../../../src/src/interpreter/vanilla/compilers/durableworkflow.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAClC,OAAO,EACH,mBAAmB,EACnB,sBAAsB,EACzB,MAAM,yCAAyC,CAAC;AAGjD,OAAO,EAAqB,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AACrF,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAEpE,wBAAgB,sBAAsB,CAClC,GAAG,EAAE,sBAAsB,EAC3B,OAAO,EAAE,sBAAsB,EAC/B,MAAM,EAAE,WAAW,GACpB,UAAU,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC,CAkGjD;AAED,eAAO,MAAM,uBAAuB,EAAE,eAAe,CAAC,mBAAmB,EAAE,sBAAsB,CAIhG,CAAC"}
|
|
@@ -10,31 +10,25 @@
|
|
|
10
10
|
* As of the Change Date, in accordance with the Business Source License,
|
|
11
11
|
* use of this software will be governed by the Apache License, Version 2.0.
|
|
12
12
|
*/
|
|
13
|
+
import { ulid } from '../../../../deps/jsr.io/@std/ulid/1.0.0/mod.js';
|
|
13
14
|
import { Observable } from 'rxjs';
|
|
14
15
|
import { DurableWorkflowTrigger, } from '../../../dsl/triggers/DurableTrigger.js';
|
|
16
|
+
import { envVarEnvId } from '../../../internal/constants.js';
|
|
15
17
|
import { VanillaActivation } from '../ObservableCompiler.js';
|
|
16
18
|
export function compileDurableWorkflow(ctx, trigger, signal) {
|
|
17
19
|
return new Observable((subscriber) => {
|
|
18
20
|
function cleanup() {
|
|
19
|
-
ctx.log.debug('
|
|
21
|
+
ctx.log.debug('durable workflow trigger stopped');
|
|
20
22
|
subscriber.complete();
|
|
21
23
|
}
|
|
22
24
|
signal.addEventListener('abort', cleanup, { once: true });
|
|
23
25
|
let consecutiveErrors = 0;
|
|
24
|
-
const maxConsecutiveErrors = 5;
|
|
25
26
|
(async () => {
|
|
26
27
|
while (true) {
|
|
27
28
|
if (signal.aborted) {
|
|
28
29
|
cleanup();
|
|
29
30
|
break;
|
|
30
31
|
}
|
|
31
|
-
if (consecutiveErrors >= maxConsecutiveErrors) {
|
|
32
|
-
ctx.log.error('reached too many consecutive errors stopping trigger', {
|
|
33
|
-
'triggerId': trigger.id,
|
|
34
|
-
});
|
|
35
|
-
cleanup();
|
|
36
|
-
break;
|
|
37
|
-
}
|
|
38
32
|
try {
|
|
39
33
|
// Right now the API itself will hang for a period of time if no workflows are available.
|
|
40
34
|
// so we don't need to add a delay here.
|
|
@@ -47,26 +41,39 @@ export function compileDurableWorkflow(ctx, trigger, signal) {
|
|
|
47
41
|
continue;
|
|
48
42
|
}
|
|
49
43
|
for (const wf of wfs.workflows) {
|
|
50
|
-
if (wf.id &&
|
|
51
|
-
wf.attempt !== undefined &&
|
|
52
|
-
trigger.options.maxAttempts &&
|
|
53
|
-
wf.attempt > trigger.options.maxAttempts) {
|
|
54
|
-
ctx.log.error('Workflow exceeded max attempts failing', {
|
|
55
|
-
workflowId: wf.id,
|
|
56
|
-
attempts: wf.attempt,
|
|
57
|
-
});
|
|
58
|
-
await ctx.queueProvider.complete({
|
|
59
|
-
id: wf.id,
|
|
60
|
-
output: wf.output,
|
|
61
|
-
status: 'failed',
|
|
62
|
-
});
|
|
63
|
-
continue;
|
|
64
|
-
}
|
|
65
44
|
const payload = wf.payload ? atob(wf.payload) : '{}';
|
|
66
45
|
const data = JSON.parse(payload);
|
|
67
|
-
|
|
68
|
-
|
|
46
|
+
let activation;
|
|
47
|
+
if (wf.metadata?.activationId) {
|
|
48
|
+
try {
|
|
49
|
+
const { data } = await ctx.platformApi.getActivation({
|
|
50
|
+
path: {
|
|
51
|
+
activation_id: wf.metadata.activationId,
|
|
52
|
+
organisation_id: ctx.organisationId,
|
|
53
|
+
environment_id: Deno.env.get(envVarEnvId) || 'development',
|
|
54
|
+
},
|
|
55
|
+
throwOnError: true,
|
|
56
|
+
});
|
|
57
|
+
activation = data;
|
|
58
|
+
}
|
|
59
|
+
catch (error) {
|
|
60
|
+
ctx.log.error('Failed to get activation', { error });
|
|
61
|
+
throw new Error('Failed to get activation');
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
const newContext = ctx.contextProvider.createWithExecutionId(activation ?? VanillaActivation, data, wf.metadata?.executionId ?? ulid().toString(), {
|
|
69
65
|
workflow: wf,
|
|
66
|
+
onSuccess: (completedContext) => {
|
|
67
|
+
// locked status means we own the workflow and it's not completed yet
|
|
68
|
+
if (wf.status !== 'locked') {
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
ctx.queueProvider.complete({
|
|
72
|
+
id: wf.id,
|
|
73
|
+
output: btoa(JSON.stringify(completedContext.data)),
|
|
74
|
+
status: 'completed',
|
|
75
|
+
});
|
|
76
|
+
},
|
|
70
77
|
});
|
|
71
78
|
consecutiveErrors = 0;
|
|
72
79
|
subscriber.next(newContext);
|
|
@@ -75,6 +82,8 @@ export function compileDurableWorkflow(ctx, trigger, signal) {
|
|
|
75
82
|
catch (error) {
|
|
76
83
|
ctx.log.error('Error fetching workflows', { error });
|
|
77
84
|
consecutiveErrors++;
|
|
85
|
+
// no workflows available, back-off a bit before retrying
|
|
86
|
+
await new Promise((resolve) => setTimeout(resolve, Math.min(consecutiveErrors * 1000, 30000)));
|
|
78
87
|
}
|
|
79
88
|
}
|
|
80
89
|
})();
|
package/package.json
CHANGED
|
@@ -9,6 +9,7 @@ import { ConfigReader } from '../../dsl/http/types.js';
|
|
|
9
9
|
import { Task } from '../../dsl/Task.js';
|
|
10
10
|
import { Trigger } from '../../dsl/Trigger.js';
|
|
11
11
|
import { Logger } from '../../observability/logging/Logger.js';
|
|
12
|
+
import { PlatformApi } from '../../services/platform/PlatformApi.js';
|
|
12
13
|
import { QueueAPI } from '../durable/Queue.js';
|
|
13
14
|
import { ContextOperatorFunction, TaskCompiler, TriggerCompiler } from './compilers/types.js';
|
|
14
15
|
export type VanillaCompilerContext = {
|
|
@@ -17,6 +18,7 @@ export type VanillaCompilerContext = {
|
|
|
17
18
|
tracer: Tracer;
|
|
18
19
|
contextProvider: ContextProvider;
|
|
19
20
|
cnxFactory: ConnectionFactory;
|
|
21
|
+
platformApi: PlatformApi;
|
|
20
22
|
queueProvider: QueueAPI;
|
|
21
23
|
webhookRouter: Router;
|
|
22
24
|
cronRouter: Router;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ObservableCompiler.d.ts","sourceRoot":"","sources":["../../../../src/src/interpreter/vanilla/ObservableCompiler.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,MAAM,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,IAAI,EAAY,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAe,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,uCAAuC,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAU/C,OAAO,EAAE,uBAAuB,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAI9F,MAAM,MAAM,sBAAsB,GAAG;IACjC,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,eAAe,CAAC;IACjC,UAAU,EAAE,iBAAiB,CAAC;IAC9B,aAAa,EAAE,QAAQ,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,YAAY,CAAC;IAC3B,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,cAAc,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,UAa/B,CAAC;AAEF,MAAM,MAAM,YAAY,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,CAAC,SAAS,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,CACrF,GAAG,EAAE,sBAAsB,EAC3B,IAAI,EAAE,CAAC,KACN,gBAAgB,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;AAE/B,qBAAa,kBAAkB;IAC3B,OAAO,CAAC,aAAa,CAAkD;IACvE,OAAO,CAAC,gBAAgB,CAAgD;;IAkBxE,WAAW,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,KAAK,GAAG,IAAI,EACzC,GAAG,EAAE,sBAAsB,EAC3B,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,GACpB,uBAAuB,CAAC,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC;IAe1C,cAAc,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,SAAS,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,EAC3D,GAAG,EAAE,sBAAsB,EAC3B,OAAO,EAAE,CAAC,EACV,MAAM,EAAE,WAAW,GACpB,UAAU,CAAC,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAexC,YAAY,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,SAAS,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;IAKjF,eAAe,CAAC,GAAG,EAAE,CAAC,SAAS,OAAO,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,eAAe,CAAC,GAAG,EAAE,CAAC,CAAC;CAIjF"}
|
|
1
|
+
{"version":3,"file":"ObservableCompiler.d.ts","sourceRoot":"","sources":["../../../../src/src/interpreter/vanilla/ObservableCompiler.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,MAAM,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,IAAI,EAAY,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAe,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,uCAAuC,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAC;AACrE,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAU/C,OAAO,EAAE,uBAAuB,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAI9F,MAAM,MAAM,sBAAsB,GAAG;IACjC,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,eAAe,CAAC;IACjC,UAAU,EAAE,iBAAiB,CAAC;IAC9B,WAAW,EAAE,WAAW,CAAC;IACzB,aAAa,EAAE,QAAQ,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,YAAY,CAAC;IAC3B,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,cAAc,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,UAa/B,CAAC;AAEF,MAAM,MAAM,YAAY,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,CAAC,SAAS,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,CACrF,GAAG,EAAE,sBAAsB,EAC3B,IAAI,EAAE,CAAC,KACN,gBAAgB,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;AAE/B,qBAAa,kBAAkB;IAC3B,OAAO,CAAC,aAAa,CAAkD;IACvE,OAAO,CAAC,gBAAgB,CAAgD;;IAkBxE,WAAW,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,KAAK,GAAG,IAAI,EACzC,GAAG,EAAE,sBAAsB,EAC3B,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,GACpB,uBAAuB,CAAC,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC;IAe1C,cAAc,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,SAAS,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,EAC3D,GAAG,EAAE,sBAAsB,EAC3B,OAAO,EAAE,CAAC,EACV,MAAM,EAAE,WAAW,GACpB,UAAU,CAAC,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAexC,YAAY,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,SAAS,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;IAKjF,eAAe,CAAC,GAAG,EAAE,CAAC,SAAS,OAAO,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,eAAe,CAAC,GAAG,EAAE,CAAC,CAAC;CAIjF"}
|
|
@@ -8,6 +8,7 @@ import { VanillaContext, VanillaContextProvider } from '../../context/VanillaCon
|
|
|
8
8
|
import { ConfigReader, CronProvider } from '../../dsl/http/types.js';
|
|
9
9
|
import { Workflow } from '../../dsl/Workflow.js';
|
|
10
10
|
import { Logger } from '../../observability/logging/Logger.js';
|
|
11
|
+
import { PlatformApi } from '../../services/platform/PlatformApi.js';
|
|
11
12
|
import { QueueAPI } from '../durable/Queue.js';
|
|
12
13
|
import { ContextOperatorFunction } from './compilers/types.js';
|
|
13
14
|
import { ObservableCompiler } from './ObservableCompiler.js';
|
|
@@ -79,6 +80,7 @@ export declare class VanillaInterpreter {
|
|
|
79
80
|
private readonly cronProvider;
|
|
80
81
|
private readonly tracer;
|
|
81
82
|
private readonly cfgReader;
|
|
83
|
+
private readonly platformApi;
|
|
82
84
|
private readonly queueProvider;
|
|
83
85
|
private readonly otelSDK?;
|
|
84
86
|
private registeredWorkflows;
|
|
@@ -86,7 +88,7 @@ export declare class VanillaInterpreter {
|
|
|
86
88
|
private cronServer?;
|
|
87
89
|
private shutdownServer?;
|
|
88
90
|
private isShuttingDown;
|
|
89
|
-
constructor(log: Logger, compiler: ObservableCompiler, contextProvider: ContextProvider, webhookRouter: Router, cronRouter: Router, cronRegistry: Map<string, string>, cnxFetchFactory: DefaultConnectionFactory, cronProvider: CronProvider, tracer: Tracer, cfgReader: ConfigReader, queueProvider: QueueAPI, otelSDK?: NodeSDK | undefined);
|
|
91
|
+
constructor(log: Logger, compiler: ObservableCompiler, contextProvider: ContextProvider, webhookRouter: Router, cronRouter: Router, cronRegistry: Map<string, string>, cnxFetchFactory: DefaultConnectionFactory, cronProvider: CronProvider, tracer: Tracer, cfgReader: ConfigReader, platformApi: PlatformApi, queueProvider: QueueAPI, otelSDK?: NodeSDK | undefined);
|
|
90
92
|
static newInstance(options?: VanillaInterpreterOptions): Promise<VanillaInterpreter>;
|
|
91
93
|
register<O>(workflow: Workflow<O>, options?: VanillaInterpreterOptions): Registration;
|
|
92
94
|
start(): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VanillaInterpreter.d.ts","sourceRoot":"","sources":["../../../../src/src/interpreter/vanilla/VanillaInterpreter.ts"],"names":[],"mappings":"AAaA,OAAsB,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAG3D,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAgB,EAAqB,MAAM,EAAE,MAAM,SAAS,CAAC;AAE7D,OAAO,EAA+B,UAAU,EAAM,YAAY,EAAO,MAAM,MAAM,CAAC;AACtF,OAAO,EAAE,wBAAwB,EAAE,MAAM,8CAA8C,CAAC;AACxF,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AACzF,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAarE,OAAO,EAAE,QAAQ,EAAgB,MAAM,uBAAuB,CAAC;AAM/D,OAAO,EAAE,MAAM,EAAE,MAAM,uCAAuC,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAa,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAA0B,MAAM,yBAAyB,CAAC;AAErF;;;GAGG;AACH,MAAM,MAAM,yBAAyB,GAAG;IACpC;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IAE9B;;OAEG;IACH,eAAe,CAAC,EAAE,sBAAsB,CAAC;IAEzC;;OAEG;IACH,MAAM,CAAC,EAAE,WAAW,CAAC;IAErB;;OAEG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAC;CACpC,CAAC;AAEF,KAAK,YAAY,GAAG;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,UAAU,CAAC,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;IAChD,KAAK,EAAE,uBAAuB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAC9C,oBAAoB,EAAE,eAAe,CAAC;IACtC,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,YAAY,CAAC,EAAE,YAAY,CAAC;CAC/B,CAAC;AAUF;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,kBAAkB;IAQvB,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"VanillaInterpreter.d.ts","sourceRoot":"","sources":["../../../../src/src/interpreter/vanilla/VanillaInterpreter.ts"],"names":[],"mappings":"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"}
|
|
@@ -32,6 +32,7 @@ const Issues_js_1 = require("../../issues/Issues.js");
|
|
|
32
32
|
const MemoryKeyValueProvider_js_1 = require("../../kv/memory/MemoryKeyValueProvider.js");
|
|
33
33
|
const SDKKeyValueProvider_js_1 = require("../../kv/sdk/SDKKeyValueProvider.js");
|
|
34
34
|
const ConsoleLogger_js_1 = require("../../observability/logging/ConsoleLogger.js");
|
|
35
|
+
const PlatformApi_js_1 = require("../../services/platform/PlatformApi.js");
|
|
35
36
|
const Queue_js_1 = require("../durable/Queue.js");
|
|
36
37
|
const ObservableCompiler_js_1 = require("./ObservableCompiler.js");
|
|
37
38
|
function getKVProvider(runLocal) {
|
|
@@ -64,7 +65,7 @@ function getKVProvider(runLocal) {
|
|
|
64
65
|
* ```
|
|
65
66
|
*/
|
|
66
67
|
class VanillaInterpreter {
|
|
67
|
-
constructor(log, compiler, contextProvider, webhookRouter, cronRouter, cronRegistry, cnxFetchFactory, cronProvider, tracer, cfgReader, queueProvider, otelSDK) {
|
|
68
|
+
constructor(log, compiler, contextProvider, webhookRouter, cronRouter, cronRegistry, cnxFetchFactory, cronProvider, tracer, cfgReader, platformApi, queueProvider, otelSDK) {
|
|
68
69
|
Object.defineProperty(this, "log", {
|
|
69
70
|
enumerable: true,
|
|
70
71
|
configurable: true,
|
|
@@ -125,6 +126,12 @@ class VanillaInterpreter {
|
|
|
125
126
|
writable: true,
|
|
126
127
|
value: cfgReader
|
|
127
128
|
});
|
|
129
|
+
Object.defineProperty(this, "platformApi", {
|
|
130
|
+
enumerable: true,
|
|
131
|
+
configurable: true,
|
|
132
|
+
writable: true,
|
|
133
|
+
value: platformApi
|
|
134
|
+
});
|
|
128
135
|
Object.defineProperty(this, "queueProvider", {
|
|
129
136
|
enumerable: true,
|
|
130
137
|
configurable: true,
|
|
@@ -210,13 +217,13 @@ class VanillaInterpreter {
|
|
|
210
217
|
const connectionFactory = new VanillaConnectionFactory_js_1.DefaultConnectionFactory();
|
|
211
218
|
const issuesProvider = new Issues_js_1.IssueImpl(log);
|
|
212
219
|
if (options.contextProvider) {
|
|
213
|
-
return new VanillaInterpreter(log, compiler, options.contextProvider, express_1.default.Router(), express_1.default.Router(), new Map(), connectionFactory, cronapi_js_1.CronAPIClient.fromEnv(), tracer, configReader, queueProvider, otelSDK);
|
|
220
|
+
return new VanillaInterpreter(log, compiler, options.contextProvider, express_1.default.Router(), express_1.default.Router(), new Map(), connectionFactory, cronapi_js_1.CronAPIClient.fromEnv(), tracer, configReader, PlatformApi_js_1.PlatformApiImpl.fromEnv(), queueProvider, otelSDK);
|
|
214
221
|
}
|
|
215
222
|
const kvp = await getKVProvider(runLocal);
|
|
216
223
|
const organisationId = Deno.env.get(constants_js_1.envVarOrgId) || 'development';
|
|
217
224
|
const environmentId = Deno.env.get(constants_js_1.envVarEnvId) || 'development';
|
|
218
225
|
const ctxProvider = new VanillaContext_js_1.VanillaContextProvider(log, kvp, organisationId, environmentId, issuesProvider, queueProvider);
|
|
219
|
-
return new VanillaInterpreter(log, compiler, ctxProvider, express_1.default.Router(), express_1.default.Router(), new Map(), connectionFactory, cronapi_js_1.CronAPIClient.fromEnv(), tracer, configReader, queueProvider, otelSDK);
|
|
226
|
+
return new VanillaInterpreter(log, compiler, ctxProvider, express_1.default.Router(), express_1.default.Router(), new Map(), connectionFactory, cronapi_js_1.CronAPIClient.fromEnv(), tracer, configReader, PlatformApi_js_1.PlatformApiImpl.fromEnv(), queueProvider, otelSDK);
|
|
220
227
|
}
|
|
221
228
|
register(workflow, options) {
|
|
222
229
|
const localAbortController = new AbortController();
|
|
@@ -232,6 +239,7 @@ class VanillaInterpreter {
|
|
|
232
239
|
tracer: this.tracer,
|
|
233
240
|
contextProvider: this.contextProvider,
|
|
234
241
|
webhookRouter: this.webhookRouter,
|
|
242
|
+
platformApi: this.platformApi,
|
|
235
243
|
queueProvider: this.queueProvider,
|
|
236
244
|
cronRouter: this.cronRouter,
|
|
237
245
|
cronRegistry: this.cronRegistry,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"durableworkflow.d.ts","sourceRoot":"","sources":["../../../../../src/src/interpreter/vanilla/compilers/durableworkflow.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"durableworkflow.d.ts","sourceRoot":"","sources":["../../../../../src/src/interpreter/vanilla/compilers/durableworkflow.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAClC,OAAO,EACH,mBAAmB,EACnB,sBAAsB,EACzB,MAAM,yCAAyC,CAAC;AAGjD,OAAO,EAAqB,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AACrF,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAEpE,wBAAgB,sBAAsB,CAClC,GAAG,EAAE,sBAAsB,EAC3B,OAAO,EAAE,sBAAsB,EAC/B,MAAM,EAAE,WAAW,GACpB,UAAU,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC,CAkGjD;AAED,eAAO,MAAM,uBAAuB,EAAE,eAAe,CAAC,mBAAmB,EAAE,sBAAsB,CAIhG,CAAC"}
|
|
@@ -14,31 +14,25 @@
|
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.durableWorkflowCompiler = void 0;
|
|
16
16
|
exports.compileDurableWorkflow = compileDurableWorkflow;
|
|
17
|
+
const mod_js_1 = require("../../../../deps/jsr.io/@std/ulid/1.0.0/mod.js");
|
|
17
18
|
const rxjs_1 = require("rxjs");
|
|
18
19
|
const DurableTrigger_js_1 = require("../../../dsl/triggers/DurableTrigger.js");
|
|
20
|
+
const constants_js_1 = require("../../../internal/constants.js");
|
|
19
21
|
const ObservableCompiler_js_1 = require("../ObservableCompiler.js");
|
|
20
22
|
function compileDurableWorkflow(ctx, trigger, signal) {
|
|
21
23
|
return new rxjs_1.Observable((subscriber) => {
|
|
22
24
|
function cleanup() {
|
|
23
|
-
ctx.log.debug('
|
|
25
|
+
ctx.log.debug('durable workflow trigger stopped');
|
|
24
26
|
subscriber.complete();
|
|
25
27
|
}
|
|
26
28
|
signal.addEventListener('abort', cleanup, { once: true });
|
|
27
29
|
let consecutiveErrors = 0;
|
|
28
|
-
const maxConsecutiveErrors = 5;
|
|
29
30
|
(async () => {
|
|
30
31
|
while (true) {
|
|
31
32
|
if (signal.aborted) {
|
|
32
33
|
cleanup();
|
|
33
34
|
break;
|
|
34
35
|
}
|
|
35
|
-
if (consecutiveErrors >= maxConsecutiveErrors) {
|
|
36
|
-
ctx.log.error('reached too many consecutive errors stopping trigger', {
|
|
37
|
-
'triggerId': trigger.id,
|
|
38
|
-
});
|
|
39
|
-
cleanup();
|
|
40
|
-
break;
|
|
41
|
-
}
|
|
42
36
|
try {
|
|
43
37
|
// Right now the API itself will hang for a period of time if no workflows are available.
|
|
44
38
|
// so we don't need to add a delay here.
|
|
@@ -51,26 +45,39 @@ function compileDurableWorkflow(ctx, trigger, signal) {
|
|
|
51
45
|
continue;
|
|
52
46
|
}
|
|
53
47
|
for (const wf of wfs.workflows) {
|
|
54
|
-
if (wf.id &&
|
|
55
|
-
wf.attempt !== undefined &&
|
|
56
|
-
trigger.options.maxAttempts &&
|
|
57
|
-
wf.attempt > trigger.options.maxAttempts) {
|
|
58
|
-
ctx.log.error('Workflow exceeded max attempts failing', {
|
|
59
|
-
workflowId: wf.id,
|
|
60
|
-
attempts: wf.attempt,
|
|
61
|
-
});
|
|
62
|
-
await ctx.queueProvider.complete({
|
|
63
|
-
id: wf.id,
|
|
64
|
-
output: wf.output,
|
|
65
|
-
status: 'failed',
|
|
66
|
-
});
|
|
67
|
-
continue;
|
|
68
|
-
}
|
|
69
48
|
const payload = wf.payload ? atob(wf.payload) : '{}';
|
|
70
49
|
const data = JSON.parse(payload);
|
|
71
|
-
|
|
72
|
-
|
|
50
|
+
let activation;
|
|
51
|
+
if (wf.metadata?.activationId) {
|
|
52
|
+
try {
|
|
53
|
+
const { data } = await ctx.platformApi.getActivation({
|
|
54
|
+
path: {
|
|
55
|
+
activation_id: wf.metadata.activationId,
|
|
56
|
+
organisation_id: ctx.organisationId,
|
|
57
|
+
environment_id: Deno.env.get(constants_js_1.envVarEnvId) || 'development',
|
|
58
|
+
},
|
|
59
|
+
throwOnError: true,
|
|
60
|
+
});
|
|
61
|
+
activation = data;
|
|
62
|
+
}
|
|
63
|
+
catch (error) {
|
|
64
|
+
ctx.log.error('Failed to get activation', { error });
|
|
65
|
+
throw new Error('Failed to get activation');
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
const newContext = ctx.contextProvider.createWithExecutionId(activation ?? ObservableCompiler_js_1.VanillaActivation, data, wf.metadata?.executionId ?? (0, mod_js_1.ulid)().toString(), {
|
|
73
69
|
workflow: wf,
|
|
70
|
+
onSuccess: (completedContext) => {
|
|
71
|
+
// locked status means we own the workflow and it's not completed yet
|
|
72
|
+
if (wf.status !== 'locked') {
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
ctx.queueProvider.complete({
|
|
76
|
+
id: wf.id,
|
|
77
|
+
output: btoa(JSON.stringify(completedContext.data)),
|
|
78
|
+
status: 'completed',
|
|
79
|
+
});
|
|
80
|
+
},
|
|
74
81
|
});
|
|
75
82
|
consecutiveErrors = 0;
|
|
76
83
|
subscriber.next(newContext);
|
|
@@ -79,6 +86,8 @@ function compileDurableWorkflow(ctx, trigger, signal) {
|
|
|
79
86
|
catch (error) {
|
|
80
87
|
ctx.log.error('Error fetching workflows', { error });
|
|
81
88
|
consecutiveErrors++;
|
|
89
|
+
// no workflows available, back-off a bit before retrying
|
|
90
|
+
await new Promise((resolve) => setTimeout(resolve, Math.min(consecutiveErrors * 1000, 30000)));
|
|
82
91
|
}
|
|
83
92
|
}
|
|
84
93
|
})();
|