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