@webda/async 4.0.0-beta.1 → 4.0.0-beta.10

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.
Files changed (41) hide show
  1. package/README.md +92 -8
  2. package/lib/{models.d.ts → asyncaction.model.d.ts} +76 -42
  3. package/lib/asyncaction.model.d.ts.map +1 -0
  4. package/lib/asyncaction.model.js +269 -0
  5. package/lib/asyncaction.model.js.map +1 -0
  6. package/lib/index.d.ts +7 -4
  7. package/lib/index.d.ts.map +1 -0
  8. package/lib/index.js +6 -4
  9. package/lib/index.js.map +1 -1
  10. package/lib/services/asyncevents.service.d.ts +154 -0
  11. package/lib/services/asyncevents.service.d.ts.map +1 -0
  12. package/lib/services/asyncevents.service.js +219 -0
  13. package/lib/services/asyncevents.service.js.map +1 -0
  14. package/lib/services/{asyncjobservice.d.ts → asyncjobservice.service.d.ts} +79 -74
  15. package/lib/services/asyncjobservice.service.d.ts.map +1 -0
  16. package/lib/services/asyncjobservice.service.js +596 -0
  17. package/lib/services/asyncjobservice.service.js.map +1 -0
  18. package/lib/services/{localrunner.d.ts → localrunner.service.d.ts} +24 -9
  19. package/lib/services/localrunner.service.d.ts.map +1 -0
  20. package/lib/services/localrunner.service.js +87 -0
  21. package/lib/services/localrunner.service.js.map +1 -0
  22. package/lib/services/{runner.d.ts → runner.service.d.ts} +17 -11
  23. package/lib/services/runner.service.d.ts.map +1 -0
  24. package/lib/services/{runner.js → runner.service.js} +16 -13
  25. package/lib/services/runner.service.js.map +1 -0
  26. package/lib/services/servicerunner.service.d.ts +105 -0
  27. package/lib/services/servicerunner.service.d.ts.map +1 -0
  28. package/lib/services/servicerunner.service.js +131 -0
  29. package/lib/services/servicerunner.service.js.map +1 -0
  30. package/package.json +35 -38
  31. package/webda.module.json +1898 -858
  32. package/lib/models.js +0 -177
  33. package/lib/models.js.map +0 -1
  34. package/lib/services/asyncjobservice.js +0 -505
  35. package/lib/services/asyncjobservice.js.map +0 -1
  36. package/lib/services/localrunner.js +0 -70
  37. package/lib/services/localrunner.js.map +0 -1
  38. package/lib/services/runner.js.map +0 -1
  39. package/lib/services/servicerunner.d.ts +0 -67
  40. package/lib/services/servicerunner.js +0 -97
  41. package/lib/services/servicerunner.js.map +0 -1
package/webda.module.json CHANGED
@@ -1,654 +1,1777 @@
1
1
  {
2
+ "$schema": "https://webda.io/schemas/webda.module.v4.json",
2
3
  "beans": {},
3
4
  "deployers": {},
4
5
  "moddas": {
5
- "Webda/AsyncJobService": "lib/services/asyncjobservice:default",
6
- "Webda/LocalRunner": "lib/services/localrunner:default",
7
- "Webda/ServiceRunner": "lib/services/servicerunner:default"
8
- },
9
- "models": {
10
- "graph": {
11
- "Webda/AsyncAction": {},
12
- "Webda/AsyncOperationAction": {},
13
- "Webda/AsyncWebdaAction": {}
6
+ "Webda/AsyncEvents": {
7
+ "Import": "lib/services/asyncevents.service:EventService",
8
+ "Schema": {
9
+ "$schema": "http://json-schema.org/draft-07/schema#",
10
+ "additionalProperties": false,
11
+ "definitions": {
12
+ "queues": {
13
+ "additionalProperties": {
14
+ "type": "string"
15
+ },
16
+ "description": "Queues to post async events to",
17
+ "type": "object"
18
+ }
19
+ },
20
+ "inheritdoc": true,
21
+ "properties": {
22
+ "queues": {
23
+ "$ref": "#/definitions/queues",
24
+ "description": "Queues to post async events to"
25
+ },
26
+ "sync": {
27
+ "default": false,
28
+ "description": "Make the event sending asynchronous",
29
+ "type": "boolean"
30
+ },
31
+ "type": {
32
+ "description": "Type of the service",
33
+ "type": "string"
34
+ },
35
+ "openapi": {
36
+ "type": "object",
37
+ "additionalProperties": true
38
+ }
39
+ },
40
+ "required": [
41
+ "type"
42
+ ],
43
+ "type": "object",
44
+ "title": "EventService"
45
+ },
46
+ "Configuration": "lib/services/asyncevents.service:EventServiceParameters"
14
47
  },
15
- "tree": {
16
- "Webda/AsyncAction": {
17
- "Webda/AsyncWebdaAction": {},
18
- "Webda/AsyncOperationAction": {}
48
+ "Webda/AsyncJobService": {
49
+ "Import": "lib/services/asyncjobservice.service:default",
50
+ "Schema": {
51
+ "$schema": "http://json-schema.org/draft-07/schema#",
52
+ "additionalProperties": false,
53
+ "inheritdoc": true,
54
+ "properties": {
55
+ "asyncActionModel": {
56
+ "default": "Webda/AsyncWebdaAction",
57
+ "description": "Model to use when launching async action",
58
+ "type": "string"
59
+ },
60
+ "asyncOperationDefinition": {
61
+ "description": "JSON file of the AsyncOperation definition\n\nGenerated with `webda operations operations.json`",
62
+ "type": "string"
63
+ },
64
+ "asyncOperationModel": {
65
+ "default": "Webda/AsyncOperationAction",
66
+ "description": "Model to use when launching async operation",
67
+ "type": "string"
68
+ },
69
+ "concurrencyLimit": {
70
+ "description": "Limit the maximum number of jobs running in //",
71
+ "type": "number"
72
+ },
73
+ "fallbackOnFirst": {
74
+ "default": false,
75
+ "description": "Fallback on first runner if none match",
76
+ "type": "boolean"
77
+ },
78
+ "includeCron": {
79
+ "default": true,
80
+ "description": "Include Cron annotation to launch them as AsyncOperationAction",
81
+ "type": "boolean"
82
+ },
83
+ "includeSchedulerInWorker": {
84
+ "default": false,
85
+ "description": "Include the scheduler system in the worker",
86
+ "type": "boolean"
87
+ },
88
+ "localLaunch": {
89
+ "default": false,
90
+ "description": "If set runner will be called without queue",
91
+ "type": "boolean"
92
+ },
93
+ "logsLimit": {
94
+ "default": 500,
95
+ "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",
96
+ "type": "number"
97
+ },
98
+ "onlyHttpHook": {
99
+ "default": false,
100
+ "description": "Define if we should only use an http hook and not rely on store for AsyncOperation",
101
+ "type": "boolean"
102
+ },
103
+ "queue": {
104
+ "default": "AsyncActionsQueue",
105
+ "description": "Queue to post execution to",
106
+ "type": "string"
107
+ },
108
+ "runners": {
109
+ "description": "Runners to use",
110
+ "items": {
111
+ "type": "string"
112
+ },
113
+ "type": "array"
114
+ },
115
+ "schedulerResolution": {
116
+ "default": 60000,
117
+ "description": "Schedule action resolution\n\nIf set to 1000ms, you can schedule action per second\nby default it resolve per minute",
118
+ "type": "number"
119
+ },
120
+ "type": {
121
+ "description": "Type of the service",
122
+ "type": "string"
123
+ },
124
+ "url": {
125
+ "default": "/async",
126
+ "description": "URL to expose job status report hook",
127
+ "type": "string"
128
+ },
129
+ "openapi": {
130
+ "type": "object",
131
+ "additionalProperties": true
132
+ }
133
+ },
134
+ "required": [
135
+ "runners",
136
+ "type"
137
+ ],
138
+ "type": "object",
139
+ "title": "AsyncJobService"
140
+ },
141
+ "Configuration": "lib/services/asyncjobservice.service:AsyncJobServiceParameters",
142
+ "capabilities": [
143
+ "request-filter"
144
+ ],
145
+ "commands": {
146
+ "async worker": {
147
+ "description": "Launch the async actions worker",
148
+ "method": "worker",
149
+ "args": {}
150
+ },
151
+ "async run": {
152
+ "description": "Run the async action described by the JOB_* environment variables",
153
+ "method": "runAction",
154
+ "args": {}
155
+ },
156
+ "async scheduler": {
157
+ "description": "Launch the async actions scheduler",
158
+ "method": "scheduler",
159
+ "args": {}
160
+ }
19
161
  }
20
162
  },
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
- "errorName": "string",
34
- "job": "Job",
35
- "_lastJobUpdate": "number",
36
- "results": "any",
37
- "statusDetails": "any",
38
- "type": "string",
39
- "arguments": "any[]",
40
- "logs": "string[]",
41
- "__secretKey": "string",
42
- "action": "\"STOP\" | string",
43
- "__class": "CoreModelDefinition<this>",
44
- "__type": "string",
45
- "__types": "string[]",
46
- "__ctx": "OperationContext",
47
- "__store": "Store<this>",
48
- "__dirty": "Set<string | symbol>",
49
- "_creationDate": "Date",
50
- "_lastUpdate": "Date",
51
- "__deleted": "boolean"
163
+ "Webda/LocalRunner": {
164
+ "Import": "lib/services/localrunner.service:default",
165
+ "Schema": {
166
+ "$schema": "http://json-schema.org/draft-07/schema#",
167
+ "additionalProperties": false,
168
+ "definitions": {
169
+ "AbortSignal": {
170
+ "additionalProperties": false,
171
+ "description": "The **`AbortSignal`** interface represents a signal object that allows you to communicate with an asynchronous operation (such as a fetch request) and abort it if required via an AbortController object.\n\n[MDN Reference](https://developer.mozilla.org/docs/Web/API/AbortSignal)",
172
+ "type": "object"
173
+ },
174
+ "ProcessEnv": {
175
+ "additionalProperties": {
176
+ "type": "string"
177
+ },
178
+ "type": "object"
179
+ },
180
+ "SpawnOptions": {
181
+ "additionalProperties": false,
182
+ "properties": {
183
+ "argv0": {
184
+ "type": "string"
185
+ },
186
+ "cwd": {
187
+ "type": "string"
188
+ },
189
+ "detached": {
190
+ "default": false,
191
+ "type": "boolean"
192
+ },
193
+ "env": {
194
+ "$ref": "#/definitions/ProcessEnv"
195
+ },
196
+ "gid": {
197
+ "type": "number"
198
+ },
199
+ "killSignal": {
200
+ "anyOf": [
201
+ {
202
+ "type": "number"
203
+ },
204
+ {
205
+ "const": "SIGABRT",
206
+ "type": "string"
207
+ },
208
+ {
209
+ "const": "SIGALRM",
210
+ "type": "string"
211
+ },
212
+ {
213
+ "const": "SIGBUS",
214
+ "type": "string"
215
+ },
216
+ {
217
+ "const": "SIGCHLD",
218
+ "type": "string"
219
+ },
220
+ {
221
+ "const": "SIGCONT",
222
+ "type": "string"
223
+ },
224
+ {
225
+ "const": "SIGFPE",
226
+ "type": "string"
227
+ },
228
+ {
229
+ "const": "SIGHUP",
230
+ "type": "string"
231
+ },
232
+ {
233
+ "const": "SIGILL",
234
+ "type": "string"
235
+ },
236
+ {
237
+ "const": "SIGINT",
238
+ "type": "string"
239
+ },
240
+ {
241
+ "const": "SIGIO",
242
+ "type": "string"
243
+ },
244
+ {
245
+ "const": "SIGIOT",
246
+ "type": "string"
247
+ },
248
+ {
249
+ "const": "SIGKILL",
250
+ "type": "string"
251
+ },
252
+ {
253
+ "const": "SIGPIPE",
254
+ "type": "string"
255
+ },
256
+ {
257
+ "const": "SIGPOLL",
258
+ "type": "string"
259
+ },
260
+ {
261
+ "const": "SIGPROF",
262
+ "type": "string"
263
+ },
264
+ {
265
+ "const": "SIGPWR",
266
+ "type": "string"
267
+ },
268
+ {
269
+ "const": "SIGQUIT",
270
+ "type": "string"
271
+ },
272
+ {
273
+ "const": "SIGSEGV",
274
+ "type": "string"
275
+ },
276
+ {
277
+ "const": "SIGSTKFLT",
278
+ "type": "string"
279
+ },
280
+ {
281
+ "const": "SIGSTOP",
282
+ "type": "string"
283
+ },
284
+ {
285
+ "const": "SIGSYS",
286
+ "type": "string"
287
+ },
288
+ {
289
+ "const": "SIGTERM",
290
+ "type": "string"
291
+ },
292
+ {
293
+ "const": "SIGTRAP",
294
+ "type": "string"
295
+ },
296
+ {
297
+ "const": "SIGTSTP",
298
+ "type": "string"
299
+ },
300
+ {
301
+ "const": "SIGTTIN",
302
+ "type": "string"
303
+ },
304
+ {
305
+ "const": "SIGTTOU",
306
+ "type": "string"
307
+ },
308
+ {
309
+ "const": "SIGUNUSED",
310
+ "type": "string"
311
+ },
312
+ {
313
+ "const": "SIGURG",
314
+ "type": "string"
315
+ },
316
+ {
317
+ "const": "SIGUSR1",
318
+ "type": "string"
319
+ },
320
+ {
321
+ "const": "SIGUSR2",
322
+ "type": "string"
323
+ },
324
+ {
325
+ "const": "SIGVTALRM",
326
+ "type": "string"
327
+ },
328
+ {
329
+ "const": "SIGWINCH",
330
+ "type": "string"
331
+ },
332
+ {
333
+ "const": "SIGXCPU",
334
+ "type": "string"
335
+ },
336
+ {
337
+ "const": "SIGXFSZ",
338
+ "type": "string"
339
+ },
340
+ {
341
+ "const": "SIGBREAK",
342
+ "type": "string"
343
+ },
344
+ {
345
+ "const": "SIGLOST",
346
+ "type": "string"
347
+ },
348
+ {
349
+ "const": "SIGINFO",
350
+ "type": "string"
351
+ }
352
+ ],
353
+ "default": "'SIGTERM'",
354
+ "description": "The signal value to be used when the spawned process will be killed by the abort signal."
355
+ },
356
+ "serialization": {
357
+ "default": "'json'",
358
+ "description": "Specify the kind of serialization used for sending messages between processes.",
359
+ "enum": [
360
+ "json",
361
+ "advanced"
362
+ ],
363
+ "type": "string"
364
+ },
365
+ "shell": {
366
+ "type": [
367
+ "string",
368
+ "boolean"
369
+ ]
370
+ },
371
+ "signal": {
372
+ "$ref": "#/definitions/AbortSignal"
373
+ },
374
+ "stdio": {
375
+ "anyOf": [
376
+ {
377
+ "const": "overlapped",
378
+ "type": "string"
379
+ },
380
+ {
381
+ "const": "pipe",
382
+ "type": "string"
383
+ },
384
+ {
385
+ "const": "ignore",
386
+ "type": "string"
387
+ },
388
+ {
389
+ "const": "inherit",
390
+ "type": "string"
391
+ },
392
+ {
393
+ "items": {
394
+ "anyOf": [
395
+ {
396
+ "type": "number"
397
+ },
398
+ {
399
+ "const": "overlapped",
400
+ "type": "string"
401
+ },
402
+ {
403
+ "const": "pipe",
404
+ "type": "string"
405
+ },
406
+ {
407
+ "const": "ignore",
408
+ "type": "string"
409
+ },
410
+ {
411
+ "const": "inherit",
412
+ "type": "string"
413
+ },
414
+ {
415
+ "const": "ipc",
416
+ "type": "string"
417
+ },
418
+ {
419
+ "$ref": "#/definitions/Stream"
420
+ }
421
+ ]
422
+ },
423
+ "type": "array"
424
+ }
425
+ ],
426
+ "default": "'pipe'",
427
+ "description": "Can be set to 'pipe', 'inherit', 'overlapped', or 'ignore', or an array of these strings.\nIf passed as an array, the first element is used for `stdin`, the second for\n`stdout`, and the third for `stderr`. A fourth element can be used to\nspecify the `stdio` behavior beyond the standard streams. See\n{@link ChildProcess.stdio} for more information."
428
+ },
429
+ "timeout": {
430
+ "default": 0,
431
+ "type": "number"
432
+ },
433
+ "uid": {
434
+ "type": "number"
435
+ },
436
+ "windowsHide": {
437
+ "default": false,
438
+ "type": "boolean"
439
+ },
440
+ "windowsVerbatimArguments": {
441
+ "default": false,
442
+ "type": "boolean"
443
+ }
444
+ },
445
+ "type": "object"
446
+ },
447
+ "Stream": {
448
+ "additionalProperties": false,
449
+ "type": "object"
450
+ }
451
+ },
452
+ "description": "LocalRunner parameters",
453
+ "properties": {
454
+ "actions": {
455
+ "default": [],
456
+ "description": "Actions managed by the runner",
457
+ "items": {
458
+ "type": "string"
459
+ },
460
+ "type": "array"
461
+ },
462
+ "args": {
463
+ "description": "Args",
464
+ "items": {
465
+ "type": "string"
466
+ },
467
+ "type": "array"
468
+ },
469
+ "autoStatus": {
470
+ "default": false,
471
+ "description": "Use the observability of ChildProcess to update status accordingly",
472
+ "type": "boolean"
473
+ },
474
+ "command": {
475
+ "description": "Command to launch",
476
+ "type": "string"
477
+ },
478
+ "options": {
479
+ "$ref": "#/definitions/SpawnOptions",
480
+ "description": "Options\n\nBased on https://nodejs.org/api/child_process.html#child_process_child_process_spawn_command_args_options"
481
+ },
482
+ "type": {
483
+ "description": "Type of the service",
484
+ "type": "string"
485
+ },
486
+ "openapi": {
487
+ "type": "object",
488
+ "additionalProperties": true
489
+ }
490
+ },
491
+ "required": [
492
+ "command",
493
+ "type"
494
+ ],
495
+ "type": "object",
496
+ "title": "LocalRunner"
52
497
  },
53
- "Webda/AsyncOperationAction": {
54
- "uuid": "string",
55
- "status": "\"RUNNING\" | \"SUCCESS\" | \"ERROR\" | \"QUEUED\" | \"STARTING\" | \"TIMEOUT\" | \"SCHEDULED\"",
56
- "scheduled": "number",
57
- "errorMessage": "string",
58
- "errorName": "string",
59
- "job": "Job",
60
- "_lastJobUpdate": "number",
61
- "results": "any",
62
- "statusDetails": "any",
63
- "type": "string",
64
- "arguments": "any[]",
65
- "logs": "string[]",
66
- "__secretKey": "string",
67
- "action": "\"STOP\" | string",
68
- "__class": "CoreModelDefinition<this>",
69
- "__type": "string",
70
- "__types": "string[]",
71
- "__ctx": "OperationContext",
72
- "__store": "Store<this>",
73
- "__dirty": "Set<string | symbol>",
74
- "_creationDate": "Date",
75
- "_lastUpdate": "Date",
76
- "__deleted": "boolean"
498
+ "Configuration": "lib/services/localrunner.service:LocalRunnerParameters"
499
+ },
500
+ "Webda/ServiceRunner": {
501
+ "Import": "lib/services/servicerunner.service:default",
502
+ "Schema": {
503
+ "$schema": "http://json-schema.org/draft-07/schema#",
504
+ "additionalProperties": false,
505
+ "description": "Add the log format to capture",
506
+ "properties": {
507
+ "actions": {
508
+ "default": [],
509
+ "description": "Actions managed by the runner",
510
+ "items": {
511
+ "type": "string"
512
+ },
513
+ "type": "array"
514
+ },
515
+ "logFormat": {
516
+ "default": "ConsoleLoggerDefaultFormat",
517
+ "description": "Define the log format",
518
+ "type": "string"
519
+ },
520
+ "logSaveDelay": {
521
+ "default": 5000,
522
+ "description": "How long before saving logs (in ms)",
523
+ "type": "number"
524
+ },
525
+ "type": {
526
+ "description": "Type of the service",
527
+ "type": "string"
528
+ },
529
+ "openapi": {
530
+ "type": "object",
531
+ "additionalProperties": true
532
+ }
533
+ },
534
+ "required": [
535
+ "type"
536
+ ],
537
+ "type": "object",
538
+ "title": "ServiceRunner"
77
539
  },
78
- "Webda/AsyncWebdaAction": {
79
- "logLevel": "WorkerLogLevel",
80
- "uuid": "string",
81
- "status": "\"RUNNING\" | \"SUCCESS\" | \"ERROR\" | \"QUEUED\" | \"STARTING\" | \"TIMEOUT\" | \"SCHEDULED\"",
82
- "scheduled": "number",
83
- "errorMessage": "string",
84
- "errorName": "string",
85
- "job": "Job",
86
- "_lastJobUpdate": "number",
87
- "results": "any",
88
- "statusDetails": "any",
89
- "type": "string",
90
- "arguments": "any[]",
91
- "logs": "string[]",
92
- "__secretKey": "string",
93
- "action": "\"STOP\" | string",
94
- "__class": "CoreModelDefinition<this>",
95
- "__type": "string",
96
- "__types": "string[]",
97
- "__ctx": "OperationContext",
98
- "__store": "Store<this>",
99
- "__dirty": "Set<string | symbol>",
100
- "_creationDate": "Date",
101
- "_lastUpdate": "Date",
102
- "__deleted": "boolean"
103
- }
540
+ "Configuration": "lib/services/servicerunner.service:ServiceRunnerParameters"
104
541
  }
105
542
  },
106
- "schemas": {
543
+ "models": {
107
544
  "Webda/AsyncAction": {
108
- "type": "object",
109
- "properties": {
110
- "_creationDate": {
111
- "type": "string",
112
- "format": "date-time",
113
- "description": "Creation date",
114
- "readOnly": true
115
- },
116
- "_lastUpdate": {
117
- "type": "string",
118
- "format": "date-time",
119
- "description": "Last update date",
120
- "readOnly": true
121
- },
122
- "uuid": {
123
- "type": "string",
124
- "description": "Action uuid"
125
- },
545
+ "Plural": "AsyncActions",
546
+ "Import": "lib/asyncaction.model:default",
547
+ "Relations": {},
548
+ "Ancestors": [],
549
+ "Subclasses": [
550
+ "Webda/AsyncWebdaAction",
551
+ "Webda/AsyncOperationAction"
552
+ ],
553
+ "Reflection": {
126
554
  "status": {
127
- "type": "string",
128
- "enum": [
129
- "RUNNING",
130
- "SUCCESS",
131
- "ERROR",
132
- "QUEUED",
133
- "STARTING",
134
- "TIMEOUT",
135
- "SCHEDULED"
136
- ],
137
- "description": "Current status"
555
+ "type": "\"RUNNING\" | \"SUCCESS\" | \"ERROR\" | \"QUEUED\" | \"STARTING\" | \"TIMEOUT\" | \"SCHEDULED\""
138
556
  },
139
557
  "scheduled": {
140
- "type": "number",
141
- "description": "Timestamp when the action was scheduled"
558
+ "type": "number"
142
559
  },
143
560
  "errorMessage": {
144
- "type": "string",
145
- "description": "If an error occured it should contain the message"
561
+ "type": "string"
146
562
  },
147
563
  "errorName": {
148
- "type": "string",
149
- "description": "If an error occured it should contain the name"
564
+ "type": "string"
150
565
  },
151
566
  "job": {
152
- "type": "object",
153
- "description": "Job information"
567
+ "type": "any"
154
568
  },
155
569
  "_lastJobUpdate": {
156
- "type": "number",
157
- "description": "Last time the job was updated",
158
- "readOnly": true
570
+ "type": "number"
159
571
  },
160
572
  "results": {
161
- "description": "Results from the job"
573
+ "type": "any"
162
574
  },
163
575
  "statusDetails": {
164
- "description": "Job current status"
576
+ "type": "any"
165
577
  },
166
578
  "type": {
167
579
  "type": "string"
168
580
  },
169
581
  "arguments": {
170
- "type": "array",
171
- "items": {}
582
+ "type": "Array",
583
+ "typeParameters": [
584
+ "any"
585
+ ]
172
586
  },
173
587
  "logs": {
174
- "type": "array",
175
- "items": {
176
- "type": "string"
177
- },
178
- "description": "Current logs"
588
+ "type": "Array",
589
+ "typeParameters": [
590
+ "string"
591
+ ]
592
+ },
593
+ "__secretKey": {
594
+ "type": "string"
179
595
  },
180
596
  "action": {
181
- "type": "string",
182
- "description": "Expected action for the job\n\nIt should be a verb"
597
+ "type": "\"STOP\" | string"
598
+ },
599
+ "uuid": {
600
+ "type": "string"
183
601
  }
184
602
  },
185
- "required": [
186
- "uuid",
187
- "status",
188
- "job",
189
- "results",
190
- "statusDetails",
191
- "type",
192
- "logs"
603
+ "Schemas": {
604
+ "Output": {
605
+ "$schema": "http://json-schema.org/draft-07/schema#",
606
+ "WebdaModel": true,
607
+ "WebdaPlural": "AsyncActions",
608
+ "additionalProperties": false,
609
+ "description": "Define here a model that can be used along with Store service",
610
+ "properties": {
611
+ "__secretKey": {
612
+ "description": "Secret key to post feedback",
613
+ "type": "string"
614
+ },
615
+ "_lastJobUpdate": {
616
+ "description": "Last time the job was updated",
617
+ "type": "number"
618
+ },
619
+ "action": {
620
+ "description": "Expected action for the job\n\nIt should be a verb",
621
+ "type": "string"
622
+ },
623
+ "arguments": {
624
+ "description": "Arguments of the action",
625
+ "items": {},
626
+ "type": "array"
627
+ },
628
+ "errorMessage": {
629
+ "description": "If an error occured it should contain the message",
630
+ "type": "string"
631
+ },
632
+ "errorName": {
633
+ "description": "If an error occured it should contain the name",
634
+ "type": "string"
635
+ },
636
+ "job": {
637
+ "description": "Job information"
638
+ },
639
+ "logs": {
640
+ "description": "Current logs",
641
+ "items": {
642
+ "type": "string"
643
+ },
644
+ "type": "array"
645
+ },
646
+ "results": {
647
+ "description": "Results from the job"
648
+ },
649
+ "scheduled": {
650
+ "description": "Timestamp when the action was scheduled",
651
+ "type": "number"
652
+ },
653
+ "status": {
654
+ "description": "Current status",
655
+ "enum": [
656
+ "RUNNING",
657
+ "SUCCESS",
658
+ "ERROR",
659
+ "QUEUED",
660
+ "STARTING",
661
+ "TIMEOUT",
662
+ "SCHEDULED"
663
+ ],
664
+ "type": "string"
665
+ },
666
+ "statusDetails": {
667
+ "description": "Job current status"
668
+ },
669
+ "type": {
670
+ "description": "Type of action",
671
+ "type": "string"
672
+ },
673
+ "uuid": {
674
+ "description": "UUID of the model",
675
+ "format": "uuid",
676
+ "type": "string"
677
+ }
678
+ },
679
+ "required": [
680
+ "__secretKey",
681
+ "_lastJobUpdate",
682
+ "job",
683
+ "logs",
684
+ "results",
685
+ "status",
686
+ "statusDetails",
687
+ "type",
688
+ "uuid"
689
+ ],
690
+ "type": "object",
691
+ "$webda": "toDto$auto"
692
+ },
693
+ "Input": {
694
+ "$schema": "http://json-schema.org/draft-07/schema#",
695
+ "WebdaModel": true,
696
+ "WebdaPlural": "AsyncActions",
697
+ "additionalProperties": false,
698
+ "description": "Define here a model that can be used along with Store service",
699
+ "properties": {
700
+ "__secretKey": {
701
+ "description": "Secret key to post feedback",
702
+ "type": "string"
703
+ },
704
+ "_lastJobUpdate": {
705
+ "description": "Last time the job was updated",
706
+ "type": "number"
707
+ },
708
+ "action": {
709
+ "description": "Expected action for the job\n\nIt should be a verb",
710
+ "type": "string"
711
+ },
712
+ "arguments": {
713
+ "description": "Arguments of the action",
714
+ "items": {},
715
+ "type": "array"
716
+ },
717
+ "errorMessage": {
718
+ "description": "If an error occured it should contain the message",
719
+ "type": "string"
720
+ },
721
+ "errorName": {
722
+ "description": "If an error occured it should contain the name",
723
+ "type": "string"
724
+ },
725
+ "job": {
726
+ "description": "Job information"
727
+ },
728
+ "logs": {
729
+ "description": "Current logs",
730
+ "items": {
731
+ "type": "string"
732
+ },
733
+ "type": "array"
734
+ },
735
+ "results": {
736
+ "description": "Results from the job"
737
+ },
738
+ "scheduled": {
739
+ "description": "Timestamp when the action was scheduled",
740
+ "type": "number"
741
+ },
742
+ "status": {
743
+ "description": "Current status",
744
+ "enum": [
745
+ "RUNNING",
746
+ "SUCCESS",
747
+ "ERROR",
748
+ "QUEUED",
749
+ "STARTING",
750
+ "TIMEOUT",
751
+ "SCHEDULED"
752
+ ],
753
+ "type": "string"
754
+ },
755
+ "statusDetails": {
756
+ "description": "Job current status"
757
+ },
758
+ "type": {
759
+ "description": "Type of action",
760
+ "type": "string"
761
+ },
762
+ "uuid": {
763
+ "description": "UUID of the model",
764
+ "format": "uuid",
765
+ "type": "string"
766
+ }
767
+ },
768
+ "required": [
769
+ "__secretKey",
770
+ "_lastJobUpdate",
771
+ "job",
772
+ "logs",
773
+ "results",
774
+ "status",
775
+ "statusDetails",
776
+ "type",
777
+ "uuid"
778
+ ],
779
+ "type": "object",
780
+ "$webda": "fromDto$auto"
781
+ },
782
+ "Stored": {
783
+ "$schema": "http://json-schema.org/draft-07/schema#",
784
+ "WebdaModel": true,
785
+ "WebdaPlural": "AsyncActions",
786
+ "additionalProperties": false,
787
+ "description": "Define here a model that can be used along with Store service",
788
+ "properties": {
789
+ "__secretKey": {
790
+ "description": "Secret key to post feedback",
791
+ "type": "string"
792
+ },
793
+ "_lastJobUpdate": {
794
+ "description": "Last time the job was updated",
795
+ "type": "number"
796
+ },
797
+ "action": {
798
+ "description": "Expected action for the job\n\nIt should be a verb",
799
+ "type": "string"
800
+ },
801
+ "arguments": {
802
+ "description": "Arguments of the action",
803
+ "items": {},
804
+ "type": "array"
805
+ },
806
+ "errorMessage": {
807
+ "description": "If an error occured it should contain the message",
808
+ "type": "string"
809
+ },
810
+ "errorName": {
811
+ "description": "If an error occured it should contain the name",
812
+ "type": "string"
813
+ },
814
+ "job": {
815
+ "description": "Job information"
816
+ },
817
+ "logs": {
818
+ "description": "Current logs",
819
+ "items": {
820
+ "type": "string"
821
+ },
822
+ "type": "array"
823
+ },
824
+ "results": {
825
+ "description": "Results from the job"
826
+ },
827
+ "scheduled": {
828
+ "description": "Timestamp when the action was scheduled",
829
+ "type": "number"
830
+ },
831
+ "status": {
832
+ "description": "Current status",
833
+ "enum": [
834
+ "RUNNING",
835
+ "SUCCESS",
836
+ "ERROR",
837
+ "QUEUED",
838
+ "STARTING",
839
+ "TIMEOUT",
840
+ "SCHEDULED"
841
+ ],
842
+ "type": "string"
843
+ },
844
+ "statusDetails": {
845
+ "description": "Job current status"
846
+ },
847
+ "type": {
848
+ "description": "Type of action",
849
+ "type": "string"
850
+ },
851
+ "uuid": {
852
+ "description": "UUID of the model",
853
+ "format": "uuid",
854
+ "type": "string"
855
+ }
856
+ },
857
+ "required": [
858
+ "__secretKey",
859
+ "_lastJobUpdate",
860
+ "job",
861
+ "logs",
862
+ "results",
863
+ "status",
864
+ "statusDetails",
865
+ "type",
866
+ "uuid"
867
+ ],
868
+ "type": "object",
869
+ "$webda": "toJSON$return"
870
+ }
871
+ },
872
+ "Actions": {
873
+ "status": {
874
+ "handler": "statusAction"
875
+ }
876
+ },
877
+ "Events": [
878
+ "Create",
879
+ "PartialUpdate",
880
+ "Delete",
881
+ "Update",
882
+ "Patch",
883
+ "Query",
884
+ "Aggregate",
885
+ "Created",
886
+ "PartialUpdated",
887
+ "Deleted",
888
+ "Patched",
889
+ "Updated",
890
+ "Queried",
891
+ "Aggregated"
193
892
  ],
194
- "description": "Define here a model that can be used along with Store service",
195
- "$schema": "http://json-schema.org/draft-07/schema#",
196
- "title": "AsyncAction"
893
+ "PrimaryKey": [
894
+ "uuid"
895
+ ],
896
+ "Identifier": "Webda/AsyncAction"
197
897
  },
198
- "Webda/AsyncJobService": {
199
- "type": "object",
200
- "properties": {
201
- "type": {
202
- "type": "string",
203
- "description": "Type of the service"
204
- },
205
- "url": {
206
- "type": "string",
207
- "description": "URL to expose job status report hook",
208
- "default": "/async/jobs",
209
- "deprecated": "will be removed in 4.0 to only use object AsyncAction"
210
- },
211
- "binaryStore": {
212
- "type": "string",
213
- "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",
214
- "deprecated": "will be removed in 4.0 to only use object AsyncAction"
215
- },
216
- "localLaunch": {
217
- "type": "boolean",
218
- "description": "If set runner will be called without queue",
219
- "default": false
220
- },
221
- "queue": {
222
- "type": "string",
223
- "description": "Queue to post execution to",
224
- "default": "AsyncActionsQueue"
225
- },
226
- "fallbackOnFirst": {
227
- "type": "boolean",
228
- "description": "Fallback on first runner if none match",
229
- "default": false
230
- },
231
- "runners": {
232
- "type": "array",
233
- "items": {
234
- "type": "string"
235
- },
236
- "description": "Runners to use"
898
+ "Webda/AsyncOperationAction": {
899
+ "Plural": "AsyncOperationActions",
900
+ "Import": "lib/asyncaction.model:AsyncOperationAction",
901
+ "Relations": {},
902
+ "Ancestors": [
903
+ "Webda/AsyncAction"
904
+ ],
905
+ "Subclasses": [],
906
+ "Reflection": {
907
+ "operationId": {
908
+ "type": "string"
909
+ },
910
+ "context": {
911
+ "type": "any"
237
912
  },
238
- "concurrencyLimit": {
239
- "type": "number",
240
- "description": "Limit the maximum number of jobs running in //"
913
+ "logLevel": {
914
+ "type": "WorkerLogLevel"
241
915
  },
242
- "onlyHttpHook": {
243
- "type": "boolean",
244
- "description": "Define if we should only use an http hook and not rely on store for AsyncOperation",
245
- "default": false
916
+ "status": {
917
+ "type": "\"RUNNING\" | \"SUCCESS\" | \"ERROR\" | \"QUEUED\" | \"STARTING\" | \"TIMEOUT\" | \"SCHEDULED\""
246
918
  },
247
- "includeCron": {
248
- "type": "boolean",
249
- "description": "Include Cron annotation to launch them as AsyncOperationAction",
250
- "default": true
919
+ "scheduled": {
920
+ "type": "number"
251
921
  },
252
- "includeSchedulerInWorker": {
253
- "type": "boolean",
254
- "description": "Include the scheduler system in the worker"
922
+ "errorMessage": {
923
+ "type": "string"
924
+ },
925
+ "errorName": {
926
+ "type": "string"
255
927
  },
256
- "schedulerResolution": {
257
- "type": "number",
258
- "description": "Schedule action resolution\n\nIf set to 1000ms, you can schedule action per second by default it resolve per minute",
259
- "default": 60000
928
+ "job": {
929
+ "type": "any"
930
+ },
931
+ "_lastJobUpdate": {
932
+ "type": "number"
933
+ },
934
+ "results": {
935
+ "type": "any"
936
+ },
937
+ "statusDetails": {
938
+ "type": "any"
939
+ },
940
+ "type": {
941
+ "type": "string"
260
942
  },
261
- "logsLimit": {
262
- "type": "number",
263
- "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",
264
- "default": 500
943
+ "arguments": {
944
+ "type": "Array",
945
+ "typeParameters": [
946
+ "any"
947
+ ]
265
948
  },
266
- "asyncActionModel": {
267
- "type": "string",
268
- "description": "Model to use when launching async action",
269
- "default": "Webda/AsyncWebdaAction"
949
+ "logs": {
950
+ "type": "Array",
951
+ "typeParameters": [
952
+ "string"
953
+ ]
270
954
  },
271
- "asyncOperationModel": {
272
- "type": "string",
273
- "description": "Model to use when launching async operation",
274
- "default": "Webda/AsyncOperationAction"
955
+ "__secretKey": {
956
+ "type": "string"
275
957
  },
276
- "asyncOperationDefinition": {
277
- "type": "string",
278
- "description": "JSON file of the AsyncOperation definition\n\nGenerated with `webda operations operations.json`"
958
+ "action": {
959
+ "type": "\"STOP\" | string"
279
960
  },
280
- "openapi": {
961
+ "uuid": {
962
+ "type": "string"
963
+ }
964
+ },
965
+ "Schemas": {
966
+ "Output": {
967
+ "$schema": "http://json-schema.org/draft-07/schema#",
968
+ "WebdaModel": true,
969
+ "WebdaPlural": "AsyncOperationActions",
970
+ "additionalProperties": false,
971
+ "description": "Operation called asynchronously",
972
+ "properties": {
973
+ "__secretKey": {
974
+ "description": "Secret key to post feedback",
975
+ "type": "string"
976
+ },
977
+ "_lastJobUpdate": {
978
+ "description": "Last time the job was updated",
979
+ "type": "number"
980
+ },
981
+ "action": {
982
+ "description": "Expected action for the job\n\nIt should be a verb",
983
+ "type": "string"
984
+ },
985
+ "arguments": {
986
+ "description": "Arguments of the action",
987
+ "items": {},
988
+ "type": "array"
989
+ },
990
+ "context": {
991
+ "description": "Context to call the operation with"
992
+ },
993
+ "errorMessage": {
994
+ "description": "If an error occured it should contain the message",
995
+ "type": "string"
996
+ },
997
+ "errorName": {
998
+ "description": "If an error occured it should contain the name",
999
+ "type": "string"
1000
+ },
1001
+ "job": {
1002
+ "description": "Job information"
1003
+ },
1004
+ "logLevel": {
1005
+ "description": "Log level to capture",
1006
+ "enum": [
1007
+ "ERROR",
1008
+ "WARN",
1009
+ "INFO",
1010
+ "DEBUG",
1011
+ "TRACE"
1012
+ ],
1013
+ "type": "string"
1014
+ },
1015
+ "logs": {
1016
+ "description": "Current logs",
1017
+ "items": {
1018
+ "type": "string"
1019
+ },
1020
+ "type": "array"
1021
+ },
1022
+ "operationId": {
1023
+ "description": "Operation to call",
1024
+ "type": "string"
1025
+ },
1026
+ "results": {
1027
+ "description": "Results from the job"
1028
+ },
1029
+ "scheduled": {
1030
+ "description": "Timestamp when the action was scheduled",
1031
+ "type": "number"
1032
+ },
1033
+ "status": {
1034
+ "description": "Current status",
1035
+ "enum": [
1036
+ "RUNNING",
1037
+ "SUCCESS",
1038
+ "ERROR",
1039
+ "QUEUED",
1040
+ "STARTING",
1041
+ "TIMEOUT",
1042
+ "SCHEDULED"
1043
+ ],
1044
+ "type": "string"
1045
+ },
1046
+ "statusDetails": {
1047
+ "description": "Job current status"
1048
+ },
1049
+ "type": {
1050
+ "description": "Type of action",
1051
+ "type": "string"
1052
+ },
1053
+ "uuid": {
1054
+ "description": "UUID of the model",
1055
+ "format": "uuid",
1056
+ "type": "string"
1057
+ }
1058
+ },
1059
+ "required": [
1060
+ "__secretKey",
1061
+ "_lastJobUpdate",
1062
+ "context",
1063
+ "job",
1064
+ "logLevel",
1065
+ "logs",
1066
+ "operationId",
1067
+ "results",
1068
+ "status",
1069
+ "statusDetails",
1070
+ "type",
1071
+ "uuid"
1072
+ ],
1073
+ "type": "object",
1074
+ "$webda": "toDto$auto"
1075
+ },
1076
+ "Input": {
1077
+ "$schema": "http://json-schema.org/draft-07/schema#",
1078
+ "WebdaModel": true,
1079
+ "WebdaPlural": "AsyncOperationActions",
1080
+ "additionalProperties": false,
1081
+ "description": "Operation called asynchronously",
1082
+ "properties": {
1083
+ "__secretKey": {
1084
+ "description": "Secret key to post feedback",
1085
+ "type": "string"
1086
+ },
1087
+ "_lastJobUpdate": {
1088
+ "description": "Last time the job was updated",
1089
+ "type": "number"
1090
+ },
1091
+ "action": {
1092
+ "description": "Expected action for the job\n\nIt should be a verb",
1093
+ "type": "string"
1094
+ },
1095
+ "arguments": {
1096
+ "description": "Arguments of the action",
1097
+ "items": {},
1098
+ "type": "array"
1099
+ },
1100
+ "context": {
1101
+ "description": "Context to call the operation with"
1102
+ },
1103
+ "errorMessage": {
1104
+ "description": "If an error occured it should contain the message",
1105
+ "type": "string"
1106
+ },
1107
+ "errorName": {
1108
+ "description": "If an error occured it should contain the name",
1109
+ "type": "string"
1110
+ },
1111
+ "job": {
1112
+ "description": "Job information"
1113
+ },
1114
+ "logLevel": {
1115
+ "description": "Log level to capture",
1116
+ "enum": [
1117
+ "ERROR",
1118
+ "WARN",
1119
+ "INFO",
1120
+ "DEBUG",
1121
+ "TRACE"
1122
+ ],
1123
+ "type": "string"
1124
+ },
1125
+ "logs": {
1126
+ "description": "Current logs",
1127
+ "items": {
1128
+ "type": "string"
1129
+ },
1130
+ "type": "array"
1131
+ },
1132
+ "operationId": {
1133
+ "description": "Operation to call",
1134
+ "type": "string"
1135
+ },
1136
+ "results": {
1137
+ "description": "Results from the job"
1138
+ },
1139
+ "scheduled": {
1140
+ "description": "Timestamp when the action was scheduled",
1141
+ "type": "number"
1142
+ },
1143
+ "status": {
1144
+ "description": "Current status",
1145
+ "enum": [
1146
+ "RUNNING",
1147
+ "SUCCESS",
1148
+ "ERROR",
1149
+ "QUEUED",
1150
+ "STARTING",
1151
+ "TIMEOUT",
1152
+ "SCHEDULED"
1153
+ ],
1154
+ "type": "string"
1155
+ },
1156
+ "statusDetails": {
1157
+ "description": "Job current status"
1158
+ },
1159
+ "type": {
1160
+ "description": "Type of action",
1161
+ "type": "string"
1162
+ },
1163
+ "uuid": {
1164
+ "description": "UUID of the model",
1165
+ "format": "uuid",
1166
+ "type": "string"
1167
+ }
1168
+ },
1169
+ "required": [
1170
+ "__secretKey",
1171
+ "_lastJobUpdate",
1172
+ "context",
1173
+ "job",
1174
+ "logLevel",
1175
+ "logs",
1176
+ "operationId",
1177
+ "results",
1178
+ "status",
1179
+ "statusDetails",
1180
+ "type",
1181
+ "uuid"
1182
+ ],
1183
+ "type": "object",
1184
+ "$webda": "fromDto$auto"
1185
+ },
1186
+ "Stored": {
1187
+ "$schema": "http://json-schema.org/draft-07/schema#",
1188
+ "WebdaModel": true,
1189
+ "WebdaPlural": "AsyncOperationActions",
1190
+ "additionalProperties": false,
1191
+ "description": "Operation called asynchronously",
1192
+ "properties": {
1193
+ "__secretKey": {
1194
+ "description": "Secret key to post feedback",
1195
+ "type": "string"
1196
+ },
1197
+ "_lastJobUpdate": {
1198
+ "description": "Last time the job was updated",
1199
+ "type": "number"
1200
+ },
1201
+ "action": {
1202
+ "description": "Expected action for the job\n\nIt should be a verb",
1203
+ "type": "string"
1204
+ },
1205
+ "arguments": {
1206
+ "description": "Arguments of the action",
1207
+ "items": {},
1208
+ "type": "array"
1209
+ },
1210
+ "context": {
1211
+ "description": "Context to call the operation with"
1212
+ },
1213
+ "errorMessage": {
1214
+ "description": "If an error occured it should contain the message",
1215
+ "type": "string"
1216
+ },
1217
+ "errorName": {
1218
+ "description": "If an error occured it should contain the name",
1219
+ "type": "string"
1220
+ },
1221
+ "job": {
1222
+ "description": "Job information"
1223
+ },
1224
+ "logLevel": {
1225
+ "description": "Log level to capture",
1226
+ "enum": [
1227
+ "ERROR",
1228
+ "WARN",
1229
+ "INFO",
1230
+ "DEBUG",
1231
+ "TRACE"
1232
+ ],
1233
+ "type": "string"
1234
+ },
1235
+ "logs": {
1236
+ "description": "Current logs",
1237
+ "items": {
1238
+ "type": "string"
1239
+ },
1240
+ "type": "array"
1241
+ },
1242
+ "operationId": {
1243
+ "description": "Operation to call",
1244
+ "type": "string"
1245
+ },
1246
+ "results": {
1247
+ "description": "Results from the job"
1248
+ },
1249
+ "scheduled": {
1250
+ "description": "Timestamp when the action was scheduled",
1251
+ "type": "number"
1252
+ },
1253
+ "status": {
1254
+ "description": "Current status",
1255
+ "enum": [
1256
+ "RUNNING",
1257
+ "SUCCESS",
1258
+ "ERROR",
1259
+ "QUEUED",
1260
+ "STARTING",
1261
+ "TIMEOUT",
1262
+ "SCHEDULED"
1263
+ ],
1264
+ "type": "string"
1265
+ },
1266
+ "statusDetails": {
1267
+ "description": "Job current status"
1268
+ },
1269
+ "type": {
1270
+ "description": "Type of action",
1271
+ "type": "string"
1272
+ },
1273
+ "uuid": {
1274
+ "description": "UUID of the model",
1275
+ "format": "uuid",
1276
+ "type": "string"
1277
+ }
1278
+ },
1279
+ "required": [
1280
+ "__secretKey",
1281
+ "_lastJobUpdate",
1282
+ "context",
1283
+ "job",
1284
+ "logLevel",
1285
+ "logs",
1286
+ "operationId",
1287
+ "results",
1288
+ "status",
1289
+ "statusDetails",
1290
+ "type",
1291
+ "uuid"
1292
+ ],
281
1293
  "type": "object",
282
- "additionalProperties": true
1294
+ "$webda": "toJSON$return"
283
1295
  }
284
1296
  },
285
- "required": [
286
- "fallbackOnFirst",
287
- "logsLimit",
288
- "queue",
289
- "runners",
290
- "type",
291
- "url"
1297
+ "Actions": {
1298
+ "status": {
1299
+ "handler": "statusAction"
1300
+ }
1301
+ },
1302
+ "Events": [
1303
+ "Create",
1304
+ "PartialUpdate",
1305
+ "Delete",
1306
+ "Update",
1307
+ "Patch",
1308
+ "Query",
1309
+ "Aggregate",
1310
+ "Created",
1311
+ "PartialUpdated",
1312
+ "Deleted",
1313
+ "Patched",
1314
+ "Updated",
1315
+ "Queried",
1316
+ "Aggregated"
292
1317
  ],
293
- "$schema": "http://json-schema.org/draft-07/schema#",
294
- "title": "AsyncJobService"
1318
+ "PrimaryKey": [
1319
+ "uuid"
1320
+ ],
1321
+ "Identifier": "Webda/AsyncOperationAction"
295
1322
  },
296
- "Webda/AsyncOperationAction": {
297
- "type": "object",
298
- "properties": {
299
- "_creationDate": {
300
- "type": "string",
301
- "format": "date-time",
302
- "description": "Creation date",
303
- "readOnly": true
304
- },
305
- "_lastUpdate": {
306
- "type": "string",
307
- "format": "date-time",
308
- "description": "Last update date",
309
- "readOnly": true
1323
+ "Webda/AsyncWebdaAction": {
1324
+ "Plural": "AsyncWebdaActions",
1325
+ "Import": "lib/asyncaction.model:AsyncWebdaAction",
1326
+ "Relations": {},
1327
+ "Ancestors": [
1328
+ "Webda/AsyncAction"
1329
+ ],
1330
+ "Subclasses": [],
1331
+ "Reflection": {
1332
+ "logLevel": {
1333
+ "type": "WorkerLogLevel"
310
1334
  },
311
- "uuid": {
312
- "type": "string",
313
- "description": "Action uuid"
1335
+ "serviceName": {
1336
+ "type": "string"
1337
+ },
1338
+ "method": {
1339
+ "type": "string"
314
1340
  },
315
1341
  "status": {
316
- "type": "string",
317
- "enum": [
318
- "RUNNING",
319
- "SUCCESS",
320
- "ERROR",
321
- "QUEUED",
322
- "STARTING",
323
- "TIMEOUT",
324
- "SCHEDULED"
325
- ],
326
- "description": "Current status"
1342
+ "type": "\"RUNNING\" | \"SUCCESS\" | \"ERROR\" | \"QUEUED\" | \"STARTING\" | \"TIMEOUT\" | \"SCHEDULED\""
327
1343
  },
328
1344
  "scheduled": {
329
- "type": "number",
330
- "description": "Timestamp when the action was scheduled"
1345
+ "type": "number"
331
1346
  },
332
1347
  "errorMessage": {
333
- "type": "string",
334
- "description": "If an error occured it should contain the message"
1348
+ "type": "string"
335
1349
  },
336
1350
  "errorName": {
337
- "type": "string",
338
- "description": "If an error occured it should contain the name"
1351
+ "type": "string"
339
1352
  },
340
1353
  "job": {
341
- "type": "object",
342
- "description": "Job information"
1354
+ "type": "any"
343
1355
  },
344
1356
  "_lastJobUpdate": {
345
- "type": "number",
346
- "description": "Last time the job was updated",
347
- "readOnly": true
1357
+ "type": "number"
348
1358
  },
349
1359
  "results": {
350
- "description": "Results from the job"
1360
+ "type": "any"
351
1361
  },
352
1362
  "statusDetails": {
353
- "description": "Job current status"
1363
+ "type": "any"
354
1364
  },
355
1365
  "type": {
356
1366
  "type": "string"
357
1367
  },
358
1368
  "arguments": {
359
- "type": "array",
360
- "items": {}
1369
+ "type": "Array",
1370
+ "typeParameters": [
1371
+ "any"
1372
+ ]
361
1373
  },
362
1374
  "logs": {
363
- "type": "array",
364
- "items": {
365
- "type": "string"
366
- },
367
- "description": "Current logs"
1375
+ "type": "Array",
1376
+ "typeParameters": [
1377
+ "string"
1378
+ ]
1379
+ },
1380
+ "__secretKey": {
1381
+ "type": "string"
368
1382
  },
369
1383
  "action": {
370
- "type": "string",
371
- "description": "Expected action for the job\n\nIt should be a verb"
1384
+ "type": "\"STOP\" | string"
372
1385
  },
373
- "operationId": {
1386
+ "uuid": {
374
1387
  "type": "string"
375
- },
376
- "context": {
1388
+ }
1389
+ },
1390
+ "Schemas": {
1391
+ "Output": {
1392
+ "$schema": "http://json-schema.org/draft-07/schema#",
1393
+ "WebdaModel": true,
1394
+ "WebdaPlural": "AsyncWebdaActions",
1395
+ "additionalProperties": false,
1396
+ "description": "Define a Webda Async Action",
1397
+ "properties": {
1398
+ "__secretKey": {
1399
+ "description": "Secret key to post feedback",
1400
+ "type": "string"
1401
+ },
1402
+ "_lastJobUpdate": {
1403
+ "description": "Last time the job was updated",
1404
+ "type": "number"
1405
+ },
1406
+ "action": {
1407
+ "description": "Expected action for the job\n\nIt should be a verb",
1408
+ "type": "string"
1409
+ },
1410
+ "arguments": {
1411
+ "description": "Arguments of the action",
1412
+ "items": {},
1413
+ "type": "array"
1414
+ },
1415
+ "errorMessage": {
1416
+ "description": "If an error occured it should contain the message",
1417
+ "type": "string"
1418
+ },
1419
+ "errorName": {
1420
+ "description": "If an error occured it should contain the name",
1421
+ "type": "string"
1422
+ },
1423
+ "job": {
1424
+ "description": "Job information"
1425
+ },
1426
+ "logLevel": {
1427
+ "description": "Log level to capture",
1428
+ "enum": [
1429
+ "ERROR",
1430
+ "WARN",
1431
+ "INFO",
1432
+ "DEBUG",
1433
+ "TRACE"
1434
+ ],
1435
+ "type": "string"
1436
+ },
1437
+ "logs": {
1438
+ "description": "Current logs",
1439
+ "items": {
1440
+ "type": "string"
1441
+ },
1442
+ "type": "array"
1443
+ },
1444
+ "method": {
1445
+ "description": "Method to call",
1446
+ "type": "string"
1447
+ },
1448
+ "results": {
1449
+ "description": "Results from the job"
1450
+ },
1451
+ "scheduled": {
1452
+ "description": "Timestamp when the action was scheduled",
1453
+ "type": "number"
1454
+ },
1455
+ "serviceName": {
1456
+ "description": "Service to call",
1457
+ "type": "string"
1458
+ },
1459
+ "status": {
1460
+ "description": "Current status",
1461
+ "enum": [
1462
+ "RUNNING",
1463
+ "SUCCESS",
1464
+ "ERROR",
1465
+ "QUEUED",
1466
+ "STARTING",
1467
+ "TIMEOUT",
1468
+ "SCHEDULED"
1469
+ ],
1470
+ "type": "string"
1471
+ },
1472
+ "statusDetails": {
1473
+ "description": "Job current status"
1474
+ },
1475
+ "type": {
1476
+ "description": "Type of action",
1477
+ "type": "string"
1478
+ },
1479
+ "uuid": {
1480
+ "description": "UUID of the model",
1481
+ "format": "uuid",
1482
+ "type": "string"
1483
+ }
1484
+ },
1485
+ "required": [
1486
+ "__secretKey",
1487
+ "_lastJobUpdate",
1488
+ "job",
1489
+ "logLevel",
1490
+ "logs",
1491
+ "results",
1492
+ "status",
1493
+ "statusDetails",
1494
+ "type",
1495
+ "uuid"
1496
+ ],
377
1497
  "type": "object",
1498
+ "$webda": "toDto$auto"
1499
+ },
1500
+ "Input": {
1501
+ "$schema": "http://json-schema.org/draft-07/schema#",
1502
+ "WebdaModel": true,
1503
+ "WebdaPlural": "AsyncWebdaActions",
1504
+ "additionalProperties": false,
1505
+ "description": "Define a Webda Async Action",
378
1506
  "properties": {
379
- "_promises": {
380
- "type": "array",
1507
+ "__secretKey": {
1508
+ "description": "Secret key to post feedback",
1509
+ "type": "string"
1510
+ },
1511
+ "_lastJobUpdate": {
1512
+ "description": "Last time the job was updated",
1513
+ "type": "number"
1514
+ },
1515
+ "action": {
1516
+ "description": "Expected action for the job\n\nIt should be a verb",
1517
+ "type": "string"
1518
+ },
1519
+ "arguments": {
1520
+ "description": "Arguments of the action",
381
1521
  "items": {},
382
- "description": "Contain all registered promises to this context",
383
- "readOnly": true
1522
+ "type": "array"
384
1523
  },
385
- "_stream": {
386
- "type": "object",
387
- "properties": {
388
- "writable": {
389
- "type": "boolean",
390
- "description": "Is `true` if it is safe to call `writable.write()`, which means the stream has not been destroyed, errored or ended."
391
- },
392
- "writableEnded": {
393
- "type": "boolean",
394
- "description": "Is `true` after `writable.end()` has been called. This property does not indicate whether the data has been flushed, for this use `writable.writableFinished` instead."
395
- },
396
- "writableFinished": {
397
- "type": "boolean",
398
- "description": "Is set to `true` immediately before the `'finish'` event is emitted."
399
- },
400
- "writableHighWaterMark": {
401
- "type": "number",
402
- "description": "Return the value of `highWaterMark` passed when creating this `Writable`."
403
- },
404
- "writableLength": {
405
- "type": "number",
406
- "description": "This property contains the number of bytes (or objects) in the queue ready to be written. The value provides introspection data regarding the status of the `highWaterMark`."
407
- },
408
- "writableObjectMode": {
409
- "type": "boolean",
410
- "description": "Getter for the property `objectMode` of a given `Writable` stream."
411
- },
412
- "writableCorked": {
413
- "type": "number",
414
- "description": "Number of times `writable.uncork()` needs to be called in order to fully uncork the stream."
415
- },
416
- "destroyed": {
417
- "type": "boolean",
418
- "description": "Is `true` after `writable.destroy()` has been called."
419
- },
420
- "closed": {
421
- "type": "boolean",
422
- "description": "Is true after 'close' has been emitted."
423
- },
424
- "errored": {
425
- "anyOf": [
426
- {
427
- "type": "object",
428
- "properties": {
429
- "name": {
430
- "type": "string"
431
- },
432
- "message": {
433
- "type": "string"
434
- },
435
- "stack": {
436
- "type": "string"
437
- }
438
- },
439
- "required": [
440
- "name",
441
- "message"
442
- ]
443
- },
444
- {
445
- "type": "null"
446
- }
447
- ],
448
- "description": "Returns error if the stream has been destroyed with an error."
449
- },
450
- "writableNeedDrain": {
451
- "type": "boolean",
452
- "description": "Is `true` if the stream's buffer has been full and stream will emit 'drain'."
453
- }
1524
+ "errorMessage": {
1525
+ "description": "If an error occured it should contain the message",
1526
+ "type": "string"
1527
+ },
1528
+ "errorName": {
1529
+ "description": "If an error occured it should contain the name",
1530
+ "type": "string"
1531
+ },
1532
+ "job": {
1533
+ "description": "Job information"
1534
+ },
1535
+ "logLevel": {
1536
+ "description": "Log level to capture",
1537
+ "enum": [
1538
+ "ERROR",
1539
+ "WARN",
1540
+ "INFO",
1541
+ "DEBUG",
1542
+ "TRACE"
1543
+ ],
1544
+ "type": "string"
1545
+ },
1546
+ "logs": {
1547
+ "description": "Current logs",
1548
+ "items": {
1549
+ "type": "string"
1550
+ },
1551
+ "type": "array"
1552
+ },
1553
+ "method": {
1554
+ "description": "Method to call",
1555
+ "type": "string"
1556
+ },
1557
+ "results": {
1558
+ "description": "Results from the job"
1559
+ },
1560
+ "scheduled": {
1561
+ "description": "Timestamp when the action was scheduled",
1562
+ "type": "number"
1563
+ },
1564
+ "serviceName": {
1565
+ "description": "Service to call",
1566
+ "type": "string"
1567
+ },
1568
+ "status": {
1569
+ "description": "Current status",
1570
+ "enum": [
1571
+ "RUNNING",
1572
+ "SUCCESS",
1573
+ "ERROR",
1574
+ "QUEUED",
1575
+ "STARTING",
1576
+ "TIMEOUT",
1577
+ "SCHEDULED"
1578
+ ],
1579
+ "type": "string"
1580
+ },
1581
+ "statusDetails": {
1582
+ "description": "Job current status"
1583
+ },
1584
+ "type": {
1585
+ "description": "Type of action",
1586
+ "type": "string"
1587
+ },
1588
+ "uuid": {
1589
+ "description": "UUID of the model",
1590
+ "format": "uuid",
1591
+ "type": "string"
1592
+ }
1593
+ },
1594
+ "required": [
1595
+ "__secretKey",
1596
+ "_lastJobUpdate",
1597
+ "job",
1598
+ "logLevel",
1599
+ "logs",
1600
+ "results",
1601
+ "status",
1602
+ "statusDetails",
1603
+ "type",
1604
+ "uuid"
1605
+ ],
1606
+ "type": "object",
1607
+ "$webda": "fromDto$auto"
1608
+ },
1609
+ "Stored": {
1610
+ "$schema": "http://json-schema.org/draft-07/schema#",
1611
+ "WebdaModel": true,
1612
+ "WebdaPlural": "AsyncWebdaActions",
1613
+ "additionalProperties": false,
1614
+ "description": "Define a Webda Async Action",
1615
+ "properties": {
1616
+ "__secretKey": {
1617
+ "description": "Secret key to post feedback",
1618
+ "type": "string"
1619
+ },
1620
+ "_lastJobUpdate": {
1621
+ "description": "Last time the job was updated",
1622
+ "type": "number"
1623
+ },
1624
+ "action": {
1625
+ "description": "Expected action for the job\n\nIt should be a verb",
1626
+ "type": "string"
1627
+ },
1628
+ "arguments": {
1629
+ "description": "Arguments of the action",
1630
+ "items": {},
1631
+ "type": "array"
1632
+ },
1633
+ "errorMessage": {
1634
+ "description": "If an error occured it should contain the message",
1635
+ "type": "string"
1636
+ },
1637
+ "errorName": {
1638
+ "description": "If an error occured it should contain the name",
1639
+ "type": "string"
1640
+ },
1641
+ "job": {
1642
+ "description": "Job information"
1643
+ },
1644
+ "logLevel": {
1645
+ "description": "Log level to capture",
1646
+ "enum": [
1647
+ "ERROR",
1648
+ "WARN",
1649
+ "INFO",
1650
+ "DEBUG",
1651
+ "TRACE"
1652
+ ],
1653
+ "type": "string"
1654
+ },
1655
+ "logs": {
1656
+ "description": "Current logs",
1657
+ "items": {
1658
+ "type": "string"
454
1659
  },
455
- "required": [
456
- "closed",
457
- "destroyed",
458
- "errored",
459
- "writable",
460
- "writableCorked",
461
- "writableEnded",
462
- "writableFinished",
463
- "writableHighWaterMark",
464
- "writableLength",
465
- "writableNeedDrain",
466
- "writableObjectMode"
1660
+ "type": "array"
1661
+ },
1662
+ "method": {
1663
+ "description": "Method to call",
1664
+ "type": "string"
1665
+ },
1666
+ "results": {
1667
+ "description": "Results from the job"
1668
+ },
1669
+ "scheduled": {
1670
+ "description": "Timestamp when the action was scheduled",
1671
+ "type": "number"
1672
+ },
1673
+ "serviceName": {
1674
+ "description": "Service to call",
1675
+ "type": "string"
1676
+ },
1677
+ "status": {
1678
+ "description": "Current status",
1679
+ "enum": [
1680
+ "RUNNING",
1681
+ "SUCCESS",
1682
+ "ERROR",
1683
+ "QUEUED",
1684
+ "STARTING",
1685
+ "TIMEOUT",
1686
+ "SCHEDULED"
467
1687
  ],
468
- "description": "Output stream",
469
- "readOnly": true
1688
+ "type": "string"
1689
+ },
1690
+ "statusDetails": {
1691
+ "description": "Job current status"
1692
+ },
1693
+ "type": {
1694
+ "description": "Type of action",
1695
+ "type": "string"
1696
+ },
1697
+ "uuid": {
1698
+ "description": "UUID of the model",
1699
+ "format": "uuid",
1700
+ "type": "string"
470
1701
  }
471
1702
  },
472
- "description": "OperationContext is used when call to an operation"
473
- },
474
- "logLevel": {
475
- "$ref": "#/definitions/WorkerLogLevel"
476
- }
477
- },
478
- "required": [
479
- "context",
480
- "job",
481
- "logLevel",
482
- "logs",
483
- "operationId",
484
- "results",
485
- "status",
486
- "statusDetails",
487
- "type",
488
- "uuid"
489
- ],
490
- "description": "Operation called asynchronously",
491
- "$schema": "http://json-schema.org/draft-07/schema#",
492
- "definitions": {
493
- "WorkerLogLevel": {
494
- "type": "string",
495
- "enum": [
496
- "ERROR",
497
- "WARN",
498
- "INFO",
499
- "DEBUG",
500
- "TRACE"
1703
+ "required": [
1704
+ "__secretKey",
1705
+ "_lastJobUpdate",
1706
+ "job",
1707
+ "logLevel",
1708
+ "logs",
1709
+ "results",
1710
+ "status",
1711
+ "statusDetails",
1712
+ "type",
1713
+ "uuid"
501
1714
  ],
502
- "description": "LogLevel as intersection to compare with integer values"
1715
+ "type": "object",
1716
+ "$webda": "toJSON$return"
503
1717
  }
504
1718
  },
505
- "title": "AsyncOperationAction"
506
- },
507
- "Webda/AsyncWebdaAction": {
508
- "type": "object",
509
- "properties": {
510
- "_creationDate": {
511
- "type": "string",
512
- "format": "date-time",
513
- "description": "Creation date",
514
- "readOnly": true
515
- },
516
- "_lastUpdate": {
517
- "type": "string",
518
- "format": "date-time",
519
- "description": "Last update date",
520
- "readOnly": true
521
- },
522
- "uuid": {
523
- "type": "string",
524
- "description": "Action uuid"
525
- },
1719
+ "Actions": {
526
1720
  "status": {
527
- "type": "string",
528
- "enum": [
529
- "RUNNING",
530
- "SUCCESS",
531
- "ERROR",
532
- "QUEUED",
533
- "STARTING",
534
- "TIMEOUT",
535
- "SCHEDULED"
536
- ],
537
- "description": "Current status"
538
- },
539
- "scheduled": {
540
- "type": "number",
541
- "description": "Timestamp when the action was scheduled"
542
- },
543
- "errorMessage": {
544
- "type": "string",
545
- "description": "If an error occured it should contain the message"
546
- },
547
- "errorName": {
548
- "type": "string",
549
- "description": "If an error occured it should contain the name"
550
- },
551
- "job": {
552
- "type": "object",
553
- "description": "Job information"
554
- },
555
- "_lastJobUpdate": {
556
- "type": "number",
557
- "description": "Last time the job was updated",
558
- "readOnly": true
559
- },
560
- "results": {
561
- "description": "Results from the job"
562
- },
563
- "statusDetails": {
564
- "description": "Job current status"
565
- },
566
- "type": {
567
- "type": "string"
568
- },
569
- "arguments": {
570
- "type": "array",
571
- "items": {}
572
- },
573
- "logs": {
574
- "type": "array",
575
- "items": {
576
- "type": "string"
577
- },
578
- "description": "Current logs"
579
- },
580
- "action": {
581
- "type": "string",
582
- "description": "Expected action for the job\n\nIt should be a verb"
583
- },
584
- "logLevel": {
585
- "$ref": "#/definitions/WorkerLogLevel"
586
- },
587
- "serviceName": {
588
- "type": "string",
589
- "description": "service to call"
590
- },
591
- "method": {
592
- "type": "string",
593
- "description": "method to call"
1721
+ "handler": "statusAction"
594
1722
  }
595
1723
  },
596
- "required": [
597
- "job",
598
- "logLevel",
599
- "logs",
600
- "results",
601
- "status",
602
- "statusDetails",
603
- "type",
1724
+ "Events": [
1725
+ "Create",
1726
+ "PartialUpdate",
1727
+ "Delete",
1728
+ "Update",
1729
+ "Patch",
1730
+ "Query",
1731
+ "Aggregate",
1732
+ "Created",
1733
+ "PartialUpdated",
1734
+ "Deleted",
1735
+ "Patched",
1736
+ "Updated",
1737
+ "Queried",
1738
+ "Aggregated"
1739
+ ],
1740
+ "PrimaryKey": [
604
1741
  "uuid"
605
1742
  ],
606
- "description": "Define a Webda Async Action",
607
- "$schema": "http://json-schema.org/draft-07/schema#",
608
- "definitions": {
609
- "WorkerLogLevel": {
610
- "type": "string",
611
- "enum": [
612
- "ERROR",
613
- "WARN",
614
- "INFO",
615
- "DEBUG",
616
- "TRACE"
617
- ],
618
- "description": "LogLevel as intersection to compare with integer values"
619
- }
620
- },
621
- "title": "AsyncWebdaAction"
622
- },
1743
+ "Identifier": "Webda/AsyncWebdaAction"
1744
+ }
1745
+ },
1746
+ "schemas": {
623
1747
  "Webda/BinaryFile": {
624
- "type": "object",
1748
+ "$schema": "http://json-schema.org/draft-07/schema#",
1749
+ "WebdaSchema": true,
1750
+ "additionalProperties": false,
1751
+ "description": "Represent a file to store",
625
1752
  "properties": {
626
1753
  "hash": {
627
- "type": "string",
628
- "description": "Will be computed by the service\n\nhash of the content"
629
- },
630
- "challenge": {
631
- "type": "string",
632
- "description": "Will be computed by the service\n\nhash of the content prefixed by 'WEBDA'"
633
- },
634
- "size": {
635
- "type": "number",
636
- "description": "Size of the binary"
1754
+ "description": "Will be computed by the service\n\nhash of the content",
1755
+ "type": "string"
637
1756
  },
638
- "name": {
639
- "type": "string",
640
- "description": "Current name"
1757
+ "metadata": {
1758
+ "description": "Metadatas stored along with the binary"
641
1759
  },
642
1760
  "mimetype": {
643
- "type": "string",
644
- "description": "Mimetype of the binary"
1761
+ "description": "Mimetype of the binary",
1762
+ "type": "string"
645
1763
  },
646
- "metadata": {
647
- "description": "Metadatas stored along with the binary"
1764
+ "name": {
1765
+ "description": "Current name",
1766
+ "type": "string"
648
1767
  },
649
1768
  "originalname": {
650
- "type": "string",
651
- "description": "Original name"
1769
+ "description": "Original name",
1770
+ "type": "string"
1771
+ },
1772
+ "size": {
1773
+ "description": "Size of the binary",
1774
+ "type": "number"
652
1775
  }
653
1776
  },
654
1777
  "required": [
@@ -656,353 +1779,270 @@
656
1779
  "name",
657
1780
  "size"
658
1781
  ],
659
- "description": "Represent a file to store",
660
- "$schema": "http://json-schema.org/draft-07/schema#",
1782
+ "type": "object",
661
1783
  "title": "BinaryFile"
662
1784
  },
663
- "Webda/LocalRunner": {
1785
+ "Webda/AsyncAction.status.input": {
664
1786
  "type": "object",
665
1787
  "properties": {
666
- "type": {
667
- "type": "string",
668
- "description": "Type of the service"
669
- },
670
- "url": {
671
- "type": "string",
672
- "description": "URL on which to serve the content"
673
- },
674
- "actions": {
675
- "type": "array",
676
- "items": {
677
- "type": "string"
678
- },
679
- "description": "Actions managed by the runner",
680
- "default": []
681
- },
682
- "command": {
683
- "type": "string",
684
- "description": "Command to launch"
685
- },
686
- "args": {
687
- "type": "array",
688
- "items": {
689
- "type": "string"
690
- },
691
- "description": "Args"
692
- },
693
- "options": {
694
- "type": "object",
1788
+ "context": {
1789
+ "additionalProperties": false,
1790
+ "description": "OperationContext is used when call to an operation",
1791
+ "param": [
1792
+ "T type of input for this context",
1793
+ "U type of output for this context",
1794
+ "P type of parameters for this context"
1795
+ ],
695
1796
  "properties": {
696
- "signal": {
697
- "type": "object",
698
- "properties": {
699
- "aborted": {
700
- "type": "boolean"
701
- },
702
- "onabort": {
703
- "anyOf": [
704
- {},
705
- {
706
- "type": "null"
707
- }
708
- ]
709
- },
710
- "reason": {}
1797
+ "_promises": {
1798
+ "description": "Contain all registered promises to this context",
1799
+ "items": {
1800
+ "$ref": "#/definitions/Promise%3Cany%3E"
711
1801
  },
712
- "required": [
713
- "aborted",
714
- "onabort",
715
- "reason"
716
- ],
717
- "description": "When provided the corresponding `AbortController` can be used to cancel an asynchronous action."
718
- },
719
- "serialization": {
720
- "$ref": "#/definitions/SerializationType",
721
- "description": "Specify the kind of serialization used for sending messages between processes.",
722
- "default": "json"
723
- },
724
- "killSignal": {
725
- "anyOf": [
726
- {
727
- "$ref": "#/definitions/global.NodeJS.Signals"
728
- },
729
- {
730
- "type": "number"
731
- }
732
- ],
733
- "description": "The signal value to be used when the spawned process will be killed by the abort signal.",
734
- "default": "SIGTERM"
735
- },
736
- "timeout": {
737
- "type": "number",
738
- "default": 0
739
- },
740
- "uid": {
741
- "type": "number"
742
- },
743
- "gid": {
744
- "type": "number"
1802
+ "type": "array"
745
1803
  },
746
- "cwd": {
747
- "anyOf": [
748
- {
749
- "type": "string"
750
- },
751
- {
752
- "type": "object",
753
- "properties": {
754
- "hash": {
755
- "type": "string",
756
- "description": "Gets and sets the fragment portion of the URL.\n\n```js const myURL = new URL('https://example.org/foo#bar'); console.log(myURL.hash); // Prints #bar\n\nmyURL.hash = 'baz'; console.log(myURL.href); // Prints https://example.org/foo#baz ```\n\nInvalid URL characters included in the value assigned to the `hash` property are `percent-encoded`. The selection of which characters to percent-encode may vary somewhat from what the {@link parse } and {@link format } methods would produce."
757
- },
758
- "host": {
759
- "type": "string",
760
- "description": "Gets and sets the host portion of the URL.\n\n```js const myURL = new URL('https://example.org:81/foo'); console.log(myURL.host); // Prints example.org:81\n\nmyURL.host = 'example.com:82'; console.log(myURL.href); // Prints https://example.com:82/foo ```\n\nInvalid host values assigned to the `host` property are ignored."
761
- },
762
- "hostname": {
763
- "type": "string",
764
- "description": "Gets and sets the host name portion of the URL. The key difference between`url.host` and `url.hostname` is that `url.hostname` does _not_ include the port.\n\n```js const myURL = new URL('https://example.org:81/foo'); console.log(myURL.hostname); // Prints example.org\n\n// Setting the hostname does not change the port myURL.hostname = 'example.com:82'; console.log(myURL.href); // Prints https://example.com:81/foo\n\n// Use myURL.host to change the hostname and port myURL.host = 'example.org:82'; console.log(myURL.href); // Prints https://example.org:82/foo ```\n\nInvalid host name values assigned to the `hostname` property are ignored."
765
- },
766
- "href": {
767
- "type": "string",
768
- "description": "Gets and sets the serialized URL.\n\n```js const myURL = new URL('https://example.org/foo'); console.log(myURL.href); // Prints https://example.org/foo\n\nmyURL.href = 'https://example.com/bar'; console.log(myURL.href); // Prints https://example.com/bar ```\n\nGetting the value of the `href` property is equivalent to calling {@link toString } .\n\nSetting the value of this property to a new value is equivalent to creating a new `URL` object using `new URL(value)`. Each of the `URL`object's properties will be modified.\n\nIf the value assigned to the `href` property is not a valid URL, a `TypeError`will be thrown."
769
- },
770
- "origin": {
771
- "type": "string",
772
- "description": "Gets the read-only serialization of the URL's origin.\n\n```js const myURL = new URL('https://example.org/foo/bar?baz'); console.log(myURL.origin); // Prints https://example.org ```\n\n```js const idnURL = new URL('https://測試'); console.log(idnURL.origin); // Prints https://xn--g6w251d\n\nconsole.log(idnURL.hostname); // Prints xn--g6w251d ```"
773
- },
774
- "password": {
775
- "type": "string",
776
- "description": "Gets and sets the password portion of the URL.\n\n```js const myURL = new URL('https://abc:xyz@example.com'); console.log(myURL.password); // Prints xyz\n\nmyURL.password = '123'; console.log(myURL.href); // Prints https://abc:123@example.com ```\n\nInvalid URL characters included in the value assigned to the `password` property are `percent-encoded`. The selection of which characters to percent-encode may vary somewhat from what the {@link parse } and {@link format } methods would produce."
777
- },
778
- "pathname": {
779
- "type": "string",
780
- "description": "Gets and sets the path portion of the URL.\n\n```js const myURL = new URL('https://example.org/abc/xyz?123'); console.log(myURL.pathname); // Prints /abc/xyz\n\nmyURL.pathname = '/abcdef'; console.log(myURL.href); // Prints https://example.org/abcdef?123 ```\n\nInvalid URL characters included in the value assigned to the `pathname`property are `percent-encoded`. The selection of which characters to percent-encode may vary somewhat from what the {@link parse } and {@link format } methods would produce."
781
- },
782
- "port": {
783
- "type": "string",
784
- "description": "Gets and sets the port portion of the URL.\n\nThe port value may be a number or a string containing a number in the range`0` to `65535` (inclusive). Setting the value to the default port of the`URL` objects given `protocol` will result in the `port` value becoming the empty string (`''`).\n\nThe port value can be an empty string in which case the port depends on the protocol/scheme:\n\n<omitted>\n\nUpon assigning a value to the port, the value will first be converted to a string using `.toString()`.\n\nIf that string is invalid but it begins with a number, the leading number is assigned to `port`. If the number lies outside the range denoted above, it is ignored.\n\n```js const myURL = new URL('https://example.org:8888'); console.log(myURL.port); // Prints 8888\n\n// Default ports are automatically transformed to the empty string // (HTTPS protocol's default port is 443) myURL.port = '443'; console.log(myURL.port); // Prints the empty string console.log(myURL.href); // Prints https://example.org/\n\nmyURL.port = 1234; console.log(myURL.port); // Prints 1234 console.log(myURL.href); // Prints https://example.org:1234/\n\n// Completely invalid port strings are ignored myURL.port = 'abcd'; console.log(myURL.port); // Prints 1234\n\n// Leading numbers are treated as a port number myURL.port = '5678abcd'; console.log(myURL.port); // Prints 5678\n\n// Non-integers are truncated myURL.port = 1234.5678; console.log(myURL.port); // Prints 1234\n\n// Out-of-range numbers which are not represented in scientific notation // will be ignored. myURL.port = 1e10; // 10000000000, will be range-checked as described below console.log(myURL.port); // Prints 1234 ```\n\nNumbers which contain a decimal point, such as floating-point numbers or numbers in scientific notation, are not an exception to this rule. Leading numbers up to the decimal point will be set as the URL's port, assuming they are valid:\n\n```js myURL.port = 4.567e21; console.log(myURL.port); // Prints 4 (because it is the leading number in the string '4.567e21') ```"
785
- },
786
- "protocol": {
787
- "type": "string",
788
- "description": "Gets and sets the protocol portion of the URL.\n\n```js const myURL = new URL('https://example.org'); console.log(myURL.protocol); // Prints https:\n\nmyURL.protocol = 'ftp'; console.log(myURL.href); // Prints ftp://example.org/ ```\n\nInvalid URL protocol values assigned to the `protocol` property are ignored."
789
- },
790
- "search": {
791
- "type": "string",
792
- "description": "Gets and sets the serialized query portion of the URL.\n\n```js const myURL = new URL('https://example.org/abc?123'); console.log(myURL.search); // Prints ?123\n\nmyURL.search = 'abc=xyz'; console.log(myURL.href); // Prints https://example.org/abc?abc=xyz ```\n\nAny invalid URL characters appearing in the value assigned the `search`property will be `percent-encoded`. The selection of which characters to percent-encode may vary somewhat from what the {@link parse } and {@link format } methods would produce."
793
- },
794
- "searchParams": {
795
- "type": "object",
796
- "properties": {},
797
- "description": "Gets the `URLSearchParams` object representing the query parameters of the URL. This property is read-only but the `URLSearchParams` object it provides can be used to mutate the URL instance; to replace the entirety of query parameters of the URL, use the {@link search } setter. See `URLSearchParams` documentation for details.\n\nUse care when using `.searchParams` to modify the `URL` because, per the WHATWG specification, the `URLSearchParams` object uses different rules to determine which characters to percent-encode. For instance, the `URL` object will not percent encode the ASCII tilde (`~`) character, while `URLSearchParams` will always encode it:\n\n```js const myUrl = new URL('https://example.org/abc?foo=~bar');\n\nconsole.log(myUrl.search); // prints ?foo=~bar\n\n// Modify the URL via searchParams... myUrl.searchParams.sort();\n\nconsole.log(myUrl.search); // prints ?foo=%7Ebar ```"
798
- },
799
- "username": {
800
- "type": "string",
801
- "description": "Gets and sets the username portion of the URL.\n\n```js const myURL = new URL('https://abc:xyz@example.com'); console.log(myURL.username); // Prints abc\n\nmyURL.username = '123'; console.log(myURL.href); // Prints https://123:xyz@example.com/ ```\n\nAny invalid URL characters appearing in the value assigned the `username`property will be `percent-encoded`. The selection of which characters to percent-encode may vary somewhat from what the {@link parse } and {@link format } methods would produce."
802
- }
803
- },
804
- "required": [
805
- "hash",
806
- "host",
807
- "hostname",
808
- "href",
809
- "origin",
810
- "password",
811
- "pathname",
812
- "port",
813
- "protocol",
814
- "search",
815
- "searchParams",
816
- "username"
817
- ],
818
- "description": "Browser-compatible `URL` class, implemented by following the WHATWG URL Standard. [Examples of parsed URLs](https://url.spec.whatwg.org/#example-url-parsing) may be found in the Standard itself. The `URL` class is also available on the global object.\n\nIn accordance with browser conventions, all properties of `URL` objects are implemented as getters and setters on the class prototype, rather than as data properties on the object itself. Thus, unlike `legacy urlObject` s, using the `delete` keyword on any properties of `URL` objects (e.g. `delete myURL.protocol`, `delete myURL.pathname`, etc) has no effect but will still return `true`."
819
- }
820
- ]
821
- },
822
- "env": {
823
- "type": "object",
824
- "properties": {
825
- "TZ": {
826
- "type": "string",
827
- "description": "Can be used to change the default timezone at runtime"
828
- }
829
- }
1804
+ "_stream": {
1805
+ "$ref": "#/definitions/Writable",
1806
+ "description": "Output stream"
830
1807
  },
831
- "windowsHide": {
832
- "type": "boolean",
833
- "default": true
1808
+ "caches": {
1809
+ "description": "Get the caches linked to the context"
834
1810
  },
835
- "argv0": {
1811
+ "parameters": {}
1812
+ },
1813
+ "required": [
1814
+ "_promises",
1815
+ "_stream",
1816
+ "caches",
1817
+ "parameters"
1818
+ ],
1819
+ "type": "object"
1820
+ }
1821
+ },
1822
+ "definitions": {
1823
+ "Error": {
1824
+ "additionalProperties": false,
1825
+ "properties": {
1826
+ "message": {
836
1827
  "type": "string"
837
1828
  },
838
- "stdio": {
839
- "$ref": "#/definitions/StdioOptions"
840
- },
841
- "shell": {
842
- "type": [
843
- "boolean",
844
- "string"
845
- ]
1829
+ "name": {
1830
+ "type": "string"
846
1831
  },
847
- "windowsVerbatimArguments": {
1832
+ "stack": {
1833
+ "type": "string"
1834
+ }
1835
+ },
1836
+ "required": [
1837
+ "message",
1838
+ "name"
1839
+ ],
1840
+ "type": "object"
1841
+ },
1842
+ "Promise<any>": {
1843
+ "additionalProperties": false,
1844
+ "description": "Represents the completion of an asynchronous operation",
1845
+ "type": "object"
1846
+ },
1847
+ "Writable": {
1848
+ "additionalProperties": false,
1849
+ "properties": {
1850
+ "destroyed": {
1851
+ "default": false,
1852
+ "description": "Is `true` after `writable.destroy()` has been called.",
1853
+ "since": "v8.0.0",
848
1854
  "type": "boolean"
849
1855
  },
850
- "detached": {
1856
+ "writable": {
1857
+ "default": false,
1858
+ "description": "Is `true` if it is safe to call `writable.write()`, which means\nthe stream has not been destroyed, errored, or ended.",
1859
+ "since": "v11.4.0",
851
1860
  "type": "boolean"
852
1861
  }
853
1862
  },
854
- "description": "Options\n\nBased on https://nodejs.org/api/child_process.html#child_process_child_process_spawn_command_args_options"
855
- },
856
- "autoStatus": {
857
- "type": "boolean",
858
- "description": "Use the observability of ChildProcess to update status accordingly"
859
- },
860
- "openapi": {
861
- "type": "object",
862
- "additionalProperties": true
1863
+ "since": "v0.9.4",
1864
+ "type": "object"
863
1865
  }
864
- },
865
- "required": [
866
- "command",
867
- "type"
868
- ],
1866
+ }
1867
+ },
1868
+ "Webda/AsyncAction.status.output": {
869
1869
  "$schema": "http://json-schema.org/draft-07/schema#",
1870
+ "not": {}
1871
+ },
1872
+ "Webda/AsyncOperationAction.status.input": {
1873
+ "type": "object",
1874
+ "properties": {
1875
+ "context": {
1876
+ "additionalProperties": false,
1877
+ "description": "OperationContext is used when call to an operation",
1878
+ "param": [
1879
+ "T type of input for this context",
1880
+ "U type of output for this context",
1881
+ "P type of parameters for this context"
1882
+ ],
1883
+ "properties": {
1884
+ "_promises": {
1885
+ "description": "Contain all registered promises to this context",
1886
+ "items": {
1887
+ "$ref": "#/definitions/Promise%3Cany%3E"
1888
+ },
1889
+ "type": "array"
1890
+ },
1891
+ "_stream": {
1892
+ "$ref": "#/definitions/Writable",
1893
+ "description": "Output stream"
1894
+ },
1895
+ "caches": {
1896
+ "description": "Get the caches linked to the context"
1897
+ },
1898
+ "parameters": {}
1899
+ },
1900
+ "required": [
1901
+ "_promises",
1902
+ "_stream",
1903
+ "caches",
1904
+ "parameters"
1905
+ ],
1906
+ "type": "object"
1907
+ }
1908
+ },
870
1909
  "definitions": {
871
- "SerializationType": {
872
- "type": "string",
873
- "enum": [
874
- "json",
875
- "advanced"
876
- ]
1910
+ "Error": {
1911
+ "additionalProperties": false,
1912
+ "properties": {
1913
+ "message": {
1914
+ "type": "string"
1915
+ },
1916
+ "name": {
1917
+ "type": "string"
1918
+ },
1919
+ "stack": {
1920
+ "type": "string"
1921
+ }
1922
+ },
1923
+ "required": [
1924
+ "message",
1925
+ "name"
1926
+ ],
1927
+ "type": "object"
877
1928
  },
878
- "global.NodeJS.Signals": {
879
- "type": "string",
880
- "enum": [
881
- "SIGABRT",
882
- "SIGALRM",
883
- "SIGBUS",
884
- "SIGCHLD",
885
- "SIGCONT",
886
- "SIGFPE",
887
- "SIGHUP",
888
- "SIGILL",
889
- "SIGINT",
890
- "SIGIO",
891
- "SIGIOT",
892
- "SIGKILL",
893
- "SIGPIPE",
894
- "SIGPOLL",
895
- "SIGPROF",
896
- "SIGPWR",
897
- "SIGQUIT",
898
- "SIGSEGV",
899
- "SIGSTKFLT",
900
- "SIGSTOP",
901
- "SIGSYS",
902
- "SIGTERM",
903
- "SIGTRAP",
904
- "SIGTSTP",
905
- "SIGTTIN",
906
- "SIGTTOU",
907
- "SIGUNUSED",
908
- "SIGURG",
909
- "SIGUSR1",
910
- "SIGUSR2",
911
- "SIGVTALRM",
912
- "SIGWINCH",
913
- "SIGXCPU",
914
- "SIGXFSZ",
915
- "SIGBREAK",
916
- "SIGLOST",
917
- "SIGINFO"
918
- ]
1929
+ "Promise<any>": {
1930
+ "additionalProperties": false,
1931
+ "description": "Represents the completion of an asynchronous operation",
1932
+ "type": "object"
919
1933
  },
920
- "StdioOptions": {
921
- "anyOf": [
922
- {
923
- "$ref": "#/definitions/IOType"
1934
+ "Writable": {
1935
+ "additionalProperties": false,
1936
+ "properties": {
1937
+ "destroyed": {
1938
+ "default": false,
1939
+ "description": "Is `true` after `writable.destroy()` has been called.",
1940
+ "since": "v8.0.0",
1941
+ "type": "boolean"
924
1942
  },
925
- {
926
- "type": "array",
927
- "items": {
928
- "anyOf": [
929
- {
930
- "$ref": "#/definitions/IOType"
931
- },
932
- {
933
- "type": "string",
934
- "const": "ipc"
935
- },
936
- {
937
- "type": "object",
938
- "properties": {}
939
- },
940
- {
941
- "type": "number"
942
- },
943
- {
944
- "type": "null"
945
- },
946
- {
947
- "not": {}
948
- }
949
- ]
950
- }
1943
+ "writable": {
1944
+ "default": false,
1945
+ "description": "Is `true` if it is safe to call `writable.write()`, which means\nthe stream has not been destroyed, errored, or ended.",
1946
+ "since": "v11.4.0",
1947
+ "type": "boolean"
951
1948
  }
952
- ]
953
- },
954
- "IOType": {
955
- "type": "string",
956
- "enum": [
957
- "overlapped",
958
- "pipe",
959
- "ignore",
960
- "inherit"
961
- ]
1949
+ },
1950
+ "since": "v0.9.4",
1951
+ "type": "object"
962
1952
  }
963
- },
964
- "title": "LocalRunner"
1953
+ }
965
1954
  },
966
- "Webda/ServiceRunner": {
1955
+ "Webda/AsyncOperationAction.status.output": {
1956
+ "$schema": "http://json-schema.org/draft-07/schema#",
1957
+ "not": {}
1958
+ },
1959
+ "Webda/AsyncWebdaAction.status.input": {
967
1960
  "type": "object",
968
1961
  "properties": {
969
- "type": {
970
- "type": "string",
971
- "description": "Type of the service"
972
- },
973
- "url": {
974
- "type": "string",
975
- "description": "URL on which to serve the content"
976
- },
977
- "actions": {
978
- "type": "array",
979
- "items": {
980
- "type": "string"
1962
+ "context": {
1963
+ "additionalProperties": false,
1964
+ "description": "OperationContext is used when call to an operation",
1965
+ "param": [
1966
+ "T type of input for this context",
1967
+ "U type of output for this context",
1968
+ "P type of parameters for this context"
1969
+ ],
1970
+ "properties": {
1971
+ "_promises": {
1972
+ "description": "Contain all registered promises to this context",
1973
+ "items": {
1974
+ "$ref": "#/definitions/Promise%3Cany%3E"
1975
+ },
1976
+ "type": "array"
1977
+ },
1978
+ "_stream": {
1979
+ "$ref": "#/definitions/Writable",
1980
+ "description": "Output stream"
1981
+ },
1982
+ "caches": {
1983
+ "description": "Get the caches linked to the context"
1984
+ },
1985
+ "parameters": {}
981
1986
  },
982
- "description": "Actions managed by the runner",
983
- "default": []
984
- },
985
- "logFormat": {
986
- "type": "string",
987
- "description": "Define the log format",
988
- "default": "ConsoleLoggerDefaultFormat"
1987
+ "required": [
1988
+ "_promises",
1989
+ "_stream",
1990
+ "caches",
1991
+ "parameters"
1992
+ ],
1993
+ "type": "object"
1994
+ }
1995
+ },
1996
+ "definitions": {
1997
+ "Error": {
1998
+ "additionalProperties": false,
1999
+ "properties": {
2000
+ "message": {
2001
+ "type": "string"
2002
+ },
2003
+ "name": {
2004
+ "type": "string"
2005
+ },
2006
+ "stack": {
2007
+ "type": "string"
2008
+ }
2009
+ },
2010
+ "required": [
2011
+ "message",
2012
+ "name"
2013
+ ],
2014
+ "type": "object"
989
2015
  },
990
- "logSaveDelay": {
991
- "type": "number",
992
- "description": "How long before saving logs (in ms)",
993
- "default": 5000
2016
+ "Promise<any>": {
2017
+ "additionalProperties": false,
2018
+ "description": "Represents the completion of an asynchronous operation",
2019
+ "type": "object"
994
2020
  },
995
- "openapi": {
996
- "type": "object",
997
- "additionalProperties": true
2021
+ "Writable": {
2022
+ "additionalProperties": false,
2023
+ "properties": {
2024
+ "destroyed": {
2025
+ "default": false,
2026
+ "description": "Is `true` after `writable.destroy()` has been called.",
2027
+ "since": "v8.0.0",
2028
+ "type": "boolean"
2029
+ },
2030
+ "writable": {
2031
+ "default": false,
2032
+ "description": "Is `true` if it is safe to call `writable.write()`, which means\nthe stream has not been destroyed, errored, or ended.",
2033
+ "since": "v11.4.0",
2034
+ "type": "boolean"
2035
+ }
2036
+ },
2037
+ "since": "v0.9.4",
2038
+ "type": "object"
998
2039
  }
999
- },
1000
- "required": [
1001
- "type"
1002
- ],
1003
- "description": "Add the log format to capture",
2040
+ }
2041
+ },
2042
+ "Webda/AsyncWebdaAction.status.output": {
1004
2043
  "$schema": "http://json-schema.org/draft-07/schema#",
1005
- "title": "ServiceRunner"
2044
+ "not": {}
1006
2045
  }
1007
- }
2046
+ },
2047
+ "behaviors": {}
1008
2048
  }