@webda/async 2.4.1 → 3.0.0

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.
@@ -1,5 +1,7 @@
1
- import { CancelableLoopPromise, CloudBinary, Context, CronDefinition, Queue, RequestFilter, Service, ServiceParameters, Store } from "@webda/core";
2
- import { AsyncAction, AsyncActionQueueItem, AsyncWebdaAction } from "../models.js";
1
+ import { CancelableLoopPromise, CloudBinary, Constructor, CronDefinition, OperationContext, Queue, RequestFilter, Service, ServiceParameters, Store, WebContext, WebdaQL } from "@webda/core";
2
+ import { WorkerLogLevel } from "@webda/workout";
3
+ import { JSONSchema7 } from "json-schema";
4
+ import { AsyncAction, AsyncActionQueueItem, AsyncOperationAction, AsyncWebdaAction } from "../models.js";
3
5
  import { Runner } from "./runner.js";
4
6
  /**
5
7
  * Represent a Job information as you will find in env
@@ -84,6 +86,24 @@ export declare class AsyncJobServiceParameters extends ServiceParameters {
84
86
  * @default 500
85
87
  */
86
88
  logsLimit: number;
89
+ /**
90
+ * Model to use when launching async action
91
+ *
92
+ * @default Webda/AsyncWebdaAction
93
+ */
94
+ asyncActionModel?: string;
95
+ /**
96
+ * Model to use when launching async operation
97
+ *
98
+ * @default Webda/AsyncOperationAction
99
+ */
100
+ asyncOperationModel?: string;
101
+ /**
102
+ * JSON file of the AsyncOperation definition
103
+ *
104
+ * Generated with `webda operations operations.json`
105
+ */
106
+ asyncOperationDefinition?: string;
87
107
  constructor(params: any);
88
108
  }
89
109
  /**
@@ -112,6 +132,40 @@ export default class AsyncJobService<T extends AsyncJobServiceParameters = Async
112
132
  * If we want job to be able to upload/download
113
133
  */
114
134
  protected binaryStore: CloudBinary;
135
+ /**
136
+ * Model to use when launching action
137
+ */
138
+ model: Constructor<AsyncWebdaAction, [string, string, ...any[]]>;
139
+ /**
140
+ * Model to use when launching action
141
+ */
142
+ operationModel: Constructor<AsyncOperationAction, [string, OperationContext, WorkerLogLevel?]>;
143
+ /**
144
+ * Operations definition
145
+ */
146
+ protected operations: {
147
+ application: {
148
+ name: string;
149
+ version: string;
150
+ };
151
+ operations: {
152
+ [key: string]: {
153
+ id: string;
154
+ input: string;
155
+ output?: string;
156
+ permission?: string;
157
+ };
158
+ };
159
+ schemas: {
160
+ [key: string]: JSONSchema7;
161
+ };
162
+ };
163
+ /**
164
+ * Validator of sessions
165
+ */
166
+ protected operationsQueries: {
167
+ [key: string]: WebdaQL.QueryValidator;
168
+ };
115
169
  /**
116
170
  * @inheritdoc
117
171
  */
@@ -123,19 +177,19 @@ export default class AsyncJobService<T extends AsyncJobServiceParameters = Async
123
177
  /**
124
178
  * Allow job status report url
125
179
  */
126
- checkRequest(context: Context): Promise<boolean>;
180
+ checkRequest(context: WebContext): Promise<boolean>;
127
181
  /**
128
182
  *
129
183
  * @param context
130
184
  * @param action
131
185
  */
132
- verifyJobRequest<K extends AsyncAction = AsyncAction>(context: Context): Promise<K>;
186
+ verifyJobRequest<K extends AsyncAction = AsyncAction>(context: WebContext): Promise<K>;
133
187
  /**
134
188
  * Status hook for job report
135
189
  *
136
190
  * Only updates specific fields: status, errorMessage, statusDetails, results, logs (appending)
137
191
  */
138
- protected statusHook(context: Context): Promise<void>;
192
+ protected statusHook(context: WebContext): Promise<void>;
139
193
  /**
140
194
  * Update the async action from hook
141
195
  * @param action
@@ -161,6 +215,36 @@ export default class AsyncJobService<T extends AsyncJobServiceParameters = Async
161
215
  * @returns
162
216
  */
163
217
  getJobInfo(action: AsyncAction): JobInfo;
218
+ /**
219
+ * List available operations through this service
220
+ * @param context
221
+ */
222
+ listOperations(context: WebContext<void, {
223
+ application: {
224
+ name: string;
225
+ version: string;
226
+ };
227
+ operations: {
228
+ [key: string]: {
229
+ id: string;
230
+ input?: string;
231
+ output?: string;
232
+ };
233
+ };
234
+ schemas: {
235
+ [key: string]: JSONSchema7;
236
+ };
237
+ } | string[]>): Promise<void>;
238
+ /**
239
+ * Call an operation for an external system
240
+ * @param context
241
+ * @returns
242
+ */
243
+ callOperation(context: OperationContext): Promise<any>;
244
+ /**
245
+ * Launch an operation through this service
246
+ */
247
+ launchOperation(context: WebContext): Promise<void>;
164
248
  /**
165
249
  * Launch the action asynchronously
166
250
  * @param action
@@ -1,9 +1,8 @@
1
- import { CancelableLoopPromise, Core, CronService, Service, ServiceParameters } from "@webda/core";
1
+ import { CancelableLoopPromise, Core, CronService, FileUtils, JSONUtils, OperationError, Service, ServiceParameters, SimpleOperationContext, WebdaError } from "@webda/core";
2
2
  import axios from "axios";
3
3
  import * as crypto from "crypto";
4
4
  import { schedule as crontabSchedule } from "node-cron";
5
5
  import { v4 as uuidv4 } from "uuid";
6
- import { AsyncWebdaAction } from "../models.js";
7
6
  import { Runner } from "./runner.js";
8
7
  import ServiceRunner from "./servicerunner.js";
9
8
  /**
@@ -20,6 +19,8 @@ export class AsyncJobServiceParameters extends ServiceParameters {
20
19
  this.onlyHttpHook ?? (this.onlyHttpHook = false);
21
20
  this.includeCron ?? (this.includeCron = true);
22
21
  this.logsLimit ?? (this.logsLimit = 500);
22
+ this.asyncActionModel ?? (this.asyncActionModel = "Webda/AsyncWebdaAction");
23
+ this.asyncOperationModel ?? (this.asyncOperationModel = "Webda/AsyncOperationAction");
23
24
  }
24
25
  }
25
26
  /**
@@ -28,6 +29,13 @@ export class AsyncJobServiceParameters extends ServiceParameters {
28
29
  * @WebdaModda
29
30
  */
30
31
  export default class AsyncJobService extends Service {
32
+ constructor() {
33
+ super(...arguments);
34
+ /**
35
+ * Validator of sessions
36
+ */
37
+ this.operationsQueries = {};
38
+ }
31
39
  /**
32
40
  * @inheritdoc
33
41
  */
@@ -39,6 +47,7 @@ export default class AsyncJobService extends Service {
39
47
  */
40
48
  resolve() {
41
49
  super.resolve();
50
+ this.model = this.getWebda().getModel(this.parameters.asyncActionModel);
42
51
  this.queue = this.getService(this.parameters.queue);
43
52
  if (!this.queue && !this.parameters.localLaunch) {
44
53
  throw new Error(`AsyncService requires a valid queue. '${this.parameters.queue}' is invalid`);
@@ -57,6 +66,28 @@ export default class AsyncJobService extends Service {
57
66
  return res;
58
67
  })
59
68
  .filter(r => r !== undefined);
69
+ // Add route for operations launch
70
+ if (this.parameters.asyncOperationDefinition) {
71
+ this.log("INFO", "Loading operations", this.parameters.asyncOperationDefinition);
72
+ this.operations = FileUtils.load(this.parameters.asyncOperationDefinition);
73
+ this.addRoute(`${this.parameters.url}{?full}`, ["GET"], this.listOperations);
74
+ this.addRoute(`${this.parameters.url}/{operationId}{?schedule}`, ["PUT"], this.launchOperation);
75
+ this.operationModel = this.getWebda().getModel(this.parameters.asyncOperationModel);
76
+ // Register all schemas
77
+ Object.keys(this.operations?.schemas || {})
78
+ .filter(key => !this.getWebda().getApplication().hasSchema(key))
79
+ .forEach(key => {
80
+ this.getWebda().getApplication().registerSchema(key, this.operations.schemas[key]);
81
+ });
82
+ // Register all operations now
83
+ Object.keys(this.operations?.operations || {}).forEach(key => {
84
+ this.getWebda().registerOperation(key, {
85
+ ...this.operations.operations[key],
86
+ method: "callOperation",
87
+ service: this.getName()
88
+ });
89
+ });
90
+ }
60
91
  // This is internal job reporting so no need to document the api
61
92
  this.addRoute(`${this.parameters.url}/status`, ["POST"], this.statusHook, {
62
93
  hidden: true
@@ -86,7 +117,8 @@ export default class AsyncJobService extends Service {
86
117
  */
87
118
  async checkRequest(context) {
88
119
  const url = context.getHttpContext().getRelativeUri();
89
- if (url.startsWith(this.parameters.url)) {
120
+ // Only for status endpoint - operations endpoint should still be authorized by something else
121
+ if (url === `${this.parameters.url}/status`) {
90
122
  // Allow status url to be called without other mechanism
91
123
  await this.verifyJobRequest(context);
92
124
  return true;
@@ -102,19 +134,19 @@ export default class AsyncJobService extends Service {
102
134
  const jobId = context.getHttpContext().getUniqueHeader("X-Job-Id");
103
135
  if (!jobId) {
104
136
  this.log("TRACE", "Require Job Id");
105
- throw 404;
137
+ throw new WebdaError.NotFound("X-Job-Id header required");
106
138
  }
107
139
  const action = await this.store.get(jobId);
108
140
  if (!action) {
109
141
  this.log("TRACE", `Unknown Job Id '${jobId}'`);
110
- throw 404;
142
+ throw new WebdaError.NotFound(`Unknown Job Id '${jobId}'`);
111
143
  }
112
144
  const jobTime = context.getHttpContext().getUniqueHeader("X-Job-Time");
113
145
  const jobHash = context.getHttpContext().getUniqueHeader("X-Job-Hash");
114
146
  // Ensure hash mac is correct
115
147
  if (jobHash !== crypto.createHmac(AsyncJobService.HMAC_ALGO, action.__secretKey).update(jobTime).digest("hex")) {
116
148
  this.log("TRACE", "Invalid Job HMAC");
117
- throw 403;
149
+ throw new WebdaError.Forbidden("Invalid Job HMAC");
118
150
  }
119
151
  // Set the context extension
120
152
  context.setExtension("asyncJob", action);
@@ -219,6 +251,81 @@ export default class AsyncJobService extends Service {
219
251
  JOB_ORCHESTRATOR: this.getName()
220
252
  };
221
253
  }
254
+ /**
255
+ * List available operations through this service
256
+ * @param context
257
+ */
258
+ async listOperations(context) {
259
+ this.log("INFO", "Listing operations called");
260
+ let filtered = JSONUtils.duplicate(this.operations);
261
+ // Filter operations based on permissions
262
+ Object.keys(filtered.operations)
263
+ .filter(key => filtered.operations[key].permission && !this.getWebda().checkOperationPermission(context, key))
264
+ .forEach(key => delete filtered.operations[key]);
265
+ // Remove permission definition
266
+ Object.values(filtered.operations)
267
+ .filter(def => def.permission)
268
+ .forEach(def => delete def.permission);
269
+ if (!context.getParameters().full) {
270
+ context.write(Object.keys(filtered.operations));
271
+ return;
272
+ }
273
+ const schemas = [];
274
+ Object.values(filtered.operations).forEach((operation) => {
275
+ if (operation.input) {
276
+ schemas.push(operation.input);
277
+ }
278
+ if (operation.output) {
279
+ schemas.push(operation.output);
280
+ }
281
+ });
282
+ // Filter schemas
283
+ Object.keys(filtered.schemas)
284
+ .filter(key => !schemas.includes(key))
285
+ .forEach(key => {
286
+ delete filtered.schemas[key];
287
+ });
288
+ context.write(filtered);
289
+ }
290
+ /**
291
+ * Call an operation for an external system
292
+ * @param context
293
+ * @returns
294
+ */
295
+ async callOperation(context) {
296
+ return await this.launchAction(new this.operationModel(context.getExtension("operation"), context));
297
+ }
298
+ /**
299
+ * Launch an operation through this service
300
+ */
301
+ async launchOperation(context) {
302
+ const { operationId, schedule } = context.getParameters();
303
+ try {
304
+ await this.getWebda().checkOperation(context, operationId);
305
+ }
306
+ catch (err) {
307
+ if (err instanceof OperationError) {
308
+ if (err.type === "InvalidInput") {
309
+ throw new WebdaError.BadRequest("Invalid Input");
310
+ }
311
+ else if (err.type === "PermissionDenied") {
312
+ throw new WebdaError.Forbidden("Permission Denied");
313
+ }
314
+ else if (err.type === "Unknown") {
315
+ throw new WebdaError.NotFound("Operation not found");
316
+ }
317
+ }
318
+ else {
319
+ throw err;
320
+ }
321
+ }
322
+ if (schedule) {
323
+ await this.scheduleAction(new this.operationModel(operationId, await SimpleOperationContext.fromContext(context)), schedule);
324
+ }
325
+ else {
326
+ await this.callOperation((await SimpleOperationContext.fromContext(context)).setExtension("operation", operationId));
327
+ }
328
+ }
222
329
  /**
223
330
  * Launch the action asynchronously
224
331
  * @param action
@@ -289,7 +396,7 @@ export default class AsyncJobService extends Service {
289
396
  * @param args
290
397
  */
291
398
  async launchAsAsyncAction(serviceName, method, ...args) {
292
- return this.launchAction(new AsyncWebdaAction(serviceName, method, ...args));
399
+ return this.launchAction(new this.model(serviceName, method, ...args));
293
400
  }
294
401
  /**
295
402
  * Execute a service.method as an AsyncAction
@@ -304,7 +411,7 @@ export default class AsyncJobService extends Service {
304
411
  // Create a temporary one if needed
305
412
  runner ?? (runner = await new ServiceRunner(this.getWebda(), this.getName() + "_temprunner").resolve().init());
306
413
  // Save action
307
- const action = await new AsyncWebdaAction(serviceName, method, ...args).save();
414
+ const action = await new this.model(serviceName, method, ...args).save();
308
415
  // Run it
309
416
  return (await runner.launchAction(action, this.getJobInfo(action))).promise;
310
417
  }
@@ -381,7 +488,7 @@ export default class AsyncJobService extends Service {
381
488
  return async () => {
382
489
  try {
383
490
  this.log("INFO", `Execute cron ${cron.cron}: ${cron.serviceName}.${cron.method}(...) # ${cron.description} as an AsyncOperationAction`);
384
- await this.launchAction(new AsyncWebdaAction(cron.serviceName, cron.method, cron.args));
491
+ await this.launchAction(new this.model(cron.serviceName, cron.method, cron.args));
385
492
  }
386
493
  catch (err) {
387
494
  this.log("ERROR", `Execution error cron ${cron.cron}: ${cron.serviceName}.${cron.method}(...) # ${cron.description} - ${err}`);
@@ -1 +1 @@
1
- {"version":3,"file":"asyncjobservice.js","sourceRoot":"","sources":["../../src/services/asyncjobservice.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EAGrB,IAAI,EAEJ,WAAW,EAGX,OAAO,EACP,iBAAiB,EAElB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAwB,MAAM,OAAO,CAAC;AAC7C,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,EAAE,QAAQ,IAAI,eAAe,EAAE,MAAM,WAAW,CAAC;AACxD,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,EAAqC,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAChF,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAY5C;;GAEG;AACH,MAAM,OAAO,yBAA0B,SAAQ,iBAAiB;IA0E9D,YAAY,MAAW;QACrB,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,GAAG,KAAR,IAAI,CAAC,GAAG,GAAK,aAAa,EAAC;QAC3B,IAAI,CAAC,KAAK,KAAV,IAAI,CAAC,KAAK,GAAK,mBAAmB,EAAC;QACnC,IAAI,CAAC,KAAK,KAAV,IAAI,CAAC,KAAK,GAAK,cAAc,EAAC;QAC9B,IAAI,CAAC,OAAO,KAAZ,IAAI,CAAC,OAAO,GAAK,EAAE,EAAC;QACpB,IAAI,CAAC,mBAAmB,KAAxB,IAAI,CAAC,mBAAmB,GAAK,KAAK,EAAC;QACnC,IAAI,CAAC,YAAY,KAAjB,IAAI,CAAC,YAAY,GAAK,KAAK,EAAC;QAC5B,IAAI,CAAC,WAAW,KAAhB,IAAI,CAAC,WAAW,GAAK,IAAI,EAAC;QAC1B,IAAI,CAAC,SAAS,KAAd,IAAI,CAAC,SAAS,GAAK,GAAG,EAAC;IACzB,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,eACnB,SAAQ,OAAU;IAyBlB;;OAEG;IACH,cAAc,CAAC,MAAW;QACxB,OAAO,IAAI,yBAAyB,CAAC,MAAM,CAAC,CAAC;IAC/C,CAAC;IACD;;OAEG;IACH,OAAO;QACL,KAAK,CAAC,OAAO,EAAE,CAAC;QAChB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACpD,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE;YAC/C,MAAM,IAAI,KAAK,CAAC,yCAAyC,IAAI,CAAC,UAAU,CAAC,KAAK,cAAc,CAAC,CAAC;SAC/F;QACD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACpD,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YACf,MAAM,IAAI,KAAK,CAAC,yCAAyC,IAAI,CAAC,UAAU,CAAC,KAAK,cAAc,CAAC,CAAC;SAC/F;QACD,kBAAkB;QAClB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO;aACnC,GAAG,CAAC,CAAC,CAAC,EAAE;YACP,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAS,CAAC,CAAC,CAAC;YACvC,IAAI,GAAG,KAAK,SAAS,EAAE;gBACrB,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,iBAAiB,CAAC,CAAC;aAChD;YACD,OAAO,GAAG,CAAC;QACb,CAAC,CAAC;aACD,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;QAEhC,gEAAgE;QAChE,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,SAAS,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE;YACxE,MAAM,EAAE,IAAI;SACb,CAAC,CAAC;QAEH,sCAAsC;QACtC,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE;YAC/B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAc,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;YAC7E,qFAAqF;YACrF,IAAI,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,4CAA4C,EAAE;gBAC3F,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,kBAAkB;gBAC5C,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,WAAW;gBACrC,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;gBACzB,OAAO,EAAE,CAAC,KAAK,CAAC;aACjB,CAAC,CAAC;YACH,IAAI,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,kCAAkC,EAAE;gBACjF,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,aAAa;gBACvC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,WAAW;gBACrC,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;gBACzB,OAAO,EAAE,CAAC,KAAK,CAAC;aACjB,CAAC,CAAC;SACJ;QACD,IAAI,CAAC,QAAQ,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAC5C,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAAC,OAAgB;QACjC,MAAM,GAAG,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,cAAc,EAAE,CAAC;QACtD,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;YACvC,wDAAwD;YACxD,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;YACrC,OAAO,IAAI,CAAC;SACb;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,gBAAgB,CAAsC,OAAgB;QAC1E,MAAM,KAAK,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;QACnE,IAAI,CAAC,KAAK,EAAE;YACV,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;YACpC,MAAM,GAAG,CAAC;SACX;QACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC3C,IAAI,CAAC,MAAM,EAAE;YACX,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,mBAAmB,KAAK,GAAG,CAAC,CAAC;YAC/C,MAAM,GAAG,CAAC;SACX;QACD,MAAM,OAAO,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;QACvE,MAAM,OAAO,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;QACvE,6BAA6B;QAC7B,IAAI,OAAO,KAAK,MAAM,CAAC,UAAU,CAAC,eAAe,CAAC,SAAS,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;YAC9G,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;YACtC,MAAM,GAAG,CAAC;SACX;QACD,4BAA4B;QAC5B,OAAO,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QACzC,OAAU,MAAM,CAAC;IACnB,CAAC;IAED;;;;OAIG;IACO,KAAK,CAAC,UAAU,CAAC,OAAgB;QACzC,IAAI,MAAM,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAClD,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,cAAc,EAAE,CAAC;QAC5C,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAC9B,MAAM,EACN,IAAI,EACJ,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAC7E,CAAC;QACF,OAAO,CAAC,KAAK,CAAC,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED;;;;;;OAMG;IACO,KAAK,CAAC,YAAY,CAAC,MAAmB,EAAE,IAA0B,EAAE,aAAqB,CAAC;QAClG,MAAM,CAAC,cAAc,GAAG,UAAU,CAAC;QACnC,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,cAAc,GAAG,EAAE,EAAE;YAC3C,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;SACpC;QAED,IAAI,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACzC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;YAC/B,+BAA+B;YAC/B,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE;gBAClD,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;aACjE;SACF;QACD,CAAC,QAAQ,EAAE,cAAc,EAAE,eAAe,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;YACjE,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE;gBACzB,aAAa;gBACb,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;aACrB;QACH,CAAC,CAAC,CAAC;QACH,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAC3C,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,MAAM;QACV,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YAC7B,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;SAC5D;QAED,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACzD,CAAC;IAED;;;OAGG;IACO,KAAK,CAAC,WAAW,CAAC,KAA2B;QACrD,IAAI,cAAc,CAAC;QACnB,oCAAoC;QACpC,KAAK,IAAI,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE;YAC/B,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;gBACjC,cAAc,GAAG,MAAM,CAAC;gBACxB,MAAM;aACP;SACF;QACD,qBAAqB;QACrB,IAAI,cAAc,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE;YACnE,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;SAClC;QACD,IAAI,cAAc,KAAK,SAAS,EAAE;YAChC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,mCAAmC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;YACnE,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CACpB;gBACE,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,MAAM,EAAE,OAAO;gBACf,YAAY,EAAE,6BAA6B;aAC5C,EACD,IAAI,CACL,CAAC;YACF,OAAO;SACR;QACD,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,mBAAmB,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QAClD,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CACpB;YACE,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,MAAM,EAAE,UAAU;SACnB,EACD,IAAI,CACL,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAChD,IAAI,GAAG,GAAG,MAAM,cAAc,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;QAC7E,MAAM,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;QAClC,OAAO,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAC1C,CAAC;IAED;;;;OAIG;IACH,UAAU,CAAC,MAAmB;QAC5B,OAAO;YACL,cAAc,EAAE,MAAM,CAAC,WAAW;YAClC,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE;YACxB,QAAQ,EACN,IAAI,CAAC,UAAU,CAAC,YAAY,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO;YACjH,gBAAgB,EAAE,IAAI,CAAC,OAAO,EAAE;SACjC,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,YAAY,CAAC,MAAmB;QACpC,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC;QACzB,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC;QACtC,MAAM,CAAC,WAAW,GAAG,MAAM,EAAE,CAAC;QAC9B,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC9B,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE;YAC/B,OAAO,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;SACzG;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IAChH,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,cAAc,CAAC,MAAmB,EAAE,SAAiB;QACzD,MAAM,CAAC,MAAM,GAAG,WAAW,CAAC;QAC5B,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC;QACtC,6CAA6C;QAC7C,MAAM,CAAC,SAAS,GAAG,SAAS,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC;QACjF,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAED;;;;;OAKG;IACH,UAAU,CAAC,OAAgB;QACzB,IAAI,GAAG,GAA8B;YACnC,UAAU,EAAE,OAAO,CAAC,MAAM;YAC1B,YAAY,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;SACpC,CAAC;QACF,GAAG,CAAC,YAAY,CAAC,GAAG,MAAM;aACvB,UAAU,CAAC,eAAe,CAAC,SAAS,EAAE,OAAO,CAAC,cAAc,CAAC;aAC7D,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;aACzB,MAAM,CAAC,KAAK,CAAC,CAAC;QACjB,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,QAAQ,CAAC,OAAgB,EAAE,OAAY;QAC3C,yEAAyE;QACzE,IAAI,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;YACvC,OAAO,CACL,MAAM,KAAK,CAAC,IAAI,CAAuC,OAAO,CAAC,QAAQ,EAAE,OAAO,EAAE;gBAChF,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;aAClC,CAAC,CACH,CAAC,IAAI,CAAC;SACR;aAAM,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE;YACvC,yFAAyF;YACzF,OAAkC,IAAI,CAAC,YAAY,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC;SACpG;IACH,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,mBAAmB,CAAC,WAAmB,EAAE,MAAc,EAAE,GAAG,IAAI;QACpE,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;IAC/E,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,oBAAoB,CAAC,WAAmB,EAAE,MAAc,EAAE,GAAG,IAAI;QACrE,IAAI,MAAM,GAAkB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QACpG,mCAAmC;QACnC,MAAM,KAAN,MAAM,GAAK,MAAM,IAAI,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG,aAAa,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAC;QACrG,cAAc;QACd,MAAM,MAAM,GAAG,MAAM,IAAI,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;QAC/E,SAAS;QACT,OAAO,CAAC,MAAM,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IAC9E,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,uBAAuB,CAAC,OAAiB;QAC7C,0BAA0B;QAC1B,IAAI,OAAO,KAAK,SAAS,EAAE;YACzB,OAAO,GAAY,EAAE,CAAC;YACtB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;iBACrB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;gBAClC,aAAa;iBACZ,OAAO,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAC1D;QACD,yBAAyB;QACzB,IAAI,CAAC,OAAO,CAAC,gBAAgB,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;YAChG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,wCAAwC,CAAC,CAAC;YAC5D,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;SAC3D;QACD,qDAAqD;QACrD,IAAI,OAAO,CAAC,gBAAgB,KAAK,IAAI,CAAC,OAAO,EAAE,EAAE;YAC/C,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,mBAAmB,OAAO,sBAAsB,CAAC,CAAC;YACpE,OAAO,IAAI,CAAC,UAAU,CAAkB,OAAO,CAAC,gBAAgB,CAAC,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;SACpG;QACD,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,qCAAqC,EAAE,OAAO,CAAC,CAAC;QAClE,sCAAsC;QACtC,IAAI,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;YACxC,KAAK,EAAE;gBACL,GAAG,MAAM,CAAC,YAAY,EAAE;gBACxB,WAAW,EAAE,OAAO,CAAC,OAAO;aAC7B;YACD,MAAM,EAAE,SAAS;SAClB,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,iBAAiB,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QAC1F,IAAI,OAAO,CAAC;QACZ,IAAI;YACF,mCAAmC;YACnC,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;gBACzC,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAC;aACvF;YACD,oCAAoC;YACpC,IAAI,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YAClD,IAAI,CAAC,OAAO,EAAE;gBACZ,MAAM,IAAI,KAAK,CAAC,6BAA6B,MAAM,CAAC,WAAW,mCAAmC,CAAC,CAAC;aACrG;YACD,aAAa;YACb,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;gBAC3B,MAAM,IAAI,KAAK,CACb,4BAA4B,MAAM,CAAC,MAAM,0BAA0B,MAAM,CAAC,WAAW,wBAAwB,CAC9G,CAAC;aACH;YACD,aAAa;YACb,OAAO,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,CAAC;SACrE;QAAC,OAAO,GAAG,EAAE;YACZ,kBAAkB;YAClB,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;gBAC3B,YAAY,EAAsB,GAAG,EAAE,OAAO;gBAC9C,MAAM,EAAE,OAAO;aAChB,CAAC,CAAC;YACH,OAAO;SACR;QACD,gBAAgB;QAChB,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;YAC3B,OAAO;YACP,MAAM,EAAE,SAAS;SAClB,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,eAAe,CAAC,IAAoB;QAClC,OAAO,KAAK,IAAI,EAAE;YAChB,IAAI;gBACF,IAAI,CAAC,GAAG,CACN,MAAM,EACN,gBAAgB,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,MAAM,WAAW,IAAI,CAAC,WAAW,6BAA6B,CACtH,CAAC;gBACF,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,gBAAgB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;aACzF;YAAC,OAAO,GAAG,EAAE;gBACZ,IAAI,CAAC,GAAG,CACN,OAAO,EACP,wBAAwB,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,MAAM,WAAW,IAAI,CAAC,WAAW,MAAM,GAAG,EAAE,CAC5G,CAAC;aACH;QACH,CAAC,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,SAAS;QACP,sCAAsC;QACtC,yEAAyE;QACzE,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE;YAC/B,WAAW,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;gBACpE,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,iBAAiB,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,MAAM,WAAW,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;gBAC9G,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;YACzD,CAAC,CAAC,CAAC;SACJ;QACD,0DAA0D;QAC1D,OAAO,IAAI,qBAAqB,CAAC,KAAK,IAAI,EAAE;YAC1C,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACtB,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC;YACnD,oBAAoB;YACpB,MAAM,OAAO,CAAC,GAAG,CACf,CACE,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,wCAAwC,IAAI,GAAG,CAAC,EAAE,CAAC,CAC3E,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CACzC,CAAC;YACF,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC;YAC5C,qCAAqC;YACrC,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE;gBACrB,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;gBACpC,oBAAoB;aACrB;QACH,CAAC,CAAC,CAAC;IACL,CAAC;;AArbD;;GAEG;AACI,yBAAS,GAAW,QAAQ,CAAC;AAqbtC,OAAO,EAAE,eAAe,EAAE,CAAC"}
1
+ {"version":3,"file":"asyncjobservice.js","sourceRoot":"","sources":["../../src/services/asyncjobservice.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { ConsoleLogger, MemoryLogger } from "@webda/workout";
2
+ import { AsyncOperationAction, AsyncWebdaAction } from "../models.js";
2
3
  import { Runner, RunnerParameters } from "./runner.js";
3
4
  /**
4
5
  * Keep log in memory and save it to the action object every 5s
@@ -13,11 +14,14 @@ export class ActionMemoryLogger extends MemoryLogger {
13
14
  onMessage(msg) {
14
15
  super.onMessage(msg);
15
16
  if (!this.timeout) {
16
- setTimeout(() => this.save(), this.logSaveDelay);
17
+ this.timeout = setTimeout(() => this.save(), this.logSaveDelay);
17
18
  }
18
19
  }
19
20
  save() {
20
- this.timeout = undefined;
21
+ if (this.timeout) {
22
+ clearTimeout(this.timeout);
23
+ this.timeout = undefined;
24
+ }
21
25
  return this.action.patch({ logs: this.getLogs().map(msg => ConsoleLogger.format(msg, this.format)) }, null);
22
26
  }
23
27
  async saveAndClose() {
@@ -52,9 +56,9 @@ export default class ServiceRunner extends Runner {
52
56
  * @inheritdoc
53
57
  */
54
58
  async launchAction(action, info) {
55
- if (action.type !== "AsyncWebdaAction" && action.type !== "AsyncOperationAction") {
56
- this.log("ERROR", "Can only handle AsyncWebdaAction or AsyncOperationAction got", action.type);
57
- throw new Error("Can only handle AsyncWebdaAction or AsyncOperationAction got " + action.type);
59
+ if (!(action instanceof AsyncWebdaAction || action instanceof AsyncOperationAction)) {
60
+ this.log("ERROR", "Can only handle AsyncWebdaAction or AsyncOperationAction got", action.constructor.name);
61
+ throw new Error("Can only handle AsyncWebdaAction or AsyncOperationAction got " + action.constructor.name);
58
62
  }
59
63
  // Launch within current process
60
64
  let promise = (async (action) => {
@@ -64,13 +68,11 @@ export default class ServiceRunner extends Runner {
64
68
  this.log("INFO", "Job", action.getUuid(), "started");
65
69
  // Inject a MemoryLogger to capture and report any logs
66
70
  logger = new ActionMemoryLogger(this.getWebda().getWorkerOutput(), action.logLevel, this.getService(info.JOB_ORCHESTRATOR)?.getParameters().logsLimit || 5000, action, this.parameters.logSaveDelay, this.parameters.logFormat);
67
- if (action.type === "AsyncWebdaAction") {
68
- const webdaAction = action;
69
- await this.getService(webdaAction.serviceName)[webdaAction.method](...(webdaAction.arguments || []));
71
+ if (action instanceof AsyncWebdaAction) {
72
+ await this.getService(action.serviceName)[action.method](...(action.arguments || []));
70
73
  }
71
74
  else {
72
- const operationAction = action;
73
- await this.getWebda().callOperation(operationAction.context, operationAction.operationId);
75
+ await this.getWebda().callOperation(action.context, action.operationId);
74
76
  }
75
77
  await logger.saveAndClose();
76
78
  await action.patch({ status: "SUCCESS" }, null);
@@ -1 +1 @@
1
- {"version":3,"file":"servicerunner.js","sourceRoot":"","sources":["../../src/services/servicerunner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,YAAY,EAA+C,MAAM,gBAAgB,CAAC;AAG1G,OAAO,EAAa,MAAM,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAkB/D;;GAEG;AACH,MAAM,OAAO,kBAAmB,SAAQ,YAAY;IAGlD,YACE,MAAoB,EACpB,KAAqB,EACrB,KAAa,EACH,MAAmB,EACtB,YAAoB,EACpB,MAAe;QAEtB,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAJlB,WAAM,GAAN,MAAM,CAAa;QACtB,iBAAY,GAAZ,YAAY,CAAQ;QACpB,WAAM,GAAN,MAAM,CAAS;IAGxB,CAAC;IAED,SAAS,CAAC,GAAkB;QAC1B,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QACrB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACjB,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;SAClD;IACH,CAAC;IAED,IAAI;QACF,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;QACzB,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IAC9G,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC;IACrB,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,uBAAwB,SAAQ,gBAAgB;IAc3D,YAAY,MAAW;QACrB,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,YAAY,KAAjB,IAAI,CAAC,YAAY,GAAK,IAAI,EAAC;IAC7B,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,aAA2E,SAAQ,MAAS;IAC/G;;;;OAIG;IACH,cAAc,CAAC,MAAW;QACxB,OAAO,IAAI,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAC7C,CAAC;IACD;;OAEG;IACH,KAAK,CAAC,YAAY,CAAC,MAAmB,EAAE,IAAa;QACnD,IAAI,MAAM,CAAC,IAAI,KAAK,kBAAkB,IAAI,MAAM,CAAC,IAAI,KAAK,sBAAsB,EAAE;YAChF,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,8DAA8D,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;YAC/F,MAAM,IAAI,KAAK,CAAC,+DAA+D,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;SAChG;QAED,gCAAgC;QAChC,IAAI,OAAO,GAAG,CAAC,KAAK,EAAE,MAA+C,EAAE,EAAE;YACvE,IAAI,MAAM,CAAC;YACX,IAAI;gBACF,MAAM,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;gBAC1C,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;gBACrD,uDAAuD;gBACvD,MAAM,GAAG,IAAI,kBAAkB,CAC7B,IAAI,CAAC,QAAQ,EAAE,CAAC,eAAe,EAAE,EACjC,MAAM,CAAC,QAAQ,EACf,IAAI,CAAC,UAAU,CAAkB,IAAI,CAAC,gBAAgB,CAAC,EAAE,aAAa,EAAE,CAAC,SAAS,IAAI,IAAI,EAC1F,MAAM,EACN,IAAI,CAAC,UAAU,CAAC,YAAY,EAC5B,IAAI,CAAC,UAAU,CAAC,SAAS,CAC1B,CAAC;gBACF,IAAI,MAAM,CAAC,IAAI,KAAK,kBAAkB,EAAE;oBACtC,MAAM,WAAW,GAAqB,MAAM,CAAC;oBAC7C,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,CAAC;iBACtG;qBAAM;oBACL,MAAM,eAAe,GAAyB,MAAM,CAAC;oBACrD,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC,aAAa,CAAC,eAAe,CAAC,OAAO,EAAE,eAAe,CAAC,WAAW,CAAC,CAAC;iBAC3F;gBACD,MAAM,MAAM,CAAC,YAAY,EAAE,CAAC;gBAE5B,MAAM,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,IAAI,CAAC,CAAC;gBAChD,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,UAAU,CAAC,CAAC;aACvD;YAAC,OAAO,GAAG,EAAE;gBACZ,MAAM,MAAM,EAAE,YAAY,EAAE,CAAC;gBAC7B,MAAM,MAAM,CAAC,KAAK,CAChB;oBACE,MAAM,EAAE,OAAO;oBACf,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;iBACnE,EACD,IAAI,CACL,CAAC;gBACF,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;aAC5D;QACH,CAAC,CAAC,CAA0C,MAAM,CAAC,CAAC;QAEpD,OAAO;YACL,KAAK,EAAE,MAAM,CAAC,YAAY,EAAE;YAC5B,OAAO;SACR,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"servicerunner.js","sourceRoot":"","sources":["../../src/services/servicerunner.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webda/async",
3
- "version": "2.4.1",
3
+ "version": "3.0.0",
4
4
  "description": "Async System",
5
5
  "main": "lib/index.js",
6
6
  "scripts": {
@@ -20,12 +20,12 @@
20
20
  "package.json"
21
21
  ],
22
22
  "dependencies": {
23
- "@webda/core": "^2.4.1",
23
+ "@webda/core": "^3.0.0",
24
24
  "axios": "^1.1.3"
25
25
  },
26
26
  "devDependencies": {
27
27
  "@types/node": "14.6.0",
28
- "@webda/tsc-esm": "^1.0.2",
28
+ "@webda/tsc-esm": "^1.0.3",
29
29
  "mocha": "^10.0.0",
30
30
  "sinon": "^15.0.0",
31
31
  "source-map-support": "^0.5.19",
@@ -60,7 +60,13 @@
60
60
  },
61
61
  "type": "module",
62
62
  "engines": {
63
- "node": ">=14.6.0"
63
+ "node": ">=16.0.0"
64
64
  },
65
- "gitHead": "82146b9c298146d227d4c9d17b88b4fa3ee43606"
65
+ "nx": {
66
+ "implicitDependencies": [
67
+ "@webda/core",
68
+ "@webda/tsc-esm"
69
+ ]
70
+ },
71
+ "gitHead": "67704355e1216df11dce10e4e509e4a72a1c4bf2"
66
72
  }
package/webda.module.json CHANGED
@@ -1,18 +1,107 @@
1
1
  {
2
+ "beans": {},
3
+ "deployers": {},
2
4
  "moddas": {
3
- "webda/asyncjobservice": "lib/services/asyncjobservice:default",
4
- "webda/localrunner": "lib/services/localrunner:default",
5
- "webda/servicerunner": "lib/services/servicerunner:default"
5
+ "Webda/AsyncJobService": "lib/services/asyncjobservice:default",
6
+ "Webda/LocalRunner": "lib/services/localrunner:default",
7
+ "Webda/ServiceRunner": "lib/services/servicerunner:default"
6
8
  },
7
- "beans": {},
8
9
  "models": {
9
- "webda/asyncaction": "lib/models:default",
10
- "webda/asyncoperationaction": "lib/models:AsyncOperationAction",
11
- "webda/asyncwebdaaction": "lib/models:AsyncWebdaAction"
10
+ "graph": {
11
+ "Webda/AsyncAction": {},
12
+ "Webda/AsyncOperationAction": {},
13
+ "Webda/AsyncWebdaAction": {}
14
+ },
15
+ "tree": {
16
+ "Webda/AsyncAction": {
17
+ "Webda/AsyncWebdaAction": {},
18
+ "Webda/AsyncOperationAction": {}
19
+ }
20
+ },
21
+ "plurals": {},
22
+ "list": {
23
+ "Webda/AsyncAction": "lib/models:default",
24
+ "Webda/AsyncOperationAction": "lib/models:AsyncOperationAction",
25
+ "Webda/AsyncWebdaAction": "lib/models:AsyncWebdaAction"
26
+ },
27
+ "reflections": {
28
+ "Webda/AsyncAction": {
29
+ "uuid": "string",
30
+ "status": "\"RUNNING\" | \"SUCCESS\" | \"ERROR\" | \"QUEUED\" | \"STARTING\" | \"TIMEOUT\" | \"SCHEDULED\"",
31
+ "scheduled": "number",
32
+ "errorMessage": "string",
33
+ "job": "Job",
34
+ "_lastJobUpdate": "number",
35
+ "results": "any",
36
+ "statusDetails": "any",
37
+ "type": "string",
38
+ "arguments": "any[]",
39
+ "logs": "string[]",
40
+ "___secretKey": "string",
41
+ "action": "\"STOP\" | string",
42
+ "___class": "CoreModelDefinition",
43
+ "___type": "string",
44
+ "___types": "string[]",
45
+ "___ctx": "OperationContext",
46
+ "___store": "Store<this>",
47
+ "___dirty": "Set<string | symbol>",
48
+ "_creationDate": "Date",
49
+ "_lastUpdate": "Date",
50
+ "___deleted": "boolean"
51
+ },
52
+ "Webda/AsyncOperationAction": {
53
+ "uuid": "string",
54
+ "status": "\"RUNNING\" | \"SUCCESS\" | \"ERROR\" | \"QUEUED\" | \"STARTING\" | \"TIMEOUT\" | \"SCHEDULED\"",
55
+ "scheduled": "number",
56
+ "errorMessage": "string",
57
+ "job": "Job",
58
+ "_lastJobUpdate": "number",
59
+ "results": "any",
60
+ "statusDetails": "any",
61
+ "type": "string",
62
+ "arguments": "any[]",
63
+ "logs": "string[]",
64
+ "___secretKey": "string",
65
+ "action": "\"STOP\" | string",
66
+ "___class": "CoreModelDefinition",
67
+ "___type": "string",
68
+ "___types": "string[]",
69
+ "___ctx": "OperationContext",
70
+ "___store": "Store<this>",
71
+ "___dirty": "Set<string | symbol>",
72
+ "_creationDate": "Date",
73
+ "_lastUpdate": "Date",
74
+ "___deleted": "boolean"
75
+ },
76
+ "Webda/AsyncWebdaAction": {
77
+ "logLevel": "WorkerLogLevel",
78
+ "uuid": "string",
79
+ "status": "\"RUNNING\" | \"SUCCESS\" | \"ERROR\" | \"QUEUED\" | \"STARTING\" | \"TIMEOUT\" | \"SCHEDULED\"",
80
+ "scheduled": "number",
81
+ "errorMessage": "string",
82
+ "job": "Job",
83
+ "_lastJobUpdate": "number",
84
+ "results": "any",
85
+ "statusDetails": "any",
86
+ "type": "string",
87
+ "arguments": "any[]",
88
+ "logs": "string[]",
89
+ "___secretKey": "string",
90
+ "action": "\"STOP\" | string",
91
+ "___class": "CoreModelDefinition",
92
+ "___type": "string",
93
+ "___types": "string[]",
94
+ "___ctx": "OperationContext",
95
+ "___store": "Store<this>",
96
+ "___dirty": "Set<string | symbol>",
97
+ "_creationDate": "Date",
98
+ "_lastUpdate": "Date",
99
+ "___deleted": "boolean"
100
+ }
101
+ }
12
102
  },
13
- "deployers": {},
14
103
  "schemas": {
15
- "webda/asyncaction": {
104
+ "Webda/AsyncAction": {
16
105
  "type": "object",
17
106
  "properties": {
18
107
  "_creationDate": {
@@ -99,119 +188,105 @@
99
188
  "$schema": "http://json-schema.org/draft-07/schema#",
100
189
  "title": "AsyncAction"
101
190
  },
102
- "webda/asyncwebdaaction": {
191
+ "Webda/AsyncJobService": {
103
192
  "type": "object",
104
193
  "properties": {
105
- "_creationDate": {
194
+ "type": {
106
195
  "type": "string",
107
- "format": "date-time",
108
- "description": "Creation date",
109
- "readOnly": true
196
+ "description": "Type of the service"
110
197
  },
111
- "_lastUpdate": {
198
+ "url": {
112
199
  "type": "string",
113
- "format": "date-time",
114
- "description": "Last update date",
115
- "readOnly": true
200
+ "description": "URL to expose job status report hook",
201
+ "default": "/async/jobs"
116
202
  },
117
- "uuid": {
203
+ "store": {
118
204
  "type": "string",
119
- "description": "Action uuid"
205
+ "description": "Store name to use for async actions",
206
+ "default": "AsyncActions"
120
207
  },
121
- "status": {
208
+ "binaryStore": {
122
209
  "type": "string",
123
- "enum": [
124
- "RUNNING",
125
- "SUCCESS",
126
- "ERROR",
127
- "QUEUED",
128
- "STARTING",
129
- "TIMEOUT",
130
- "SCHEDULED"
131
- ],
132
- "description": "Current status"
210
+ "description": "If we want to expose a way to upload/download binary for the job\n\nIt will expose a /download and /upload additional url"
133
211
  },
134
- "scheduled": {
135
- "type": "number",
136
- "description": "Timestamp when the action was scheduled"
212
+ "localLaunch": {
213
+ "type": "boolean",
214
+ "description": "If set runner will be called without queue",
215
+ "default": false
137
216
  },
138
- "errorMessage": {
217
+ "queue": {
139
218
  "type": "string",
140
- "description": "If an error occured it should contain the message"
219
+ "description": "Queue to post execution to",
220
+ "default": "AsyncActionsQueue"
141
221
  },
142
- "job": {
143
- "type": "object",
144
- "description": "Job information"
222
+ "fallbackOnFirst": {
223
+ "type": "boolean",
224
+ "description": "Fallback on first runner if none match",
225
+ "default": false
145
226
  },
146
- "_lastJobUpdate": {
147
- "type": "number",
148
- "description": "Last time the job was updated",
149
- "readOnly": true
227
+ "runners": {
228
+ "type": "array",
229
+ "items": {
230
+ "type": "string"
231
+ },
232
+ "description": "Runners to use"
150
233
  },
151
- "results": {
152
- "description": "Results from the job"
234
+ "concurrencyLimit": {
235
+ "type": "number",
236
+ "description": "Limit the maximum number of jobs running in //"
153
237
  },
154
- "statusDetails": {
155
- "description": "Job current status"
238
+ "onlyHttpHook": {
239
+ "type": "boolean",
240
+ "description": "Define if we should only use an http hook and not rely on store for AsyncOperation",
241
+ "default": false
156
242
  },
157
- "type": {
158
- "type": "string"
243
+ "includeCron": {
244
+ "type": "boolean",
245
+ "description": "Include Cron annotation to launch them as AsyncOperationAction",
246
+ "default": true
159
247
  },
160
- "arguments": {
161
- "type": "array",
162
- "items": {}
248
+ "schedulerResolution": {
249
+ "type": "number",
250
+ "description": "Schedule action resolution\n\nIf set to 1000ms, you can schedule action per second by default it resolve per minute",
251
+ "default": 60000
163
252
  },
164
- "logs": {
165
- "type": "array",
166
- "items": {
167
- "type": "string"
168
- },
169
- "description": "Current logs"
253
+ "logsLimit": {
254
+ "type": "number",
255
+ "description": "Limit the number of lines of logs available for an async action\n\nIf you need to store large amount of logs then you should use the CloudWatchLogger or similar logger",
256
+ "default": 500
170
257
  },
171
- "action": {
258
+ "asyncActionModel": {
172
259
  "type": "string",
173
- "description": "Expected action for the job\n\nIt should be a verb"
260
+ "description": "Model to use when launching async action",
261
+ "default": "Webda/AsyncWebdaAction"
174
262
  },
175
- "logLevel": {
176
- "$ref": "#/definitions/WorkerLogLevel"
177
- },
178
- "serviceName": {
263
+ "asyncOperationModel": {
179
264
  "type": "string",
180
- "description": "service to call"
265
+ "description": "Model to use when launching async operation",
266
+ "default": "Webda/AsyncOperationAction"
181
267
  },
182
- "method": {
268
+ "asyncOperationDefinition": {
183
269
  "type": "string",
184
- "description": "method to call"
270
+ "description": "JSON file of the AsyncOperation definition\n\nGenerated with `webda operations operations.json`"
271
+ },
272
+ "openapi": {
273
+ "type": "object",
274
+ "additionalProperties": true
185
275
  }
186
276
  },
187
277
  "required": [
188
- "job",
189
- "logLevel",
190
- "logs",
191
- "results",
192
- "status",
193
- "statusDetails",
278
+ "fallbackOnFirst",
279
+ "logsLimit",
280
+ "queue",
281
+ "runners",
282
+ "store",
194
283
  "type",
195
- "uuid"
284
+ "url"
196
285
  ],
197
- "description": "Define a Webda Async Action",
198
286
  "$schema": "http://json-schema.org/draft-07/schema#",
199
- "definitions": {
200
- "WorkerLogLevel": {
201
- "type": "string",
202
- "enum": [
203
- "ERROR",
204
- "WARN",
205
- "INFO",
206
- "DEBUG",
207
- "TRACE"
208
- ],
209
- "description": "LogLevel as intersection to compare with integer values"
210
- }
211
- },
212
- "title": "AsyncWebdaAction"
287
+ "title": "AsyncJobService"
213
288
  },
214
- "webda/asyncoperationaction": {
289
+ "Webda/AsyncOperationAction": {
215
290
  "type": "object",
216
291
  "properties": {
217
292
  "_creationDate": {
@@ -373,91 +448,119 @@
373
448
  },
374
449
  "title": "AsyncOperationAction"
375
450
  },
376
- "webda/asyncjobservice": {
451
+ "Webda/AsyncWebdaAction": {
377
452
  "type": "object",
378
453
  "properties": {
379
- "type": {
454
+ "_creationDate": {
380
455
  "type": "string",
381
- "description": "Type of the service"
456
+ "format": "date-time",
457
+ "description": "Creation date",
458
+ "readOnly": true
382
459
  },
383
- "url": {
460
+ "_lastUpdate": {
384
461
  "type": "string",
385
- "description": "URL to expose job status report hook",
386
- "default": "/async/jobs"
462
+ "format": "date-time",
463
+ "description": "Last update date",
464
+ "readOnly": true
387
465
  },
388
- "store": {
466
+ "uuid": {
389
467
  "type": "string",
390
- "description": "Store name to use for async actions",
391
- "default": "AsyncActions"
468
+ "description": "Action uuid"
392
469
  },
393
- "binaryStore": {
470
+ "status": {
394
471
  "type": "string",
395
- "description": "If we want to expose a way to upload/download binary for the job\n\nIt will expose a /download and /upload additional url"
472
+ "enum": [
473
+ "RUNNING",
474
+ "SUCCESS",
475
+ "ERROR",
476
+ "QUEUED",
477
+ "STARTING",
478
+ "TIMEOUT",
479
+ "SCHEDULED"
480
+ ],
481
+ "description": "Current status"
396
482
  },
397
- "localLaunch": {
398
- "type": "boolean",
399
- "description": "If set runner will be called without queue",
400
- "default": false
483
+ "scheduled": {
484
+ "type": "number",
485
+ "description": "Timestamp when the action was scheduled"
401
486
  },
402
- "queue": {
487
+ "errorMessage": {
403
488
  "type": "string",
404
- "description": "Queue to post execution to",
405
- "default": "AsyncActionsQueue"
489
+ "description": "If an error occured it should contain the message"
406
490
  },
407
- "fallbackOnFirst": {
408
- "type": "boolean",
409
- "description": "Fallback on first runner if none match",
410
- "default": false
491
+ "job": {
492
+ "type": "object",
493
+ "description": "Job information"
411
494
  },
412
- "runners": {
495
+ "_lastJobUpdate": {
496
+ "type": "number",
497
+ "description": "Last time the job was updated",
498
+ "readOnly": true
499
+ },
500
+ "results": {
501
+ "description": "Results from the job"
502
+ },
503
+ "statusDetails": {
504
+ "description": "Job current status"
505
+ },
506
+ "type": {
507
+ "type": "string"
508
+ },
509
+ "arguments": {
510
+ "type": "array",
511
+ "items": {}
512
+ },
513
+ "logs": {
413
514
  "type": "array",
414
515
  "items": {
415
516
  "type": "string"
416
517
  },
417
- "description": "Runners to use"
418
- },
419
- "concurrencyLimit": {
420
- "type": "number",
421
- "description": "Limit the maximum number of jobs running in //"
422
- },
423
- "onlyHttpHook": {
424
- "type": "boolean",
425
- "description": "Define if we should only use an http hook and not rely on store for AsyncOperation",
426
- "default": false
518
+ "description": "Current logs"
427
519
  },
428
- "includeCron": {
429
- "type": "boolean",
430
- "description": "Include Cron annotation to launch them as AsyncOperationAction",
431
- "default": true
520
+ "action": {
521
+ "type": "string",
522
+ "description": "Expected action for the job\n\nIt should be a verb"
432
523
  },
433
- "schedulerResolution": {
434
- "type": "number",
435
- "description": "Schedule action resolution\n\nIf set to 1000ms, you can schedule action per second by default it resolve per minute",
436
- "default": 60000
524
+ "logLevel": {
525
+ "$ref": "#/definitions/WorkerLogLevel"
437
526
  },
438
- "logsLimit": {
439
- "type": "number",
440
- "description": "Limit the number of lines of logs available for an async action\n\nIf you need to store large amount of logs then you should use the CloudWatchLogger or similar logger",
441
- "default": 500
527
+ "serviceName": {
528
+ "type": "string",
529
+ "description": "service to call"
442
530
  },
443
- "openapi": {
444
- "type": "object",
445
- "additionalProperties": true
531
+ "method": {
532
+ "type": "string",
533
+ "description": "method to call"
446
534
  }
447
535
  },
448
536
  "required": [
449
- "fallbackOnFirst",
450
- "logsLimit",
451
- "queue",
452
- "runners",
453
- "store",
537
+ "job",
538
+ "logLevel",
539
+ "logs",
540
+ "results",
541
+ "status",
542
+ "statusDetails",
454
543
  "type",
455
- "url"
544
+ "uuid"
456
545
  ],
546
+ "description": "Define a Webda Async Action",
457
547
  "$schema": "http://json-schema.org/draft-07/schema#",
458
- "title": "AsyncJobService"
548
+ "definitions": {
549
+ "WorkerLogLevel": {
550
+ "type": "string",
551
+ "enum": [
552
+ "ERROR",
553
+ "WARN",
554
+ "INFO",
555
+ "DEBUG",
556
+ "TRACE"
557
+ ],
558
+ "description": "LogLevel as intersection to compare with integer values"
559
+ }
560
+ },
561
+ "title": "AsyncWebdaAction"
459
562
  },
460
- "webda/localrunner": {
563
+ "Webda/LocalRunner": {
461
564
  "type": "object",
462
565
  "properties": {
463
566
  "type": {
@@ -614,7 +717,7 @@
614
717
  },
615
718
  "title": "LocalRunner"
616
719
  },
617
- "webda/servicerunner": {
720
+ "Webda/ServiceRunner": {
618
721
  "type": "object",
619
722
  "properties": {
620
723
  "type": {