@webda/async 2.0.0-beta.0 → 2.0.0-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/models.d.ts +1 -1
- package/lib/services/asyncjobservice.d.ts +19 -3
- package/lib/services/asyncjobservice.js +42 -15
- package/lib/services/asyncjobservice.js.map +1 -1
- package/lib/services/localrunner.d.ts +3 -3
- package/lib/services/localrunner.js +4 -2
- package/lib/services/localrunner.js.map +1 -1
- package/package.json +7 -6
package/lib/models.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { CloudBinary, Context, Queue, RequestFilter, Service, ServiceParameters, Store } from "@webda/core";
|
|
2
2
|
import { AsyncAction, AsyncActionQueueItem } from "../models";
|
|
3
3
|
import { Runner } from "./runner";
|
|
4
4
|
/**
|
|
@@ -19,6 +19,18 @@ export declare class AsyncJobServiceParameters extends ServiceParameters {
|
|
|
19
19
|
* @default AsyncActions
|
|
20
20
|
*/
|
|
21
21
|
store: string;
|
|
22
|
+
/**
|
|
23
|
+
* If we want to expose a way to upload/download binary for the job
|
|
24
|
+
*
|
|
25
|
+
* It will expose a /download and /upload additional url
|
|
26
|
+
*/
|
|
27
|
+
binaryStore?: string;
|
|
28
|
+
/**
|
|
29
|
+
* If set runner will be called without queue
|
|
30
|
+
*
|
|
31
|
+
* @default false
|
|
32
|
+
*/
|
|
33
|
+
localLaunch?: boolean;
|
|
22
34
|
/**
|
|
23
35
|
* Queue to post execution to
|
|
24
36
|
* @default AsyncActionsQueue
|
|
@@ -67,6 +79,10 @@ export default class AsyncJobService<T extends AsyncJobServiceParameters = Async
|
|
|
67
79
|
* HMAC Algorithm used for simple auth
|
|
68
80
|
*/
|
|
69
81
|
static HMAC_ALGO: string;
|
|
82
|
+
/**
|
|
83
|
+
* If we want job to be able to upload/download
|
|
84
|
+
*/
|
|
85
|
+
protected binaryStore: CloudBinary;
|
|
70
86
|
/**
|
|
71
87
|
* @inheritdoc
|
|
72
88
|
*/
|
|
@@ -74,7 +90,7 @@ export default class AsyncJobService<T extends AsyncJobServiceParameters = Async
|
|
|
74
90
|
/**
|
|
75
91
|
* @inheritdoc
|
|
76
92
|
*/
|
|
77
|
-
resolve():
|
|
93
|
+
resolve(): this;
|
|
78
94
|
/**
|
|
79
95
|
* Allow job status report url
|
|
80
96
|
*/
|
|
@@ -84,7 +100,7 @@ export default class AsyncJobService<T extends AsyncJobServiceParameters = Async
|
|
|
84
100
|
* @param context
|
|
85
101
|
* @param action
|
|
86
102
|
*/
|
|
87
|
-
verifyJobRequest(context: Context): Promise<
|
|
103
|
+
verifyJobRequest<K extends AsyncAction = AsyncAction>(context: Context): Promise<K>;
|
|
88
104
|
/**
|
|
89
105
|
* Status hook for job report
|
|
90
106
|
*
|
|
@@ -11,10 +11,10 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.AsyncJobService = exports.AsyncJobServiceParameters = void 0;
|
|
13
13
|
const core_1 = require("@webda/core");
|
|
14
|
+
const axios_1 = require("axios");
|
|
15
|
+
const crypto = require("crypto");
|
|
14
16
|
const uuid_1 = require("uuid");
|
|
15
17
|
const runner_1 = require("./runner");
|
|
16
|
-
const crypto = require("crypto");
|
|
17
|
-
const axios_1 = require("axios");
|
|
18
18
|
/**
|
|
19
19
|
* @inheritdoc
|
|
20
20
|
*/
|
|
@@ -64,7 +64,29 @@ class AsyncJobService extends core_1.Service {
|
|
|
64
64
|
return res;
|
|
65
65
|
})
|
|
66
66
|
.filter(r => r !== undefined);
|
|
67
|
-
|
|
67
|
+
// This is internal job reporting so no need to document the api
|
|
68
|
+
this.addRoute(`${this.parameters.url}/status`, ["POST"], this.statusHook, {
|
|
69
|
+
hidden: true
|
|
70
|
+
});
|
|
71
|
+
// Add upload/download route if needed
|
|
72
|
+
if (this.parameters.binaryStore) {
|
|
73
|
+
this.binaryStore = this.getService(this.parameters.binaryStore);
|
|
74
|
+
// Call directly Webda addRoute as we are setting a route for another service in fact
|
|
75
|
+
this.getWebda().addRoute(`${this.parameters.url}/download/{store}/{uid}/{property}/{index}`, {
|
|
76
|
+
_method: this.binaryStore.getRedirectUrlInfo,
|
|
77
|
+
executor: this.parameters.binaryStore,
|
|
78
|
+
openapi: { hidden: true },
|
|
79
|
+
methods: ["GET"]
|
|
80
|
+
});
|
|
81
|
+
this.getWebda().addRoute(`${this.parameters.url}/upload/{store}/{uid}/{property}`, {
|
|
82
|
+
_method: this.binaryStore.httpChallenge,
|
|
83
|
+
executor: this.parameters.binaryStore,
|
|
84
|
+
openapi: { hidden: true },
|
|
85
|
+
methods: ["PUT"]
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
this.getWebda().registerRequestFilter(this);
|
|
89
|
+
return this;
|
|
68
90
|
}
|
|
69
91
|
/**
|
|
70
92
|
* Allow job status report url
|
|
@@ -72,12 +94,12 @@ class AsyncJobService extends core_1.Service {
|
|
|
72
94
|
checkRequest(context) {
|
|
73
95
|
return __awaiter(this, void 0, void 0, function* () {
|
|
74
96
|
const url = context.getHttpContext().getRelativeUri();
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
97
|
+
if (url.startsWith(this.parameters.url)) {
|
|
98
|
+
// Allow status url to be called without other mechanism
|
|
99
|
+
yield this.verifyJobRequest(context);
|
|
100
|
+
return true;
|
|
101
|
+
}
|
|
102
|
+
return false;
|
|
81
103
|
});
|
|
82
104
|
}
|
|
83
105
|
/**
|
|
@@ -87,7 +109,7 @@ class AsyncJobService extends core_1.Service {
|
|
|
87
109
|
*/
|
|
88
110
|
verifyJobRequest(context) {
|
|
89
111
|
return __awaiter(this, void 0, void 0, function* () {
|
|
90
|
-
const jobId = context.getHttpContext().
|
|
112
|
+
const jobId = context.getHttpContext().getUniqueHeader("X-Job-Id");
|
|
91
113
|
if (!jobId) {
|
|
92
114
|
this.log("TRACE", "Require Job Id");
|
|
93
115
|
throw 404;
|
|
@@ -97,13 +119,15 @@ class AsyncJobService extends core_1.Service {
|
|
|
97
119
|
this.log("TRACE", `Unknown Job Id '${jobId}'`);
|
|
98
120
|
throw 404;
|
|
99
121
|
}
|
|
100
|
-
const jobTime = context.getHttpContext().
|
|
101
|
-
const jobHash = context.getHttpContext().
|
|
122
|
+
const jobTime = context.getHttpContext().getUniqueHeader("X-Job-Time");
|
|
123
|
+
const jobHash = context.getHttpContext().getUniqueHeader("X-Job-Hash");
|
|
102
124
|
// Ensure hash mac is correct
|
|
103
125
|
if (jobHash !== crypto.createHmac(AsyncJobService.HMAC_ALGO, action.__secretKey).update(jobTime).digest("hex")) {
|
|
104
126
|
this.log("TRACE", "Invalid Job HMAC");
|
|
105
127
|
throw 403;
|
|
106
128
|
}
|
|
129
|
+
// Set the context extension
|
|
130
|
+
context.setExtension("asyncJob", action);
|
|
107
131
|
return action;
|
|
108
132
|
});
|
|
109
133
|
}
|
|
@@ -115,8 +139,8 @@ class AsyncJobService extends core_1.Service {
|
|
|
115
139
|
statusHook(context) {
|
|
116
140
|
return __awaiter(this, void 0, void 0, function* () {
|
|
117
141
|
const action = yield this.verifyJobRequest(context);
|
|
118
|
-
const body = context.getRequestBody();
|
|
119
|
-
action._lastJobUpdate = Number.parseInt(context.getHttpContext().
|
|
142
|
+
const body = yield context.getRequestBody();
|
|
143
|
+
action._lastJobUpdate = Number.parseInt(context.getHttpContext().getUniqueHeader("X-Job-Time")) || 0;
|
|
120
144
|
if (Date.now() - action._lastJobUpdate > 60) {
|
|
121
145
|
action._lastJobUpdate = Date.now();
|
|
122
146
|
}
|
|
@@ -183,7 +207,7 @@ class AsyncJobService extends core_1.Service {
|
|
|
183
207
|
const info = {
|
|
184
208
|
JOB_SECRET_KEY: action.__secretKey,
|
|
185
209
|
JOB_ID: action.getUuid(),
|
|
186
|
-
JOB_HOOK: this.getWebda().getApiUrl(
|
|
210
|
+
JOB_HOOK: this.getWebda().getApiUrl(this.parameters.url),
|
|
187
211
|
JOB_ORCHESTRATOR: this.getName()
|
|
188
212
|
};
|
|
189
213
|
yield action.update({
|
|
@@ -202,6 +226,9 @@ class AsyncJobService extends core_1.Service {
|
|
|
202
226
|
action.type = action.constructor.name;
|
|
203
227
|
action.__secretKey = (0, uuid_1.v4)();
|
|
204
228
|
yield this.store.save(action);
|
|
229
|
+
if (this.parameters.localLaunch) {
|
|
230
|
+
return this.handleEvent({ uuid: action.getUuid(), __secretKey: action.__secretKey, type: action.type });
|
|
231
|
+
}
|
|
205
232
|
return this.queue.sendMessage({ uuid: action.getUuid(), __secretKey: action.__secretKey, type: action.type });
|
|
206
233
|
});
|
|
207
234
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"asyncjobservice.js","sourceRoot":"","sources":["../../src/services/asyncjobservice.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"asyncjobservice.js","sourceRoot":"","sources":["../../src/services/asyncjobservice.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
-
import { AgentInfo, Runner, RunnerParameters } from "./runner";
|
|
3
|
-
import { AsyncAction } from "../models";
|
|
4
|
-
import { SpawnOptions } from "child_process";
|
|
5
2
|
import { ServiceParameters } from "@webda/core";
|
|
3
|
+
import { SpawnOptions } from "child_process";
|
|
4
|
+
import { AsyncAction } from "../models";
|
|
6
5
|
import { JobInfo } from "./asyncjobservice";
|
|
6
|
+
import { AgentInfo, Runner, RunnerParameters } from "./runner";
|
|
7
7
|
export declare class LocalRunnerParameters extends RunnerParameters {
|
|
8
8
|
/**
|
|
9
9
|
* Command to launch
|
|
@@ -10,8 +10,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.LocalRunnerParameters = void 0;
|
|
13
|
-
const runner_1 = require("./runner");
|
|
14
13
|
const child_process_1 = require("child_process");
|
|
14
|
+
const runner_1 = require("./runner");
|
|
15
15
|
class LocalRunnerParameters extends runner_1.RunnerParameters {
|
|
16
16
|
constructor(params) {
|
|
17
17
|
var _a, _b;
|
|
@@ -40,7 +40,9 @@ class LocalRunner extends runner_1.Runner {
|
|
|
40
40
|
launchAction(action, info) {
|
|
41
41
|
return __awaiter(this, void 0, void 0, function* () {
|
|
42
42
|
let envs = Object.assign(Object.assign({}, this.parameters.options.env), info);
|
|
43
|
-
this.log("INFO", "Job", action.getUuid(), "started with",
|
|
43
|
+
this.log("INFO", "Job", action.getUuid(), "started with", Object.keys(envs)
|
|
44
|
+
.map(k => `${k}=${envs[k]}`)
|
|
45
|
+
.join(" "), this.parameters.command, this.parameters.args ? this.parameters.args.map(a => `'${a}'`).join(" ") : "");
|
|
44
46
|
const child = (0, child_process_1.spawn)(this.parameters.command, this.parameters.args, Object.assign(Object.assign({}, this.parameters.options), { env: envs, detached: true }));
|
|
45
47
|
// AutoStatus based on process info
|
|
46
48
|
if (this.parameters.autoStatus) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"localrunner.js","sourceRoot":"","sources":["../../src/services/localrunner.ts"],"names":[],"mappings":";;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"localrunner.js","sourceRoot":"","sources":["../../src/services/localrunner.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.0.0-beta.
|
|
3
|
+
"version": "2.0.0-beta.3",
|
|
4
4
|
"description": "Async System",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
],
|
|
20
20
|
"dependencies": {
|
|
21
21
|
"@types/node": "^16.4.14",
|
|
22
|
-
"@webda/core": "^2.0.0-beta.
|
|
22
|
+
"@webda/core": "^2.0.0-beta.3",
|
|
23
23
|
"axios": "^0.27.2"
|
|
24
24
|
},
|
|
25
25
|
"devDependencies": {
|
|
@@ -27,10 +27,10 @@
|
|
|
27
27
|
"@types/node": "14.0.0",
|
|
28
28
|
"mocha": "^10.0.0",
|
|
29
29
|
"nyc": "^15.1.0",
|
|
30
|
-
"sinon": "^
|
|
30
|
+
"sinon": "^14.0.0",
|
|
31
31
|
"source-map-support": "^0.5.19",
|
|
32
32
|
"ts-node": "^10.2.0",
|
|
33
|
-
"typescript": "~4.
|
|
33
|
+
"typescript": "~4.7.2"
|
|
34
34
|
},
|
|
35
35
|
"nyc": {
|
|
36
36
|
"extends": "@istanbuljs/nyc-config-typescript",
|
|
@@ -38,7 +38,8 @@
|
|
|
38
38
|
"reporter": [
|
|
39
39
|
"html",
|
|
40
40
|
"lcov",
|
|
41
|
-
"json"
|
|
41
|
+
"json",
|
|
42
|
+
"text"
|
|
42
43
|
],
|
|
43
44
|
"exclude": [
|
|
44
45
|
"**/*.spec.ts"
|
|
@@ -58,5 +59,5 @@
|
|
|
58
59
|
"webda": {
|
|
59
60
|
"namespace": "Webda"
|
|
60
61
|
},
|
|
61
|
-
"gitHead": "
|
|
62
|
+
"gitHead": "f95827566d42d22c32aed524b74d0446fff66ed4"
|
|
62
63
|
}
|