@io-orkes/conductor-javascript 2.0.0-rc1 → 2.0.0-rc2
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/index.d.mts +2199 -3
- package/dist/index.d.ts +2199 -3
- package/dist/index.js +431 -409
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +431 -409
- package/dist/index.mjs.map +1 -1
- package/package.json +3 -17
- package/dist/browser.d.mts +0 -13
- package/dist/browser.d.ts +0 -13
- package/dist/browser.js +0 -3764
- package/dist/browser.js.map +0 -1
- package/dist/browser.mjs +0 -3667
- package/dist/browser.mjs.map +0 -1
- package/dist/types-dbfd77fb.d.ts +0 -2200
package/dist/browser.js
DELETED
|
@@ -1,3764 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __create = Object.create;
|
|
3
|
-
var __defProp = Object.defineProperty;
|
|
4
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
-
var __export = (target, all) => {
|
|
9
|
-
for (var name in all)
|
|
10
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
-
};
|
|
12
|
-
var __copyProps = (to, from, except, desc) => {
|
|
13
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
-
for (let key of __getOwnPropNames(from))
|
|
15
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
-
}
|
|
18
|
-
return to;
|
|
19
|
-
};
|
|
20
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
-
mod
|
|
27
|
-
));
|
|
28
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
-
|
|
30
|
-
// browser.ts
|
|
31
|
-
var browser_exports = {};
|
|
32
|
-
__export(browser_exports, {
|
|
33
|
-
ApiError: () => ApiError,
|
|
34
|
-
BaseHttpRequest: () => BaseHttpRequest,
|
|
35
|
-
CancelError: () => CancelError,
|
|
36
|
-
CancelablePromise: () => CancelablePromise,
|
|
37
|
-
ConductorClient: () => ConductorClient,
|
|
38
|
-
ConductorError: () => ConductorError,
|
|
39
|
-
DefaultLogger: () => DefaultLogger,
|
|
40
|
-
EventResourceService: () => EventResourceService,
|
|
41
|
-
HealthCheckResourceService: () => HealthCheckResourceService,
|
|
42
|
-
HumanExecutor: () => HumanExecutor,
|
|
43
|
-
MetadataResourceService: () => MetadataResourceService,
|
|
44
|
-
SchedulerResourceService: () => SchedulerResourceService,
|
|
45
|
-
TaskManager: () => TaskManager,
|
|
46
|
-
TaskResourceService: () => TaskResourceService,
|
|
47
|
-
TaskRunner: () => TaskRunner,
|
|
48
|
-
TaskType: () => TaskType,
|
|
49
|
-
TokenResourceService: () => TokenResourceService,
|
|
50
|
-
WorkflowBulkResourceService: () => WorkflowBulkResourceService,
|
|
51
|
-
WorkflowExecutor: () => WorkflowExecutor,
|
|
52
|
-
WorkflowResourceService: () => WorkflowResourceService,
|
|
53
|
-
completedTaskMatchingType: () => completedTaskMatchingType,
|
|
54
|
-
conductorEventTask: () => conductorEventTask,
|
|
55
|
-
doWhileTask: () => doWhileTask,
|
|
56
|
-
dynamicForkTask: () => dynamicForkTask,
|
|
57
|
-
eventTask: () => eventTask,
|
|
58
|
-
forkTask: () => forkTask,
|
|
59
|
-
forkTaskJoin: () => forkTaskJoin,
|
|
60
|
-
generate: () => generate,
|
|
61
|
-
generateDoWhileTask: () => generateDoWhileTask2,
|
|
62
|
-
generateEventTask: () => generateEventTask,
|
|
63
|
-
generateForkJoinTask: () => generateForkJoinTask2,
|
|
64
|
-
generateHTTPTask: () => generateHTTPTask,
|
|
65
|
-
generateInlineTask: () => generateInlineTask,
|
|
66
|
-
generateJQTransformTask: () => generateJQTransformTask,
|
|
67
|
-
generateJoinTask: () => generateJoinTask,
|
|
68
|
-
generateKafkaPublishTask: () => generateKafkaPublishTask,
|
|
69
|
-
generateSetVariableTask: () => generateSetVariableTask,
|
|
70
|
-
generateSimpleTask: () => generateSimpleTask,
|
|
71
|
-
generateSubWorkflowTask: () => generateSubWorkflowTask,
|
|
72
|
-
generateSwitchTask: () => generateSwitchTask2,
|
|
73
|
-
generateTerminateTask: () => generateTerminateTask,
|
|
74
|
-
generateWaitTask: () => generateWaitTask,
|
|
75
|
-
httpTask: () => httpTask,
|
|
76
|
-
inlineTask: () => inlineTask,
|
|
77
|
-
joinTask: () => joinTask,
|
|
78
|
-
jsonJqTask: () => jsonJqTask,
|
|
79
|
-
kafkaPublishTask: () => kafkaPublishTask,
|
|
80
|
-
newLoopTask: () => newLoopTask,
|
|
81
|
-
noopErrorHandler: () => noopErrorHandler,
|
|
82
|
-
noopLogger: () => noopLogger,
|
|
83
|
-
orkesConductorClient: () => orkesConductorClient,
|
|
84
|
-
setVariableTask: () => setVariableTask,
|
|
85
|
-
simpleTask: () => simpleTask,
|
|
86
|
-
sqsEventTask: () => sqsEventTask,
|
|
87
|
-
subWorkflowTask: () => subWorkflowTask,
|
|
88
|
-
switchTask: () => switchTask,
|
|
89
|
-
taskGenMapper: () => taskGenMapper,
|
|
90
|
-
terminateTask: () => terminateTask,
|
|
91
|
-
waitTaskDuration: () => waitTaskDuration,
|
|
92
|
-
waitTaskUntil: () => waitTaskUntil,
|
|
93
|
-
workflow: () => workflow
|
|
94
|
-
});
|
|
95
|
-
module.exports = __toCommonJS(browser_exports);
|
|
96
|
-
|
|
97
|
-
// src/common/ConductorLogger.ts
|
|
98
|
-
var LOG_LEVELS = {
|
|
99
|
-
DEBUG: 10,
|
|
100
|
-
INFO: 30,
|
|
101
|
-
ERROR: 60
|
|
102
|
-
};
|
|
103
|
-
var DefaultLogger = class {
|
|
104
|
-
constructor(config = {}) {
|
|
105
|
-
this.info = (...args) => {
|
|
106
|
-
this.log("INFO", ...args);
|
|
107
|
-
};
|
|
108
|
-
this.debug = (...args) => {
|
|
109
|
-
this.log("DEBUG", ...args);
|
|
110
|
-
};
|
|
111
|
-
this.error = (...args) => {
|
|
112
|
-
this.log("ERROR", ...args);
|
|
113
|
-
};
|
|
114
|
-
const { level, tags = [] } = config;
|
|
115
|
-
this.tags = tags;
|
|
116
|
-
if (level && level in LOG_LEVELS) {
|
|
117
|
-
this.level = LOG_LEVELS[level];
|
|
118
|
-
} else {
|
|
119
|
-
this.level = LOG_LEVELS.INFO;
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
log(level, ...args) {
|
|
123
|
-
let resolvedLevel;
|
|
124
|
-
let name = level;
|
|
125
|
-
if (level in LOG_LEVELS) {
|
|
126
|
-
resolvedLevel = LOG_LEVELS[level];
|
|
127
|
-
} else {
|
|
128
|
-
name = "INFO";
|
|
129
|
-
resolvedLevel = LOG_LEVELS.INFO;
|
|
130
|
-
}
|
|
131
|
-
if (resolvedLevel >= this.level) {
|
|
132
|
-
console.log(name, ...this.tags, ...args);
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
};
|
|
136
|
-
var noopLogger = {
|
|
137
|
-
//eslint-disable-next-line
|
|
138
|
-
debug: (...args) => {
|
|
139
|
-
},
|
|
140
|
-
//eslint-disable-next-line
|
|
141
|
-
info: (...args) => {
|
|
142
|
-
},
|
|
143
|
-
//eslint-disable-next-line
|
|
144
|
-
error: (...args) => {
|
|
145
|
-
}
|
|
146
|
-
};
|
|
147
|
-
|
|
148
|
-
// src/common/types.ts
|
|
149
|
-
var TaskType = /* @__PURE__ */ ((TaskType2) => {
|
|
150
|
-
TaskType2["START"] = "START";
|
|
151
|
-
TaskType2["SIMPLE"] = "SIMPLE";
|
|
152
|
-
TaskType2["DYNAMIC"] = "DYNAMIC";
|
|
153
|
-
TaskType2["FORK_JOIN"] = "FORK_JOIN";
|
|
154
|
-
TaskType2["FORK_JOIN_DYNAMIC"] = "FORK_JOIN_DYNAMIC";
|
|
155
|
-
TaskType2["DECISION"] = "DECISION";
|
|
156
|
-
TaskType2["SWITCH"] = "SWITCH";
|
|
157
|
-
TaskType2["JOIN"] = "JOIN";
|
|
158
|
-
TaskType2["DO_WHILE"] = "DO_WHILE";
|
|
159
|
-
TaskType2["SUB_WORKFLOW"] = "SUB_WORKFLOW";
|
|
160
|
-
TaskType2["EVENT"] = "EVENT";
|
|
161
|
-
TaskType2["WAIT"] = "WAIT";
|
|
162
|
-
TaskType2["USER_DEFINED"] = "USER_DEFINED";
|
|
163
|
-
TaskType2["HTTP"] = "HTTP";
|
|
164
|
-
TaskType2["LAMBDA"] = "LAMBDA";
|
|
165
|
-
TaskType2["INLINE"] = "INLINE";
|
|
166
|
-
TaskType2["EXCLUSIVE_JOIN"] = "EXCLUSIVE_JOIN";
|
|
167
|
-
TaskType2["TERMINAL"] = "TERMINAL";
|
|
168
|
-
TaskType2["TERMINATE"] = "TERMINATE";
|
|
169
|
-
TaskType2["KAFKA_PUBLISH"] = "KAFKA_PUBLISH";
|
|
170
|
-
TaskType2["JSON_JQ_TRANSFORM"] = "JSON_JQ_TRANSFORM";
|
|
171
|
-
TaskType2["SET_VARIABLE"] = "SET_VARIABLE";
|
|
172
|
-
return TaskType2;
|
|
173
|
-
})(TaskType || {});
|
|
174
|
-
|
|
175
|
-
// src/common/open-api/services/EventResourceService.ts
|
|
176
|
-
var EventResourceService = class {
|
|
177
|
-
constructor(httpRequest) {
|
|
178
|
-
this.httpRequest = httpRequest;
|
|
179
|
-
}
|
|
180
|
-
/**
|
|
181
|
-
* Get queue config by name
|
|
182
|
-
* @param queueType
|
|
183
|
-
* @param queueName
|
|
184
|
-
* @returns any OK
|
|
185
|
-
* @throws ApiError
|
|
186
|
-
*/
|
|
187
|
-
getQueueConfig(queueType, queueName) {
|
|
188
|
-
return this.httpRequest.request({
|
|
189
|
-
method: "GET",
|
|
190
|
-
url: "/event/queue/config/{queueType}/{queueName}",
|
|
191
|
-
path: {
|
|
192
|
-
"queueType": queueType,
|
|
193
|
-
"queueName": queueName
|
|
194
|
-
}
|
|
195
|
-
});
|
|
196
|
-
}
|
|
197
|
-
/**
|
|
198
|
-
* Create or update queue config by name
|
|
199
|
-
* @param queueType
|
|
200
|
-
* @param queueName
|
|
201
|
-
* @param requestBody
|
|
202
|
-
* @returns any OK
|
|
203
|
-
* @throws ApiError
|
|
204
|
-
*/
|
|
205
|
-
putQueueConfig(queueType, queueName, requestBody) {
|
|
206
|
-
return this.httpRequest.request({
|
|
207
|
-
method: "PUT",
|
|
208
|
-
url: "/event/queue/config/{queueType}/{queueName}",
|
|
209
|
-
path: {
|
|
210
|
-
"queueType": queueType,
|
|
211
|
-
"queueName": queueName
|
|
212
|
-
},
|
|
213
|
-
body: requestBody,
|
|
214
|
-
mediaType: "application/json"
|
|
215
|
-
});
|
|
216
|
-
}
|
|
217
|
-
/**
|
|
218
|
-
* Delete queue config by name
|
|
219
|
-
* @param queueType
|
|
220
|
-
* @param queueName
|
|
221
|
-
* @returns any OK
|
|
222
|
-
* @throws ApiError
|
|
223
|
-
*/
|
|
224
|
-
deleteQueueConfig(queueType, queueName) {
|
|
225
|
-
return this.httpRequest.request({
|
|
226
|
-
method: "DELETE",
|
|
227
|
-
url: "/event/queue/config/{queueType}/{queueName}",
|
|
228
|
-
path: {
|
|
229
|
-
"queueType": queueType,
|
|
230
|
-
"queueName": queueName
|
|
231
|
-
}
|
|
232
|
-
});
|
|
233
|
-
}
|
|
234
|
-
/**
|
|
235
|
-
* Get all the event handlers
|
|
236
|
-
* @returns EventHandler OK
|
|
237
|
-
* @throws ApiError
|
|
238
|
-
*/
|
|
239
|
-
getEventHandlers() {
|
|
240
|
-
return this.httpRequest.request({
|
|
241
|
-
method: "GET",
|
|
242
|
-
url: "/event"
|
|
243
|
-
});
|
|
244
|
-
}
|
|
245
|
-
/**
|
|
246
|
-
* Update an existing event handler.
|
|
247
|
-
* @param requestBody
|
|
248
|
-
* @returns any OK
|
|
249
|
-
* @throws ApiError
|
|
250
|
-
*/
|
|
251
|
-
updateEventHandler(requestBody) {
|
|
252
|
-
return this.httpRequest.request({
|
|
253
|
-
method: "PUT",
|
|
254
|
-
url: "/event",
|
|
255
|
-
body: requestBody,
|
|
256
|
-
mediaType: "application/json"
|
|
257
|
-
});
|
|
258
|
-
}
|
|
259
|
-
/**
|
|
260
|
-
* Add a new event handler.
|
|
261
|
-
* @param requestBody
|
|
262
|
-
* @returns any OK
|
|
263
|
-
* @throws ApiError
|
|
264
|
-
*/
|
|
265
|
-
addEventHandler(requestBody) {
|
|
266
|
-
return this.httpRequest.request({
|
|
267
|
-
method: "POST",
|
|
268
|
-
url: "/event",
|
|
269
|
-
body: requestBody,
|
|
270
|
-
mediaType: "application/json"
|
|
271
|
-
});
|
|
272
|
-
}
|
|
273
|
-
/**
|
|
274
|
-
* Get all queue configs
|
|
275
|
-
* @returns any OK
|
|
276
|
-
* @throws ApiError
|
|
277
|
-
*/
|
|
278
|
-
getQueueNames() {
|
|
279
|
-
return this.httpRequest.request({
|
|
280
|
-
method: "GET",
|
|
281
|
-
url: "/event/queue/config"
|
|
282
|
-
});
|
|
283
|
-
}
|
|
284
|
-
/**
|
|
285
|
-
* Remove an event handler
|
|
286
|
-
* @param name
|
|
287
|
-
* @returns any OK
|
|
288
|
-
* @throws ApiError
|
|
289
|
-
*/
|
|
290
|
-
removeEventHandlerStatus(name) {
|
|
291
|
-
return this.httpRequest.request({
|
|
292
|
-
method: "DELETE",
|
|
293
|
-
url: "/event/{name}",
|
|
294
|
-
path: {
|
|
295
|
-
"name": name
|
|
296
|
-
}
|
|
297
|
-
});
|
|
298
|
-
}
|
|
299
|
-
/**
|
|
300
|
-
* Get event handlers for a given event
|
|
301
|
-
* @param event
|
|
302
|
-
* @param activeOnly
|
|
303
|
-
* @returns EventHandler OK
|
|
304
|
-
* @throws ApiError
|
|
305
|
-
*/
|
|
306
|
-
getEventHandlersForEvent(event, activeOnly = true) {
|
|
307
|
-
return this.httpRequest.request({
|
|
308
|
-
method: "GET",
|
|
309
|
-
url: "/event/{event}",
|
|
310
|
-
path: {
|
|
311
|
-
"event": event
|
|
312
|
-
},
|
|
313
|
-
query: {
|
|
314
|
-
"activeOnly": activeOnly
|
|
315
|
-
}
|
|
316
|
-
});
|
|
317
|
-
}
|
|
318
|
-
};
|
|
319
|
-
|
|
320
|
-
// src/common/open-api/services/HealthCheckResourceService.ts
|
|
321
|
-
var HealthCheckResourceService = class {
|
|
322
|
-
constructor(httpRequest) {
|
|
323
|
-
this.httpRequest = httpRequest;
|
|
324
|
-
}
|
|
325
|
-
/**
|
|
326
|
-
* @returns any OK
|
|
327
|
-
* @throws ApiError
|
|
328
|
-
*/
|
|
329
|
-
doCheck() {
|
|
330
|
-
return this.httpRequest.request({
|
|
331
|
-
method: "GET",
|
|
332
|
-
url: "/health"
|
|
333
|
-
});
|
|
334
|
-
}
|
|
335
|
-
};
|
|
336
|
-
|
|
337
|
-
// src/common/open-api/services/MetadataResourceService.ts
|
|
338
|
-
var MetadataResourceService = class {
|
|
339
|
-
constructor(httpRequest) {
|
|
340
|
-
this.httpRequest = httpRequest;
|
|
341
|
-
}
|
|
342
|
-
/**
|
|
343
|
-
* Gets the task definition
|
|
344
|
-
* @param tasktype
|
|
345
|
-
* @param metadata
|
|
346
|
-
* @returns TaskDef OK
|
|
347
|
-
* @throws ApiError
|
|
348
|
-
*/
|
|
349
|
-
getTaskDef(tasktype, metadata = false) {
|
|
350
|
-
return this.httpRequest.request({
|
|
351
|
-
method: "GET",
|
|
352
|
-
url: "/metadata/taskdefs/{tasktype}",
|
|
353
|
-
path: {
|
|
354
|
-
"tasktype": tasktype
|
|
355
|
-
},
|
|
356
|
-
query: {
|
|
357
|
-
"metadata": metadata
|
|
358
|
-
}
|
|
359
|
-
});
|
|
360
|
-
}
|
|
361
|
-
/**
|
|
362
|
-
* Remove a task definition
|
|
363
|
-
* @param tasktype
|
|
364
|
-
* @returns any OK
|
|
365
|
-
* @throws ApiError
|
|
366
|
-
*/
|
|
367
|
-
unregisterTaskDef(tasktype) {
|
|
368
|
-
return this.httpRequest.request({
|
|
369
|
-
method: "DELETE",
|
|
370
|
-
url: "/metadata/taskdefs/{tasktype}",
|
|
371
|
-
path: {
|
|
372
|
-
"tasktype": tasktype
|
|
373
|
-
}
|
|
374
|
-
});
|
|
375
|
-
}
|
|
376
|
-
/**
|
|
377
|
-
* Retrieves all workflow definition along with blueprint
|
|
378
|
-
* @param access
|
|
379
|
-
* @param metadata
|
|
380
|
-
* @param tagKey
|
|
381
|
-
* @param tagValue
|
|
382
|
-
* @returns WorkflowDef OK
|
|
383
|
-
* @throws ApiError
|
|
384
|
-
*/
|
|
385
|
-
getAllWorkflows(access = "READ", metadata = false, tagKey, tagValue) {
|
|
386
|
-
return this.httpRequest.request({
|
|
387
|
-
method: "GET",
|
|
388
|
-
url: "/metadata/workflow",
|
|
389
|
-
query: {
|
|
390
|
-
"access": access,
|
|
391
|
-
"metadata": metadata,
|
|
392
|
-
"tagKey": tagKey,
|
|
393
|
-
"tagValue": tagValue
|
|
394
|
-
}
|
|
395
|
-
});
|
|
396
|
-
}
|
|
397
|
-
/**
|
|
398
|
-
* Create or update workflow definition(s)
|
|
399
|
-
* @param requestBody
|
|
400
|
-
* @param overwrite
|
|
401
|
-
* @returns any OK
|
|
402
|
-
* @throws ApiError
|
|
403
|
-
*/
|
|
404
|
-
update(requestBody, overwrite = true) {
|
|
405
|
-
return this.httpRequest.request({
|
|
406
|
-
method: "PUT",
|
|
407
|
-
url: "/metadata/workflow",
|
|
408
|
-
query: {
|
|
409
|
-
"overwrite": overwrite
|
|
410
|
-
},
|
|
411
|
-
body: requestBody,
|
|
412
|
-
mediaType: "application/json"
|
|
413
|
-
});
|
|
414
|
-
}
|
|
415
|
-
/**
|
|
416
|
-
* Create a new workflow definition
|
|
417
|
-
* @param requestBody
|
|
418
|
-
* @param overwrite
|
|
419
|
-
* @returns any OK
|
|
420
|
-
* @throws ApiError
|
|
421
|
-
*/
|
|
422
|
-
create(requestBody, overwrite = false) {
|
|
423
|
-
return this.httpRequest.request({
|
|
424
|
-
method: "POST",
|
|
425
|
-
url: "/metadata/workflow",
|
|
426
|
-
query: {
|
|
427
|
-
"overwrite": overwrite
|
|
428
|
-
},
|
|
429
|
-
body: requestBody,
|
|
430
|
-
mediaType: "application/json"
|
|
431
|
-
});
|
|
432
|
-
}
|
|
433
|
-
/**
|
|
434
|
-
* Gets all task definition
|
|
435
|
-
* @param access
|
|
436
|
-
* @param metadata
|
|
437
|
-
* @param tagKey
|
|
438
|
-
* @param tagValue
|
|
439
|
-
* @returns TaskDef OK
|
|
440
|
-
* @throws ApiError
|
|
441
|
-
*/
|
|
442
|
-
getTaskDefs(access = "READ", metadata = false, tagKey, tagValue) {
|
|
443
|
-
return this.httpRequest.request({
|
|
444
|
-
method: "GET",
|
|
445
|
-
url: "/metadata/taskdefs",
|
|
446
|
-
query: {
|
|
447
|
-
"access": access,
|
|
448
|
-
"metadata": metadata,
|
|
449
|
-
"tagKey": tagKey,
|
|
450
|
-
"tagValue": tagValue
|
|
451
|
-
}
|
|
452
|
-
});
|
|
453
|
-
}
|
|
454
|
-
/**
|
|
455
|
-
* Update an existing task
|
|
456
|
-
* @param requestBody
|
|
457
|
-
* @returns any OK
|
|
458
|
-
* @throws ApiError
|
|
459
|
-
*/
|
|
460
|
-
updateTaskDef(requestBody) {
|
|
461
|
-
return this.httpRequest.request({
|
|
462
|
-
method: "PUT",
|
|
463
|
-
url: "/metadata/taskdefs",
|
|
464
|
-
body: requestBody,
|
|
465
|
-
mediaType: "application/json"
|
|
466
|
-
});
|
|
467
|
-
}
|
|
468
|
-
/**
|
|
469
|
-
* Create or update task definition(s)
|
|
470
|
-
* @param requestBody
|
|
471
|
-
* @returns any OK
|
|
472
|
-
* @throws ApiError
|
|
473
|
-
*/
|
|
474
|
-
registerTaskDef(requestBody) {
|
|
475
|
-
return this.httpRequest.request({
|
|
476
|
-
method: "POST",
|
|
477
|
-
url: "/metadata/taskdefs",
|
|
478
|
-
body: requestBody,
|
|
479
|
-
mediaType: "application/json"
|
|
480
|
-
});
|
|
481
|
-
}
|
|
482
|
-
/**
|
|
483
|
-
* Removes workflow definition. It does not remove workflows associated with the definition.
|
|
484
|
-
* @param name
|
|
485
|
-
* @param version
|
|
486
|
-
* @returns any OK
|
|
487
|
-
* @throws ApiError
|
|
488
|
-
*/
|
|
489
|
-
unregisterWorkflowDef(name, version) {
|
|
490
|
-
return this.httpRequest.request({
|
|
491
|
-
method: "DELETE",
|
|
492
|
-
url: "/metadata/workflow/{name}/{version}",
|
|
493
|
-
path: {
|
|
494
|
-
"name": name,
|
|
495
|
-
"version": version
|
|
496
|
-
}
|
|
497
|
-
});
|
|
498
|
-
}
|
|
499
|
-
/**
|
|
500
|
-
* Retrieves workflow definition along with blueprint
|
|
501
|
-
* @param name
|
|
502
|
-
* @param version
|
|
503
|
-
* @param metadata
|
|
504
|
-
* @returns WorkflowDef OK
|
|
505
|
-
* @throws ApiError
|
|
506
|
-
*/
|
|
507
|
-
get(name, version, metadata = false) {
|
|
508
|
-
return this.httpRequest.request({
|
|
509
|
-
method: "GET",
|
|
510
|
-
url: "/metadata/workflow/{name}",
|
|
511
|
-
path: {
|
|
512
|
-
"name": name
|
|
513
|
-
},
|
|
514
|
-
query: {
|
|
515
|
-
"version": version,
|
|
516
|
-
"metadata": metadata
|
|
517
|
-
}
|
|
518
|
-
});
|
|
519
|
-
}
|
|
520
|
-
};
|
|
521
|
-
|
|
522
|
-
// src/common/open-api/services/SchedulerResourceService.ts
|
|
523
|
-
var SchedulerResourceService = class {
|
|
524
|
-
constructor(httpRequest) {
|
|
525
|
-
this.httpRequest = httpRequest;
|
|
526
|
-
}
|
|
527
|
-
/**
|
|
528
|
-
* Get an existing workflow schedule by name
|
|
529
|
-
* @param name
|
|
530
|
-
* @returns any OK
|
|
531
|
-
* @throws ApiError
|
|
532
|
-
*/
|
|
533
|
-
getSchedule(name) {
|
|
534
|
-
return this.httpRequest.request({
|
|
535
|
-
method: "GET",
|
|
536
|
-
url: "/scheduler/schedules/{name}",
|
|
537
|
-
path: {
|
|
538
|
-
"name": name
|
|
539
|
-
}
|
|
540
|
-
});
|
|
541
|
-
}
|
|
542
|
-
/**
|
|
543
|
-
* Deletes an existing workflow schedule by name
|
|
544
|
-
* @param name
|
|
545
|
-
* @returns any OK
|
|
546
|
-
* @throws ApiError
|
|
547
|
-
*/
|
|
548
|
-
deleteSchedule(name) {
|
|
549
|
-
return this.httpRequest.request({
|
|
550
|
-
method: "DELETE",
|
|
551
|
-
url: "/scheduler/schedules/{name}",
|
|
552
|
-
path: {
|
|
553
|
-
"name": name
|
|
554
|
-
}
|
|
555
|
-
});
|
|
556
|
-
}
|
|
557
|
-
/**
|
|
558
|
-
* Get list of the next x (default 3, max 5) execution times for a scheduler
|
|
559
|
-
* @param cronExpression
|
|
560
|
-
* @param scheduleStartTime
|
|
561
|
-
* @param scheduleEndTime
|
|
562
|
-
* @param limit
|
|
563
|
-
* @returns number OK
|
|
564
|
-
* @throws ApiError
|
|
565
|
-
*/
|
|
566
|
-
getNextFewSchedules(cronExpression, scheduleStartTime, scheduleEndTime, limit = 3) {
|
|
567
|
-
return this.httpRequest.request({
|
|
568
|
-
method: "GET",
|
|
569
|
-
url: "/scheduler/nextFewSchedules",
|
|
570
|
-
query: {
|
|
571
|
-
"cronExpression": cronExpression,
|
|
572
|
-
"scheduleStartTime": scheduleStartTime,
|
|
573
|
-
"scheduleEndTime": scheduleEndTime,
|
|
574
|
-
"limit": limit
|
|
575
|
-
}
|
|
576
|
-
});
|
|
577
|
-
}
|
|
578
|
-
/**
|
|
579
|
-
* Pauses an existing schedule by name
|
|
580
|
-
* @param name
|
|
581
|
-
* @returns any OK
|
|
582
|
-
* @throws ApiError
|
|
583
|
-
*/
|
|
584
|
-
pauseSchedule(name) {
|
|
585
|
-
return this.httpRequest.request({
|
|
586
|
-
method: "GET",
|
|
587
|
-
url: "/scheduler/schedules/{name}/pause",
|
|
588
|
-
path: {
|
|
589
|
-
"name": name
|
|
590
|
-
}
|
|
591
|
-
});
|
|
592
|
-
}
|
|
593
|
-
/**
|
|
594
|
-
* Pause all scheduling in a single conductor server instance (for debugging only)
|
|
595
|
-
* @returns any OK
|
|
596
|
-
* @throws ApiError
|
|
597
|
-
*/
|
|
598
|
-
pauseAllSchedules() {
|
|
599
|
-
return this.httpRequest.request({
|
|
600
|
-
method: "GET",
|
|
601
|
-
url: "/scheduler/admin/pause"
|
|
602
|
-
});
|
|
603
|
-
}
|
|
604
|
-
/**
|
|
605
|
-
* Resume a paused schedule by name
|
|
606
|
-
* @param name
|
|
607
|
-
* @returns any OK
|
|
608
|
-
* @throws ApiError
|
|
609
|
-
*/
|
|
610
|
-
resumeSchedule(name) {
|
|
611
|
-
return this.httpRequest.request({
|
|
612
|
-
method: "GET",
|
|
613
|
-
url: "/scheduler/schedules/{name}/resume",
|
|
614
|
-
path: {
|
|
615
|
-
"name": name
|
|
616
|
-
}
|
|
617
|
-
});
|
|
618
|
-
}
|
|
619
|
-
/**
|
|
620
|
-
* Requeue all execution records
|
|
621
|
-
* @returns any OK
|
|
622
|
-
* @throws ApiError
|
|
623
|
-
*/
|
|
624
|
-
requeueAllExecutionRecords() {
|
|
625
|
-
return this.httpRequest.request({
|
|
626
|
-
method: "GET",
|
|
627
|
-
url: "/scheduler/admin/requeue"
|
|
628
|
-
});
|
|
629
|
-
}
|
|
630
|
-
/**
|
|
631
|
-
* Resume all scheduling
|
|
632
|
-
* @returns any OK
|
|
633
|
-
* @throws ApiError
|
|
634
|
-
*/
|
|
635
|
-
resumeAllSchedules() {
|
|
636
|
-
return this.httpRequest.request({
|
|
637
|
-
method: "GET",
|
|
638
|
-
url: "/scheduler/admin/resume"
|
|
639
|
-
});
|
|
640
|
-
}
|
|
641
|
-
/**
|
|
642
|
-
* Get all existing workflow schedules and optionally filter by workflow name
|
|
643
|
-
* @param workflowName
|
|
644
|
-
* @returns WorkflowSchedule OK
|
|
645
|
-
* @throws ApiError
|
|
646
|
-
*/
|
|
647
|
-
getAllSchedules(workflowName) {
|
|
648
|
-
return this.httpRequest.request({
|
|
649
|
-
method: "GET",
|
|
650
|
-
url: "/scheduler/schedules",
|
|
651
|
-
query: {
|
|
652
|
-
"workflowName": workflowName
|
|
653
|
-
}
|
|
654
|
-
});
|
|
655
|
-
}
|
|
656
|
-
/**
|
|
657
|
-
* Create or update a schedule for a specified workflow with a corresponding start workflow request
|
|
658
|
-
* @param requestBody
|
|
659
|
-
* @returns any OK
|
|
660
|
-
* @throws ApiError
|
|
661
|
-
*/
|
|
662
|
-
saveSchedule(requestBody) {
|
|
663
|
-
return this.httpRequest.request({
|
|
664
|
-
method: "POST",
|
|
665
|
-
url: "/scheduler/schedules",
|
|
666
|
-
body: requestBody,
|
|
667
|
-
mediaType: "application/json"
|
|
668
|
-
});
|
|
669
|
-
}
|
|
670
|
-
/**
|
|
671
|
-
* Test timeout - do not use in production
|
|
672
|
-
* @returns any OK
|
|
673
|
-
* @throws ApiError
|
|
674
|
-
*/
|
|
675
|
-
testTimeout() {
|
|
676
|
-
return this.httpRequest.request({
|
|
677
|
-
method: "GET",
|
|
678
|
-
url: "/scheduler/test/timeout"
|
|
679
|
-
});
|
|
680
|
-
}
|
|
681
|
-
/**
|
|
682
|
-
* Search for workflows based on payload and other parameters
|
|
683
|
-
* use sort options as sort=<field>:ASC|DESC e.g. sort=name&sort=workflowId:DESC. If order is not specified, defaults to ASC.
|
|
684
|
-
* @param start
|
|
685
|
-
* @param size
|
|
686
|
-
* @param sort
|
|
687
|
-
* @param freeText
|
|
688
|
-
* @param query
|
|
689
|
-
* @returns SearchResultWorkflowScheduleExecutionModel OK
|
|
690
|
-
* @throws ApiError
|
|
691
|
-
*/
|
|
692
|
-
searchV21(start, size = 100, sort, freeText = "*", query) {
|
|
693
|
-
return this.httpRequest.request({
|
|
694
|
-
method: "GET",
|
|
695
|
-
url: "/scheduler/search/executions",
|
|
696
|
-
query: {
|
|
697
|
-
"start": start,
|
|
698
|
-
"size": size,
|
|
699
|
-
"sort": sort,
|
|
700
|
-
"freeText": freeText,
|
|
701
|
-
"query": query
|
|
702
|
-
}
|
|
703
|
-
});
|
|
704
|
-
}
|
|
705
|
-
};
|
|
706
|
-
|
|
707
|
-
// src/common/open-api/services/TaskResourceService.ts
|
|
708
|
-
var TaskResourceService = class {
|
|
709
|
-
constructor(httpRequest) {
|
|
710
|
-
this.httpRequest = httpRequest;
|
|
711
|
-
}
|
|
712
|
-
/**
|
|
713
|
-
* Poll for a task of a certain type
|
|
714
|
-
* @param tasktype
|
|
715
|
-
* @param workerid
|
|
716
|
-
* @param domain
|
|
717
|
-
* @returns Task OK
|
|
718
|
-
* @throws ApiError
|
|
719
|
-
*/
|
|
720
|
-
poll(tasktype, workerid, domain) {
|
|
721
|
-
return this.httpRequest.request({
|
|
722
|
-
method: "GET",
|
|
723
|
-
url: "/tasks/poll/{tasktype}",
|
|
724
|
-
path: {
|
|
725
|
-
"tasktype": tasktype
|
|
726
|
-
},
|
|
727
|
-
query: {
|
|
728
|
-
"workerid": workerid,
|
|
729
|
-
"domain": domain
|
|
730
|
-
}
|
|
731
|
-
});
|
|
732
|
-
}
|
|
733
|
-
/**
|
|
734
|
-
* Get the details about each queue
|
|
735
|
-
* @returns number OK
|
|
736
|
-
* @throws ApiError
|
|
737
|
-
*/
|
|
738
|
-
allVerbose() {
|
|
739
|
-
return this.httpRequest.request({
|
|
740
|
-
method: "GET",
|
|
741
|
-
url: "/tasks/queue/all/verbose"
|
|
742
|
-
});
|
|
743
|
-
}
|
|
744
|
-
/**
|
|
745
|
-
* Update a task By Ref Name
|
|
746
|
-
* @param workflowId
|
|
747
|
-
* @param taskRefName
|
|
748
|
-
* @param status
|
|
749
|
-
* @param requestBody
|
|
750
|
-
* @returns string OK
|
|
751
|
-
* @throws ApiError
|
|
752
|
-
*/
|
|
753
|
-
updateTask(workflowId, taskRefName, status, requestBody) {
|
|
754
|
-
return this.httpRequest.request({
|
|
755
|
-
method: "POST",
|
|
756
|
-
url: "/tasks/{workflowId}/{taskRefName}/{status}",
|
|
757
|
-
path: {
|
|
758
|
-
"workflowId": workflowId,
|
|
759
|
-
"taskRefName": taskRefName,
|
|
760
|
-
"status": status
|
|
761
|
-
},
|
|
762
|
-
body: requestBody,
|
|
763
|
-
mediaType: "application/json"
|
|
764
|
-
});
|
|
765
|
-
}
|
|
766
|
-
/**
|
|
767
|
-
* Get task by Id
|
|
768
|
-
* @param taskId
|
|
769
|
-
* @returns Task OK
|
|
770
|
-
* @throws ApiError
|
|
771
|
-
*/
|
|
772
|
-
getTask(taskId) {
|
|
773
|
-
return this.httpRequest.request({
|
|
774
|
-
method: "GET",
|
|
775
|
-
url: "/tasks/{taskId}",
|
|
776
|
-
path: {
|
|
777
|
-
"taskId": taskId
|
|
778
|
-
}
|
|
779
|
-
});
|
|
780
|
-
}
|
|
781
|
-
/**
|
|
782
|
-
* Get the details about each queue
|
|
783
|
-
* @returns number OK
|
|
784
|
-
* @throws ApiError
|
|
785
|
-
*/
|
|
786
|
-
all() {
|
|
787
|
-
return this.httpRequest.request({
|
|
788
|
-
method: "GET",
|
|
789
|
-
url: "/tasks/queue/all"
|
|
790
|
-
});
|
|
791
|
-
}
|
|
792
|
-
/**
|
|
793
|
-
* Requeue pending tasks
|
|
794
|
-
* @param taskType
|
|
795
|
-
* @returns string OK
|
|
796
|
-
* @throws ApiError
|
|
797
|
-
*/
|
|
798
|
-
requeuePendingTask(taskType) {
|
|
799
|
-
return this.httpRequest.request({
|
|
800
|
-
method: "POST",
|
|
801
|
-
url: "/tasks/queue/requeue/{taskType}",
|
|
802
|
-
path: {
|
|
803
|
-
"taskType": taskType
|
|
804
|
-
}
|
|
805
|
-
});
|
|
806
|
-
}
|
|
807
|
-
/**
|
|
808
|
-
* Search for tasks based in payload and other parameters
|
|
809
|
-
* use sort options as sort=<field>:ASC|DESC e.g. sort=name&sort=workflowId:DESC. If order is not specified, defaults to ASC
|
|
810
|
-
* @param start
|
|
811
|
-
* @param size
|
|
812
|
-
* @param sort
|
|
813
|
-
* @param freeText
|
|
814
|
-
* @param query
|
|
815
|
-
* @returns SearchResultTaskSummary OK
|
|
816
|
-
* @throws ApiError
|
|
817
|
-
*/
|
|
818
|
-
search(start, size = 100, sort, freeText = "*", query) {
|
|
819
|
-
return this.httpRequest.request({
|
|
820
|
-
method: "GET",
|
|
821
|
-
url: "/tasks/search",
|
|
822
|
-
query: {
|
|
823
|
-
"start": start,
|
|
824
|
-
"size": size,
|
|
825
|
-
"sort": sort,
|
|
826
|
-
"freeText": freeText,
|
|
827
|
-
"query": query
|
|
828
|
-
}
|
|
829
|
-
});
|
|
830
|
-
}
|
|
831
|
-
/**
|
|
832
|
-
* Search for tasks based in payload and other parameters
|
|
833
|
-
* use sort options as sort=<field>:ASC|DESC e.g. sort=name&sort=workflowId:DESC. If order is not specified, defaults to ASC
|
|
834
|
-
* @param start
|
|
835
|
-
* @param size
|
|
836
|
-
* @param sort
|
|
837
|
-
* @param freeText
|
|
838
|
-
* @param query
|
|
839
|
-
* @returns SearchResultTask OK
|
|
840
|
-
* @throws ApiError
|
|
841
|
-
*/
|
|
842
|
-
searchV22(start, size = 100, sort, freeText = "*", query) {
|
|
843
|
-
return this.httpRequest.request({
|
|
844
|
-
method: "GET",
|
|
845
|
-
url: "/tasks/search-v2",
|
|
846
|
-
query: {
|
|
847
|
-
"start": start,
|
|
848
|
-
"size": size,
|
|
849
|
-
"sort": sort,
|
|
850
|
-
"freeText": freeText,
|
|
851
|
-
"query": query
|
|
852
|
-
}
|
|
853
|
-
});
|
|
854
|
-
}
|
|
855
|
-
/**
|
|
856
|
-
* Get the last poll data for a given task type
|
|
857
|
-
* @param taskType
|
|
858
|
-
* @returns PollData OK
|
|
859
|
-
* @throws ApiError
|
|
860
|
-
*/
|
|
861
|
-
getPollData(taskType) {
|
|
862
|
-
return this.httpRequest.request({
|
|
863
|
-
method: "GET",
|
|
864
|
-
url: "/tasks/queue/polldata",
|
|
865
|
-
query: {
|
|
866
|
-
"taskType": taskType
|
|
867
|
-
}
|
|
868
|
-
});
|
|
869
|
-
}
|
|
870
|
-
/**
|
|
871
|
-
* Get Task Execution Logs
|
|
872
|
-
* @param taskId
|
|
873
|
-
* @returns TaskExecLog OK
|
|
874
|
-
* @throws ApiError
|
|
875
|
-
*/
|
|
876
|
-
getTaskLogs(taskId) {
|
|
877
|
-
return this.httpRequest.request({
|
|
878
|
-
method: "GET",
|
|
879
|
-
url: "/tasks/{taskId}/log",
|
|
880
|
-
path: {
|
|
881
|
-
"taskId": taskId
|
|
882
|
-
}
|
|
883
|
-
});
|
|
884
|
-
}
|
|
885
|
-
/**
|
|
886
|
-
* Log Task Execution Details
|
|
887
|
-
* @param taskId
|
|
888
|
-
* @param requestBody
|
|
889
|
-
* @returns any OK
|
|
890
|
-
* @throws ApiError
|
|
891
|
-
*/
|
|
892
|
-
log(taskId, requestBody) {
|
|
893
|
-
return this.httpRequest.request({
|
|
894
|
-
method: "POST",
|
|
895
|
-
url: "/tasks/{taskId}/log",
|
|
896
|
-
path: {
|
|
897
|
-
"taskId": taskId
|
|
898
|
-
},
|
|
899
|
-
body: requestBody,
|
|
900
|
-
mediaType: "application/json"
|
|
901
|
-
});
|
|
902
|
-
}
|
|
903
|
-
/**
|
|
904
|
-
* Get the last poll data for all task types
|
|
905
|
-
* @returns PollData OK
|
|
906
|
-
* @throws ApiError
|
|
907
|
-
*/
|
|
908
|
-
getAllPollData() {
|
|
909
|
-
return this.httpRequest.request({
|
|
910
|
-
method: "GET",
|
|
911
|
-
url: "/tasks/queue/polldata/all"
|
|
912
|
-
});
|
|
913
|
-
}
|
|
914
|
-
/**
|
|
915
|
-
* Batch poll for a task of a certain type
|
|
916
|
-
* @param tasktype
|
|
917
|
-
* @param workerid
|
|
918
|
-
* @param domain
|
|
919
|
-
* @param count
|
|
920
|
-
* @param timeout
|
|
921
|
-
* @returns Task OK
|
|
922
|
-
* @throws ApiError
|
|
923
|
-
*/
|
|
924
|
-
batchPoll(tasktype, workerid, domain, count = 1, timeout = 100) {
|
|
925
|
-
return this.httpRequest.request({
|
|
926
|
-
method: "GET",
|
|
927
|
-
url: "/tasks/poll/batch/{tasktype}",
|
|
928
|
-
path: {
|
|
929
|
-
"tasktype": tasktype
|
|
930
|
-
},
|
|
931
|
-
query: {
|
|
932
|
-
"workerid": workerid,
|
|
933
|
-
"domain": domain,
|
|
934
|
-
"count": count,
|
|
935
|
-
"timeout": timeout
|
|
936
|
-
}
|
|
937
|
-
});
|
|
938
|
-
}
|
|
939
|
-
/**
|
|
940
|
-
* Update a task
|
|
941
|
-
* @param requestBody
|
|
942
|
-
* @returns string OK
|
|
943
|
-
* @throws ApiError
|
|
944
|
-
*/
|
|
945
|
-
updateTask1(requestBody) {
|
|
946
|
-
return this.httpRequest.request({
|
|
947
|
-
method: "POST",
|
|
948
|
-
url: "/tasks",
|
|
949
|
-
body: requestBody,
|
|
950
|
-
mediaType: "application/json"
|
|
951
|
-
});
|
|
952
|
-
}
|
|
953
|
-
/**
|
|
954
|
-
* Get Task type queue sizes
|
|
955
|
-
* @param taskType
|
|
956
|
-
* @returns number OK
|
|
957
|
-
* @throws ApiError
|
|
958
|
-
*/
|
|
959
|
-
size1(taskType) {
|
|
960
|
-
return this.httpRequest.request({
|
|
961
|
-
method: "GET",
|
|
962
|
-
url: "/tasks/queue/sizes",
|
|
963
|
-
query: {
|
|
964
|
-
"taskType": taskType
|
|
965
|
-
}
|
|
966
|
-
});
|
|
967
|
-
}
|
|
968
|
-
/**
|
|
969
|
-
* Get the external uri where the task payload is to be stored
|
|
970
|
-
* @param path
|
|
971
|
-
* @param operation
|
|
972
|
-
* @param payloadType
|
|
973
|
-
* @returns ExternalStorageLocation OK
|
|
974
|
-
* @throws ApiError
|
|
975
|
-
*/
|
|
976
|
-
getExternalStorageLocation1(path, operation, payloadType) {
|
|
977
|
-
return this.httpRequest.request({
|
|
978
|
-
method: "GET",
|
|
979
|
-
url: "/tasks/externalstoragelocation",
|
|
980
|
-
query: {
|
|
981
|
-
"path": path,
|
|
982
|
-
"operation": operation,
|
|
983
|
-
"payloadType": payloadType
|
|
984
|
-
}
|
|
985
|
-
});
|
|
986
|
-
}
|
|
987
|
-
};
|
|
988
|
-
|
|
989
|
-
// src/common/open-api/services/TokenResourceService.ts
|
|
990
|
-
var TokenResourceService = class {
|
|
991
|
-
constructor(httpRequest) {
|
|
992
|
-
this.httpRequest = httpRequest;
|
|
993
|
-
}
|
|
994
|
-
/**
|
|
995
|
-
* Generate JWT with the given access key
|
|
996
|
-
* @param requestBody
|
|
997
|
-
* @returns Response OK
|
|
998
|
-
* @throws ApiError
|
|
999
|
-
*/
|
|
1000
|
-
generateToken(requestBody) {
|
|
1001
|
-
return this.httpRequest.request({
|
|
1002
|
-
method: "POST",
|
|
1003
|
-
url: "/token",
|
|
1004
|
-
body: requestBody,
|
|
1005
|
-
mediaType: "application/json"
|
|
1006
|
-
});
|
|
1007
|
-
}
|
|
1008
|
-
/**
|
|
1009
|
-
* Get the user info from the token
|
|
1010
|
-
* @returns any OK
|
|
1011
|
-
* @throws ApiError
|
|
1012
|
-
*/
|
|
1013
|
-
getUserInfo() {
|
|
1014
|
-
return this.httpRequest.request({
|
|
1015
|
-
method: "GET",
|
|
1016
|
-
url: "/token/userInfo"
|
|
1017
|
-
});
|
|
1018
|
-
}
|
|
1019
|
-
};
|
|
1020
|
-
|
|
1021
|
-
// src/common/open-api/services/WorkflowBulkResourceService.ts
|
|
1022
|
-
var WorkflowBulkResourceService = class {
|
|
1023
|
-
constructor(httpRequest) {
|
|
1024
|
-
this.httpRequest = httpRequest;
|
|
1025
|
-
}
|
|
1026
|
-
/**
|
|
1027
|
-
* Retry the last failed task for each workflow from the list
|
|
1028
|
-
* @param requestBody
|
|
1029
|
-
* @returns BulkResponse OK
|
|
1030
|
-
* @throws ApiError
|
|
1031
|
-
*/
|
|
1032
|
-
retry(requestBody) {
|
|
1033
|
-
return this.httpRequest.request({
|
|
1034
|
-
method: "POST",
|
|
1035
|
-
url: "/workflow/bulk/retry",
|
|
1036
|
-
body: requestBody,
|
|
1037
|
-
mediaType: "application/json"
|
|
1038
|
-
});
|
|
1039
|
-
}
|
|
1040
|
-
/**
|
|
1041
|
-
* Restart the list of completed workflow
|
|
1042
|
-
* @param requestBody
|
|
1043
|
-
* @param useLatestDefinitions
|
|
1044
|
-
* @returns BulkResponse OK
|
|
1045
|
-
* @throws ApiError
|
|
1046
|
-
*/
|
|
1047
|
-
restart(requestBody, useLatestDefinitions = false) {
|
|
1048
|
-
return this.httpRequest.request({
|
|
1049
|
-
method: "POST",
|
|
1050
|
-
url: "/workflow/bulk/restart",
|
|
1051
|
-
query: {
|
|
1052
|
-
"useLatestDefinitions": useLatestDefinitions
|
|
1053
|
-
},
|
|
1054
|
-
body: requestBody,
|
|
1055
|
-
mediaType: "application/json"
|
|
1056
|
-
});
|
|
1057
|
-
}
|
|
1058
|
-
/**
|
|
1059
|
-
* Terminate workflows execution
|
|
1060
|
-
* @param requestBody
|
|
1061
|
-
* @param reason
|
|
1062
|
-
* @returns BulkResponse OK
|
|
1063
|
-
* @throws ApiError
|
|
1064
|
-
*/
|
|
1065
|
-
terminate(requestBody, reason) {
|
|
1066
|
-
return this.httpRequest.request({
|
|
1067
|
-
method: "POST",
|
|
1068
|
-
url: "/workflow/bulk/terminate",
|
|
1069
|
-
query: {
|
|
1070
|
-
"reason": reason
|
|
1071
|
-
},
|
|
1072
|
-
body: requestBody,
|
|
1073
|
-
mediaType: "application/json"
|
|
1074
|
-
});
|
|
1075
|
-
}
|
|
1076
|
-
/**
|
|
1077
|
-
* Resume the list of workflows
|
|
1078
|
-
* @param requestBody
|
|
1079
|
-
* @returns BulkResponse OK
|
|
1080
|
-
* @throws ApiError
|
|
1081
|
-
*/
|
|
1082
|
-
resumeWorkflow(requestBody) {
|
|
1083
|
-
return this.httpRequest.request({
|
|
1084
|
-
method: "PUT",
|
|
1085
|
-
url: "/workflow/bulk/resume",
|
|
1086
|
-
body: requestBody,
|
|
1087
|
-
mediaType: "application/json"
|
|
1088
|
-
});
|
|
1089
|
-
}
|
|
1090
|
-
/**
|
|
1091
|
-
* Pause the list of workflows
|
|
1092
|
-
* @param requestBody
|
|
1093
|
-
* @returns BulkResponse OK
|
|
1094
|
-
* @throws ApiError
|
|
1095
|
-
*/
|
|
1096
|
-
pauseWorkflow1(requestBody) {
|
|
1097
|
-
return this.httpRequest.request({
|
|
1098
|
-
method: "PUT",
|
|
1099
|
-
url: "/workflow/bulk/pause",
|
|
1100
|
-
body: requestBody,
|
|
1101
|
-
mediaType: "application/json"
|
|
1102
|
-
});
|
|
1103
|
-
}
|
|
1104
|
-
};
|
|
1105
|
-
|
|
1106
|
-
// src/common/open-api/services/WorkflowResourceService.ts
|
|
1107
|
-
var WorkflowResourceService = class {
|
|
1108
|
-
constructor(httpRequest) {
|
|
1109
|
-
this.httpRequest = httpRequest;
|
|
1110
|
-
}
|
|
1111
|
-
/**
|
|
1112
|
-
* Retrieve all the running workflows
|
|
1113
|
-
* @param name
|
|
1114
|
-
* @param version
|
|
1115
|
-
* @param startTime
|
|
1116
|
-
* @param endTime
|
|
1117
|
-
* @returns string OK
|
|
1118
|
-
* @throws ApiError
|
|
1119
|
-
*/
|
|
1120
|
-
getRunningWorkflow(name, version = 1, startTime, endTime) {
|
|
1121
|
-
return this.httpRequest.request({
|
|
1122
|
-
method: "GET",
|
|
1123
|
-
url: "/workflow/running/{name}",
|
|
1124
|
-
path: {
|
|
1125
|
-
"name": name
|
|
1126
|
-
},
|
|
1127
|
-
query: {
|
|
1128
|
-
"version": version,
|
|
1129
|
-
"startTime": startTime,
|
|
1130
|
-
"endTime": endTime
|
|
1131
|
-
}
|
|
1132
|
-
});
|
|
1133
|
-
}
|
|
1134
|
-
/**
|
|
1135
|
-
* Execute a workflow synchronously
|
|
1136
|
-
* @param body
|
|
1137
|
-
* @param name
|
|
1138
|
-
* @param version
|
|
1139
|
-
* @param requestId
|
|
1140
|
-
* @param waitUntilTaskRef
|
|
1141
|
-
* @param callback
|
|
1142
|
-
* @returns workflowRun
|
|
1143
|
-
* @throws ApiError
|
|
1144
|
-
*/
|
|
1145
|
-
executeWorkflow(body, name, version, requestId, waitUntilTaskRef) {
|
|
1146
|
-
return this.httpRequest.request({
|
|
1147
|
-
method: "POST",
|
|
1148
|
-
url: "/workflow/execute/{name}/{version}",
|
|
1149
|
-
path: {
|
|
1150
|
-
"name": name,
|
|
1151
|
-
"version": version
|
|
1152
|
-
},
|
|
1153
|
-
query: {
|
|
1154
|
-
"requestId": requestId,
|
|
1155
|
-
"waitUntilTaskRef": waitUntilTaskRef
|
|
1156
|
-
},
|
|
1157
|
-
body,
|
|
1158
|
-
mediaType: "application/json"
|
|
1159
|
-
});
|
|
1160
|
-
}
|
|
1161
|
-
/**
|
|
1162
|
-
* Start a new workflow with StartWorkflowRequest, which allows task to be executed in a domain
|
|
1163
|
-
* @param requestBody
|
|
1164
|
-
* @returns string OK
|
|
1165
|
-
* @throws ApiError
|
|
1166
|
-
*/
|
|
1167
|
-
startWorkflow(requestBody) {
|
|
1168
|
-
return this.httpRequest.request({
|
|
1169
|
-
method: "POST",
|
|
1170
|
-
url: "/workflow",
|
|
1171
|
-
body: requestBody,
|
|
1172
|
-
mediaType: "application/json"
|
|
1173
|
-
});
|
|
1174
|
-
}
|
|
1175
|
-
/**
|
|
1176
|
-
* Starts the decision task for a workflow
|
|
1177
|
-
* @param workflowId
|
|
1178
|
-
* @returns any OK
|
|
1179
|
-
* @throws ApiError
|
|
1180
|
-
*/
|
|
1181
|
-
decide(workflowId) {
|
|
1182
|
-
return this.httpRequest.request({
|
|
1183
|
-
method: "PUT",
|
|
1184
|
-
url: "/workflow/decide/{workflowId}",
|
|
1185
|
-
path: {
|
|
1186
|
-
"workflowId": workflowId
|
|
1187
|
-
}
|
|
1188
|
-
});
|
|
1189
|
-
}
|
|
1190
|
-
/**
|
|
1191
|
-
* Reruns the workflow from a specific task
|
|
1192
|
-
* @param workflowId
|
|
1193
|
-
* @param requestBody
|
|
1194
|
-
* @returns string OK
|
|
1195
|
-
* @throws ApiError
|
|
1196
|
-
*/
|
|
1197
|
-
rerun(workflowId, requestBody) {
|
|
1198
|
-
return this.httpRequest.request({
|
|
1199
|
-
method: "POST",
|
|
1200
|
-
url: "/workflow/{workflowId}/rerun",
|
|
1201
|
-
path: {
|
|
1202
|
-
"workflowId": workflowId
|
|
1203
|
-
},
|
|
1204
|
-
body: requestBody,
|
|
1205
|
-
mediaType: "application/json"
|
|
1206
|
-
});
|
|
1207
|
-
}
|
|
1208
|
-
/**
|
|
1209
|
-
* Search for workflows based on payload and other parameters
|
|
1210
|
-
* use sort options as sort=<field>:ASC|DESC e.g. sort=name&sort=workflowId:DESC. If order is not specified, defaults to ASC.
|
|
1211
|
-
* @param start
|
|
1212
|
-
* @param size
|
|
1213
|
-
* @param sort
|
|
1214
|
-
* @param freeText
|
|
1215
|
-
* @param query
|
|
1216
|
-
* @returns SearchResultWorkflow OK
|
|
1217
|
-
* @throws ApiError
|
|
1218
|
-
*/
|
|
1219
|
-
searchV21(start, size = 100, sort, freeText = "*", query) {
|
|
1220
|
-
return this.httpRequest.request({
|
|
1221
|
-
method: "GET",
|
|
1222
|
-
url: "/workflow/search-v2",
|
|
1223
|
-
query: {
|
|
1224
|
-
"start": start,
|
|
1225
|
-
"size": size,
|
|
1226
|
-
"sort": sort,
|
|
1227
|
-
"freeText": freeText,
|
|
1228
|
-
"query": query
|
|
1229
|
-
}
|
|
1230
|
-
});
|
|
1231
|
-
}
|
|
1232
|
-
/**
|
|
1233
|
-
* Pauses the workflow
|
|
1234
|
-
* @param workflowId
|
|
1235
|
-
* @returns any OK
|
|
1236
|
-
* @throws ApiError
|
|
1237
|
-
*/
|
|
1238
|
-
pauseWorkflow(workflowId) {
|
|
1239
|
-
return this.httpRequest.request({
|
|
1240
|
-
method: "PUT",
|
|
1241
|
-
url: "/workflow/{workflowId}/pause",
|
|
1242
|
-
path: {
|
|
1243
|
-
"workflowId": workflowId
|
|
1244
|
-
}
|
|
1245
|
-
});
|
|
1246
|
-
}
|
|
1247
|
-
/**
|
|
1248
|
-
* Skips a given task from a current running workflow
|
|
1249
|
-
* @param workflowId
|
|
1250
|
-
* @param taskReferenceName
|
|
1251
|
-
* @param requestBody
|
|
1252
|
-
* @returns any OK
|
|
1253
|
-
* @throws ApiError
|
|
1254
|
-
*/
|
|
1255
|
-
skipTaskFromWorkflow(workflowId, taskReferenceName, requestBody) {
|
|
1256
|
-
return this.httpRequest.request({
|
|
1257
|
-
method: "PUT",
|
|
1258
|
-
url: "/workflow/{workflowId}/skiptask/{taskReferenceName}",
|
|
1259
|
-
path: {
|
|
1260
|
-
"workflowId": workflowId,
|
|
1261
|
-
"taskReferenceName": taskReferenceName
|
|
1262
|
-
},
|
|
1263
|
-
body: requestBody,
|
|
1264
|
-
mediaType: "application/json"
|
|
1265
|
-
});
|
|
1266
|
-
}
|
|
1267
|
-
/**
|
|
1268
|
-
* Lists workflows for the given correlation id list
|
|
1269
|
-
* @param name
|
|
1270
|
-
* @param requestBody
|
|
1271
|
-
* @param includeClosed
|
|
1272
|
-
* @param includeTasks
|
|
1273
|
-
* @returns Workflow OK
|
|
1274
|
-
* @throws ApiError
|
|
1275
|
-
*/
|
|
1276
|
-
getWorkflows(name, requestBody, includeClosed = false, includeTasks = false) {
|
|
1277
|
-
return this.httpRequest.request({
|
|
1278
|
-
method: "POST",
|
|
1279
|
-
url: "/workflow/{name}/correlated",
|
|
1280
|
-
path: {
|
|
1281
|
-
"name": name
|
|
1282
|
-
},
|
|
1283
|
-
query: {
|
|
1284
|
-
"includeClosed": includeClosed,
|
|
1285
|
-
"includeTasks": includeTasks
|
|
1286
|
-
},
|
|
1287
|
-
body: requestBody,
|
|
1288
|
-
mediaType: "application/json"
|
|
1289
|
-
});
|
|
1290
|
-
}
|
|
1291
|
-
/**
|
|
1292
|
-
* Gets the workflow by workflow id
|
|
1293
|
-
* @param workflowId
|
|
1294
|
-
* @param includeOutput
|
|
1295
|
-
* @param includeVariables
|
|
1296
|
-
* @returns WorkflowStatus OK
|
|
1297
|
-
* @throws ApiError
|
|
1298
|
-
*/
|
|
1299
|
-
getWorkflowStatusSummary(workflowId, includeOutput = false, includeVariables = false) {
|
|
1300
|
-
return this.httpRequest.request({
|
|
1301
|
-
method: "GET",
|
|
1302
|
-
url: "/workflow/{workflowId}/status",
|
|
1303
|
-
path: {
|
|
1304
|
-
"workflowId": workflowId
|
|
1305
|
-
},
|
|
1306
|
-
query: {
|
|
1307
|
-
"includeOutput": includeOutput,
|
|
1308
|
-
"includeVariables": includeVariables
|
|
1309
|
-
}
|
|
1310
|
-
});
|
|
1311
|
-
}
|
|
1312
|
-
/**
|
|
1313
|
-
* Lists workflows for the given correlation id
|
|
1314
|
-
* @param name
|
|
1315
|
-
* @param correlationId
|
|
1316
|
-
* @param includeClosed
|
|
1317
|
-
* @param includeTasks
|
|
1318
|
-
* @returns Workflow OK
|
|
1319
|
-
* @throws ApiError
|
|
1320
|
-
*/
|
|
1321
|
-
getWorkflows1(name, correlationId, includeClosed = false, includeTasks = false) {
|
|
1322
|
-
return this.httpRequest.request({
|
|
1323
|
-
method: "GET",
|
|
1324
|
-
url: "/workflow/{name}/correlated/{correlationId}",
|
|
1325
|
-
path: {
|
|
1326
|
-
"name": name,
|
|
1327
|
-
"correlationId": correlationId
|
|
1328
|
-
},
|
|
1329
|
-
query: {
|
|
1330
|
-
"includeClosed": includeClosed,
|
|
1331
|
-
"includeTasks": includeTasks
|
|
1332
|
-
}
|
|
1333
|
-
});
|
|
1334
|
-
}
|
|
1335
|
-
/**
|
|
1336
|
-
* Retries the last failed task
|
|
1337
|
-
* @param workflowId
|
|
1338
|
-
* @param resumeSubworkflowTasks
|
|
1339
|
-
* @returns void
|
|
1340
|
-
* @throws ApiError
|
|
1341
|
-
*/
|
|
1342
|
-
retry1(workflowId, resumeSubworkflowTasks = false) {
|
|
1343
|
-
return this.httpRequest.request({
|
|
1344
|
-
method: "POST",
|
|
1345
|
-
url: "/workflow/{workflowId}/retry",
|
|
1346
|
-
path: {
|
|
1347
|
-
"workflowId": workflowId
|
|
1348
|
-
},
|
|
1349
|
-
query: {
|
|
1350
|
-
"resumeSubworkflowTasks": resumeSubworkflowTasks
|
|
1351
|
-
}
|
|
1352
|
-
});
|
|
1353
|
-
}
|
|
1354
|
-
/**
|
|
1355
|
-
* Gets the workflow by workflow id
|
|
1356
|
-
* @param workflowId
|
|
1357
|
-
* @param includeTasks
|
|
1358
|
-
* @returns Workflow OK
|
|
1359
|
-
* @throws ApiError
|
|
1360
|
-
*/
|
|
1361
|
-
getExecutionStatus(workflowId, includeTasks = true) {
|
|
1362
|
-
return this.httpRequest.request({
|
|
1363
|
-
method: "GET",
|
|
1364
|
-
url: "/workflow/{workflowId}",
|
|
1365
|
-
path: {
|
|
1366
|
-
"workflowId": workflowId
|
|
1367
|
-
},
|
|
1368
|
-
query: {
|
|
1369
|
-
"includeTasks": includeTasks
|
|
1370
|
-
}
|
|
1371
|
-
});
|
|
1372
|
-
}
|
|
1373
|
-
/**
|
|
1374
|
-
* Terminate workflow execution
|
|
1375
|
-
* @param workflowId
|
|
1376
|
-
* @param reason
|
|
1377
|
-
* @returns any OK
|
|
1378
|
-
* @throws ApiError
|
|
1379
|
-
*/
|
|
1380
|
-
terminate1(workflowId, reason) {
|
|
1381
|
-
return this.httpRequest.request({
|
|
1382
|
-
method: "DELETE",
|
|
1383
|
-
url: "/workflow/{workflowId}",
|
|
1384
|
-
path: {
|
|
1385
|
-
"workflowId": workflowId
|
|
1386
|
-
},
|
|
1387
|
-
query: {
|
|
1388
|
-
"reason": reason
|
|
1389
|
-
}
|
|
1390
|
-
});
|
|
1391
|
-
}
|
|
1392
|
-
/**
|
|
1393
|
-
* Resumes the workflow
|
|
1394
|
-
* @param workflowId
|
|
1395
|
-
* @returns any OK
|
|
1396
|
-
* @throws ApiError
|
|
1397
|
-
*/
|
|
1398
|
-
resumeWorkflow(workflowId) {
|
|
1399
|
-
return this.httpRequest.request({
|
|
1400
|
-
method: "PUT",
|
|
1401
|
-
url: "/workflow/{workflowId}/resume",
|
|
1402
|
-
path: {
|
|
1403
|
-
"workflowId": workflowId
|
|
1404
|
-
}
|
|
1405
|
-
});
|
|
1406
|
-
}
|
|
1407
|
-
/**
|
|
1408
|
-
* Removes the workflow from the system
|
|
1409
|
-
* @param workflowId
|
|
1410
|
-
* @param archiveWorkflow
|
|
1411
|
-
* @returns any OK
|
|
1412
|
-
* @throws ApiError
|
|
1413
|
-
*/
|
|
1414
|
-
delete(workflowId, archiveWorkflow = true) {
|
|
1415
|
-
return this.httpRequest.request({
|
|
1416
|
-
method: "DELETE",
|
|
1417
|
-
url: "/workflow/{workflowId}/remove",
|
|
1418
|
-
path: {
|
|
1419
|
-
"workflowId": workflowId
|
|
1420
|
-
},
|
|
1421
|
-
query: {
|
|
1422
|
-
"archiveWorkflow": archiveWorkflow
|
|
1423
|
-
}
|
|
1424
|
-
});
|
|
1425
|
-
}
|
|
1426
|
-
/**
|
|
1427
|
-
* Search for workflows based on task parameters
|
|
1428
|
-
* use sort options as sort=<field>:ASC|DESC e.g. sort=name&sort=workflowId:DESC. If order is not specified, defaults to ASC
|
|
1429
|
-
* @param start
|
|
1430
|
-
* @param size
|
|
1431
|
-
* @param sort
|
|
1432
|
-
* @param freeText
|
|
1433
|
-
* @param query
|
|
1434
|
-
* @returns SearchResultWorkflowSummary OK
|
|
1435
|
-
* @throws ApiError
|
|
1436
|
-
*/
|
|
1437
|
-
searchWorkflowsByTasks(start, size = 100, sort, freeText = "*", query) {
|
|
1438
|
-
return this.httpRequest.request({
|
|
1439
|
-
method: "GET",
|
|
1440
|
-
url: "/workflow/search-by-tasks",
|
|
1441
|
-
query: {
|
|
1442
|
-
"start": start,
|
|
1443
|
-
"size": size,
|
|
1444
|
-
"sort": sort,
|
|
1445
|
-
"freeText": freeText,
|
|
1446
|
-
"query": query
|
|
1447
|
-
}
|
|
1448
|
-
});
|
|
1449
|
-
}
|
|
1450
|
-
/**
|
|
1451
|
-
* Get the uri and path of the external storage where the workflow payload is to be stored
|
|
1452
|
-
* @param path
|
|
1453
|
-
* @param operation
|
|
1454
|
-
* @param payloadType
|
|
1455
|
-
* @returns ExternalStorageLocation OK
|
|
1456
|
-
* @throws ApiError
|
|
1457
|
-
*/
|
|
1458
|
-
getExternalStorageLocation(path, operation, payloadType) {
|
|
1459
|
-
return this.httpRequest.request({
|
|
1460
|
-
method: "GET",
|
|
1461
|
-
url: "/workflow/externalstoragelocation",
|
|
1462
|
-
query: {
|
|
1463
|
-
"path": path,
|
|
1464
|
-
"operation": operation,
|
|
1465
|
-
"payloadType": payloadType
|
|
1466
|
-
}
|
|
1467
|
-
});
|
|
1468
|
-
}
|
|
1469
|
-
/**
|
|
1470
|
-
* Start a new workflow. Returns the ID of the workflow instance that can be later used for tracking
|
|
1471
|
-
* @param name
|
|
1472
|
-
* @param requestBody
|
|
1473
|
-
* @param version
|
|
1474
|
-
* @param correlationId
|
|
1475
|
-
* @param priority
|
|
1476
|
-
* @returns string OK
|
|
1477
|
-
* @throws ApiError
|
|
1478
|
-
*/
|
|
1479
|
-
startWorkflow1(name, requestBody, version, correlationId, priority) {
|
|
1480
|
-
return this.httpRequest.request({
|
|
1481
|
-
method: "POST",
|
|
1482
|
-
url: "/workflow/{name}",
|
|
1483
|
-
path: {
|
|
1484
|
-
"name": name
|
|
1485
|
-
},
|
|
1486
|
-
query: {
|
|
1487
|
-
"version": version,
|
|
1488
|
-
"correlationId": correlationId,
|
|
1489
|
-
"priority": priority
|
|
1490
|
-
},
|
|
1491
|
-
body: requestBody,
|
|
1492
|
-
mediaType: "application/json"
|
|
1493
|
-
});
|
|
1494
|
-
}
|
|
1495
|
-
/**
|
|
1496
|
-
* Restarts a completed workflow
|
|
1497
|
-
* @param workflowId
|
|
1498
|
-
* @param useLatestDefinitions
|
|
1499
|
-
* @returns void
|
|
1500
|
-
* @throws ApiError
|
|
1501
|
-
*/
|
|
1502
|
-
restart1(workflowId, useLatestDefinitions = false) {
|
|
1503
|
-
return this.httpRequest.request({
|
|
1504
|
-
method: "POST",
|
|
1505
|
-
url: "/workflow/{workflowId}/restart",
|
|
1506
|
-
path: {
|
|
1507
|
-
"workflowId": workflowId
|
|
1508
|
-
},
|
|
1509
|
-
query: {
|
|
1510
|
-
"useLatestDefinitions": useLatestDefinitions
|
|
1511
|
-
}
|
|
1512
|
-
});
|
|
1513
|
-
}
|
|
1514
|
-
/**
|
|
1515
|
-
* Search for workflows based on payload and other parameters
|
|
1516
|
-
* use sort options as sort=<field>:ASC|DESC e.g. sort=name&sort=workflowId:DESC. If order is not specified, defaults to ASC.
|
|
1517
|
-
* @param queryId
|
|
1518
|
-
* @param start
|
|
1519
|
-
* @param size
|
|
1520
|
-
* @param sort
|
|
1521
|
-
* @param freeText
|
|
1522
|
-
* @param query
|
|
1523
|
-
* @param skipCache
|
|
1524
|
-
* @returns ScrollableSearchResultWorkflowSummary OK
|
|
1525
|
-
* @throws ApiError
|
|
1526
|
-
*/
|
|
1527
|
-
search1(queryId, start, size = 100, sort, freeText = "*", query, skipCache = false) {
|
|
1528
|
-
return this.httpRequest.request({
|
|
1529
|
-
method: "GET",
|
|
1530
|
-
url: "/workflow/search",
|
|
1531
|
-
query: {
|
|
1532
|
-
"queryId": queryId,
|
|
1533
|
-
"start": start,
|
|
1534
|
-
"size": size,
|
|
1535
|
-
"sort": sort,
|
|
1536
|
-
"freeText": freeText,
|
|
1537
|
-
"query": query,
|
|
1538
|
-
"skipCache": skipCache
|
|
1539
|
-
}
|
|
1540
|
-
});
|
|
1541
|
-
}
|
|
1542
|
-
/**
|
|
1543
|
-
* Search for workflows based on task parameters
|
|
1544
|
-
* use sort options as sort=<field>:ASC|DESC e.g. sort=name&sort=workflowId:DESC. If order is not specified, defaults to ASC
|
|
1545
|
-
* @param start
|
|
1546
|
-
* @param size
|
|
1547
|
-
* @param sort
|
|
1548
|
-
* @param freeText
|
|
1549
|
-
* @param query
|
|
1550
|
-
* @returns SearchResultWorkflow OK
|
|
1551
|
-
* @throws ApiError
|
|
1552
|
-
*/
|
|
1553
|
-
searchWorkflowsByTasksV2(start, size = 100, sort, freeText = "*", query) {
|
|
1554
|
-
return this.httpRequest.request({
|
|
1555
|
-
method: "GET",
|
|
1556
|
-
url: "/workflow/search-by-tasks-v2",
|
|
1557
|
-
query: {
|
|
1558
|
-
"start": start,
|
|
1559
|
-
"size": size,
|
|
1560
|
-
"sort": sort,
|
|
1561
|
-
"freeText": freeText,
|
|
1562
|
-
"query": query
|
|
1563
|
-
}
|
|
1564
|
-
});
|
|
1565
|
-
}
|
|
1566
|
-
/**
|
|
1567
|
-
* Resets callback times of all non-terminal SIMPLE tasks to 0
|
|
1568
|
-
* @param workflowId
|
|
1569
|
-
* @returns void
|
|
1570
|
-
* @throws ApiError
|
|
1571
|
-
*/
|
|
1572
|
-
resetWorkflow(workflowId) {
|
|
1573
|
-
return this.httpRequest.request({
|
|
1574
|
-
method: "POST",
|
|
1575
|
-
url: "/workflow/{workflowId}/resetcallbacks",
|
|
1576
|
-
path: {
|
|
1577
|
-
"workflowId": workflowId
|
|
1578
|
-
}
|
|
1579
|
-
});
|
|
1580
|
-
}
|
|
1581
|
-
};
|
|
1582
|
-
|
|
1583
|
-
// src/common/open-api/core/ApiError.ts
|
|
1584
|
-
var ApiError = class extends Error {
|
|
1585
|
-
constructor(request2, response, message) {
|
|
1586
|
-
super(message);
|
|
1587
|
-
this.name = "ApiError";
|
|
1588
|
-
this.url = response.url;
|
|
1589
|
-
this.status = response.status;
|
|
1590
|
-
this.statusText = response.statusText;
|
|
1591
|
-
this.body = response.body;
|
|
1592
|
-
this.request = request2;
|
|
1593
|
-
}
|
|
1594
|
-
};
|
|
1595
|
-
|
|
1596
|
-
// src/common/open-api/core/CancelablePromise.ts
|
|
1597
|
-
var CancelError = class extends Error {
|
|
1598
|
-
constructor(message) {
|
|
1599
|
-
super(message);
|
|
1600
|
-
this.name = "CancelError";
|
|
1601
|
-
}
|
|
1602
|
-
get isCancelled() {
|
|
1603
|
-
return true;
|
|
1604
|
-
}
|
|
1605
|
-
};
|
|
1606
|
-
var CancelablePromise = class {
|
|
1607
|
-
static {
|
|
1608
|
-
Symbol.toStringTag;
|
|
1609
|
-
}
|
|
1610
|
-
constructor(executor) {
|
|
1611
|
-
this._isResolved = false;
|
|
1612
|
-
this._isRejected = false;
|
|
1613
|
-
this._isCancelled = false;
|
|
1614
|
-
this._cancelHandlers = [];
|
|
1615
|
-
this._promise = new Promise((resolve2, reject) => {
|
|
1616
|
-
this._resolve = resolve2;
|
|
1617
|
-
this._reject = reject;
|
|
1618
|
-
const onResolve = (value) => {
|
|
1619
|
-
if (this._isResolved || this._isRejected || this._isCancelled) {
|
|
1620
|
-
return;
|
|
1621
|
-
}
|
|
1622
|
-
this._isResolved = true;
|
|
1623
|
-
this._resolve?.(value);
|
|
1624
|
-
};
|
|
1625
|
-
const onReject = (reason) => {
|
|
1626
|
-
if (this._isResolved || this._isRejected || this._isCancelled) {
|
|
1627
|
-
return;
|
|
1628
|
-
}
|
|
1629
|
-
this._isRejected = true;
|
|
1630
|
-
this._reject?.(reason);
|
|
1631
|
-
};
|
|
1632
|
-
const onCancel = (cancelHandler) => {
|
|
1633
|
-
if (this._isResolved || this._isRejected || this._isCancelled) {
|
|
1634
|
-
return;
|
|
1635
|
-
}
|
|
1636
|
-
this._cancelHandlers.push(cancelHandler);
|
|
1637
|
-
};
|
|
1638
|
-
Object.defineProperty(onCancel, "isResolved", {
|
|
1639
|
-
get: () => this._isResolved
|
|
1640
|
-
});
|
|
1641
|
-
Object.defineProperty(onCancel, "isRejected", {
|
|
1642
|
-
get: () => this._isRejected
|
|
1643
|
-
});
|
|
1644
|
-
Object.defineProperty(onCancel, "isCancelled", {
|
|
1645
|
-
get: () => this._isCancelled
|
|
1646
|
-
});
|
|
1647
|
-
return executor(onResolve, onReject, onCancel);
|
|
1648
|
-
});
|
|
1649
|
-
}
|
|
1650
|
-
then(onFulfilled, onRejected) {
|
|
1651
|
-
return this._promise.then(onFulfilled, onRejected);
|
|
1652
|
-
}
|
|
1653
|
-
catch(onRejected) {
|
|
1654
|
-
return this._promise.catch(onRejected);
|
|
1655
|
-
}
|
|
1656
|
-
finally(onFinally) {
|
|
1657
|
-
return this._promise.finally(onFinally);
|
|
1658
|
-
}
|
|
1659
|
-
cancel() {
|
|
1660
|
-
if (this._isResolved || this._isRejected || this._isCancelled) {
|
|
1661
|
-
return;
|
|
1662
|
-
}
|
|
1663
|
-
this._isCancelled = true;
|
|
1664
|
-
if (this._cancelHandlers.length) {
|
|
1665
|
-
try {
|
|
1666
|
-
for (const cancelHandler of this._cancelHandlers) {
|
|
1667
|
-
cancelHandler();
|
|
1668
|
-
}
|
|
1669
|
-
} catch (error) {
|
|
1670
|
-
console.warn("Cancellation threw an error", error);
|
|
1671
|
-
return;
|
|
1672
|
-
}
|
|
1673
|
-
}
|
|
1674
|
-
this._cancelHandlers.length = 0;
|
|
1675
|
-
this._reject?.(new CancelError("Request aborted"));
|
|
1676
|
-
}
|
|
1677
|
-
get isCancelled() {
|
|
1678
|
-
return this._isCancelled;
|
|
1679
|
-
}
|
|
1680
|
-
};
|
|
1681
|
-
|
|
1682
|
-
// src/common/open-api/core/request.ts
|
|
1683
|
-
var isDefined = (value) => {
|
|
1684
|
-
return value !== void 0 && value !== null;
|
|
1685
|
-
};
|
|
1686
|
-
var isString = (value) => {
|
|
1687
|
-
return typeof value === "string";
|
|
1688
|
-
};
|
|
1689
|
-
var isStringWithValue = (value) => {
|
|
1690
|
-
return isString(value) && value !== "";
|
|
1691
|
-
};
|
|
1692
|
-
var isBlob = (value) => {
|
|
1693
|
-
return typeof value === "object" && typeof value.type === "string" && typeof value.stream === "function" && typeof value.arrayBuffer === "function" && typeof value.constructor === "function" && typeof value.constructor.name === "string" && /^(Blob|File)$/.test(value.constructor.name) && /^(Blob|File)$/.test(value[Symbol.toStringTag]);
|
|
1694
|
-
};
|
|
1695
|
-
var isFormData = (value) => {
|
|
1696
|
-
return value instanceof FormData;
|
|
1697
|
-
};
|
|
1698
|
-
var base64 = (str) => {
|
|
1699
|
-
try {
|
|
1700
|
-
return btoa(str);
|
|
1701
|
-
} catch (err) {
|
|
1702
|
-
return Buffer.from(str).toString("base64");
|
|
1703
|
-
}
|
|
1704
|
-
};
|
|
1705
|
-
var getQueryString = (params) => {
|
|
1706
|
-
const qs = [];
|
|
1707
|
-
const append = (key, value) => {
|
|
1708
|
-
qs.push(`${encodeURIComponent(key)}=${encodeURIComponent(String(value))}`);
|
|
1709
|
-
};
|
|
1710
|
-
const process = (key, value) => {
|
|
1711
|
-
if (isDefined(value)) {
|
|
1712
|
-
if (Array.isArray(value)) {
|
|
1713
|
-
value.forEach((v) => {
|
|
1714
|
-
process(key, v);
|
|
1715
|
-
});
|
|
1716
|
-
} else if (typeof value === "object") {
|
|
1717
|
-
Object.entries(value).forEach(([k, v]) => {
|
|
1718
|
-
process(`${key}[${k}]`, v);
|
|
1719
|
-
});
|
|
1720
|
-
} else {
|
|
1721
|
-
append(key, value);
|
|
1722
|
-
}
|
|
1723
|
-
}
|
|
1724
|
-
};
|
|
1725
|
-
Object.entries(params).forEach(([key, value]) => {
|
|
1726
|
-
process(key, value);
|
|
1727
|
-
});
|
|
1728
|
-
if (qs.length > 0) {
|
|
1729
|
-
return `?${qs.join("&")}`;
|
|
1730
|
-
}
|
|
1731
|
-
return "";
|
|
1732
|
-
};
|
|
1733
|
-
var getUrl = (config, options) => {
|
|
1734
|
-
const encoder = config.ENCODE_PATH || encodeURI;
|
|
1735
|
-
const path = options.url.replace("{api-version}", config.VERSION).replace(/{(.*?)}/g, (substring, group) => {
|
|
1736
|
-
if (options.path?.hasOwnProperty(group)) {
|
|
1737
|
-
return encoder(String(options.path[group]));
|
|
1738
|
-
}
|
|
1739
|
-
return substring;
|
|
1740
|
-
});
|
|
1741
|
-
const url = `${config.BASE}${path}`;
|
|
1742
|
-
if (options.query) {
|
|
1743
|
-
return `${url}${getQueryString(options.query)}`;
|
|
1744
|
-
}
|
|
1745
|
-
return url;
|
|
1746
|
-
};
|
|
1747
|
-
var getFormData = (options) => {
|
|
1748
|
-
if (options.formData) {
|
|
1749
|
-
const formData = new FormData();
|
|
1750
|
-
const process = (key, value) => {
|
|
1751
|
-
if (isString(value) || isBlob(value)) {
|
|
1752
|
-
formData.append(key, value);
|
|
1753
|
-
} else {
|
|
1754
|
-
formData.append(key, JSON.stringify(value));
|
|
1755
|
-
}
|
|
1756
|
-
};
|
|
1757
|
-
Object.entries(options.formData).filter(([_, value]) => isDefined(value)).forEach(([key, value]) => {
|
|
1758
|
-
if (Array.isArray(value)) {
|
|
1759
|
-
value.forEach((v) => process(key, v));
|
|
1760
|
-
} else {
|
|
1761
|
-
process(key, value);
|
|
1762
|
-
}
|
|
1763
|
-
});
|
|
1764
|
-
return formData;
|
|
1765
|
-
}
|
|
1766
|
-
return void 0;
|
|
1767
|
-
};
|
|
1768
|
-
var resolve = async (options, resolver) => {
|
|
1769
|
-
if (typeof resolver === "function") {
|
|
1770
|
-
return resolver(options);
|
|
1771
|
-
}
|
|
1772
|
-
return resolver;
|
|
1773
|
-
};
|
|
1774
|
-
var getHeaders = async (config, options) => {
|
|
1775
|
-
const token = await resolve(options, config.TOKEN);
|
|
1776
|
-
const username = await resolve(options, config.USERNAME);
|
|
1777
|
-
const password = await resolve(options, config.PASSWORD);
|
|
1778
|
-
const additionalHeaders = await resolve(options, config.HEADERS);
|
|
1779
|
-
const headers = Object.entries({
|
|
1780
|
-
Accept: "application/json",
|
|
1781
|
-
...additionalHeaders,
|
|
1782
|
-
...options.headers
|
|
1783
|
-
}).filter(([_, value]) => isDefined(value)).reduce(
|
|
1784
|
-
(headers2, [key, value]) => ({
|
|
1785
|
-
...headers2,
|
|
1786
|
-
[key]: String(value)
|
|
1787
|
-
}),
|
|
1788
|
-
{}
|
|
1789
|
-
);
|
|
1790
|
-
if (isStringWithValue(token)) {
|
|
1791
|
-
headers["X-AUTHORIZATION"] = token;
|
|
1792
|
-
}
|
|
1793
|
-
if (isStringWithValue(username) && isStringWithValue(password)) {
|
|
1794
|
-
const credentials = base64(`${username}:${password}`);
|
|
1795
|
-
headers["Authorization"] = `Basic ${credentials}`;
|
|
1796
|
-
}
|
|
1797
|
-
if (options.body) {
|
|
1798
|
-
if (options.mediaType) {
|
|
1799
|
-
headers["Content-Type"] = options.mediaType;
|
|
1800
|
-
} else if (isBlob(options.body)) {
|
|
1801
|
-
headers["Content-Type"] = "application/octet-stream";
|
|
1802
|
-
} else if (isString(options.body)) {
|
|
1803
|
-
headers["Content-Type"] = "text/plain";
|
|
1804
|
-
} else if (!isFormData(options.body)) {
|
|
1805
|
-
headers["Content-Type"] = "application/json";
|
|
1806
|
-
}
|
|
1807
|
-
}
|
|
1808
|
-
return new Headers(headers);
|
|
1809
|
-
};
|
|
1810
|
-
var getRequestBody = (options) => {
|
|
1811
|
-
if (options.body) {
|
|
1812
|
-
if (options.mediaType?.includes("/json")) {
|
|
1813
|
-
return JSON.stringify(options.body);
|
|
1814
|
-
} else if (isString(options.body) || isBlob(options.body) || isFormData(options.body)) {
|
|
1815
|
-
return options.body;
|
|
1816
|
-
} else {
|
|
1817
|
-
return JSON.stringify(options.body);
|
|
1818
|
-
}
|
|
1819
|
-
}
|
|
1820
|
-
return void 0;
|
|
1821
|
-
};
|
|
1822
|
-
var sendRequest = async (options, url, body, formData, headers, onCancel) => {
|
|
1823
|
-
const controller = new AbortController();
|
|
1824
|
-
const request2 = {
|
|
1825
|
-
headers,
|
|
1826
|
-
method: options.method,
|
|
1827
|
-
body: body ?? formData,
|
|
1828
|
-
signal: controller.signal
|
|
1829
|
-
};
|
|
1830
|
-
onCancel(() => controller.abort());
|
|
1831
|
-
return await fetch(url, request2);
|
|
1832
|
-
};
|
|
1833
|
-
var getResponseHeader = (response, responseHeader) => {
|
|
1834
|
-
if (responseHeader) {
|
|
1835
|
-
const content = response.headers.get(responseHeader);
|
|
1836
|
-
if (isString(content)) {
|
|
1837
|
-
return content;
|
|
1838
|
-
}
|
|
1839
|
-
}
|
|
1840
|
-
return void 0;
|
|
1841
|
-
};
|
|
1842
|
-
var getResponseBody = async (response) => {
|
|
1843
|
-
if (response.status !== 204) {
|
|
1844
|
-
try {
|
|
1845
|
-
const contentType = response.headers.get("Content-Type");
|
|
1846
|
-
if (contentType) {
|
|
1847
|
-
const isJSON = contentType.toLowerCase().startsWith("application/json");
|
|
1848
|
-
if (isJSON) {
|
|
1849
|
-
return await response.json();
|
|
1850
|
-
} else {
|
|
1851
|
-
return await response.text();
|
|
1852
|
-
}
|
|
1853
|
-
}
|
|
1854
|
-
} catch (error) {
|
|
1855
|
-
console.error(error);
|
|
1856
|
-
}
|
|
1857
|
-
}
|
|
1858
|
-
return void 0;
|
|
1859
|
-
};
|
|
1860
|
-
var catchErrorCodes = (options, result) => {
|
|
1861
|
-
const errors = {
|
|
1862
|
-
400: "Bad Request",
|
|
1863
|
-
401: "Unauthorized",
|
|
1864
|
-
403: "Forbidden",
|
|
1865
|
-
404: "Not Found",
|
|
1866
|
-
500: "Internal Server Error",
|
|
1867
|
-
502: "Bad Gateway",
|
|
1868
|
-
503: "Service Unavailable",
|
|
1869
|
-
...options.errors
|
|
1870
|
-
};
|
|
1871
|
-
const error = errors[result.status];
|
|
1872
|
-
if (error) {
|
|
1873
|
-
throw new ApiError(options, result, error);
|
|
1874
|
-
}
|
|
1875
|
-
if (!result.ok) {
|
|
1876
|
-
throw new ApiError(options, result, "Generic Error");
|
|
1877
|
-
}
|
|
1878
|
-
};
|
|
1879
|
-
var request = (config, options) => {
|
|
1880
|
-
return new CancelablePromise(async (resolve2, reject, onCancel) => {
|
|
1881
|
-
try {
|
|
1882
|
-
const url = getUrl(config, options);
|
|
1883
|
-
const formData = getFormData(options);
|
|
1884
|
-
const body = getRequestBody(options);
|
|
1885
|
-
const headers = await getHeaders(config, options);
|
|
1886
|
-
if (!onCancel.isCancelled) {
|
|
1887
|
-
const response = await sendRequest(
|
|
1888
|
-
options,
|
|
1889
|
-
url,
|
|
1890
|
-
body,
|
|
1891
|
-
formData,
|
|
1892
|
-
headers,
|
|
1893
|
-
onCancel
|
|
1894
|
-
);
|
|
1895
|
-
const responseBody = await getResponseBody(response);
|
|
1896
|
-
const responseHeader = getResponseHeader(
|
|
1897
|
-
response,
|
|
1898
|
-
options.responseHeader
|
|
1899
|
-
);
|
|
1900
|
-
const result = {
|
|
1901
|
-
url,
|
|
1902
|
-
ok: response.ok,
|
|
1903
|
-
status: response.status,
|
|
1904
|
-
statusText: response.statusText,
|
|
1905
|
-
body: responseHeader ?? responseBody
|
|
1906
|
-
};
|
|
1907
|
-
catchErrorCodes(options, result);
|
|
1908
|
-
resolve2(result.body);
|
|
1909
|
-
}
|
|
1910
|
-
} catch (error) {
|
|
1911
|
-
reject(error);
|
|
1912
|
-
}
|
|
1913
|
-
});
|
|
1914
|
-
};
|
|
1915
|
-
|
|
1916
|
-
// src/common/open-api/services/HumanTaskService.ts
|
|
1917
|
-
var HumanTaskService = class {
|
|
1918
|
-
constructor(httpRequest) {
|
|
1919
|
-
this.httpRequest = httpRequest;
|
|
1920
|
-
}
|
|
1921
|
-
/**
|
|
1922
|
-
* If the workflow is disconnected from tasks, this API can be used to clean up (in bulk)
|
|
1923
|
-
* @param requestBody
|
|
1924
|
-
* @returns any OK
|
|
1925
|
-
* @throws ApiError
|
|
1926
|
-
*/
|
|
1927
|
-
deleteTaskFromHumanTaskRecords(requestBody) {
|
|
1928
|
-
return this.httpRequest.request({
|
|
1929
|
-
method: "DELETE",
|
|
1930
|
-
url: "/human/tasks/delete",
|
|
1931
|
-
body: requestBody,
|
|
1932
|
-
mediaType: "application/json"
|
|
1933
|
-
});
|
|
1934
|
-
}
|
|
1935
|
-
/**
|
|
1936
|
-
* If the workflow is disconnected from tasks, this API can be used to clean up
|
|
1937
|
-
* @param taskId
|
|
1938
|
-
* @returns any OK
|
|
1939
|
-
* @throws ApiError
|
|
1940
|
-
*/
|
|
1941
|
-
deleteTaskFromHumanTaskRecords1(taskId) {
|
|
1942
|
-
return this.httpRequest.request({
|
|
1943
|
-
method: "DELETE",
|
|
1944
|
-
url: "/human/tasks/delete/{taskId}",
|
|
1945
|
-
path: {
|
|
1946
|
-
"taskId": taskId
|
|
1947
|
-
}
|
|
1948
|
-
});
|
|
1949
|
-
}
|
|
1950
|
-
/**
|
|
1951
|
-
* Search human tasks
|
|
1952
|
-
* @param requestBody
|
|
1953
|
-
* @returns HumanTaskSearchResult OK
|
|
1954
|
-
* @throws ApiError
|
|
1955
|
-
*/
|
|
1956
|
-
search(requestBody) {
|
|
1957
|
-
return this.httpRequest.request({
|
|
1958
|
-
method: "POST",
|
|
1959
|
-
url: "/human/tasks/search",
|
|
1960
|
-
body: requestBody,
|
|
1961
|
-
mediaType: "application/json"
|
|
1962
|
-
});
|
|
1963
|
-
}
|
|
1964
|
-
/**
|
|
1965
|
-
* Update task output, optionally complete
|
|
1966
|
-
* @param workflowId
|
|
1967
|
-
* @param taskRefName
|
|
1968
|
-
* @param requestBody
|
|
1969
|
-
* @param complete
|
|
1970
|
-
* @param iteration Populate this value if your task is in a loop and you want to update a specific iteration. If its not in a loop OR if you want to just update the latest iteration, leave this as empty
|
|
1971
|
-
* @returns any OK
|
|
1972
|
-
* @throws ApiError
|
|
1973
|
-
*/
|
|
1974
|
-
updateTaskOutputByRef(workflowId, taskRefName, requestBody, complete = false, iteration) {
|
|
1975
|
-
return this.httpRequest.request({
|
|
1976
|
-
method: "POST",
|
|
1977
|
-
url: "/human/tasks/update/taskRef",
|
|
1978
|
-
query: {
|
|
1979
|
-
"workflowId": workflowId,
|
|
1980
|
-
"taskRefName": taskRefName,
|
|
1981
|
-
"complete": complete,
|
|
1982
|
-
"iteration": iteration
|
|
1983
|
-
},
|
|
1984
|
-
body: requestBody,
|
|
1985
|
-
mediaType: "application/json"
|
|
1986
|
-
});
|
|
1987
|
-
}
|
|
1988
|
-
/**
|
|
1989
|
-
* Get a task
|
|
1990
|
-
* @param taskId
|
|
1991
|
-
* @returns HumanTaskEntry OK
|
|
1992
|
-
* @throws ApiError
|
|
1993
|
-
*/
|
|
1994
|
-
getTask1(taskId) {
|
|
1995
|
-
return this.httpRequest.request({
|
|
1996
|
-
method: "GET",
|
|
1997
|
-
url: "/human/tasks/{taskId}",
|
|
1998
|
-
path: {
|
|
1999
|
-
"taskId": taskId
|
|
2000
|
-
}
|
|
2001
|
-
});
|
|
2002
|
-
}
|
|
2003
|
-
/**
|
|
2004
|
-
* Claim a task by authenticated Conductor user
|
|
2005
|
-
* @param taskId
|
|
2006
|
-
* @param overrideAssignment
|
|
2007
|
-
* @returns any OK
|
|
2008
|
-
* @throws ApiError
|
|
2009
|
-
*/
|
|
2010
|
-
claimTask(taskId, overrideAssignment = false) {
|
|
2011
|
-
return this.httpRequest.request({
|
|
2012
|
-
method: "POST",
|
|
2013
|
-
url: "/human/tasks/{taskId}/claim",
|
|
2014
|
-
path: {
|
|
2015
|
-
"taskId": taskId
|
|
2016
|
-
},
|
|
2017
|
-
query: {
|
|
2018
|
-
"overrideAssignment": overrideAssignment
|
|
2019
|
-
}
|
|
2020
|
-
});
|
|
2021
|
-
}
|
|
2022
|
-
/**
|
|
2023
|
-
* Claim a task to an external user
|
|
2024
|
-
* @param taskId
|
|
2025
|
-
* @param userId
|
|
2026
|
-
* @param overrideAssignment
|
|
2027
|
-
* @returns any OK
|
|
2028
|
-
* @throws ApiError
|
|
2029
|
-
*/
|
|
2030
|
-
assignAndClaim(taskId, userId, overrideAssignment = false) {
|
|
2031
|
-
return this.httpRequest.request({
|
|
2032
|
-
method: "POST",
|
|
2033
|
-
url: "/human/tasks/{taskId}/externalUser/{userId}",
|
|
2034
|
-
path: {
|
|
2035
|
-
"taskId": taskId,
|
|
2036
|
-
"userId": userId
|
|
2037
|
-
},
|
|
2038
|
-
query: {
|
|
2039
|
-
"overrideAssignment": overrideAssignment
|
|
2040
|
-
}
|
|
2041
|
-
});
|
|
2042
|
-
}
|
|
2043
|
-
/**
|
|
2044
|
-
* Release a task without completing it
|
|
2045
|
-
* @param taskId
|
|
2046
|
-
* @param requestBody
|
|
2047
|
-
* @returns any OK
|
|
2048
|
-
* @throws ApiError
|
|
2049
|
-
*/
|
|
2050
|
-
reassignTask(taskId, requestBody) {
|
|
2051
|
-
return this.httpRequest.request({
|
|
2052
|
-
method: "POST",
|
|
2053
|
-
url: "/human/tasks/{taskId}/reassign",
|
|
2054
|
-
path: {
|
|
2055
|
-
"taskId": taskId
|
|
2056
|
-
},
|
|
2057
|
-
body: requestBody,
|
|
2058
|
-
mediaType: "application/json"
|
|
2059
|
-
});
|
|
2060
|
-
}
|
|
2061
|
-
/**
|
|
2062
|
-
* Release a task without completing it
|
|
2063
|
-
* @param taskId
|
|
2064
|
-
* @returns any OK
|
|
2065
|
-
* @throws ApiError
|
|
2066
|
-
*/
|
|
2067
|
-
releaseTask(taskId) {
|
|
2068
|
-
return this.httpRequest.request({
|
|
2069
|
-
method: "POST",
|
|
2070
|
-
url: "/human/tasks/{taskId}/release",
|
|
2071
|
-
path: {
|
|
2072
|
-
"taskId": taskId
|
|
2073
|
-
}
|
|
2074
|
-
});
|
|
2075
|
-
}
|
|
2076
|
-
/**
|
|
2077
|
-
* If a task is assigned to a user, this API can be used to skip that assignment and move to the next assignee
|
|
2078
|
-
* @param taskId
|
|
2079
|
-
* @param reason
|
|
2080
|
-
* @returns any OK
|
|
2081
|
-
* @throws ApiError
|
|
2082
|
-
*/
|
|
2083
|
-
skipTask(taskId, reason) {
|
|
2084
|
-
return this.httpRequest.request({
|
|
2085
|
-
method: "POST",
|
|
2086
|
-
url: "/human/tasks/{taskId}/skip",
|
|
2087
|
-
path: {
|
|
2088
|
-
"taskId": taskId
|
|
2089
|
-
},
|
|
2090
|
-
query: {
|
|
2091
|
-
"reason": reason
|
|
2092
|
-
}
|
|
2093
|
-
});
|
|
2094
|
-
}
|
|
2095
|
-
/**
|
|
2096
|
-
* Update task output, optionally complete
|
|
2097
|
-
* @param taskId
|
|
2098
|
-
* @param requestBody
|
|
2099
|
-
* @param complete
|
|
2100
|
-
* @returns any OK
|
|
2101
|
-
* @throws ApiError
|
|
2102
|
-
*/
|
|
2103
|
-
updateTaskOutput(taskId, requestBody, complete = false) {
|
|
2104
|
-
return this.httpRequest.request({
|
|
2105
|
-
method: "POST",
|
|
2106
|
-
url: "/human/tasks/{taskId}/update",
|
|
2107
|
-
path: {
|
|
2108
|
-
"taskId": taskId
|
|
2109
|
-
},
|
|
2110
|
-
query: {
|
|
2111
|
-
"complete": complete
|
|
2112
|
-
},
|
|
2113
|
-
body: requestBody,
|
|
2114
|
-
mediaType: "application/json"
|
|
2115
|
-
});
|
|
2116
|
-
}
|
|
2117
|
-
/**
|
|
2118
|
-
* List all user form templates or get templates by name, or a template by name and version
|
|
2119
|
-
* @param name
|
|
2120
|
-
* @param version
|
|
2121
|
-
* @returns HumanTaskTemplate OK
|
|
2122
|
-
* @throws ApiError
|
|
2123
|
-
*/
|
|
2124
|
-
getAllTemplates(name, version) {
|
|
2125
|
-
return this.httpRequest.request({
|
|
2126
|
-
method: "GET",
|
|
2127
|
-
url: "/human/template",
|
|
2128
|
-
query: {
|
|
2129
|
-
"name": name,
|
|
2130
|
-
"version": version
|
|
2131
|
-
}
|
|
2132
|
-
});
|
|
2133
|
-
}
|
|
2134
|
-
/**
|
|
2135
|
-
* Save user form template
|
|
2136
|
-
* @param requestBody
|
|
2137
|
-
* @param newVersion
|
|
2138
|
-
* @returns HumanTaskTemplate OK
|
|
2139
|
-
* @throws ApiError
|
|
2140
|
-
*/
|
|
2141
|
-
saveTemplate(requestBody, newVersion = false) {
|
|
2142
|
-
return this.httpRequest.request({
|
|
2143
|
-
method: "POST",
|
|
2144
|
-
url: "/human/template",
|
|
2145
|
-
query: {
|
|
2146
|
-
"newVersion": newVersion
|
|
2147
|
-
},
|
|
2148
|
-
body: requestBody,
|
|
2149
|
-
mediaType: "application/json"
|
|
2150
|
-
});
|
|
2151
|
-
}
|
|
2152
|
-
/**
|
|
2153
|
-
* Save user form template
|
|
2154
|
-
* @param requestBody
|
|
2155
|
-
* @param newVersion
|
|
2156
|
-
* @returns HumanTaskTemplate OK
|
|
2157
|
-
* @throws ApiError
|
|
2158
|
-
*/
|
|
2159
|
-
saveTemplates(requestBody, newVersion = false) {
|
|
2160
|
-
return this.httpRequest.request({
|
|
2161
|
-
method: "POST",
|
|
2162
|
-
url: "/human/template/bulk",
|
|
2163
|
-
query: {
|
|
2164
|
-
"newVersion": newVersion
|
|
2165
|
-
},
|
|
2166
|
-
body: requestBody,
|
|
2167
|
-
mediaType: "application/json"
|
|
2168
|
-
});
|
|
2169
|
-
}
|
|
2170
|
-
/**
|
|
2171
|
-
* Delete all versions of user form template by name
|
|
2172
|
-
* @param name
|
|
2173
|
-
* @returns any OK
|
|
2174
|
-
* @throws ApiError
|
|
2175
|
-
*/
|
|
2176
|
-
deleteTemplateByName(name) {
|
|
2177
|
-
return this.httpRequest.request({
|
|
2178
|
-
method: "DELETE",
|
|
2179
|
-
url: "/human/template/{name}",
|
|
2180
|
-
path: {
|
|
2181
|
-
"name": name
|
|
2182
|
-
}
|
|
2183
|
-
});
|
|
2184
|
-
}
|
|
2185
|
-
/**
|
|
2186
|
-
* Delete a version of form template by name
|
|
2187
|
-
* @param name
|
|
2188
|
-
* @param version
|
|
2189
|
-
* @returns any OK
|
|
2190
|
-
* @throws ApiError
|
|
2191
|
-
*/
|
|
2192
|
-
deleteTemplatesByNameAndVersion(name, version) {
|
|
2193
|
-
return this.httpRequest.request({
|
|
2194
|
-
method: "DELETE",
|
|
2195
|
-
url: "/human/template/{name}/{version}",
|
|
2196
|
-
path: {
|
|
2197
|
-
"name": name,
|
|
2198
|
-
"version": version
|
|
2199
|
-
}
|
|
2200
|
-
});
|
|
2201
|
-
}
|
|
2202
|
-
/**
|
|
2203
|
-
* Get user form template by name and version
|
|
2204
|
-
* @param name
|
|
2205
|
-
* @param version
|
|
2206
|
-
* @returns HumanTaskTemplate OK
|
|
2207
|
-
* @throws ApiError
|
|
2208
|
-
*/
|
|
2209
|
-
getTemplateByNameAndVersion(name, version) {
|
|
2210
|
-
return this.httpRequest.request({
|
|
2211
|
-
method: "GET",
|
|
2212
|
-
url: "/human/template/{name}/{version}",
|
|
2213
|
-
path: {
|
|
2214
|
-
"name": name,
|
|
2215
|
-
"version": version
|
|
2216
|
-
}
|
|
2217
|
-
});
|
|
2218
|
-
}
|
|
2219
|
-
};
|
|
2220
|
-
|
|
2221
|
-
// src/common/open-api/services/HumanTaskResourceService.ts
|
|
2222
|
-
var HumanTaskResourceService = class {
|
|
2223
|
-
constructor(httpRequest) {
|
|
2224
|
-
this.httpRequest = httpRequest;
|
|
2225
|
-
}
|
|
2226
|
-
/**
|
|
2227
|
-
* Get Conductor task by id (for human tasks only)
|
|
2228
|
-
* @param taskId
|
|
2229
|
-
* @returns Task OK
|
|
2230
|
-
* @throws ApiError
|
|
2231
|
-
*/
|
|
2232
|
-
getConductorTaskById(taskId) {
|
|
2233
|
-
return this.httpRequest.request({
|
|
2234
|
-
method: "GET",
|
|
2235
|
-
url: "/human/tasks/{taskId}/conductorTask",
|
|
2236
|
-
path: {
|
|
2237
|
-
"taskId": taskId
|
|
2238
|
-
}
|
|
2239
|
-
});
|
|
2240
|
-
}
|
|
2241
|
-
};
|
|
2242
|
-
|
|
2243
|
-
// src/common/open-api/ConductorClient.ts
|
|
2244
|
-
var defaultRequestHandler = (request2, config, options) => request2(config, options);
|
|
2245
|
-
var ConductorClient = class {
|
|
2246
|
-
constructor(config, requestHandler = defaultRequestHandler) {
|
|
2247
|
-
const resolvedConfig = {
|
|
2248
|
-
BASE: config?.serverUrl ?? "http://localhost:8080",
|
|
2249
|
-
VERSION: config?.VERSION ?? "0",
|
|
2250
|
-
WITH_CREDENTIALS: config?.WITH_CREDENTIALS ?? false,
|
|
2251
|
-
CREDENTIALS: config?.CREDENTIALS ?? "include",
|
|
2252
|
-
TOKEN: config?.TOKEN,
|
|
2253
|
-
USERNAME: config?.USERNAME,
|
|
2254
|
-
PASSWORD: config?.PASSWORD,
|
|
2255
|
-
HEADERS: config?.HEADERS,
|
|
2256
|
-
ENCODE_PATH: config?.ENCODE_PATH
|
|
2257
|
-
};
|
|
2258
|
-
this.request = {
|
|
2259
|
-
config: resolvedConfig,
|
|
2260
|
-
request: (apiConfig) => {
|
|
2261
|
-
return requestHandler(
|
|
2262
|
-
request,
|
|
2263
|
-
{ ...resolvedConfig, TOKEN: this.token },
|
|
2264
|
-
apiConfig
|
|
2265
|
-
);
|
|
2266
|
-
}
|
|
2267
|
-
};
|
|
2268
|
-
this.token = config?.TOKEN;
|
|
2269
|
-
this.eventResource = new EventResourceService(this.request);
|
|
2270
|
-
this.healthCheckResource = new HealthCheckResourceService(this.request);
|
|
2271
|
-
this.metadataResource = new MetadataResourceService(this.request);
|
|
2272
|
-
this.schedulerResource = new SchedulerResourceService(this.request);
|
|
2273
|
-
this.taskResource = new TaskResourceService(this.request);
|
|
2274
|
-
this.tokenResource = new TokenResourceService(this.request);
|
|
2275
|
-
this.workflowBulkResource = new WorkflowBulkResourceService(this.request);
|
|
2276
|
-
this.workflowResource = new WorkflowResourceService(this.request);
|
|
2277
|
-
this.humanTask = new HumanTaskService(this.request);
|
|
2278
|
-
this.humanTaskResource = new HumanTaskResourceService(this.request);
|
|
2279
|
-
}
|
|
2280
|
-
stop() {
|
|
2281
|
-
}
|
|
2282
|
-
};
|
|
2283
|
-
|
|
2284
|
-
// src/common/open-api/core/BaseHttpRequest.ts
|
|
2285
|
-
var BaseHttpRequest = class {
|
|
2286
|
-
constructor(config) {
|
|
2287
|
-
this.config = config;
|
|
2288
|
-
}
|
|
2289
|
-
};
|
|
2290
|
-
|
|
2291
|
-
// src/task/constants.ts
|
|
2292
|
-
var DEFAULT_POLL_INTERVAL = 100;
|
|
2293
|
-
var DEFAULT_CONCURRENCY = 1;
|
|
2294
|
-
var DEFAULT_WARN_AT_O = 100;
|
|
2295
|
-
var DEFAULT_BATCH_POLLING_TIMEOUT = 100;
|
|
2296
|
-
|
|
2297
|
-
// src/task/Poller.ts
|
|
2298
|
-
var Poller = class {
|
|
2299
|
-
constructor(pollerId, pollFunction, performWorkFunction, pollerOptions, logger) {
|
|
2300
|
-
this.performWorkFunction = async () => {
|
|
2301
|
-
};
|
|
2302
|
-
this.polling = false;
|
|
2303
|
-
this._tasksInProcess = 0;
|
|
2304
|
-
this._counterAtO = 0;
|
|
2305
|
-
this._pollerId = "";
|
|
2306
|
-
this.options = {
|
|
2307
|
-
pollInterval: DEFAULT_POLL_INTERVAL,
|
|
2308
|
-
concurrency: DEFAULT_CONCURRENCY,
|
|
2309
|
-
warnAtO: DEFAULT_WARN_AT_O
|
|
2310
|
-
};
|
|
2311
|
-
this.logger = noopLogger;
|
|
2312
|
-
/**
|
|
2313
|
-
* Starts polling for work
|
|
2314
|
-
*/
|
|
2315
|
-
this.startPolling = () => {
|
|
2316
|
-
if (this.polling) {
|
|
2317
|
-
throw new Error("Runner is already started");
|
|
2318
|
-
}
|
|
2319
|
-
this._tasksInProcess = 0;
|
|
2320
|
-
this.polling = true;
|
|
2321
|
-
this.poll();
|
|
2322
|
-
};
|
|
2323
|
-
/**
|
|
2324
|
-
* Stops Polling for work
|
|
2325
|
-
*/
|
|
2326
|
-
this.stopPolling = async () => {
|
|
2327
|
-
this.polling = false;
|
|
2328
|
-
clearTimeout(this.timeoutHandler);
|
|
2329
|
-
};
|
|
2330
|
-
this.performWork = async (work) => {
|
|
2331
|
-
await this.performWorkFunction(work);
|
|
2332
|
-
this._tasksInProcess--;
|
|
2333
|
-
};
|
|
2334
|
-
this.poll = async () => {
|
|
2335
|
-
while (this.isPolling) {
|
|
2336
|
-
try {
|
|
2337
|
-
const count = Math.max(
|
|
2338
|
-
0,
|
|
2339
|
-
this.options.concurrency - this._tasksInProcess
|
|
2340
|
-
);
|
|
2341
|
-
if (count === 0) {
|
|
2342
|
-
this.logger.debug(
|
|
2343
|
-
"Max in process reached, Will skip polling for " + this._pollerId
|
|
2344
|
-
);
|
|
2345
|
-
this._counterAtO++;
|
|
2346
|
-
if (this._counterAtO > (this.options.warnAtO ?? 100)) {
|
|
2347
|
-
this.logger.info(
|
|
2348
|
-
`Not polling anything because in process tasks is maxed as concurrency level. ${this._pollerId}`
|
|
2349
|
-
);
|
|
2350
|
-
}
|
|
2351
|
-
} else {
|
|
2352
|
-
this._counterAtO = 0;
|
|
2353
|
-
const tasksResult = await this.pollFunction(count);
|
|
2354
|
-
this._tasksInProcess = this._tasksInProcess + (tasksResult ?? []).length;
|
|
2355
|
-
tasksResult.forEach(this.performWork);
|
|
2356
|
-
}
|
|
2357
|
-
} catch (e) {
|
|
2358
|
-
this.logger.error(`Error polling for tasks: ${e.message}`, e);
|
|
2359
|
-
}
|
|
2360
|
-
await new Promise(
|
|
2361
|
-
(r) => this.isPolling ? this.timeoutHandler = setTimeout(
|
|
2362
|
-
() => r(true),
|
|
2363
|
-
this.options.pollInterval
|
|
2364
|
-
) : r(true)
|
|
2365
|
-
);
|
|
2366
|
-
}
|
|
2367
|
-
};
|
|
2368
|
-
this._pollerId = pollerId;
|
|
2369
|
-
this.pollFunction = pollFunction;
|
|
2370
|
-
this.performWorkFunction = performWorkFunction;
|
|
2371
|
-
this.options = { ...this.options, ...pollerOptions };
|
|
2372
|
-
this.logger = logger || noopLogger;
|
|
2373
|
-
}
|
|
2374
|
-
get isPolling() {
|
|
2375
|
-
return this.polling;
|
|
2376
|
-
}
|
|
2377
|
-
get tasksInProcess() {
|
|
2378
|
-
return this._tasksInProcess;
|
|
2379
|
-
}
|
|
2380
|
-
updateOptions(options) {
|
|
2381
|
-
const newOptions = { ...this.options, ...options };
|
|
2382
|
-
this.options = newOptions;
|
|
2383
|
-
}
|
|
2384
|
-
};
|
|
2385
|
-
|
|
2386
|
-
// src/task/helpers.ts
|
|
2387
|
-
var optionEquals = (oldOptions, newOptions) => {
|
|
2388
|
-
const newOptionEntries = Object.entries(newOptions);
|
|
2389
|
-
const oldOptionsEntries = Object.entries(oldOptions);
|
|
2390
|
-
return newOptionEntries.length === oldOptionsEntries.length && newOptionEntries.every(
|
|
2391
|
-
([key, value]) => oldOptions[key] === value
|
|
2392
|
-
);
|
|
2393
|
-
};
|
|
2394
|
-
|
|
2395
|
-
// src/task/TaskRunner.ts
|
|
2396
|
-
var DEFAULT_ERROR_MESSAGE = "An unknown error occurred";
|
|
2397
|
-
var MAX_RETRIES = 3;
|
|
2398
|
-
var noopErrorHandler = (__error) => {
|
|
2399
|
-
};
|
|
2400
|
-
var defaultRunnerOptions = {
|
|
2401
|
-
workerID: "",
|
|
2402
|
-
pollInterval: DEFAULT_POLL_INTERVAL,
|
|
2403
|
-
domain: void 0,
|
|
2404
|
-
concurrency: DEFAULT_CONCURRENCY,
|
|
2405
|
-
batchPollingTimeout: DEFAULT_BATCH_POLLING_TIMEOUT
|
|
2406
|
-
};
|
|
2407
|
-
var TaskRunner = class {
|
|
2408
|
-
constructor({
|
|
2409
|
-
worker,
|
|
2410
|
-
taskResource,
|
|
2411
|
-
options,
|
|
2412
|
-
logger = noopLogger,
|
|
2413
|
-
onError: errorHandler = noopErrorHandler
|
|
2414
|
-
}) {
|
|
2415
|
-
/**
|
|
2416
|
-
* Starts polling for work
|
|
2417
|
-
*/
|
|
2418
|
-
this.startPolling = () => {
|
|
2419
|
-
this.poller.startPolling();
|
|
2420
|
-
this.logger.info(
|
|
2421
|
-
`TaskWorker ${this.worker.taskDefName} initialized with concurrency of ${this.poller.options.concurrency} and poll interval of ${this.poller.options.pollInterval}`
|
|
2422
|
-
);
|
|
2423
|
-
};
|
|
2424
|
-
/**
|
|
2425
|
-
* Stops Polling for work
|
|
2426
|
-
*/
|
|
2427
|
-
this.stopPolling = async () => {
|
|
2428
|
-
await this.poller.stopPolling();
|
|
2429
|
-
};
|
|
2430
|
-
this.batchPoll = async (count) => {
|
|
2431
|
-
const { workerID } = this.options;
|
|
2432
|
-
const tasks = await this.taskResource.batchPoll(
|
|
2433
|
-
this.worker.taskDefName,
|
|
2434
|
-
workerID,
|
|
2435
|
-
this.worker.domain ?? this.options.domain,
|
|
2436
|
-
count,
|
|
2437
|
-
this.options.batchPollingTimeout ?? 100
|
|
2438
|
-
// default batch poll defined in the method
|
|
2439
|
-
);
|
|
2440
|
-
return tasks;
|
|
2441
|
-
};
|
|
2442
|
-
this.updateTaskWithRetry = async (task, taskResult) => {
|
|
2443
|
-
const { workerID } = this.options;
|
|
2444
|
-
let retryCount = 0;
|
|
2445
|
-
while (retryCount < MAX_RETRIES) {
|
|
2446
|
-
try {
|
|
2447
|
-
await this.taskResource.updateTask1({
|
|
2448
|
-
...taskResult,
|
|
2449
|
-
workerId: workerID
|
|
2450
|
-
});
|
|
2451
|
-
return;
|
|
2452
|
-
} catch (error) {
|
|
2453
|
-
this.errorHandler(error, task);
|
|
2454
|
-
this.logger.error(
|
|
2455
|
-
`Error updating task ${taskResult.taskId} on retry ${retryCount}`,
|
|
2456
|
-
error
|
|
2457
|
-
);
|
|
2458
|
-
retryCount++;
|
|
2459
|
-
await new Promise((r) => setTimeout(() => r(true), retryCount * 10));
|
|
2460
|
-
}
|
|
2461
|
-
}
|
|
2462
|
-
this.logger.error(
|
|
2463
|
-
`Unable to update task ${taskResult.taskId} after ${retryCount} retries`
|
|
2464
|
-
);
|
|
2465
|
-
};
|
|
2466
|
-
this.executeTask = async (task) => {
|
|
2467
|
-
try {
|
|
2468
|
-
const result = await this.worker.execute(task);
|
|
2469
|
-
await this.updateTaskWithRetry(task, {
|
|
2470
|
-
...result,
|
|
2471
|
-
workflowInstanceId: task.workflowInstanceId,
|
|
2472
|
-
taskId: task.taskId
|
|
2473
|
-
});
|
|
2474
|
-
this.logger.debug(`Task has executed successfully ${task.taskId}`);
|
|
2475
|
-
} catch (error) {
|
|
2476
|
-
await this.updateTaskWithRetry(task, {
|
|
2477
|
-
workflowInstanceId: task.workflowInstanceId,
|
|
2478
|
-
taskId: task.taskId,
|
|
2479
|
-
reasonForIncompletion: error?.message ?? DEFAULT_ERROR_MESSAGE,
|
|
2480
|
-
status: "FAILED",
|
|
2481
|
-
outputData: {}
|
|
2482
|
-
});
|
|
2483
|
-
this.errorHandler(error, task);
|
|
2484
|
-
this.logger.error(`Error executing ${task.taskId}`, error);
|
|
2485
|
-
}
|
|
2486
|
-
};
|
|
2487
|
-
this.handleUnknownError = (unknownError) => {
|
|
2488
|
-
let message = "";
|
|
2489
|
-
let stack = "";
|
|
2490
|
-
if (unknownError.stack) {
|
|
2491
|
-
stack = unknownError.stack;
|
|
2492
|
-
}
|
|
2493
|
-
if (unknownError.message) {
|
|
2494
|
-
message = unknownError.message;
|
|
2495
|
-
}
|
|
2496
|
-
this.logger.error(
|
|
2497
|
-
`Error for ${this.worker.taskDefName}: error: ${message}, stack: ${stack}`
|
|
2498
|
-
);
|
|
2499
|
-
};
|
|
2500
|
-
this.taskResource = taskResource;
|
|
2501
|
-
this.logger = logger;
|
|
2502
|
-
this.worker = worker;
|
|
2503
|
-
this.options = { ...defaultRunnerOptions, ...options };
|
|
2504
|
-
this.errorHandler = errorHandler;
|
|
2505
|
-
this.poller = new Poller(
|
|
2506
|
-
worker.taskDefName,
|
|
2507
|
-
this.batchPoll,
|
|
2508
|
-
this.executeTask,
|
|
2509
|
-
{
|
|
2510
|
-
concurrency: worker.concurrency ?? options.concurrency,
|
|
2511
|
-
pollInterval: worker.pollInterval ?? options.pollInterval
|
|
2512
|
-
},
|
|
2513
|
-
this.logger
|
|
2514
|
-
);
|
|
2515
|
-
}
|
|
2516
|
-
get isPolling() {
|
|
2517
|
-
return this.poller.isPolling;
|
|
2518
|
-
}
|
|
2519
|
-
updateOptions(options) {
|
|
2520
|
-
const newOptions = { ...this.options, ...options };
|
|
2521
|
-
const isOptionsUpdated = !optionEquals(this.options, newOptions);
|
|
2522
|
-
if (isOptionsUpdated) {
|
|
2523
|
-
this.poller.updateOptions({
|
|
2524
|
-
concurrency: newOptions.concurrency,
|
|
2525
|
-
pollInterval: newOptions.pollInterval
|
|
2526
|
-
});
|
|
2527
|
-
this.logger.info(
|
|
2528
|
-
`TaskWorker ${this.worker.taskDefName} configuration updated with concurrency of ${this.poller.options.concurrency} and poll interval of ${this.poller.options.pollInterval}`
|
|
2529
|
-
);
|
|
2530
|
-
}
|
|
2531
|
-
this.options = newOptions;
|
|
2532
|
-
}
|
|
2533
|
-
get getOptions() {
|
|
2534
|
-
return this.options;
|
|
2535
|
-
}
|
|
2536
|
-
};
|
|
2537
|
-
|
|
2538
|
-
// src/task/TaskManager.ts
|
|
2539
|
-
var import_os = __toESM(require("os"));
|
|
2540
|
-
var defaultManagerOptions = {
|
|
2541
|
-
workerID: "",
|
|
2542
|
-
pollInterval: DEFAULT_POLL_INTERVAL,
|
|
2543
|
-
domain: void 0,
|
|
2544
|
-
concurrency: DEFAULT_CONCURRENCY,
|
|
2545
|
-
batchPollingTimeout: DEFAULT_BATCH_POLLING_TIMEOUT
|
|
2546
|
-
};
|
|
2547
|
-
function workerId(options) {
|
|
2548
|
-
return options.workerID ?? import_os.default.hostname();
|
|
2549
|
-
}
|
|
2550
|
-
var TaskManager = class {
|
|
2551
|
-
constructor(client, workers, config = {}) {
|
|
2552
|
-
this.workerRunners = /* @__PURE__ */ new Map();
|
|
2553
|
-
this.polling = false;
|
|
2554
|
-
this.workerManagerWorkerOptions = (worker) => {
|
|
2555
|
-
return {
|
|
2556
|
-
...this.options,
|
|
2557
|
-
concurrency: worker.concurrency ?? this.options.concurrency,
|
|
2558
|
-
pollInterval: worker.pollInterval ?? this.options.pollInterval,
|
|
2559
|
-
domain: worker.domain ?? this.options.domain
|
|
2560
|
-
};
|
|
2561
|
-
};
|
|
2562
|
-
this.updatePollingOptionForWorker = (workerTaskDefName, options) => {
|
|
2563
|
-
const maybeRunner = this.workerRunners.get(workerTaskDefName);
|
|
2564
|
-
if (maybeRunner != null) {
|
|
2565
|
-
maybeRunner.updateOptions(options);
|
|
2566
|
-
} else {
|
|
2567
|
-
this.logger.info(
|
|
2568
|
-
`No runner found for worker with taskDefName: ${workerTaskDefName}`
|
|
2569
|
-
);
|
|
2570
|
-
}
|
|
2571
|
-
};
|
|
2572
|
-
/**
|
|
2573
|
-
* new options will get merged to existing options
|
|
2574
|
-
* @param options new options to update polling options
|
|
2575
|
-
*/
|
|
2576
|
-
this.updatePollingOptions = (options) => {
|
|
2577
|
-
this.workers.forEach((worker) => {
|
|
2578
|
-
const newOptions = {
|
|
2579
|
-
...this.workerManagerWorkerOptions(worker),
|
|
2580
|
-
...options
|
|
2581
|
-
};
|
|
2582
|
-
this.updatePollingOptionForWorker(worker.taskDefName, newOptions);
|
|
2583
|
-
});
|
|
2584
|
-
this.options.concurrency = options.concurrency ?? this.options.concurrency;
|
|
2585
|
-
this.options.pollInterval = options.pollInterval ?? this.options.pollInterval;
|
|
2586
|
-
};
|
|
2587
|
-
this.sanityCheck = () => {
|
|
2588
|
-
if (this.workers.length === 0) {
|
|
2589
|
-
throw new Error("No workers supplied to TaskManager");
|
|
2590
|
-
}
|
|
2591
|
-
const workerIDs = /* @__PURE__ */ new Set();
|
|
2592
|
-
for (const item of this.workers) {
|
|
2593
|
-
if (workerIDs.has(item.taskDefName)) {
|
|
2594
|
-
throw new Error(`Duplicate worker taskDefName: ${item.taskDefName}`);
|
|
2595
|
-
}
|
|
2596
|
-
workerIDs.add(item.taskDefName);
|
|
2597
|
-
}
|
|
2598
|
-
};
|
|
2599
|
-
/**
|
|
2600
|
-
* Start polling for tasks
|
|
2601
|
-
*/
|
|
2602
|
-
this.startPolling = () => {
|
|
2603
|
-
this.sanityCheck();
|
|
2604
|
-
this.workers.forEach((worker) => {
|
|
2605
|
-
const options = this.workerManagerWorkerOptions(worker);
|
|
2606
|
-
const runner = new TaskRunner({
|
|
2607
|
-
worker,
|
|
2608
|
-
options,
|
|
2609
|
-
taskResource: this.client.taskResource,
|
|
2610
|
-
logger: this.logger,
|
|
2611
|
-
onError: this.errorHandler
|
|
2612
|
-
});
|
|
2613
|
-
runner.startPolling();
|
|
2614
|
-
this.workerRunners.set(worker.taskDefName, runner);
|
|
2615
|
-
});
|
|
2616
|
-
this.polling = true;
|
|
2617
|
-
};
|
|
2618
|
-
/**
|
|
2619
|
-
* Stops polling for tasks
|
|
2620
|
-
*/
|
|
2621
|
-
this.stopPolling = async () => {
|
|
2622
|
-
for (const [workerTaskDefName, runner] of this.workerRunners) {
|
|
2623
|
-
this.logger.debug(`Stopping taskDefName=${workerTaskDefName}`);
|
|
2624
|
-
await runner.stopPolling();
|
|
2625
|
-
this.workerRunners.delete(workerTaskDefName);
|
|
2626
|
-
}
|
|
2627
|
-
this.polling = false;
|
|
2628
|
-
};
|
|
2629
|
-
if (!workers) {
|
|
2630
|
-
throw new Error(
|
|
2631
|
-
"No workers supplied to TaskManager. Please pass an array of workers."
|
|
2632
|
-
);
|
|
2633
|
-
}
|
|
2634
|
-
this.client = client;
|
|
2635
|
-
this.logger = config.logger ?? new DefaultLogger();
|
|
2636
|
-
this.errorHandler = config.onError ?? noopErrorHandler;
|
|
2637
|
-
this.workers = workers;
|
|
2638
|
-
const providedOptions = config.options ?? {};
|
|
2639
|
-
this.options = {
|
|
2640
|
-
...defaultManagerOptions,
|
|
2641
|
-
...providedOptions,
|
|
2642
|
-
workerID: workerId(providedOptions)
|
|
2643
|
-
};
|
|
2644
|
-
}
|
|
2645
|
-
get isPolling() {
|
|
2646
|
-
return this.polling;
|
|
2647
|
-
}
|
|
2648
|
-
};
|
|
2649
|
-
|
|
2650
|
-
// src/core/types.ts
|
|
2651
|
-
var ConductorError = class extends Error {
|
|
2652
|
-
constructor(message, innerError) {
|
|
2653
|
-
super(message);
|
|
2654
|
-
this._trace = innerError;
|
|
2655
|
-
const actualProto = new.target.prototype;
|
|
2656
|
-
if (Object.setPrototypeOf) {
|
|
2657
|
-
Object.setPrototypeOf(this, actualProto);
|
|
2658
|
-
} else {
|
|
2659
|
-
this.__proto__ = actualProto;
|
|
2660
|
-
}
|
|
2661
|
-
}
|
|
2662
|
-
};
|
|
2663
|
-
|
|
2664
|
-
// src/core/helpers.ts
|
|
2665
|
-
var errorMapper = (error) => new ConductorError(error?.body?.message, error);
|
|
2666
|
-
var tryCatchReThrow = (fn) => {
|
|
2667
|
-
try {
|
|
2668
|
-
return fn();
|
|
2669
|
-
} catch (error) {
|
|
2670
|
-
throw errorMapper(error);
|
|
2671
|
-
}
|
|
2672
|
-
};
|
|
2673
|
-
function reverseFind(array, predicate) {
|
|
2674
|
-
for (let i = array.length - 1; i >= 0; i--) {
|
|
2675
|
-
if (predicate(array[i], i, array)) {
|
|
2676
|
-
return array[i];
|
|
2677
|
-
}
|
|
2678
|
-
}
|
|
2679
|
-
return void 0;
|
|
2680
|
-
}
|
|
2681
|
-
|
|
2682
|
-
// src/core/executor.ts
|
|
2683
|
-
var RETRY_TIME_IN_MILLISECONDS = 1e4;
|
|
2684
|
-
var completedTaskMatchingType = (taskType) => (task) => task.status === "COMPLETED" && task.taskType === taskType;
|
|
2685
|
-
var WorkflowExecutor = class {
|
|
2686
|
-
constructor(client) {
|
|
2687
|
-
this._client = client;
|
|
2688
|
-
}
|
|
2689
|
-
/**
|
|
2690
|
-
* Will persist a workflow in conductor
|
|
2691
|
-
* @param override If true will override the existing workflow with the definition
|
|
2692
|
-
* @param workflow Complete workflow definition
|
|
2693
|
-
* @returns null
|
|
2694
|
-
*/
|
|
2695
|
-
registerWorkflow(override, workflow2) {
|
|
2696
|
-
return tryCatchReThrow(
|
|
2697
|
-
() => this._client.metadataResource.create(workflow2, override)
|
|
2698
|
-
);
|
|
2699
|
-
}
|
|
2700
|
-
/**
|
|
2701
|
-
* Takes a StartWorkflowRequest. returns a Promise<string> with the workflowInstanceId of the running workflow
|
|
2702
|
-
* @param workflowRequest
|
|
2703
|
-
* @returns
|
|
2704
|
-
*/
|
|
2705
|
-
startWorkflow(workflowRequest) {
|
|
2706
|
-
return tryCatchReThrow(
|
|
2707
|
-
() => this._client.workflowResource.startWorkflow(workflowRequest)
|
|
2708
|
-
);
|
|
2709
|
-
}
|
|
2710
|
-
/**
|
|
2711
|
-
* Execute a workflow synchronously. returns a Promise<WorkflowRun> with details of the running workflow
|
|
2712
|
-
* @param workflowRequest
|
|
2713
|
-
* @returns
|
|
2714
|
-
*/
|
|
2715
|
-
executeWorkflow(workflowRequest, name, version, requestId, waitUntilTaskRef = "") {
|
|
2716
|
-
return tryCatchReThrow(
|
|
2717
|
-
() => this._client.workflowResource.executeWorkflow(
|
|
2718
|
-
workflowRequest,
|
|
2719
|
-
name,
|
|
2720
|
-
version,
|
|
2721
|
-
requestId,
|
|
2722
|
-
waitUntilTaskRef
|
|
2723
|
-
)
|
|
2724
|
-
);
|
|
2725
|
-
}
|
|
2726
|
-
startWorkflows(workflowsRequest) {
|
|
2727
|
-
return tryCatchReThrow(() => workflowsRequest.map(this.startWorkflow));
|
|
2728
|
-
}
|
|
2729
|
-
async goBackToTask(workflowInstanceId, taskFinderPredicate, rerunWorkflowRequestOverrides = {}) {
|
|
2730
|
-
const { tasks: executedTasks = [] } = await this.getExecution(
|
|
2731
|
-
workflowInstanceId
|
|
2732
|
-
);
|
|
2733
|
-
const maybePreviousTask = reverseFind(
|
|
2734
|
-
executedTasks,
|
|
2735
|
-
taskFinderPredicate
|
|
2736
|
-
);
|
|
2737
|
-
if (!maybePreviousTask) {
|
|
2738
|
-
throw new Error("Task not found");
|
|
2739
|
-
}
|
|
2740
|
-
await this.reRun(workflowInstanceId, {
|
|
2741
|
-
//taskInput: previousTask.inputData,
|
|
2742
|
-
...rerunWorkflowRequestOverrides,
|
|
2743
|
-
reRunFromTaskId: maybePreviousTask.taskId
|
|
2744
|
-
});
|
|
2745
|
-
}
|
|
2746
|
-
async goBackToFirstTaskMatchingType(workflowInstanceId, taskType) {
|
|
2747
|
-
return this.goBackToTask(workflowInstanceId, completedTaskMatchingType(taskType));
|
|
2748
|
-
}
|
|
2749
|
-
/**
|
|
2750
|
-
* Takes an workflowInstanceId and an includeTasks and an optional retry parameter returns the whole execution status.
|
|
2751
|
-
* If includeTasks flag is provided. Details of tasks execution will be returned as well,
|
|
2752
|
-
* retry specifies the amount of retrys before throwing an error.
|
|
2753
|
-
*
|
|
2754
|
-
* @param workflowInstanceId
|
|
2755
|
-
* @param includeTasks
|
|
2756
|
-
* @param retry
|
|
2757
|
-
* @returns
|
|
2758
|
-
*/
|
|
2759
|
-
async getWorkflow(workflowInstanceId, includeTasks, retry = 0) {
|
|
2760
|
-
try {
|
|
2761
|
-
const workflowStatus = await this._client.workflowResource.getExecutionStatus(
|
|
2762
|
-
workflowInstanceId,
|
|
2763
|
-
includeTasks
|
|
2764
|
-
);
|
|
2765
|
-
return workflowStatus;
|
|
2766
|
-
} catch (error) {
|
|
2767
|
-
if (![500, 404, 403].includes(error.status) || retry === 0) {
|
|
2768
|
-
throw errorMapper(error);
|
|
2769
|
-
}
|
|
2770
|
-
}
|
|
2771
|
-
await new Promise(
|
|
2772
|
-
(res) => setTimeout(() => res(true), RETRY_TIME_IN_MILLISECONDS)
|
|
2773
|
-
);
|
|
2774
|
-
return this.getWorkflow(workflowInstanceId, includeTasks, retry - 1);
|
|
2775
|
-
}
|
|
2776
|
-
/**
|
|
2777
|
-
* Returns a summary of the current workflow status.
|
|
2778
|
-
*
|
|
2779
|
-
* @param workflowInstanceId current running workflow
|
|
2780
|
-
* @param includeOutput flag to include output
|
|
2781
|
-
* @param includeVariables flag to include variable
|
|
2782
|
-
* @returns Promise<WorkflowStatus>
|
|
2783
|
-
*/
|
|
2784
|
-
getWorkflowStatus(workflowInstanceId, includeOutput, includeVariables) {
|
|
2785
|
-
return tryCatchReThrow(
|
|
2786
|
-
() => this._client.workflowResource.getWorkflowStatusSummary(
|
|
2787
|
-
workflowInstanceId,
|
|
2788
|
-
includeOutput,
|
|
2789
|
-
includeVariables
|
|
2790
|
-
)
|
|
2791
|
-
);
|
|
2792
|
-
}
|
|
2793
|
-
/**
|
|
2794
|
-
* Returns a summary of the current workflow status.
|
|
2795
|
-
*
|
|
2796
|
-
* @param workflowInstanceId current running workflow
|
|
2797
|
-
* @param includeOutput flag to include output
|
|
2798
|
-
* @param includeVariables flag to include variable
|
|
2799
|
-
* @returns Promise<WorkflowStatus>
|
|
2800
|
-
*/
|
|
2801
|
-
getExecution(workflowInstanceId, includeTasks = true) {
|
|
2802
|
-
return tryCatchReThrow(
|
|
2803
|
-
() => this._client.workflowResource.getExecutionStatus(
|
|
2804
|
-
workflowInstanceId,
|
|
2805
|
-
includeTasks
|
|
2806
|
-
)
|
|
2807
|
-
);
|
|
2808
|
-
}
|
|
2809
|
-
/**
|
|
2810
|
-
* Pauses a running workflow
|
|
2811
|
-
* @param workflowInstanceId current workflow execution
|
|
2812
|
-
* @returns
|
|
2813
|
-
*/
|
|
2814
|
-
pause(workflowInstanceId) {
|
|
2815
|
-
return tryCatchReThrow(
|
|
2816
|
-
() => this._client.workflowResource.pauseWorkflow(workflowInstanceId)
|
|
2817
|
-
);
|
|
2818
|
-
}
|
|
2819
|
-
/**
|
|
2820
|
-
* Reruns workflowInstanceId workflow. with new parameters
|
|
2821
|
-
*
|
|
2822
|
-
* @param workflowInstanceId current workflow execution
|
|
2823
|
-
* @param rerunWorkflowRequest Rerun Workflow Execution Request
|
|
2824
|
-
* @returns
|
|
2825
|
-
*/
|
|
2826
|
-
reRun(workflowInstanceId, rerunWorkflowRequest = {}) {
|
|
2827
|
-
return tryCatchReThrow(
|
|
2828
|
-
() => this._client.workflowResource.rerun(
|
|
2829
|
-
workflowInstanceId,
|
|
2830
|
-
rerunWorkflowRequest
|
|
2831
|
-
)
|
|
2832
|
-
);
|
|
2833
|
-
}
|
|
2834
|
-
/**
|
|
2835
|
-
* Restarts workflow with workflowInstanceId, if useLatestDefinition uses last defintion
|
|
2836
|
-
* @param workflowInstanceId
|
|
2837
|
-
* @param useLatestDefinitions
|
|
2838
|
-
* @returns
|
|
2839
|
-
*/
|
|
2840
|
-
restart(workflowInstanceId, useLatestDefinitions) {
|
|
2841
|
-
return tryCatchReThrow(
|
|
2842
|
-
() => this._client.workflowResource.restart1(
|
|
2843
|
-
workflowInstanceId,
|
|
2844
|
-
useLatestDefinitions
|
|
2845
|
-
)
|
|
2846
|
-
);
|
|
2847
|
-
}
|
|
2848
|
-
/**
|
|
2849
|
-
* Resumes a previously paused execution
|
|
2850
|
-
*
|
|
2851
|
-
* @param workflowInstanceId Running workflow workflowInstanceId
|
|
2852
|
-
* @returns
|
|
2853
|
-
*/
|
|
2854
|
-
resume(workflowInstanceId) {
|
|
2855
|
-
return tryCatchReThrow(
|
|
2856
|
-
() => this._client.workflowResource.resumeWorkflow(workflowInstanceId)
|
|
2857
|
-
);
|
|
2858
|
-
}
|
|
2859
|
-
/**
|
|
2860
|
-
* Retrys workflow from last failing task
|
|
2861
|
-
* if resumeSubworkflowTasks is true will resume tasks in spawned subworkflows
|
|
2862
|
-
*
|
|
2863
|
-
* @param workflowInstanceId
|
|
2864
|
-
* @param resumeSubworkflowTasks
|
|
2865
|
-
* @returns
|
|
2866
|
-
*/
|
|
2867
|
-
retry(workflowInstanceId, resumeSubworkflowTasks) {
|
|
2868
|
-
return tryCatchReThrow(
|
|
2869
|
-
() => this._client.workflowResource.retry1(
|
|
2870
|
-
workflowInstanceId,
|
|
2871
|
-
resumeSubworkflowTasks
|
|
2872
|
-
)
|
|
2873
|
-
);
|
|
2874
|
-
}
|
|
2875
|
-
/**
|
|
2876
|
-
* Searches for existing workflows given the following querys
|
|
2877
|
-
*
|
|
2878
|
-
* @param start
|
|
2879
|
-
* @param size
|
|
2880
|
-
* @param query
|
|
2881
|
-
* @param freeText
|
|
2882
|
-
* @param sort
|
|
2883
|
-
* @param skipCache
|
|
2884
|
-
* @returns
|
|
2885
|
-
*/
|
|
2886
|
-
search(start, size, query, freeText, sort = "", skipCache = false) {
|
|
2887
|
-
const queryId = void 0;
|
|
2888
|
-
return tryCatchReThrow(
|
|
2889
|
-
() => this._client.workflowResource.search1(
|
|
2890
|
-
queryId,
|
|
2891
|
-
start,
|
|
2892
|
-
size,
|
|
2893
|
-
sort,
|
|
2894
|
-
freeText,
|
|
2895
|
-
query,
|
|
2896
|
-
skipCache
|
|
2897
|
-
)
|
|
2898
|
-
);
|
|
2899
|
-
}
|
|
2900
|
-
/**
|
|
2901
|
-
* Skips a task of a running workflow.
|
|
2902
|
-
* by providing a skipTaskRequest you can set the input and the output of the skipped tasks
|
|
2903
|
-
* @param workflowInstanceId
|
|
2904
|
-
* @param taskReferenceName
|
|
2905
|
-
* @param skipTaskRequest
|
|
2906
|
-
* @returns
|
|
2907
|
-
*/
|
|
2908
|
-
skipTasksFromWorkflow(workflowInstanceId, taskReferenceName, skipTaskRequest) {
|
|
2909
|
-
return tryCatchReThrow(
|
|
2910
|
-
() => this._client.workflowResource.skipTaskFromWorkflow(
|
|
2911
|
-
workflowInstanceId,
|
|
2912
|
-
taskReferenceName,
|
|
2913
|
-
skipTaskRequest
|
|
2914
|
-
)
|
|
2915
|
-
);
|
|
2916
|
-
}
|
|
2917
|
-
/**
|
|
2918
|
-
* Takes an workflowInstanceId, and terminates a running workflow
|
|
2919
|
-
* @param workflowInstanceId
|
|
2920
|
-
* @param reason
|
|
2921
|
-
* @returns
|
|
2922
|
-
*/
|
|
2923
|
-
terminate(workflowInstanceId, reason) {
|
|
2924
|
-
return tryCatchReThrow(
|
|
2925
|
-
() => this._client.workflowResource.terminate1(workflowInstanceId, reason)
|
|
2926
|
-
);
|
|
2927
|
-
}
|
|
2928
|
-
/**
|
|
2929
|
-
* Takes a taskId and a workflowInstanceId. Will update the task for the corresponding taskId
|
|
2930
|
-
* @param taskId
|
|
2931
|
-
* @param workflowInstanceId
|
|
2932
|
-
* @param taskStatus
|
|
2933
|
-
* @param taskOutput
|
|
2934
|
-
* @returns
|
|
2935
|
-
*/
|
|
2936
|
-
updateTask(taskId, workflowInstanceId, taskStatus, outputData) {
|
|
2937
|
-
const taskUpdates = {
|
|
2938
|
-
status: taskStatus,
|
|
2939
|
-
taskId,
|
|
2940
|
-
workflowInstanceId
|
|
2941
|
-
};
|
|
2942
|
-
return tryCatchReThrow(
|
|
2943
|
-
() => this._client.taskResource.updateTask1({
|
|
2944
|
-
outputData,
|
|
2945
|
-
...taskUpdates
|
|
2946
|
-
})
|
|
2947
|
-
);
|
|
2948
|
-
}
|
|
2949
|
-
/**
|
|
2950
|
-
* Updates a task by reference Name
|
|
2951
|
-
* @param taskReferenceName
|
|
2952
|
-
* @param workflowInstanceId
|
|
2953
|
-
* @param status
|
|
2954
|
-
* @param taskOutput
|
|
2955
|
-
* @returns
|
|
2956
|
-
*/
|
|
2957
|
-
updateTaskByRefName(taskReferenceName, workflowInstanceId, status, taskOutput) {
|
|
2958
|
-
return tryCatchReThrow(
|
|
2959
|
-
() => this._client.taskResource.updateTask(
|
|
2960
|
-
workflowInstanceId,
|
|
2961
|
-
taskReferenceName,
|
|
2962
|
-
status,
|
|
2963
|
-
taskOutput
|
|
2964
|
-
)
|
|
2965
|
-
);
|
|
2966
|
-
}
|
|
2967
|
-
/**
|
|
2968
|
-
*
|
|
2969
|
-
* @param taskId
|
|
2970
|
-
* @returns
|
|
2971
|
-
*/
|
|
2972
|
-
getTask(taskId) {
|
|
2973
|
-
return tryCatchReThrow(() => this._client.taskResource.getTask(taskId));
|
|
2974
|
-
}
|
|
2975
|
-
};
|
|
2976
|
-
|
|
2977
|
-
// src/core/human.ts
|
|
2978
|
-
var EMPTY_SEARCH = {
|
|
2979
|
-
size: 15,
|
|
2980
|
-
states: [],
|
|
2981
|
-
taskInputQuery: "",
|
|
2982
|
-
taskOutputQuery: "",
|
|
2983
|
-
definitionNames: [],
|
|
2984
|
-
taskRefNames: [],
|
|
2985
|
-
claimants: [],
|
|
2986
|
-
assignees: [],
|
|
2987
|
-
start: 0
|
|
2988
|
-
};
|
|
2989
|
-
var DEFAULT_POLL_INTERVAL2 = { pollInterval: 100, maxPollTimes: 20 };
|
|
2990
|
-
var HumanExecutor = class {
|
|
2991
|
-
constructor(client) {
|
|
2992
|
-
this._client = client;
|
|
2993
|
-
}
|
|
2994
|
-
/**
|
|
2995
|
-
* @deprecated use search instead
|
|
2996
|
-
* Takes a set of filter parameters. return matches of human tasks for that set of parameters
|
|
2997
|
-
* @param state
|
|
2998
|
-
* @param assignee
|
|
2999
|
-
* @param assigneeType
|
|
3000
|
-
* @param claimedBy
|
|
3001
|
-
* @param taskName
|
|
3002
|
-
* @param freeText
|
|
3003
|
-
* @param includeInputOutput
|
|
3004
|
-
* @returns
|
|
3005
|
-
*/
|
|
3006
|
-
async getTasksByFilter(state, assignee, assigneeType, claimedBy, taskName, taskInputQuery, taskOutputQuery) {
|
|
3007
|
-
const [claimedUserType, claimedUser] = claimedBy?.split(":") ?? [];
|
|
3008
|
-
if (claimedUserType && !claimedUser) {
|
|
3009
|
-
throw new Error("claimedBy should be in the format of <userType>:<user>");
|
|
3010
|
-
}
|
|
3011
|
-
const response = await this.search({
|
|
3012
|
-
states: [state],
|
|
3013
|
-
assignees: assignee ? [{ userType: assigneeType, user: assignee }] : [],
|
|
3014
|
-
claimants: claimedBy ? [{ userType: claimedUserType, user: claimedUser }] : [],
|
|
3015
|
-
taskRefNames: taskName ? [taskName] : [],
|
|
3016
|
-
taskInputQuery,
|
|
3017
|
-
taskOutputQuery
|
|
3018
|
-
});
|
|
3019
|
-
return response;
|
|
3020
|
-
}
|
|
3021
|
-
/**
|
|
3022
|
-
* Takes a set of filter parameters. return matches of human tasks for that set of parameters
|
|
3023
|
-
* @param state
|
|
3024
|
-
* @param assignee
|
|
3025
|
-
* @param assigneeType
|
|
3026
|
-
* @param claimedBy
|
|
3027
|
-
* @param taskName
|
|
3028
|
-
* @param freeText
|
|
3029
|
-
* @param includeInputOutput
|
|
3030
|
-
* @returns Promise<HumanTaskEntry[]>
|
|
3031
|
-
*/
|
|
3032
|
-
async search(searchParams) {
|
|
3033
|
-
const search = { ...EMPTY_SEARCH, ...searchParams };
|
|
3034
|
-
const response = await tryCatchReThrow(
|
|
3035
|
-
() => this._client.humanTask.search(search)
|
|
3036
|
-
);
|
|
3037
|
-
if (response.results != void 0) {
|
|
3038
|
-
return response.results;
|
|
3039
|
-
}
|
|
3040
|
-
return [];
|
|
3041
|
-
}
|
|
3042
|
-
/**
|
|
3043
|
-
* Takes a set of filter parameters. An polling interval options. will poll until the task returns a result
|
|
3044
|
-
* @param state
|
|
3045
|
-
* @param assignee
|
|
3046
|
-
* @param assigneeType
|
|
3047
|
-
* @param claimedBy
|
|
3048
|
-
* @param taskName
|
|
3049
|
-
* @param freeText
|
|
3050
|
-
* @param includeInputOutput
|
|
3051
|
-
* @returns Promise<HumanTaskEntry[]>
|
|
3052
|
-
*/
|
|
3053
|
-
async pollSearch(searchParams, {
|
|
3054
|
-
pollInterval = 100,
|
|
3055
|
-
maxPollTimes = 20
|
|
3056
|
-
} = DEFAULT_POLL_INTERVAL2) {
|
|
3057
|
-
let pollCount = 0;
|
|
3058
|
-
while (pollCount < maxPollTimes) {
|
|
3059
|
-
const response = await this.search(searchParams);
|
|
3060
|
-
if (response.length > 0) {
|
|
3061
|
-
return response;
|
|
3062
|
-
}
|
|
3063
|
-
await new Promise((resolve2) => setTimeout(resolve2, pollInterval));
|
|
3064
|
-
pollCount++;
|
|
3065
|
-
}
|
|
3066
|
-
return [];
|
|
3067
|
-
}
|
|
3068
|
-
/**
|
|
3069
|
-
* Returns task for a given task id
|
|
3070
|
-
* @param taskId
|
|
3071
|
-
* @returns
|
|
3072
|
-
*/
|
|
3073
|
-
getTaskById(taskId) {
|
|
3074
|
-
return tryCatchReThrow(() => this._client.humanTask.getTask1(taskId));
|
|
3075
|
-
}
|
|
3076
|
-
/**
|
|
3077
|
-
* Assigns taskId to assignee. If the task is already assigned to another user, this will fail.
|
|
3078
|
-
* @param taskId
|
|
3079
|
-
* @param assignee
|
|
3080
|
-
* @returns
|
|
3081
|
-
*/
|
|
3082
|
-
async claimTaskAsExternalUser(taskId, assignee) {
|
|
3083
|
-
return tryCatchReThrow(
|
|
3084
|
-
() => this._client.humanTask.assignAndClaim(taskId, assignee)
|
|
3085
|
-
);
|
|
3086
|
-
}
|
|
3087
|
-
/**
|
|
3088
|
-
* Claim task as conductor user
|
|
3089
|
-
* @param taskId
|
|
3090
|
-
* @returns
|
|
3091
|
-
*/
|
|
3092
|
-
async claimTaskAsConductorUser(taskId) {
|
|
3093
|
-
return tryCatchReThrow(() => this._client.humanTask.claimTask(taskId));
|
|
3094
|
-
}
|
|
3095
|
-
/**
|
|
3096
|
-
* Claim task as conductor user
|
|
3097
|
-
* @param taskId
|
|
3098
|
-
* @param assignee
|
|
3099
|
-
* @returns
|
|
3100
|
-
*/
|
|
3101
|
-
async releaseTask(taskId) {
|
|
3102
|
-
try {
|
|
3103
|
-
await this._client.humanTask.releaseTask(taskId);
|
|
3104
|
-
} catch (error) {
|
|
3105
|
-
throw errorMapper(error);
|
|
3106
|
-
}
|
|
3107
|
-
}
|
|
3108
|
-
/**
|
|
3109
|
-
* Returns a HumanTaskTemplateEntry for a given name and version
|
|
3110
|
-
* @param templateId
|
|
3111
|
-
* @returns
|
|
3112
|
-
*/
|
|
3113
|
-
async getTemplateByNameVersion(name, version) {
|
|
3114
|
-
return tryCatchReThrow(
|
|
3115
|
-
() => this._client.humanTask.getTemplateByNameAndVersion(name, version)
|
|
3116
|
-
);
|
|
3117
|
-
}
|
|
3118
|
-
/**
|
|
3119
|
-
* @deprecated use getTemplate instead. name will be used as id here with version 1
|
|
3120
|
-
* Returns a HumanTaskTemplateEntry for a given templateId
|
|
3121
|
-
* @param templateId
|
|
3122
|
-
* @returns
|
|
3123
|
-
*/
|
|
3124
|
-
async getTemplateById(templateNameVersionOne) {
|
|
3125
|
-
return this.getTemplateByNameVersion(templateNameVersionOne, 1);
|
|
3126
|
-
}
|
|
3127
|
-
/**
|
|
3128
|
-
* Takes a taskId and a partial body. will update with given body
|
|
3129
|
-
* @param taskId
|
|
3130
|
-
* @param requestBody
|
|
3131
|
-
*/
|
|
3132
|
-
async updateTaskOutput(taskId, requestBody) {
|
|
3133
|
-
try {
|
|
3134
|
-
await this._client.humanTask.updateTaskOutput(taskId, requestBody, false);
|
|
3135
|
-
} catch (error) {
|
|
3136
|
-
throw errorMapper(error);
|
|
3137
|
-
}
|
|
3138
|
-
}
|
|
3139
|
-
/**
|
|
3140
|
-
* Takes a taskId and an optional partial body. will complete the task with the given body
|
|
3141
|
-
* @param taskId
|
|
3142
|
-
* @param requestBody
|
|
3143
|
-
*/
|
|
3144
|
-
async completeTask(taskId, requestBody = {}) {
|
|
3145
|
-
try {
|
|
3146
|
-
await this._client.humanTask.updateTaskOutput(taskId, requestBody, true);
|
|
3147
|
-
} catch (error) {
|
|
3148
|
-
throw errorMapper(error);
|
|
3149
|
-
}
|
|
3150
|
-
}
|
|
3151
|
-
};
|
|
3152
|
-
|
|
3153
|
-
// src/core/sdk/doWhile.ts
|
|
3154
|
-
var doWhileTask = (taskRefName, terminationCondition, tasks) => ({
|
|
3155
|
-
name: taskRefName,
|
|
3156
|
-
taskReferenceName: taskRefName,
|
|
3157
|
-
loopCondition: terminationCondition,
|
|
3158
|
-
inputParameters: {},
|
|
3159
|
-
type: "DO_WHILE" /* DO_WHILE */,
|
|
3160
|
-
loopOver: tasks
|
|
3161
|
-
});
|
|
3162
|
-
var loopForCondition = (taskRefName, valueKey) => `if ( $.${taskRefName}['iteration'] < $.${valueKey} ) { true; } else { false; }`;
|
|
3163
|
-
var newLoopTask = (taskRefName, iterations, tasks) => ({
|
|
3164
|
-
name: taskRefName,
|
|
3165
|
-
taskReferenceName: taskRefName,
|
|
3166
|
-
loopCondition: loopForCondition(taskRefName, "value"),
|
|
3167
|
-
inputParameters: {
|
|
3168
|
-
value: iterations
|
|
3169
|
-
},
|
|
3170
|
-
type: "DO_WHILE" /* DO_WHILE */,
|
|
3171
|
-
loopOver: tasks
|
|
3172
|
-
});
|
|
3173
|
-
|
|
3174
|
-
// src/core/sdk/dynamicFork.ts
|
|
3175
|
-
var dynamicForkTask = (taskReferenceName, preForkTasks = [], dynamicTasksInput = "") => ({
|
|
3176
|
-
name: taskReferenceName,
|
|
3177
|
-
taskReferenceName,
|
|
3178
|
-
inputParameters: {
|
|
3179
|
-
dynamicTasks: preForkTasks,
|
|
3180
|
-
dynamicTasksInput
|
|
3181
|
-
},
|
|
3182
|
-
type: "FORK_JOIN_DYNAMIC" /* FORK_JOIN_DYNAMIC */,
|
|
3183
|
-
dynamicForkTasksParam: "dynamicTasks",
|
|
3184
|
-
dynamicForkTasksInputParamName: "dynamicTasksInput"
|
|
3185
|
-
});
|
|
3186
|
-
|
|
3187
|
-
// src/core/sdk/event.ts
|
|
3188
|
-
var eventTask = (taskReferenceName, eventPrefix, eventSuffix) => ({
|
|
3189
|
-
name: taskReferenceName,
|
|
3190
|
-
taskReferenceName,
|
|
3191
|
-
sink: `${eventPrefix}:${eventSuffix}`,
|
|
3192
|
-
type: "EVENT" /* EVENT */
|
|
3193
|
-
});
|
|
3194
|
-
var sqsEventTask = (taskReferenceName, queueName) => eventTask(taskReferenceName, "sqs", queueName);
|
|
3195
|
-
var conductorEventTask = (taskReferenceName, eventName) => eventTask(taskReferenceName, "conductor", eventName);
|
|
3196
|
-
|
|
3197
|
-
// src/core/generators/common.ts
|
|
3198
|
-
var randomChars = (n = 7) => (Math.random() + 1).toString(36).substring(n);
|
|
3199
|
-
var taskNameGenerator = (taskType) => `${taskType}__task_${randomChars(7)}`;
|
|
3200
|
-
var taskReferenceNameGenerator = (taskName) => `${taskName}_ref`;
|
|
3201
|
-
var nameTaskNameGenerator = (taskType, maybeOverrides = {}) => {
|
|
3202
|
-
const name = maybeOverrides?.name ?? taskNameGenerator(taskType);
|
|
3203
|
-
return {
|
|
3204
|
-
name,
|
|
3205
|
-
taskReferenceName: taskReferenceNameGenerator(name)
|
|
3206
|
-
};
|
|
3207
|
-
};
|
|
3208
|
-
function mapArrValues(arrayTransformer, mapWithValues) {
|
|
3209
|
-
return Object.fromEntries(
|
|
3210
|
-
Object.entries(mapWithValues).map(([key, value]) => [
|
|
3211
|
-
key,
|
|
3212
|
-
arrayTransformer(value)
|
|
3213
|
-
])
|
|
3214
|
-
);
|
|
3215
|
-
}
|
|
3216
|
-
|
|
3217
|
-
// src/core/generators/SimpleTask.ts
|
|
3218
|
-
var generateSimpleTask = (overrides = {}) => ({
|
|
3219
|
-
...nameTaskNameGenerator("simple", overrides),
|
|
3220
|
-
inputParameters: {},
|
|
3221
|
-
...overrides,
|
|
3222
|
-
type: "SIMPLE" /* SIMPLE */
|
|
3223
|
-
});
|
|
3224
|
-
|
|
3225
|
-
// src/core/generators/DoWhileTask.ts
|
|
3226
|
-
var generateDoWhileTask = (overrides = {}, nestedTasksMapper) => ({
|
|
3227
|
-
...nameTaskNameGenerator("doWhile", overrides),
|
|
3228
|
-
inputParameters: {},
|
|
3229
|
-
startDelay: 0,
|
|
3230
|
-
optional: false,
|
|
3231
|
-
asyncComplete: false,
|
|
3232
|
-
loopCondition: "",
|
|
3233
|
-
...overrides,
|
|
3234
|
-
loopOver: nestedTasksMapper(overrides?.loopOver || []),
|
|
3235
|
-
type: "DO_WHILE" /* DO_WHILE */
|
|
3236
|
-
});
|
|
3237
|
-
|
|
3238
|
-
// src/core/generators/EventTask.ts
|
|
3239
|
-
var generateEventTask = (overrides = {}) => ({
|
|
3240
|
-
...nameTaskNameGenerator("event", overrides),
|
|
3241
|
-
sink: "sqs:sqs_queue_name",
|
|
3242
|
-
asyncComplete: false,
|
|
3243
|
-
...overrides,
|
|
3244
|
-
type: "EVENT" /* EVENT */
|
|
3245
|
-
});
|
|
3246
|
-
|
|
3247
|
-
// src/core/generators/ForkJoin.ts
|
|
3248
|
-
var generateForkJoinTask = (overrides = {}, nestedMapper) => ({
|
|
3249
|
-
...nameTaskNameGenerator("forkJoin", overrides),
|
|
3250
|
-
inputParameters: {},
|
|
3251
|
-
...overrides,
|
|
3252
|
-
type: "FORK_JOIN" /* FORK_JOIN */,
|
|
3253
|
-
forkTasks: (overrides?.forkTasks || []).map(nestedMapper)
|
|
3254
|
-
});
|
|
3255
|
-
var generateJoinTask = (overrides = {}) => ({
|
|
3256
|
-
...nameTaskNameGenerator("join", overrides),
|
|
3257
|
-
inputParameters: {},
|
|
3258
|
-
joinOn: [],
|
|
3259
|
-
optional: false,
|
|
3260
|
-
asyncComplete: false,
|
|
3261
|
-
...overrides,
|
|
3262
|
-
type: "JOIN" /* JOIN */
|
|
3263
|
-
});
|
|
3264
|
-
|
|
3265
|
-
// src/core/generators/HttpTask.ts
|
|
3266
|
-
var generateHTTPTask = (overrides = {}) => ({
|
|
3267
|
-
...nameTaskNameGenerator("httpTask", overrides),
|
|
3268
|
-
inputParameters: {
|
|
3269
|
-
http_request: {
|
|
3270
|
-
uri: "https://jsonplaceholder.typicode.com/posts/${workflow.input.queryid}",
|
|
3271
|
-
method: "GET"
|
|
3272
|
-
}
|
|
3273
|
-
},
|
|
3274
|
-
...overrides,
|
|
3275
|
-
type: "HTTP" /* HTTP */
|
|
3276
|
-
});
|
|
3277
|
-
|
|
3278
|
-
// src/core/generators/InlineTask.ts
|
|
3279
|
-
var defaultInputParams = {
|
|
3280
|
-
value: "${workflow.input.value}",
|
|
3281
|
-
evaluatorType: "graaljs",
|
|
3282
|
-
expression: "true"
|
|
3283
|
-
};
|
|
3284
|
-
var generateEvaluationCode = (inputParametersPartial = {}) => {
|
|
3285
|
-
const inlinePartialDefJavascript = inputParametersPartial;
|
|
3286
|
-
const inlineExpression = inlinePartialDefJavascript?.expression;
|
|
3287
|
-
if (inlineExpression !== void 0 && typeof inlineExpression === "function") {
|
|
3288
|
-
const resultingFunction = inlineExpression();
|
|
3289
|
-
const resultingFunctionAsString = resultingFunction.toString();
|
|
3290
|
-
const toReturn = {
|
|
3291
|
-
evaluatorType: "graaljs",
|
|
3292
|
-
...inputParametersPartial || { value: "true" },
|
|
3293
|
-
expression: `(${resultingFunctionAsString})();`
|
|
3294
|
-
};
|
|
3295
|
-
return toReturn;
|
|
3296
|
-
}
|
|
3297
|
-
return {
|
|
3298
|
-
...defaultInputParams,
|
|
3299
|
-
evaluatorType: "graaljs",
|
|
3300
|
-
...inputParametersPartial
|
|
3301
|
-
};
|
|
3302
|
-
};
|
|
3303
|
-
var generateInlineTask = (override = {}) => ({
|
|
3304
|
-
...nameTaskNameGenerator("inline", override),
|
|
3305
|
-
...override,
|
|
3306
|
-
inputParameters: generateEvaluationCode(override?.inputParameters || {}),
|
|
3307
|
-
type: "INLINE" /* INLINE */
|
|
3308
|
-
});
|
|
3309
|
-
|
|
3310
|
-
// src/core/generators/JsonJQTransform.ts
|
|
3311
|
-
var generateJQTransformTask = (overrides = {}) => ({
|
|
3312
|
-
...nameTaskNameGenerator("jqTransform", overrides),
|
|
3313
|
-
inputParameters: {
|
|
3314
|
-
key1: {
|
|
3315
|
-
value1: ["a", "b"]
|
|
3316
|
-
},
|
|
3317
|
-
key2: {
|
|
3318
|
-
value2: ["c", "d"]
|
|
3319
|
-
},
|
|
3320
|
-
queryExpression: "{ key3: (.key1.value1 + .key2.value2) }"
|
|
3321
|
-
},
|
|
3322
|
-
...overrides,
|
|
3323
|
-
type: "JSON_JQ_TRANSFORM" /* JSON_JQ_TRANSFORM */
|
|
3324
|
-
});
|
|
3325
|
-
|
|
3326
|
-
// src/core/generators/KafkaTask.ts
|
|
3327
|
-
var generateKafkaPublishTask = (overrides = {}) => ({
|
|
3328
|
-
...nameTaskNameGenerator("kafka", overrides),
|
|
3329
|
-
inputParameters: {
|
|
3330
|
-
kafka_request: {
|
|
3331
|
-
topic: "topic",
|
|
3332
|
-
value: "",
|
|
3333
|
-
bootStrapServers: "localhost:9092",
|
|
3334
|
-
headers: {},
|
|
3335
|
-
key: "123",
|
|
3336
|
-
keySerializer: "org.apache.kafka.common.serialization.IntegerSerializer"
|
|
3337
|
-
}
|
|
3338
|
-
},
|
|
3339
|
-
...overrides,
|
|
3340
|
-
type: "KAFKA_PUBLISH" /* KAFKA_PUBLISH */
|
|
3341
|
-
});
|
|
3342
|
-
|
|
3343
|
-
// src/core/generators/SubWorkflowTask.ts
|
|
3344
|
-
var generateSubWorkflowTask = (overrides = {}) => ({
|
|
3345
|
-
...nameTaskNameGenerator("subWorkflow", overrides),
|
|
3346
|
-
inputParameters: {},
|
|
3347
|
-
subWorkflowParam: {
|
|
3348
|
-
name: "name",
|
|
3349
|
-
version: 1,
|
|
3350
|
-
taskToDomain: {}
|
|
3351
|
-
},
|
|
3352
|
-
...overrides,
|
|
3353
|
-
type: "SUB_WORKFLOW" /* SUB_WORKFLOW */
|
|
3354
|
-
});
|
|
3355
|
-
|
|
3356
|
-
// src/core/generators/SetVariableTask.ts
|
|
3357
|
-
var generateSetVariableTask = (overrides = {}) => ({
|
|
3358
|
-
...nameTaskNameGenerator("setVariable", overrides),
|
|
3359
|
-
inputParameters: {},
|
|
3360
|
-
...overrides,
|
|
3361
|
-
type: "SET_VARIABLE" /* SET_VARIABLE */
|
|
3362
|
-
});
|
|
3363
|
-
|
|
3364
|
-
// src/core/generators/TerminateTask.ts
|
|
3365
|
-
var generateTerminateTask = (overrides = {}) => ({
|
|
3366
|
-
...nameTaskNameGenerator("terminate", overrides),
|
|
3367
|
-
inputParameters: {
|
|
3368
|
-
terminationStatus: "COMPLETED",
|
|
3369
|
-
workflowOutput: {}
|
|
3370
|
-
},
|
|
3371
|
-
startDelay: 0,
|
|
3372
|
-
optional: false,
|
|
3373
|
-
...overrides,
|
|
3374
|
-
type: "TERMINATE" /* TERMINATE */
|
|
3375
|
-
});
|
|
3376
|
-
|
|
3377
|
-
// src/core/generators/WaitTask.ts
|
|
3378
|
-
var generateWaitTask = (overrides = {}) => ({
|
|
3379
|
-
...nameTaskNameGenerator("wait", overrides),
|
|
3380
|
-
...overrides,
|
|
3381
|
-
inputParameters: {},
|
|
3382
|
-
type: "WAIT" /* WAIT */
|
|
3383
|
-
});
|
|
3384
|
-
|
|
3385
|
-
// src/core/generators/SwitchTask.ts
|
|
3386
|
-
var fillSwitchTaskBranches = (task, mapper) => ({
|
|
3387
|
-
decisionCases: mapArrValues(mapper, task?.decisionCases || {}),
|
|
3388
|
-
defaultCase: mapper(task?.defaultCase || [])
|
|
3389
|
-
});
|
|
3390
|
-
var generateSwitchTask = (overrides = {}, nestedTasksMapper) => ({
|
|
3391
|
-
...nameTaskNameGenerator("switch", overrides),
|
|
3392
|
-
inputParameters: {
|
|
3393
|
-
switchCaseValue: ""
|
|
3394
|
-
},
|
|
3395
|
-
evaluatorType: "value-param",
|
|
3396
|
-
expression: "switchCaseValue",
|
|
3397
|
-
...overrides,
|
|
3398
|
-
...fillSwitchTaskBranches(overrides, nestedTasksMapper),
|
|
3399
|
-
type: "SWITCH" /* SWITCH */
|
|
3400
|
-
});
|
|
3401
|
-
|
|
3402
|
-
// src/core/generators/WorkflowGenerator.ts
|
|
3403
|
-
var workflowGenerator = (overrides) => ({
|
|
3404
|
-
name: "NewWorkflow_3nxbi",
|
|
3405
|
-
description: "Edit or extend this sample workflow. Set the workflow name to get started",
|
|
3406
|
-
version: 1,
|
|
3407
|
-
tasks: [],
|
|
3408
|
-
inputParameters: [],
|
|
3409
|
-
outputParameters: {},
|
|
3410
|
-
schemaVersion: 2,
|
|
3411
|
-
restartable: true,
|
|
3412
|
-
workflowStatusListenerEnabled: false,
|
|
3413
|
-
ownerEmail: "james.stuart@orkes.io",
|
|
3414
|
-
timeoutPolicy: "ALERT_ONLY",
|
|
3415
|
-
timeoutSeconds: 0,
|
|
3416
|
-
...overrides
|
|
3417
|
-
});
|
|
3418
|
-
|
|
3419
|
-
// src/core/generators/ForkJoinDynamicTask.ts
|
|
3420
|
-
var generateForkJoinDynamic = (overrides = {}) => ({
|
|
3421
|
-
...nameTaskNameGenerator("forkJoinDynamic", overrides),
|
|
3422
|
-
inputParameters: {
|
|
3423
|
-
dynamicTasks: "",
|
|
3424
|
-
dynamicTasksInput: ""
|
|
3425
|
-
},
|
|
3426
|
-
dynamicForkTasksParam: "dynamicTasks",
|
|
3427
|
-
dynamicForkTasksInputParamName: "dynamicTasksInput",
|
|
3428
|
-
startDelay: 0,
|
|
3429
|
-
optional: false,
|
|
3430
|
-
asyncComplete: false,
|
|
3431
|
-
...overrides,
|
|
3432
|
-
type: "FORK_JOIN_DYNAMIC" /* FORK_JOIN_DYNAMIC */
|
|
3433
|
-
});
|
|
3434
|
-
|
|
3435
|
-
// src/core/generators/generator.ts
|
|
3436
|
-
var filledTaskDef = (task) => {
|
|
3437
|
-
const taskType = task.type;
|
|
3438
|
-
switch (taskType) {
|
|
3439
|
-
case "SWITCH" /* SWITCH */:
|
|
3440
|
-
return generateSwitchTask(task, taskGenMapper);
|
|
3441
|
-
case "SIMPLE" /* SIMPLE */:
|
|
3442
|
-
return generateSimpleTask(task);
|
|
3443
|
-
case "DO_WHILE" /* DO_WHILE */:
|
|
3444
|
-
return generateDoWhileTask(task, taskGenMapper);
|
|
3445
|
-
case "EVENT" /* EVENT */:
|
|
3446
|
-
return generateEventTask(task);
|
|
3447
|
-
case "FORK_JOIN" /* FORK_JOIN */:
|
|
3448
|
-
return generateForkJoinTask(task, taskGenMapper);
|
|
3449
|
-
case "FORK_JOIN_DYNAMIC" /* FORK_JOIN_DYNAMIC */:
|
|
3450
|
-
return generateForkJoinDynamic(task);
|
|
3451
|
-
case "HTTP" /* HTTP */:
|
|
3452
|
-
return generateHTTPTask(task);
|
|
3453
|
-
case "INLINE" /* INLINE */:
|
|
3454
|
-
return generateInlineTask(task);
|
|
3455
|
-
case "JOIN" /* JOIN */:
|
|
3456
|
-
return generateJoinTask(task);
|
|
3457
|
-
case "JSON_JQ_TRANSFORM" /* JSON_JQ_TRANSFORM */:
|
|
3458
|
-
return generateJQTransformTask(task);
|
|
3459
|
-
case "KAFKA_PUBLISH" /* KAFKA_PUBLISH */:
|
|
3460
|
-
return generateKafkaPublishTask(task);
|
|
3461
|
-
case "SUB_WORKFLOW" /* SUB_WORKFLOW */:
|
|
3462
|
-
return generateSubWorkflowTask(task);
|
|
3463
|
-
case "SET_VARIABLE" /* SET_VARIABLE */:
|
|
3464
|
-
return generateSetVariableTask(task);
|
|
3465
|
-
case "TERMINATE" /* TERMINATE */:
|
|
3466
|
-
return generateTerminateTask(task);
|
|
3467
|
-
case "WAIT" /* WAIT */:
|
|
3468
|
-
return generateWaitTask(task);
|
|
3469
|
-
default:
|
|
3470
|
-
return generateSimpleTask(task);
|
|
3471
|
-
}
|
|
3472
|
-
};
|
|
3473
|
-
var taskGenMapper = (tasks) => tasks.reduce((acc, task, idx) => {
|
|
3474
|
-
const filledTask = filledTaskDef(task);
|
|
3475
|
-
const maybeNextTask = tasks.length >= idx + 1 ? tasks[idx + 1] : void 0;
|
|
3476
|
-
return acc.concat(maybeAddJoinTask(filledTask, maybeNextTask));
|
|
3477
|
-
}, []);
|
|
3478
|
-
var maybeAddJoinTask = (currentTask, maybeNextTask) => {
|
|
3479
|
-
if ((currentTask.type === "FORK_JOIN" /* FORK_JOIN */ || currentTask.type === "FORK_JOIN_DYNAMIC" /* FORK_JOIN_DYNAMIC */) && maybeNextTask != null && maybeNextTask.type !== "JOIN" /* JOIN */) {
|
|
3480
|
-
return [currentTask, generateJoinTask({})];
|
|
3481
|
-
}
|
|
3482
|
-
return currentTask;
|
|
3483
|
-
};
|
|
3484
|
-
var generate = (overrides) => {
|
|
3485
|
-
const maybeTasks = overrides.tasks || [];
|
|
3486
|
-
const generatedTasks = taskGenMapper(maybeTasks);
|
|
3487
|
-
return workflowGenerator({ ...overrides, tasks: generatedTasks });
|
|
3488
|
-
};
|
|
3489
|
-
|
|
3490
|
-
// src/core/generators/index.ts
|
|
3491
|
-
var generateSwitchTask2 = (overrides = {}, nestedTasksMapper = taskGenMapper) => generateSwitchTask(overrides, nestedTasksMapper);
|
|
3492
|
-
var generateDoWhileTask2 = (overrides = {}, nestedTasksMapper = taskGenMapper) => generateDoWhileTask(overrides, nestedTasksMapper);
|
|
3493
|
-
var generateForkJoinTask2 = (overrides = {}, nestedMapper = taskGenMapper) => generateForkJoinTask(overrides, nestedMapper);
|
|
3494
|
-
|
|
3495
|
-
// src/core/sdk/forkJoin.ts
|
|
3496
|
-
var forkTask = (taskReferenceName, forkTasks) => ({
|
|
3497
|
-
taskReferenceName,
|
|
3498
|
-
name: taskReferenceName,
|
|
3499
|
-
type: "FORK_JOIN" /* FORK_JOIN */,
|
|
3500
|
-
forkTasks: [forkTasks]
|
|
3501
|
-
});
|
|
3502
|
-
var forkTaskJoin = (taskReferenceName, forkTasks) => [
|
|
3503
|
-
forkTask(taskReferenceName, forkTasks),
|
|
3504
|
-
generateJoinTask({ name: `${taskReferenceName}_join` })
|
|
3505
|
-
];
|
|
3506
|
-
|
|
3507
|
-
// src/core/sdk/http.ts
|
|
3508
|
-
var httpTask = (taskReferenceName, inputParameters) => ({
|
|
3509
|
-
name: taskReferenceName,
|
|
3510
|
-
taskReferenceName,
|
|
3511
|
-
inputParameters: {
|
|
3512
|
-
http_request: inputParameters
|
|
3513
|
-
},
|
|
3514
|
-
type: "HTTP" /* HTTP */
|
|
3515
|
-
});
|
|
3516
|
-
|
|
3517
|
-
// src/core/sdk/inline.ts
|
|
3518
|
-
var inlineTask = (taskReferenceName, script, evaluatorType = "javascript") => ({
|
|
3519
|
-
name: taskReferenceName,
|
|
3520
|
-
taskReferenceName,
|
|
3521
|
-
inputParameters: {
|
|
3522
|
-
evaluatorType,
|
|
3523
|
-
expression: script
|
|
3524
|
-
},
|
|
3525
|
-
type: "INLINE" /* INLINE */
|
|
3526
|
-
});
|
|
3527
|
-
|
|
3528
|
-
// src/core/sdk/join.ts
|
|
3529
|
-
var joinTask = (taskReferenceName, joinOn) => ({
|
|
3530
|
-
name: taskReferenceName,
|
|
3531
|
-
taskReferenceName,
|
|
3532
|
-
joinOn,
|
|
3533
|
-
type: "JOIN" /* JOIN */
|
|
3534
|
-
});
|
|
3535
|
-
|
|
3536
|
-
// src/core/sdk/jsonJq.ts
|
|
3537
|
-
var jsonJqTask = (taskReferenceName, script) => ({
|
|
3538
|
-
name: taskReferenceName,
|
|
3539
|
-
taskReferenceName,
|
|
3540
|
-
type: "JSON_JQ_TRANSFORM" /* JSON_JQ_TRANSFORM */,
|
|
3541
|
-
inputParameters: {
|
|
3542
|
-
queryExpression: script
|
|
3543
|
-
}
|
|
3544
|
-
});
|
|
3545
|
-
|
|
3546
|
-
// src/core/sdk/kafkaPublish.ts
|
|
3547
|
-
var kafkaPublishTask = (taskReferenceName, kafka_request) => ({
|
|
3548
|
-
taskReferenceName,
|
|
3549
|
-
name: taskReferenceName,
|
|
3550
|
-
type: "KAFKA_PUBLISH" /* KAFKA_PUBLISH */,
|
|
3551
|
-
inputParameters: {
|
|
3552
|
-
kafka_request
|
|
3553
|
-
}
|
|
3554
|
-
});
|
|
3555
|
-
|
|
3556
|
-
// src/core/sdk/setVariable.ts
|
|
3557
|
-
var setVariableTask = (taskReferenceName, inputParameters) => ({
|
|
3558
|
-
name: taskReferenceName,
|
|
3559
|
-
taskReferenceName,
|
|
3560
|
-
type: "SET_VARIABLE" /* SET_VARIABLE */,
|
|
3561
|
-
inputParameters
|
|
3562
|
-
});
|
|
3563
|
-
|
|
3564
|
-
// src/core/sdk/simple.ts
|
|
3565
|
-
var simpleTask = (taskReferenceName, name, inputParameters) => ({
|
|
3566
|
-
name,
|
|
3567
|
-
taskReferenceName,
|
|
3568
|
-
inputParameters,
|
|
3569
|
-
type: "SIMPLE" /* SIMPLE */
|
|
3570
|
-
});
|
|
3571
|
-
|
|
3572
|
-
// src/core/sdk/subWorkflow.ts
|
|
3573
|
-
var subWorkflowTask = (taskReferenceName, workflowName, version) => ({
|
|
3574
|
-
name: taskReferenceName,
|
|
3575
|
-
taskReferenceName,
|
|
3576
|
-
subWorkflowParam: {
|
|
3577
|
-
name: workflowName,
|
|
3578
|
-
version
|
|
3579
|
-
},
|
|
3580
|
-
type: "SUB_WORKFLOW" /* SUB_WORKFLOW */
|
|
3581
|
-
});
|
|
3582
|
-
|
|
3583
|
-
// src/core/sdk/switch.ts
|
|
3584
|
-
var switchTask = (taskReferenceName, expression, decisionCases = {}, defaultCase = []) => ({
|
|
3585
|
-
name: taskReferenceName,
|
|
3586
|
-
taskReferenceName,
|
|
3587
|
-
decisionCases,
|
|
3588
|
-
evaluatorType: "value-param",
|
|
3589
|
-
inputParameters: {
|
|
3590
|
-
switchCaseValue: expression
|
|
3591
|
-
},
|
|
3592
|
-
expression: "switchCaseValue",
|
|
3593
|
-
defaultCase,
|
|
3594
|
-
type: "SWITCH" /* SWITCH */
|
|
3595
|
-
});
|
|
3596
|
-
|
|
3597
|
-
// src/core/sdk/terminate.ts
|
|
3598
|
-
var terminateTask = (taskReferenceName, status, terminationReason) => ({
|
|
3599
|
-
name: taskReferenceName,
|
|
3600
|
-
taskReferenceName,
|
|
3601
|
-
inputParameters: {
|
|
3602
|
-
terminationStatus: status,
|
|
3603
|
-
terminationReason
|
|
3604
|
-
},
|
|
3605
|
-
type: "TERMINATE" /* TERMINATE */
|
|
3606
|
-
});
|
|
3607
|
-
|
|
3608
|
-
// src/core/sdk/wait.ts
|
|
3609
|
-
var waitTaskDuration = (taskReferenceName, duration) => ({
|
|
3610
|
-
name: taskReferenceName,
|
|
3611
|
-
taskReferenceName,
|
|
3612
|
-
inputParameters: {
|
|
3613
|
-
duration
|
|
3614
|
-
},
|
|
3615
|
-
type: "WAIT" /* WAIT */
|
|
3616
|
-
});
|
|
3617
|
-
var waitTaskUntil = (taskReferenceName, until) => ({
|
|
3618
|
-
name: taskReferenceName,
|
|
3619
|
-
taskReferenceName,
|
|
3620
|
-
inputParameters: {
|
|
3621
|
-
until
|
|
3622
|
-
},
|
|
3623
|
-
type: "WAIT" /* WAIT */
|
|
3624
|
-
});
|
|
3625
|
-
|
|
3626
|
-
// src/core/sdk/workflow.ts
|
|
3627
|
-
var workflow = (name, tasks) => ({
|
|
3628
|
-
name,
|
|
3629
|
-
version: 1,
|
|
3630
|
-
tasks,
|
|
3631
|
-
inputParameters: [],
|
|
3632
|
-
timeoutSeconds: 0
|
|
3633
|
-
});
|
|
3634
|
-
|
|
3635
|
-
// src/orkes/BaseOrkesConductorClient.ts
|
|
3636
|
-
var defaultRequestHandler2 = (request2, config, options) => request2(config, options);
|
|
3637
|
-
var REFRESH_TOKEN_IN_MILLISECONDS = 30 * 60 * 1e3;
|
|
3638
|
-
var AuthConductorClient = class extends ConductorClient {
|
|
3639
|
-
constructor(config, requestHandler = defaultRequestHandler2) {
|
|
3640
|
-
super(config, requestHandler);
|
|
3641
|
-
}
|
|
3642
|
-
/**
|
|
3643
|
-
* Stops the interval that refreshes the token
|
|
3644
|
-
*/
|
|
3645
|
-
stop() {
|
|
3646
|
-
if (this.intervalId != null) {
|
|
3647
|
-
clearInterval(this.intervalId);
|
|
3648
|
-
}
|
|
3649
|
-
}
|
|
3650
|
-
};
|
|
3651
|
-
var baseOrkesConductorClient = (fetchFn, baseRequestHandler = defaultRequestHandler2) => {
|
|
3652
|
-
const requestTokenForKeySecret = (keyId, keySecret, tokenUrl) => fetchFn(tokenUrl, {
|
|
3653
|
-
headers: {
|
|
3654
|
-
"Content-Type": "application/json",
|
|
3655
|
-
Accept: "application/json"
|
|
3656
|
-
},
|
|
3657
|
-
body: JSON.stringify({ keyId, keySecret }),
|
|
3658
|
-
method: "POST"
|
|
3659
|
-
});
|
|
3660
|
-
return async (config, requestHandler = baseRequestHandler) => {
|
|
3661
|
-
if (config?.keySecret != null && config?.keyId != null) {
|
|
3662
|
-
const {
|
|
3663
|
-
serverUrl,
|
|
3664
|
-
keyId,
|
|
3665
|
-
keySecret,
|
|
3666
|
-
refreshTokenInterval = REFRESH_TOKEN_IN_MILLISECONDS
|
|
3667
|
-
} = config;
|
|
3668
|
-
const tokenUrl = `${serverUrl}/token`;
|
|
3669
|
-
const res = await requestTokenForKeySecret(keyId, keySecret, tokenUrl);
|
|
3670
|
-
const { token } = await res.json();
|
|
3671
|
-
const conductorClientInstance = new AuthConductorClient(
|
|
3672
|
-
{ ...config, TOKEN: token },
|
|
3673
|
-
requestHandler
|
|
3674
|
-
);
|
|
3675
|
-
if (token != null && refreshTokenInterval > 0) {
|
|
3676
|
-
const intervalId = setInterval(async () => {
|
|
3677
|
-
const res2 = await requestTokenForKeySecret(
|
|
3678
|
-
keyId,
|
|
3679
|
-
keySecret,
|
|
3680
|
-
tokenUrl
|
|
3681
|
-
);
|
|
3682
|
-
const { token: token2 } = await res2.json();
|
|
3683
|
-
conductorClientInstance.token = token2;
|
|
3684
|
-
}, refreshTokenInterval);
|
|
3685
|
-
conductorClientInstance.intervalId = intervalId;
|
|
3686
|
-
}
|
|
3687
|
-
return conductorClientInstance;
|
|
3688
|
-
} else {
|
|
3689
|
-
return new ConductorClient(config, requestHandler);
|
|
3690
|
-
}
|
|
3691
|
-
};
|
|
3692
|
-
};
|
|
3693
|
-
|
|
3694
|
-
// src/orkes/BrowserOrkesConductorClient.ts
|
|
3695
|
-
var defaultRequestHandler3 = (request2, config, options) => request2(config, options);
|
|
3696
|
-
var orkesConductorClient = baseOrkesConductorClient(
|
|
3697
|
-
fetch,
|
|
3698
|
-
defaultRequestHandler3
|
|
3699
|
-
);
|
|
3700
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
3701
|
-
0 && (module.exports = {
|
|
3702
|
-
ApiError,
|
|
3703
|
-
BaseHttpRequest,
|
|
3704
|
-
CancelError,
|
|
3705
|
-
CancelablePromise,
|
|
3706
|
-
ConductorClient,
|
|
3707
|
-
ConductorError,
|
|
3708
|
-
DefaultLogger,
|
|
3709
|
-
EventResourceService,
|
|
3710
|
-
HealthCheckResourceService,
|
|
3711
|
-
HumanExecutor,
|
|
3712
|
-
MetadataResourceService,
|
|
3713
|
-
SchedulerResourceService,
|
|
3714
|
-
TaskManager,
|
|
3715
|
-
TaskResourceService,
|
|
3716
|
-
TaskRunner,
|
|
3717
|
-
TaskType,
|
|
3718
|
-
TokenResourceService,
|
|
3719
|
-
WorkflowBulkResourceService,
|
|
3720
|
-
WorkflowExecutor,
|
|
3721
|
-
WorkflowResourceService,
|
|
3722
|
-
completedTaskMatchingType,
|
|
3723
|
-
conductorEventTask,
|
|
3724
|
-
doWhileTask,
|
|
3725
|
-
dynamicForkTask,
|
|
3726
|
-
eventTask,
|
|
3727
|
-
forkTask,
|
|
3728
|
-
forkTaskJoin,
|
|
3729
|
-
generate,
|
|
3730
|
-
generateDoWhileTask,
|
|
3731
|
-
generateEventTask,
|
|
3732
|
-
generateForkJoinTask,
|
|
3733
|
-
generateHTTPTask,
|
|
3734
|
-
generateInlineTask,
|
|
3735
|
-
generateJQTransformTask,
|
|
3736
|
-
generateJoinTask,
|
|
3737
|
-
generateKafkaPublishTask,
|
|
3738
|
-
generateSetVariableTask,
|
|
3739
|
-
generateSimpleTask,
|
|
3740
|
-
generateSubWorkflowTask,
|
|
3741
|
-
generateSwitchTask,
|
|
3742
|
-
generateTerminateTask,
|
|
3743
|
-
generateWaitTask,
|
|
3744
|
-
httpTask,
|
|
3745
|
-
inlineTask,
|
|
3746
|
-
joinTask,
|
|
3747
|
-
jsonJqTask,
|
|
3748
|
-
kafkaPublishTask,
|
|
3749
|
-
newLoopTask,
|
|
3750
|
-
noopErrorHandler,
|
|
3751
|
-
noopLogger,
|
|
3752
|
-
orkesConductorClient,
|
|
3753
|
-
setVariableTask,
|
|
3754
|
-
simpleTask,
|
|
3755
|
-
sqsEventTask,
|
|
3756
|
-
subWorkflowTask,
|
|
3757
|
-
switchTask,
|
|
3758
|
-
taskGenMapper,
|
|
3759
|
-
terminateTask,
|
|
3760
|
-
waitTaskDuration,
|
|
3761
|
-
waitTaskUntil,
|
|
3762
|
-
workflow
|
|
3763
|
-
});
|
|
3764
|
-
//# sourceMappingURL=browser.js.map
|