@versori/run 0.5.5 → 0.5.7
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/context/Context.d.ts +6 -1
- package/esm/src/context/Context.d.ts.map +1 -1
- package/esm/src/context/Context.js +5 -2
- package/esm/src/context/VanillaContext.d.ts +1 -1
- package/esm/src/context/VanillaContext.d.ts.map +1 -1
- package/esm/src/context/VanillaContext.js +5 -2
- package/esm/src/interpreter/durable/compilers/catch.d.ts.map +1 -1
- package/esm/src/interpreter/durable/compilers/catch.js +4 -4
- package/esm/src/interpreter/durable/compilers/durableworkflow.d.ts.map +1 -1
- package/esm/src/interpreter/durable/compilers/durableworkflow.js +50 -29
- package/esm/src/interpreter/memory/compilers/catch.d.ts.map +1 -1
- package/esm/src/interpreter/memory/compilers/catch.js +4 -4
- package/esm/src/interpreter/vanilla/compilers/catch.d.ts.map +1 -1
- package/esm/src/interpreter/vanilla/compilers/catch.js +2 -2
- package/esm/src/interpreter/vanilla/compilers/durableworkflow.d.ts.map +1 -1
- package/esm/src/interpreter/vanilla/compilers/durableworkflow.js +37 -16
- package/esm/src/kv/memory/MemoryKeyValue.d.ts.map +1 -1
- package/esm/src/kv/memory/MemoryKeyValue.js +70 -19
- package/esm/src/kv/nats/NatsKeyValue.d.ts.map +1 -1
- package/esm/src/kv/nats/NatsKeyValue.js +77 -23
- package/esm/src/kv/sdk/SDKKeyValue.d.ts.map +1 -1
- package/esm/src/kv/sdk/SDKKeyValue.js +103 -38
- package/package.json +1 -1
- package/script/src/context/Context.d.ts +6 -1
- package/script/src/context/Context.d.ts.map +1 -1
- package/script/src/context/Context.js +5 -2
- package/script/src/context/VanillaContext.d.ts +1 -1
- package/script/src/context/VanillaContext.d.ts.map +1 -1
- package/script/src/context/VanillaContext.js +5 -2
- package/script/src/interpreter/durable/compilers/catch.d.ts.map +1 -1
- package/script/src/interpreter/durable/compilers/catch.js +4 -4
- package/script/src/interpreter/durable/compilers/durableworkflow.d.ts.map +1 -1
- package/script/src/interpreter/durable/compilers/durableworkflow.js +50 -29
- package/script/src/interpreter/memory/compilers/catch.d.ts.map +1 -1
- package/script/src/interpreter/memory/compilers/catch.js +4 -4
- package/script/src/interpreter/vanilla/compilers/catch.d.ts.map +1 -1
- package/script/src/interpreter/vanilla/compilers/catch.js +2 -2
- package/script/src/interpreter/vanilla/compilers/durableworkflow.d.ts.map +1 -1
- package/script/src/interpreter/vanilla/compilers/durableworkflow.js +37 -16
- package/script/src/kv/memory/MemoryKeyValue.d.ts.map +1 -1
- package/script/src/kv/memory/MemoryKeyValue.js +73 -19
- package/script/src/kv/nats/NatsKeyValue.d.ts.map +1 -1
- package/script/src/kv/nats/NatsKeyValue.js +80 -23
- package/script/src/kv/sdk/SDKKeyValue.d.ts.map +1 -1
- package/script/src/kv/sdk/SDKKeyValue.js +106 -38
|
@@ -12,6 +12,8 @@
|
|
|
12
12
|
*/
|
|
13
13
|
import { KvOperationsService } from '../../dsl/http/versori/kvapi/services/KvOperationsService.js';
|
|
14
14
|
import { QueryOperationsService } from '../../dsl/http/versori/kvapi/services/QueryOperationsService.js';
|
|
15
|
+
import opentelemetry from '@opentelemetry/api';
|
|
16
|
+
const tracer = opentelemetry.trace.getTracer('versori-run-kv');
|
|
15
17
|
export class SDKKeyValue {
|
|
16
18
|
constructor(store, prefix) {
|
|
17
19
|
Object.defineProperty(this, "store", {
|
|
@@ -28,59 +30,122 @@ export class SDKKeyValue {
|
|
|
28
30
|
});
|
|
29
31
|
}
|
|
30
32
|
async get(key, options = {}) {
|
|
31
|
-
|
|
32
|
-
const
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
33
|
+
return await tracer.startActiveSpan('kv.get', async (span) => {
|
|
34
|
+
const keyStr = key instanceof Array ? key.join('/') : key;
|
|
35
|
+
span.setAttribute('kv.key', keyStr);
|
|
36
|
+
span.setAttribute('kv.store_id', this.store.id);
|
|
37
|
+
try {
|
|
38
|
+
const k = this.generateKey(keyStr);
|
|
39
|
+
const entry = await KvOperationsService.getKv(this.store.id, k);
|
|
40
|
+
if (entry.value === undefined) {
|
|
41
|
+
if (options.throwOnNotFound) {
|
|
42
|
+
throw new Error('Key not found');
|
|
43
|
+
}
|
|
44
|
+
return undefined;
|
|
37
45
|
}
|
|
38
|
-
return
|
|
46
|
+
return JSON.parse(String(entry.value));
|
|
39
47
|
}
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
48
|
+
catch (error) {
|
|
49
|
+
if (options.throwOnNotFound && error instanceof Error &&
|
|
50
|
+
error.message === 'Key not found') {
|
|
51
|
+
throw new Error('Key not found');
|
|
52
|
+
}
|
|
53
|
+
else if (!options.throwOnNotFound) {
|
|
54
|
+
return undefined;
|
|
55
|
+
}
|
|
56
|
+
span.recordException(error instanceof Error ? error : new Error(String(error)));
|
|
57
|
+
console.error('Unknown error reading from KV store', error);
|
|
58
|
+
throw new Error('Unknown error reading from KV store');
|
|
46
59
|
}
|
|
47
|
-
|
|
48
|
-
|
|
60
|
+
finally {
|
|
61
|
+
span.end();
|
|
49
62
|
}
|
|
50
|
-
|
|
51
|
-
throw new Error('Unknown error reading from KV store');
|
|
52
|
-
}
|
|
63
|
+
});
|
|
53
64
|
}
|
|
54
65
|
async set(key, value) {
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
66
|
+
return await tracer.startActiveSpan('kv.set', async (span) => {
|
|
67
|
+
const keyStr = key instanceof Array ? key.join('/') : key;
|
|
68
|
+
span.setAttribute('kv.key', keyStr);
|
|
69
|
+
span.setAttribute('kv.store_id', this.store.id);
|
|
70
|
+
try {
|
|
71
|
+
const payload = JSON.stringify(value);
|
|
72
|
+
const k = this.generateKey(keyStr);
|
|
73
|
+
await KvOperationsService.setKv(this.store.id, k, {
|
|
74
|
+
value: payload,
|
|
75
|
+
options: {},
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
catch (error) {
|
|
79
|
+
span.recordException(error instanceof Error ? error : new Error(String(error)));
|
|
80
|
+
throw error;
|
|
81
|
+
}
|
|
82
|
+
finally {
|
|
83
|
+
span.end();
|
|
84
|
+
}
|
|
60
85
|
});
|
|
61
86
|
}
|
|
62
87
|
async delete(key) {
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
88
|
+
return await tracer.startActiveSpan('kv.delete', async (span) => {
|
|
89
|
+
const keyStr = key instanceof Array ? key.join('/') : key;
|
|
90
|
+
span.setAttribute('kv.key', keyStr);
|
|
91
|
+
span.setAttribute('kv.store_id', this.store.id);
|
|
92
|
+
try {
|
|
93
|
+
const k = this.generateKey(keyStr);
|
|
94
|
+
await KvOperationsService.deleteKv(this.store.id, k, {
|
|
95
|
+
options: {},
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
catch (error) {
|
|
99
|
+
span.recordException(error instanceof Error ? error : new Error(String(error)));
|
|
100
|
+
throw error;
|
|
101
|
+
}
|
|
102
|
+
finally {
|
|
103
|
+
span.end();
|
|
104
|
+
}
|
|
66
105
|
});
|
|
67
106
|
}
|
|
68
107
|
async count(prefix) {
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
108
|
+
return await tracer.startActiveSpan('kv.count', async (span) => {
|
|
109
|
+
span.setAttribute('kv.prefix', prefix.join('/'));
|
|
110
|
+
span.setAttribute('kv.store_id', this.store.id);
|
|
111
|
+
try {
|
|
112
|
+
const k = this.generateKey(prefix).split('/');
|
|
113
|
+
return await QueryOperationsService.countKv(this.store.id, {
|
|
114
|
+
selector: {
|
|
115
|
+
prefix: k,
|
|
116
|
+
},
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
catch (error) {
|
|
120
|
+
span.recordException(error instanceof Error ? error : new Error(String(error)));
|
|
121
|
+
throw error;
|
|
122
|
+
}
|
|
123
|
+
finally {
|
|
124
|
+
span.end();
|
|
125
|
+
}
|
|
74
126
|
});
|
|
75
127
|
}
|
|
76
128
|
async list(prefix, options) {
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
129
|
+
return await tracer.startActiveSpan('kv.list', async (span) => {
|
|
130
|
+
span.setAttribute('kv.prefix', prefix.join('/'));
|
|
131
|
+
span.setAttribute('kv.store_id', this.store.id);
|
|
132
|
+
try {
|
|
133
|
+
const k = this.generateKey(prefix).split('/');
|
|
134
|
+
return await QueryOperationsService.listKv(this.store.id, {
|
|
135
|
+
selector: {
|
|
136
|
+
prefix: k,
|
|
137
|
+
...options?.selector,
|
|
138
|
+
},
|
|
139
|
+
options: options?.options,
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
catch (error) {
|
|
143
|
+
span.recordException(error instanceof Error ? error : new Error(String(error)));
|
|
144
|
+
throw error;
|
|
145
|
+
}
|
|
146
|
+
finally {
|
|
147
|
+
span.end();
|
|
148
|
+
}
|
|
84
149
|
});
|
|
85
150
|
}
|
|
86
151
|
generateKey(key) {
|
package/package.json
CHANGED
|
@@ -15,6 +15,11 @@ export type ContextOptions = {
|
|
|
15
15
|
request?: express.Request;
|
|
16
16
|
onSuccess?: OnSuccessFn;
|
|
17
17
|
onError?: OnErrorFn;
|
|
18
|
+
/**
|
|
19
|
+
* Set by the catch task compiler when execution continues via `.catch()`. The durable workflow trigger's
|
|
20
|
+
* `onSuccess` skips queue completion when this is set so recovered errors are not reported as completed runs.
|
|
21
|
+
*/
|
|
22
|
+
recoveredFromCatch?: boolean;
|
|
18
23
|
};
|
|
19
24
|
/**
|
|
20
25
|
* CreateIssue is the payload for creating a new issue.
|
|
@@ -104,7 +109,7 @@ export declare class ContextImpl<D, Index = void> implements Context<D> {
|
|
|
104
109
|
get activation(): ActivationImpl;
|
|
105
110
|
get workflow(): Workflow | undefined;
|
|
106
111
|
setIndex(idx: number): ContextImpl<D, number>;
|
|
107
|
-
withData<D2>(data: D2): ContextImpl<D2, Index>;
|
|
112
|
+
withData<D2>(data: D2, optionsPatch?: Partial<ContextOptions>): ContextImpl<D2, Index>;
|
|
108
113
|
openKv(scope?: KeyValueScope): KeyValue;
|
|
109
114
|
request(): express.Request | undefined;
|
|
110
115
|
workflowClient(): WorkflowInterface;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Context.d.ts","sourceRoot":"","sources":["../../../src/src/context/Context.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,KAAK,OAAO,MAAM,SAAS,CAAC;AAExC,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAChF,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAC9E,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAgB,iBAAiB,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAIpF,MAAM,MAAM,WAAW,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;AACtD,MAAM,MAAM,SAAS,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;AAEpD,MAAM,MAAM,cAAc,GAAG;IACzB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC;IAC1B,SAAS,CAAC,EAAE,WAAW,CAAC;IACxB,OAAO,CAAC,EAAE,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"Context.d.ts","sourceRoot":"","sources":["../../../src/src/context/Context.ts"],"names":[],"mappings":"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"}
|
|
@@ -114,8 +114,11 @@ class ContextImpl {
|
|
|
114
114
|
next.idx = idx;
|
|
115
115
|
return next;
|
|
116
116
|
}
|
|
117
|
-
withData(data) {
|
|
118
|
-
|
|
117
|
+
withData(data, optionsPatch) {
|
|
118
|
+
const nextOptions = optionsPatch !== undefined
|
|
119
|
+
? { ...this.options, ...optionsPatch }
|
|
120
|
+
: this.options;
|
|
121
|
+
return new ContextImpl(this.log, this.kvp, __classPrivateFieldGet(this, _ContextImpl_creds, "f"), this.executionId, this.startTime, data, __classPrivateFieldGet(this, _ContextImpl_activation, "f"), __classPrivateFieldGet(this, _ContextImpl_issues, "f"), this.queue, nextOptions);
|
|
119
122
|
}
|
|
120
123
|
openKv(scope = ':project:') {
|
|
121
124
|
if (scope === ':execution:') {
|
|
@@ -36,7 +36,7 @@ export declare class VanillaContext<D, Index = void> implements Context<D> {
|
|
|
36
36
|
get activation(): ActivationInterface;
|
|
37
37
|
get workflow(): Workflow | undefined;
|
|
38
38
|
setIndex(idx: number): VanillaContext<D, number>;
|
|
39
|
-
withData<D2>(data: D2): VanillaContext<D2, Index>;
|
|
39
|
+
withData<D2>(data: D2, optionsPatch?: Partial<ContextOptions>): VanillaContext<D2, Index>;
|
|
40
40
|
openKv(scope?: KeyValueScope): KeyValue;
|
|
41
41
|
request(): express.Request | undefined;
|
|
42
42
|
workflowClient(): WorkflowInterface;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VanillaContext.d.ts","sourceRoot":"","sources":["../../../src/src/context/VanillaContext.ts"],"names":[],"mappings":"AAcA,OAAO,EACH,UAAU,EACV,UAAU,EACV,gBAAgB,EAChB,OAAO,EACP,kBAAkB,EACrB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,KAAK,OAAO,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnG,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAgB,iBAAiB,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEpF,qBAAa,iBAAkB,YAAW,mBAAmB;IAErD,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,GAAG;gBAHH,UAAU,EAAE,UAAU,EACtB,cAAc,EAAE,MAAM,EACtB,aAAa,EAAE,MAAM,EACrB,GAAG,EAAE,MAAM;IAGhC,IAAI,EAAE,IAAI,MAAM,CAEf;IAED,IAAI,IAAI,IAAI,OAAO,CAElB;IAED,IAAI,WAAW,IAAI,kBAAkB,GAAG,SAAS,CAEhD;IAED,IAAI,WAAW,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,SAAS,CAE/C;IAED,IAAI,gBAAgB,IAAI,gBAAgB,GAAG,SAAS,CAEnD;IAED,WAAW,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAQrD,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;CAGrD;AAED,qBAAa,cAAc,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,CAAE,YAAW,OAAO,CAAC,CAAC,CAAC;;IAC9D,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IAGjB,GAAG,EAAE,KAAK,CAAC;IAEX,QAAQ,CAAC,GAAG,EAAE,gBAAgB,CAAC;IAC/B,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC;IAE1B,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;gBAG7B,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,gBAAgB,EACrB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,IAAI,EACf,IAAI,EAAE,CAAC,EACP,UAAU,EAAE,iBAAiB,EAC7B,MAAM,EAAE,QAAQ,EAChB,KAAK,CAAC,EAAE,QAAQ,EAChB,OAAO,GAAE,cAAmB;IA0BhC,IAAI,UAAU,IAAI,mBAAmB,CAEpC;IAED,IAAI,QAAQ,IAAI,QAAQ,GAAG,SAAS,CAEnC;IAED,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAAC,CAAC,EAAE,MAAM,CAAC;IAiBhD,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,GAAG,cAAc,CAAC,EAAE,EAAE,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"VanillaContext.d.ts","sourceRoot":"","sources":["../../../src/src/context/VanillaContext.ts"],"names":[],"mappings":"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"}
|
|
@@ -165,8 +165,11 @@ class VanillaContext {
|
|
|
165
165
|
next.idx = idx;
|
|
166
166
|
return next;
|
|
167
167
|
}
|
|
168
|
-
withData(data) {
|
|
169
|
-
|
|
168
|
+
withData(data, optionsPatch) {
|
|
169
|
+
const nextOptions = optionsPatch !== undefined
|
|
170
|
+
? { ...this.options, ...optionsPatch }
|
|
171
|
+
: this.options;
|
|
172
|
+
return new VanillaContext(this.log, this.kvp, this.executionId, this.startTime, data, __classPrivateFieldGet(this, _VanillaContext_activation, "f"), __classPrivateFieldGet(this, _VanillaContext_issues, "f"), this.queue, nextOptions);
|
|
170
173
|
}
|
|
171
174
|
openKv(scope = ':project:') {
|
|
172
175
|
if (scope === ':execution:') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catch.d.ts","sourceRoot":"","sources":["../../../../../src/src/interpreter/durable/compilers/catch.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAG5D,OAAO,EAA2B,YAAY,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"catch.d.ts","sourceRoot":"","sources":["../../../../../src/src/interpreter/durable/compilers/catch.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAG5D,OAAO,EAA2B,YAAY,EAAE,MAAM,YAAY,CAAC;AAuFnE,eAAO,MAAM,aAAa,EAAE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAGrE,CAAC"}
|
|
@@ -46,15 +46,15 @@ function compileCatch(compilerCtx, task) {
|
|
|
46
46
|
reason: 'error',
|
|
47
47
|
severity: 'high',
|
|
48
48
|
});
|
|
49
|
-
return errorOperator((0, rxjs_1.of)(ctx.withData(new ExecutionError_js_1.ExecutionError(ctx, error.message, { cause: error }))));
|
|
49
|
+
return errorOperator((0, rxjs_1.of)(ctx.withData(new ExecutionError_js_1.ExecutionError(ctx, error.message, { cause: error }), { recoveredFromCatch: true })));
|
|
50
50
|
}
|
|
51
51
|
ctx.log.error('execution has encountered an error', {
|
|
52
52
|
error: error,
|
|
53
53
|
});
|
|
54
54
|
compilerCtx.issueProvider.submitIssue({
|
|
55
55
|
annotations: {
|
|
56
|
-
'error': error
|
|
57
|
-
'stack':
|
|
56
|
+
'error': String(error),
|
|
57
|
+
'stack': '',
|
|
58
58
|
'workflowId': ctx.options.workflow?.id || ctx.workflow?.id || '',
|
|
59
59
|
'executionId': ctx.executionId,
|
|
60
60
|
'activationId': ctx.activation.id,
|
|
@@ -65,7 +65,7 @@ function compileCatch(compilerCtx, task) {
|
|
|
65
65
|
});
|
|
66
66
|
span.setAttribute('error', `${error}`);
|
|
67
67
|
span.end();
|
|
68
|
-
return errorOperator((0, rxjs_1.of)(ctx.withData(new ExecutionError_js_1.ExecutionError(ctx, `${error}`, { cause: error }))));
|
|
68
|
+
return errorOperator((0, rxjs_1.of)(ctx.withData(new ExecutionError_js_1.ExecutionError(ctx, `${error}`, { cause: error }), { recoveredFromCatch: true })));
|
|
69
69
|
});
|
|
70
70
|
}));
|
|
71
71
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"durableworkflow.d.ts","sourceRoot":"","sources":["../../../../../src/src/interpreter/durable/compilers/durableworkflow.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"durableworkflow.d.ts","sourceRoot":"","sources":["../../../../../src/src/interpreter/durable/compilers/durableworkflow.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAElC,OAAO,EAAW,WAAW,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EACH,mBAAmB,EACnB,sBAAsB,EACzB,MAAM,yCAAyC,CAAC;AAEjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,wBAAgB,sBAAsB,CAClC,GAAG,EAAE,sBAAsB,EAC3B,OAAO,EAAE,sBAAsB,EAC/B,MAAM,EAAE,WAAW,GACpB,UAAU,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC,CAgH9C;AAED,eAAO,MAAM,uBAAuB,EAAE,eAAe,CAAC,mBAAmB,EAAE,sBAAsB,CAIhG,CAAC"}
|
|
@@ -44,42 +44,63 @@ function compileDurableWorkflow(ctx, trigger, signal) {
|
|
|
44
44
|
continue;
|
|
45
45
|
}
|
|
46
46
|
for (const wf of wfs.workflows) {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
47
|
+
await ctx.tracer.startActiveSpan(`durableworkflow-${trigger.id}`, async (span) => {
|
|
48
|
+
span.setAttribute('task.id', trigger.id);
|
|
49
|
+
span.setAttribute('task.type', 'durableworkflow');
|
|
50
|
+
span.setAttribute('execution.id', wf.metadata?.executionId ?? '');
|
|
51
|
+
if (wf.metadata?.activationId) {
|
|
52
|
+
span.setAttribute('activation.id', wf.metadata.activationId);
|
|
53
|
+
}
|
|
51
54
|
try {
|
|
52
|
-
const
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
55
|
+
const payload = wf.payload ? atob(wf.payload) : '{}';
|
|
56
|
+
const data = JSON.parse(payload);
|
|
57
|
+
let activation;
|
|
58
|
+
if (wf.metadata?.activationId) {
|
|
59
|
+
try {
|
|
60
|
+
const { data } = await ctx.platformApi.getActivation({
|
|
61
|
+
path: {
|
|
62
|
+
activation_id: wf.metadata.activationId,
|
|
63
|
+
organisation_id: ctx.organisationId,
|
|
64
|
+
environment_id: Deno.env.get(constants_js_1.envVarEnvId) || 'development',
|
|
65
|
+
},
|
|
66
|
+
throwOnError: true,
|
|
67
|
+
});
|
|
68
|
+
activation = data;
|
|
69
|
+
}
|
|
70
|
+
catch (error) {
|
|
71
|
+
ctx.log.error('Failed to get activation', { error });
|
|
72
|
+
throw new Error('Failed to get activation');
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
const newContext = ctx.contextProvider.createWithExecutionId(activation, data, wf.metadata?.executionId ?? (0, mod_js_1.ulid)().toString(), {
|
|
76
|
+
workflow: wf,
|
|
77
|
+
onSuccess: (completedContext) => {
|
|
78
|
+
const opts = completedContext.options;
|
|
79
|
+
if (opts.recoveredFromCatch) {
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
// locked status means we own the workflow and it's not completed yet
|
|
83
|
+
if (wf.status !== 'locked') {
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
ctx.queueProvider.complete({
|
|
87
|
+
id: wf.id,
|
|
88
|
+
output: btoa(JSON.stringify(completedContext.data)),
|
|
89
|
+
status: 'completed',
|
|
90
|
+
});
|
|
57
91
|
},
|
|
58
|
-
throwOnError: true,
|
|
59
92
|
});
|
|
60
|
-
|
|
93
|
+
consecutiveErrors = 0;
|
|
94
|
+
subscriber.next(newContext);
|
|
61
95
|
}
|
|
62
96
|
catch (error) {
|
|
63
|
-
|
|
64
|
-
|
|
97
|
+
span.recordException(error instanceof Error ? error : new Error(String(error)));
|
|
98
|
+
ctx.log.error('Error processing workflow', { error });
|
|
99
|
+
}
|
|
100
|
+
finally {
|
|
101
|
+
span.end();
|
|
65
102
|
}
|
|
66
|
-
}
|
|
67
|
-
const newContext = ctx.contextProvider.createWithExecutionId(activation, data, wf.metadata?.executionId ?? (0, mod_js_1.ulid)().toString(), {
|
|
68
|
-
workflow: wf,
|
|
69
|
-
onSuccess: (completedContext) => {
|
|
70
|
-
// locked status means we own the workflow and it's not completed yet
|
|
71
|
-
if (wf.status !== 'locked') {
|
|
72
|
-
return;
|
|
73
|
-
}
|
|
74
|
-
ctx.queueProvider.complete({
|
|
75
|
-
id: wf.id,
|
|
76
|
-
output: btoa(JSON.stringify(completedContext.data)),
|
|
77
|
-
status: 'completed',
|
|
78
|
-
});
|
|
79
|
-
},
|
|
80
103
|
});
|
|
81
|
-
consecutiveErrors = 0;
|
|
82
|
-
subscriber.next(newContext);
|
|
83
104
|
}
|
|
84
105
|
}
|
|
85
106
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catch.d.ts","sourceRoot":"","sources":["../../../../../src/src/interpreter/memory/compilers/catch.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAG5D,OAAO,EAA2B,YAAY,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"catch.d.ts","sourceRoot":"","sources":["../../../../../src/src/interpreter/memory/compilers/catch.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAG5D,OAAO,EAA2B,YAAY,EAAE,MAAM,YAAY,CAAC;AAsFnE,eAAO,MAAM,aAAa,EAAE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAGrE,CAAC"}
|
|
@@ -45,12 +45,12 @@ function compileCatch(compilerCtx, task) {
|
|
|
45
45
|
reason: 'error',
|
|
46
46
|
severity: 'high',
|
|
47
47
|
});
|
|
48
|
-
return errorOperator((0, rxjs_1.of)(ctx.withData(new ExecutionError_js_1.ExecutionError(ctx, error.message, { cause: error }))));
|
|
48
|
+
return errorOperator((0, rxjs_1.of)(ctx.withData(new ExecutionError_js_1.ExecutionError(ctx, error.message, { cause: error }), { recoveredFromCatch: true })));
|
|
49
49
|
}
|
|
50
50
|
compilerCtx.issueProvider.submitIssue({
|
|
51
51
|
annotations: {
|
|
52
|
-
'error': error
|
|
53
|
-
'stack':
|
|
52
|
+
'error': String(error),
|
|
53
|
+
'stack': '',
|
|
54
54
|
'workflowId': ctx.options.workflow?.id || ctx.workflow?.id || '',
|
|
55
55
|
'executionId': ctx.executionId,
|
|
56
56
|
'activationId': ctx.activation.id,
|
|
@@ -64,7 +64,7 @@ function compileCatch(compilerCtx, task) {
|
|
|
64
64
|
});
|
|
65
65
|
span.setAttribute('error', `${error}`);
|
|
66
66
|
span.end();
|
|
67
|
-
return errorOperator((0, rxjs_1.of)(ctx.withData(new ExecutionError_js_1.ExecutionError(ctx, `${error}`, { cause: error }))));
|
|
67
|
+
return errorOperator((0, rxjs_1.of)(ctx.withData(new ExecutionError_js_1.ExecutionError(ctx, `${error}`, { cause: error }), { recoveredFromCatch: true })));
|
|
68
68
|
});
|
|
69
69
|
}));
|
|
70
70
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catch.d.ts","sourceRoot":"","sources":["../../../../../src/src/interpreter/vanilla/compilers/catch.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAG5D,OAAO,EAA2B,YAAY,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"catch.d.ts","sourceRoot":"","sources":["../../../../../src/src/interpreter/vanilla/compilers/catch.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAG5D,OAAO,EAA2B,YAAY,EAAE,MAAM,YAAY,CAAC;AA0FnE,eAAO,MAAM,aAAa,EAAE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAGrE,CAAC"}
|
|
@@ -47,7 +47,7 @@ function compileCatch(compilerCtx, task) {
|
|
|
47
47
|
// reason: 'error',
|
|
48
48
|
// severity: 'high',
|
|
49
49
|
// });
|
|
50
|
-
return errorOperator((0, rxjs_1.of)(ctx.withData(new ExecutionError_js_1.ExecutionError(ctx, error.message, { cause: error }))));
|
|
50
|
+
return errorOperator((0, rxjs_1.of)(ctx.withData(new ExecutionError_js_1.ExecutionError(ctx, error.message, { cause: error }), { recoveredFromCatch: true })));
|
|
51
51
|
}
|
|
52
52
|
ctx.log.error('execution has encountered an error', {
|
|
53
53
|
error: error,
|
|
@@ -66,7 +66,7 @@ function compileCatch(compilerCtx, task) {
|
|
|
66
66
|
// });
|
|
67
67
|
span.setAttribute('error', `${error}`);
|
|
68
68
|
span.end();
|
|
69
|
-
return errorOperator((0, rxjs_1.of)(ctx.withData(new ExecutionError_js_1.ExecutionError(ctx, `${error}`, { cause: error }))));
|
|
69
|
+
return errorOperator((0, rxjs_1.of)(ctx.withData(new ExecutionError_js_1.ExecutionError(ctx, `${error}`, { cause: error }), { recoveredFromCatch: true })));
|
|
70
70
|
});
|
|
71
71
|
}));
|
|
72
72
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"durableworkflow.d.ts","sourceRoot":"","sources":["../../../../../src/src/interpreter/vanilla/compilers/durableworkflow.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"durableworkflow.d.ts","sourceRoot":"","sources":["../../../../../src/src/interpreter/vanilla/compilers/durableworkflow.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAElC,OAAO,EACH,mBAAmB,EACnB,sBAAsB,EACzB,MAAM,yCAAyC,CAAC;AAEjD,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"}
|
|
@@ -44,24 +44,45 @@ function compileDurableWorkflow(ctx, trigger, signal) {
|
|
|
44
44
|
continue;
|
|
45
45
|
}
|
|
46
46
|
for (const wf of wfs.workflows) {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
47
|
+
await ctx.tracer.startActiveSpan(`durableworkflow-${trigger.id}`, (span) => {
|
|
48
|
+
span.setAttribute('task.id', trigger.id);
|
|
49
|
+
span.setAttribute('task.type', 'durableworkflow');
|
|
50
|
+
span.setAttribute('execution.id', wf.metadata?.executionId ?? '');
|
|
51
|
+
if (wf.metadata?.activationId) {
|
|
52
|
+
span.setAttribute('activation.id', wf.metadata.activationId);
|
|
53
|
+
}
|
|
54
|
+
try {
|
|
55
|
+
const payload = wf.payload ? atob(wf.payload) : '{}';
|
|
56
|
+
const data = JSON.parse(payload);
|
|
57
|
+
const newContext = ctx.contextProvider.createWithExecutionId(ObservableCompiler_js_1.VanillaActivation, data, wf.metadata?.executionId ?? (0, mod_js_1.ulid)().toString(), {
|
|
58
|
+
workflow: wf,
|
|
59
|
+
onSuccess: (completedContext) => {
|
|
60
|
+
const opts = completedContext.options;
|
|
61
|
+
if (opts.recoveredFromCatch) {
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
// locked status means we own the workflow and it's not completed yet
|
|
65
|
+
if (wf.status !== 'locked') {
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
ctx.queueProvider.complete({
|
|
69
|
+
id: wf.id,
|
|
70
|
+
output: btoa(JSON.stringify(completedContext.data)),
|
|
71
|
+
status: 'completed',
|
|
72
|
+
});
|
|
73
|
+
},
|
|
60
74
|
});
|
|
61
|
-
|
|
75
|
+
consecutiveErrors = 0;
|
|
76
|
+
subscriber.next(newContext);
|
|
77
|
+
}
|
|
78
|
+
catch (error) {
|
|
79
|
+
span.recordException(error instanceof Error ? error : new Error(String(error)));
|
|
80
|
+
ctx.log.error('Error processing workflow', { error });
|
|
81
|
+
}
|
|
82
|
+
finally {
|
|
83
|
+
span.end();
|
|
84
|
+
}
|
|
62
85
|
});
|
|
63
|
-
consecutiveErrors = 0;
|
|
64
|
-
subscriber.next(newContext);
|
|
65
86
|
}
|
|
66
87
|
}
|
|
67
88
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MemoryKeyValue.d.ts","sourceRoot":"","sources":["../../../../src/src/kv/memory/MemoryKeyValue.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAEtD,OAAO,EACH,eAAe,EACf,aAAa,EACb,cAAc,EACjB,MAAM,uCAAuC,CAAC;
|
|
1
|
+
{"version":3,"file":"MemoryKeyValue.d.ts","sourceRoot":"","sources":["../../../../src/src/kv/memory/MemoryKeyValue.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAEtD,OAAO,EACH,eAAe,EACf,aAAa,EACb,cAAc,EACjB,MAAM,uCAAuC,CAAC;AAK/C,qBAAa,cAAe,YAAW,QAAQ;IAC3C,OAAO,CAAC,KAAK,CAAmC;IAE1C,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IA0B/E,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBvD,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBnD,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;IAYxE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC;CAWpD"}
|