@fsai-flow/core 0.0.2 → 0.0.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/README.md +22 -2
- package/package.json +15 -5
- package/src/index.ts +1 -0
- package/src/lib/ActiveWorkflows.ts +326 -55
- package/src/lib/NodeExecuteFunctions.ts +0 -4
- package/src/lib/RedisLeaderElectionManager.ts +252 -0
- package/src/lib/WorkflowExecute.ts +26 -2
- package/tsconfig.base.json +28 -0
- package/tsconfig.json +1 -1
- package/dist/README.md +0 -11
- package/dist/package.json +0 -44
- package/dist/src/index.d.ts +0 -15
- package/dist/src/index.js +0 -29
- package/dist/src/index.js.map +0 -1
- package/dist/src/lib/ActiveWebhooks.d.ts +0 -59
- package/dist/src/lib/ActiveWebhooks.js +0 -184
- package/dist/src/lib/ActiveWebhooks.js.map +0 -1
- package/dist/src/lib/ActiveWorkflows.d.ts +0 -58
- package/dist/src/lib/ActiveWorkflows.js +0 -244
- package/dist/src/lib/ActiveWorkflows.js.map +0 -1
- package/dist/src/lib/BinaryDataManager/FileSystem.d.ts +0 -26
- package/dist/src/lib/BinaryDataManager/FileSystem.js +0 -179
- package/dist/src/lib/BinaryDataManager/FileSystem.js.map +0 -1
- package/dist/src/lib/BinaryDataManager/index.d.ts +0 -21
- package/dist/src/lib/BinaryDataManager/index.js +0 -146
- package/dist/src/lib/BinaryDataManager/index.js.map +0 -1
- package/dist/src/lib/ChangeCase.d.ts +0 -9
- package/dist/src/lib/ChangeCase.js +0 -43
- package/dist/src/lib/ChangeCase.js.map +0 -1
- package/dist/src/lib/Constants.d.ts +0 -14
- package/dist/src/lib/Constants.js +0 -19
- package/dist/src/lib/Constants.js.map +0 -1
- package/dist/src/lib/Credentials.d.ts +0 -27
- package/dist/src/lib/Credentials.js +0 -89
- package/dist/src/lib/Credentials.js.map +0 -1
- package/dist/src/lib/FileSystem.d.ts +0 -26
- package/dist/src/lib/FileSystem.js +0 -179
- package/dist/src/lib/FileSystem.js.map +0 -1
- package/dist/src/lib/InputConnectionDataLegacy.d.ts +0 -2
- package/dist/src/lib/InputConnectionDataLegacy.js +0 -79
- package/dist/src/lib/InputConnectionDataLegacy.js.map +0 -1
- package/dist/src/lib/Interfaces.d.ts +0 -148
- package/dist/src/lib/Interfaces.js +0 -3
- package/dist/src/lib/Interfaces.js.map +0 -1
- package/dist/src/lib/LoadNodeParameterOptions.d.ts +0 -39
- package/dist/src/lib/LoadNodeParameterOptions.js +0 -150
- package/dist/src/lib/LoadNodeParameterOptions.js.map +0 -1
- package/dist/src/lib/NodeExecuteFunctions.d.ts +0 -226
- package/dist/src/lib/NodeExecuteFunctions.js +0 -2483
- package/dist/src/lib/NodeExecuteFunctions.js.map +0 -1
- package/dist/src/lib/NodesLoader/constants.d.ts +0 -5
- package/dist/src/lib/NodesLoader/constants.js +0 -106
- package/dist/src/lib/NodesLoader/constants.js.map +0 -1
- package/dist/src/lib/NodesLoader/custom-directory-loader.d.ts +0 -9
- package/dist/src/lib/NodesLoader/custom-directory-loader.js +0 -36
- package/dist/src/lib/NodesLoader/custom-directory-loader.js.map +0 -1
- package/dist/src/lib/NodesLoader/directory-loader.d.ts +0 -66
- package/dist/src/lib/NodesLoader/directory-loader.js +0 -325
- package/dist/src/lib/NodesLoader/directory-loader.js.map +0 -1
- package/dist/src/lib/NodesLoader/index.d.ts +0 -5
- package/dist/src/lib/NodesLoader/index.js +0 -12
- package/dist/src/lib/NodesLoader/index.js.map +0 -1
- package/dist/src/lib/NodesLoader/lazy-package-directory-loader.d.ts +0 -7
- package/dist/src/lib/NodesLoader/lazy-package-directory-loader.js +0 -52
- package/dist/src/lib/NodesLoader/lazy-package-directory-loader.js.map +0 -1
- package/dist/src/lib/NodesLoader/load-class-in-isolation.d.ts +0 -1
- package/dist/src/lib/NodesLoader/load-class-in-isolation.js +0 -22
- package/dist/src/lib/NodesLoader/load-class-in-isolation.js.map +0 -1
- package/dist/src/lib/NodesLoader/package-directory-loader.d.ts +0 -17
- package/dist/src/lib/NodesLoader/package-directory-loader.js +0 -100
- package/dist/src/lib/NodesLoader/package-directory-loader.js.map +0 -1
- package/dist/src/lib/NodesLoader/types.d.ts +0 -14
- package/dist/src/lib/NodesLoader/types.js +0 -3
- package/dist/src/lib/NodesLoader/types.js.map +0 -1
- package/dist/src/lib/UserSettings.d.ts +0 -80
- package/dist/src/lib/UserSettings.js +0 -261
- package/dist/src/lib/UserSettings.js.map +0 -1
- package/dist/src/lib/WorkflowExecute.d.ts +0 -53
- package/dist/src/lib/WorkflowExecute.js +0 -835
- package/dist/src/lib/WorkflowExecute.js.map +0 -1
- package/dist/src/lib/index.d.ts +0 -21
- package/dist/src/lib/index.js +0 -146
- package/dist/src/lib/index.js.map +0 -1
- package/dist/src/utils/crypto.d.ts +0 -1
- package/dist/src/utils/crypto.js +0 -8
- package/dist/src/utils/crypto.js.map +0 -1
|
@@ -1,184 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ActiveWebhooks = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
// eslint-disable-next-line import/no-cycle
|
|
6
|
-
const src_1 = require("../../src");
|
|
7
|
-
class ActiveWebhooks {
|
|
8
|
-
constructor() {
|
|
9
|
-
this.workflowWebhooks = {};
|
|
10
|
-
this.webhookUrls = {};
|
|
11
|
-
this.testWebhooks = false;
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* Adds a new webhook
|
|
15
|
-
*
|
|
16
|
-
* @param {IWebhookData} webhookData
|
|
17
|
-
* @param {WorkflowExecuteMode} mode
|
|
18
|
-
* @returns {Promise<void>}
|
|
19
|
-
* @memberof ActiveWebhooks
|
|
20
|
-
*/
|
|
21
|
-
add(workflow, webhookData, mode, activation) {
|
|
22
|
-
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
23
|
-
if (workflow.id === undefined) {
|
|
24
|
-
throw new Error('Webhooks can only be added for saved workflows as an id is needed!');
|
|
25
|
-
}
|
|
26
|
-
if (webhookData.path.endsWith('/')) {
|
|
27
|
-
// eslint-disable-next-line no-param-reassign
|
|
28
|
-
webhookData.path = webhookData.path.slice(0, -1);
|
|
29
|
-
}
|
|
30
|
-
const webhookKey = this.getWebhookKey(webhookData.httpMethod, webhookData.path, webhookData.webhookId);
|
|
31
|
-
// check that there is not a webhook already registed with that path/method
|
|
32
|
-
if (this.webhookUrls[webhookKey] && !webhookData.webhookId) {
|
|
33
|
-
throw new Error(`The URL path that the "${webhookData.node}" node uses is already taken. Please change it to something else.`);
|
|
34
|
-
}
|
|
35
|
-
if (this.workflowWebhooks[webhookData.workflowId] === undefined) {
|
|
36
|
-
this.workflowWebhooks[webhookData.workflowId] = [];
|
|
37
|
-
}
|
|
38
|
-
// Make the webhook available directly because sometimes to create it successfully
|
|
39
|
-
// it gets called
|
|
40
|
-
if (!this.webhookUrls[webhookKey]) {
|
|
41
|
-
this.webhookUrls[webhookKey] = [];
|
|
42
|
-
}
|
|
43
|
-
this.webhookUrls[webhookKey].push(webhookData);
|
|
44
|
-
try {
|
|
45
|
-
const webhookExists = yield workflow.runWebhookMethod('checkExists', webhookData, src_1.NodeExecuteFunctions, mode, activation, this.testWebhooks);
|
|
46
|
-
if (webhookExists !== true) {
|
|
47
|
-
// If webhook does not exist yet create it
|
|
48
|
-
yield workflow.runWebhookMethod('create', webhookData, src_1.NodeExecuteFunctions, mode, activation, this.testWebhooks);
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
catch (error) {
|
|
52
|
-
// If there was a problem unregister the webhook again
|
|
53
|
-
if (this.webhookUrls[webhookKey].length <= 1) {
|
|
54
|
-
delete this.webhookUrls[webhookKey];
|
|
55
|
-
}
|
|
56
|
-
else {
|
|
57
|
-
this.webhookUrls[webhookKey] = this.webhookUrls[webhookKey].filter((webhook) => webhook.path !== webhookData.path);
|
|
58
|
-
}
|
|
59
|
-
throw error;
|
|
60
|
-
}
|
|
61
|
-
this.workflowWebhooks[webhookData.workflowId].push(webhookData);
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
|
-
/**
|
|
65
|
-
* Returns webhookData if a webhook with matches is currently registered
|
|
66
|
-
*
|
|
67
|
-
* @param {WebhookHttpMethod} httpMethod
|
|
68
|
-
* @param {string} path
|
|
69
|
-
* @param {(string | undefined)} webhookId
|
|
70
|
-
* @returns {(IWebhookData | undefined)}
|
|
71
|
-
* @memberof ActiveWebhooks
|
|
72
|
-
*/
|
|
73
|
-
get(httpMethod, path, webhookId) {
|
|
74
|
-
const webhookKey = this.getWebhookKey(httpMethod, path, webhookId);
|
|
75
|
-
if (this.webhookUrls[webhookKey] === undefined) {
|
|
76
|
-
return undefined;
|
|
77
|
-
}
|
|
78
|
-
let webhook;
|
|
79
|
-
let maxMatches = 0;
|
|
80
|
-
const pathElementsSet = new Set(path.split('/'));
|
|
81
|
-
// check if static elements match in path
|
|
82
|
-
// if more results have been returned choose the one with the most static-route matches
|
|
83
|
-
this.webhookUrls[webhookKey].forEach((dynamicWebhook) => {
|
|
84
|
-
const staticElements = dynamicWebhook.path.split('/').filter((ele) => !ele.startsWith(':'));
|
|
85
|
-
const allStaticExist = staticElements.every((staticEle) => pathElementsSet.has(staticEle));
|
|
86
|
-
if (allStaticExist && staticElements.length > maxMatches) {
|
|
87
|
-
maxMatches = staticElements.length;
|
|
88
|
-
webhook = dynamicWebhook;
|
|
89
|
-
}
|
|
90
|
-
// handle routes with no static elements
|
|
91
|
-
else if (staticElements.length === 0 && !webhook) {
|
|
92
|
-
webhook = dynamicWebhook;
|
|
93
|
-
}
|
|
94
|
-
});
|
|
95
|
-
return webhook;
|
|
96
|
-
}
|
|
97
|
-
/**
|
|
98
|
-
* Gets all request methods associated with a single webhook
|
|
99
|
-
* @param path
|
|
100
|
-
*/
|
|
101
|
-
getWebhookMethods(path) {
|
|
102
|
-
const methods = [];
|
|
103
|
-
Object.keys(this.webhookUrls)
|
|
104
|
-
.filter((key) => key.includes(path))
|
|
105
|
-
// eslint-disable-next-line array-callback-return
|
|
106
|
-
.map((key) => {
|
|
107
|
-
methods.push(key.split('|')[0]);
|
|
108
|
-
});
|
|
109
|
-
return methods;
|
|
110
|
-
}
|
|
111
|
-
/**
|
|
112
|
-
* Returns the ids of all the workflows which have active webhooks
|
|
113
|
-
*
|
|
114
|
-
* @returns {string[]}
|
|
115
|
-
* @memberof ActiveWebhooks
|
|
116
|
-
*/
|
|
117
|
-
getWorkflowIds() {
|
|
118
|
-
return Object.keys(this.workflowWebhooks);
|
|
119
|
-
}
|
|
120
|
-
/**
|
|
121
|
-
* Returns key to uniquely identify a webhook
|
|
122
|
-
*
|
|
123
|
-
* @param {WebhookHttpMethod} httpMethod
|
|
124
|
-
* @param {string} path
|
|
125
|
-
* @param {(string | undefined)} webhookId
|
|
126
|
-
* @returns {string}
|
|
127
|
-
* @memberof ActiveWebhooks
|
|
128
|
-
*/
|
|
129
|
-
getWebhookKey(httpMethod, path, webhookId) {
|
|
130
|
-
if (webhookId) {
|
|
131
|
-
if (path.startsWith(webhookId)) {
|
|
132
|
-
const cutFromIndex = path.indexOf('/') + 1;
|
|
133
|
-
// eslint-disable-next-line no-param-reassign
|
|
134
|
-
path = path.slice(cutFromIndex);
|
|
135
|
-
}
|
|
136
|
-
return `${httpMethod}|${webhookId}|${path.split('/').length}`;
|
|
137
|
-
}
|
|
138
|
-
return `${httpMethod}|${path}`;
|
|
139
|
-
}
|
|
140
|
-
/**
|
|
141
|
-
* Removes all webhooks of a workflow
|
|
142
|
-
*
|
|
143
|
-
* @param {Workflow} workflow
|
|
144
|
-
* @returns {boolean}
|
|
145
|
-
* @memberof ActiveWebhooks
|
|
146
|
-
*/
|
|
147
|
-
removeWorkflow(workflow) {
|
|
148
|
-
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
149
|
-
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
150
|
-
const workflowId = workflow.id.toString();
|
|
151
|
-
if (this.workflowWebhooks[workflowId] === undefined) {
|
|
152
|
-
// If it did not exist then there is nothing to remove
|
|
153
|
-
return false;
|
|
154
|
-
}
|
|
155
|
-
const webhooks = this.workflowWebhooks[workflowId];
|
|
156
|
-
const mode = 'internal';
|
|
157
|
-
// Go through all the registered webhooks of the workflow and remove them
|
|
158
|
-
// eslint-disable-next-line no-restricted-syntax
|
|
159
|
-
for (const webhookData of webhooks) {
|
|
160
|
-
// eslint-disable-next-line no-await-in-loop
|
|
161
|
-
yield workflow.runWebhookMethod('delete', webhookData, src_1.NodeExecuteFunctions, mode, 'update', this.testWebhooks);
|
|
162
|
-
delete this.webhookUrls[this.getWebhookKey(webhookData.httpMethod, webhookData.path, webhookData.webhookId)];
|
|
163
|
-
}
|
|
164
|
-
// Remove also the workflow-webhook entry
|
|
165
|
-
delete this.workflowWebhooks[workflowId];
|
|
166
|
-
return true;
|
|
167
|
-
});
|
|
168
|
-
}
|
|
169
|
-
/**
|
|
170
|
-
* Removes all the webhooks of the given workflows
|
|
171
|
-
*/
|
|
172
|
-
removeAll(workflows) {
|
|
173
|
-
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
174
|
-
const removePromises = [];
|
|
175
|
-
// eslint-disable-next-line no-restricted-syntax
|
|
176
|
-
for (const workflow of workflows) {
|
|
177
|
-
removePromises.push(this.removeWorkflow(workflow));
|
|
178
|
-
}
|
|
179
|
-
yield Promise.all(removePromises);
|
|
180
|
-
});
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
exports.ActiveWebhooks = ActiveWebhooks;
|
|
184
|
-
//# sourceMappingURL=ActiveWebhooks.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ActiveWebhooks.js","sourceRoot":"","sources":["../../../src/lib/ActiveWebhooks.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import { IGetExecutePollFunctions, IGetExecuteTriggerFunctions, INode, IPollResponse, IWorkflowExecuteAdditionalData, Workflow, WorkflowActivateMode, WorkflowExecuteMode } from '@fsai-flow/workflow';
|
|
2
|
-
import { IWorkflowData } from '../../src';
|
|
3
|
-
export declare class ActiveWorkflows {
|
|
4
|
-
private workflowData;
|
|
5
|
-
/**
|
|
6
|
-
* Returns if the workflow is active
|
|
7
|
-
*
|
|
8
|
-
* @param {string} id The id of the workflow to check
|
|
9
|
-
* @returns {boolean}
|
|
10
|
-
* @memberof ActiveWorkflows
|
|
11
|
-
*/
|
|
12
|
-
isActive(id: string): boolean;
|
|
13
|
-
/**
|
|
14
|
-
* Returns the ids of the currently active workflows
|
|
15
|
-
*
|
|
16
|
-
* @returns {string[]}
|
|
17
|
-
* @memberof ActiveWorkflows
|
|
18
|
-
*/
|
|
19
|
-
allActiveWorkflows(): string[];
|
|
20
|
-
/**
|
|
21
|
-
* Returns the Workflow data for the workflow with
|
|
22
|
-
* the given id if it is currently active
|
|
23
|
-
*
|
|
24
|
-
* @param {string} id
|
|
25
|
-
* @returns {(WorkflowData | undefined)}
|
|
26
|
-
* @memberof ActiveWorkflows
|
|
27
|
-
*/
|
|
28
|
-
get(id: string): IWorkflowData | undefined;
|
|
29
|
-
/**
|
|
30
|
-
* Makes a workflow active
|
|
31
|
-
*
|
|
32
|
-
* @param {string} id The id of the workflow to activate
|
|
33
|
-
* @param {Workflow} workflow The workflow to activate
|
|
34
|
-
* @param {IWorkflowExecuteAdditionalData} additionalData The additional data which is needed to run workflows
|
|
35
|
-
* @returns {Promise<void>}
|
|
36
|
-
* @memberof ActiveWorkflows
|
|
37
|
-
*/
|
|
38
|
-
add(id: string, workflow: Workflow, additionalData: IWorkflowExecuteAdditionalData, mode: WorkflowExecuteMode, activation: WorkflowActivateMode, getTriggerFunctions: IGetExecuteTriggerFunctions, getPollFunctions: IGetExecutePollFunctions): Promise<void>;
|
|
39
|
-
/**
|
|
40
|
-
* Activates polling for the given node
|
|
41
|
-
*
|
|
42
|
-
* @param {INode} node
|
|
43
|
-
* @param {Workflow} workflow
|
|
44
|
-
* @param {IWorkflowExecuteAdditionalData} additionalData
|
|
45
|
-
* @param {IGetExecutePollFunctions} getPollFunctions
|
|
46
|
-
* @returns {Promise<IPollResponse>}
|
|
47
|
-
* @memberof ActiveWorkflows
|
|
48
|
-
*/
|
|
49
|
-
activatePolling(node: INode, workflow: Workflow, additionalData: IWorkflowExecuteAdditionalData, getPollFunctions: IGetExecutePollFunctions, mode: WorkflowExecuteMode, activation: WorkflowActivateMode): Promise<IPollResponse>;
|
|
50
|
-
/**
|
|
51
|
-
* Makes a workflow inactive
|
|
52
|
-
*
|
|
53
|
-
* @param {string} id The id of the workflow to deactivate
|
|
54
|
-
* @returns {Promise<void>}
|
|
55
|
-
* @memberof ActiveWorkflows
|
|
56
|
-
*/
|
|
57
|
-
remove(id: string): Promise<void>;
|
|
58
|
-
}
|
|
@@ -1,244 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ActiveWorkflows = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
/* eslint-disable no-continue */
|
|
6
|
-
/* eslint-disable no-await-in-loop */
|
|
7
|
-
/* eslint-disable no-restricted-syntax */
|
|
8
|
-
const cron_1 = require("cron");
|
|
9
|
-
const workflow_1 = require("@fsai-flow/workflow");
|
|
10
|
-
const crypto_1 = require("../utils/crypto");
|
|
11
|
-
class ActiveWorkflows {
|
|
12
|
-
constructor() {
|
|
13
|
-
this.workflowData = {};
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* Returns if the workflow is active
|
|
17
|
-
*
|
|
18
|
-
* @param {string} id The id of the workflow to check
|
|
19
|
-
* @returns {boolean}
|
|
20
|
-
* @memberof ActiveWorkflows
|
|
21
|
-
*/
|
|
22
|
-
isActive(id) {
|
|
23
|
-
// eslint-disable-next-line no-prototype-builtins
|
|
24
|
-
return this.workflowData.hasOwnProperty(id);
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* Returns the ids of the currently active workflows
|
|
28
|
-
*
|
|
29
|
-
* @returns {string[]}
|
|
30
|
-
* @memberof ActiveWorkflows
|
|
31
|
-
*/
|
|
32
|
-
allActiveWorkflows() {
|
|
33
|
-
return Object.keys(this.workflowData);
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Returns the Workflow data for the workflow with
|
|
37
|
-
* the given id if it is currently active
|
|
38
|
-
*
|
|
39
|
-
* @param {string} id
|
|
40
|
-
* @returns {(WorkflowData | undefined)}
|
|
41
|
-
* @memberof ActiveWorkflows
|
|
42
|
-
*/
|
|
43
|
-
get(id) {
|
|
44
|
-
return this.workflowData[id];
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* Makes a workflow active
|
|
48
|
-
*
|
|
49
|
-
* @param {string} id The id of the workflow to activate
|
|
50
|
-
* @param {Workflow} workflow The workflow to activate
|
|
51
|
-
* @param {IWorkflowExecuteAdditionalData} additionalData The additional data which is needed to run workflows
|
|
52
|
-
* @returns {Promise<void>}
|
|
53
|
-
* @memberof ActiveWorkflows
|
|
54
|
-
*/
|
|
55
|
-
add(id, workflow, additionalData, mode, activation, getTriggerFunctions, getPollFunctions) {
|
|
56
|
-
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
57
|
-
this.workflowData[id] = {};
|
|
58
|
-
const triggerNodes = workflow.getTriggerNodes();
|
|
59
|
-
let triggerResponse;
|
|
60
|
-
this.workflowData[id].triggerResponses = [];
|
|
61
|
-
for (const triggerNode of triggerNodes) {
|
|
62
|
-
triggerResponse = yield workflow.runTrigger(triggerNode, getTriggerFunctions, additionalData, mode, activation);
|
|
63
|
-
if (triggerResponse !== undefined) {
|
|
64
|
-
// If a response was given save it
|
|
65
|
-
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
66
|
-
this.workflowData[id].triggerResponses.push(triggerResponse);
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
const pollNodes = workflow.getPollNodes();
|
|
70
|
-
if (pollNodes.length) {
|
|
71
|
-
this.workflowData[id].pollResponses = [];
|
|
72
|
-
for (const pollNode of pollNodes) {
|
|
73
|
-
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
74
|
-
this.workflowData[id].pollResponses.push(yield this.activatePolling(pollNode, workflow, additionalData, getPollFunctions, mode, activation));
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
|
-
/**
|
|
80
|
-
* Activates polling for the given node
|
|
81
|
-
*
|
|
82
|
-
* @param {INode} node
|
|
83
|
-
* @param {Workflow} workflow
|
|
84
|
-
* @param {IWorkflowExecuteAdditionalData} additionalData
|
|
85
|
-
* @param {IGetExecutePollFunctions} getPollFunctions
|
|
86
|
-
* @returns {Promise<IPollResponse>}
|
|
87
|
-
* @memberof ActiveWorkflows
|
|
88
|
-
*/
|
|
89
|
-
activatePolling(node, workflow, additionalData, getPollFunctions, mode, activation) {
|
|
90
|
-
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
91
|
-
const pollFunctions = getPollFunctions(workflow, node, additionalData, mode, activation);
|
|
92
|
-
const pollTimes = pollFunctions.getNodeParameter('pollTimes');
|
|
93
|
-
// Define the order the cron-time-parameter appear
|
|
94
|
-
const parameterOrder = [
|
|
95
|
-
'second', // 0 - 59
|
|
96
|
-
'minute', // 0 - 59
|
|
97
|
-
'hour', // 0 - 23
|
|
98
|
-
'dayOfMonth', // 1 - 31
|
|
99
|
-
'month', // 0 - 11(Jan - Dec)
|
|
100
|
-
'weekday', // 0 - 6(Sun - Sat)
|
|
101
|
-
];
|
|
102
|
-
// Get all the trigger times
|
|
103
|
-
const cronTimes = [];
|
|
104
|
-
let cronTime;
|
|
105
|
-
let parameterName;
|
|
106
|
-
if (pollTimes.item !== undefined) {
|
|
107
|
-
for (const item of pollTimes.item) {
|
|
108
|
-
cronTime = [];
|
|
109
|
-
if (item.mode === 'custom') {
|
|
110
|
-
cronTimes.push(item['cronExpression'].trim());
|
|
111
|
-
continue;
|
|
112
|
-
}
|
|
113
|
-
if (item.mode === 'everyMinute') {
|
|
114
|
-
cronTimes.push(`${(0, crypto_1.secureRandomNumber)(1, 60).toString()} * * * * *`);
|
|
115
|
-
continue;
|
|
116
|
-
}
|
|
117
|
-
if (item.mode === 'everyX') {
|
|
118
|
-
if (item['unit'] === 'minutes') {
|
|
119
|
-
cronTimes.push(`${(0, crypto_1.secureRandomNumber)(1, 60).toString()} */${item['value']} * * * *`);
|
|
120
|
-
}
|
|
121
|
-
else if (item['unit'] === 'hours') {
|
|
122
|
-
cronTimes.push(`${(0, crypto_1.secureRandomNumber)(1, 60).toString()} 0 */${item['value']} * * *`);
|
|
123
|
-
}
|
|
124
|
-
else if (item['unit'] === 'seconds') {
|
|
125
|
-
cronTimes.push(`*/${item['value']} * * * * *`);
|
|
126
|
-
}
|
|
127
|
-
continue;
|
|
128
|
-
}
|
|
129
|
-
for (parameterName of parameterOrder) {
|
|
130
|
-
if (item[parameterName] !== undefined) {
|
|
131
|
-
// Value is set so use it
|
|
132
|
-
cronTime.push(item[parameterName]);
|
|
133
|
-
}
|
|
134
|
-
else if (parameterName === 'second') {
|
|
135
|
-
// For seconds we use by default a random one to make sure to
|
|
136
|
-
// balance the load a little bit over time
|
|
137
|
-
cronTime.push((0, crypto_1.secureRandomNumber)(1, 60).toString());
|
|
138
|
-
}
|
|
139
|
-
else {
|
|
140
|
-
// For all others set "any"
|
|
141
|
-
cronTime.push('*');
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
cronTimes.push(cronTime.join(' '));
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
// The trigger function to execute when the cron-time got reached
|
|
148
|
-
const executeTrigger = () => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
149
|
-
// eslint-disable-next-line @typescript-eslint/restrict-template-expressions
|
|
150
|
-
workflow_1.LoggerProxy.debug(`Polling trigger initiated for workflow "${workflow.name}"`, {
|
|
151
|
-
workflowName: workflow.name,
|
|
152
|
-
workflowId: workflow.id,
|
|
153
|
-
});
|
|
154
|
-
const pollResponse = yield workflow.runPoll(node, pollFunctions);
|
|
155
|
-
if (pollResponse !== null) {
|
|
156
|
-
// eslint-disable-next-line no-underscore-dangle
|
|
157
|
-
pollFunctions.__emit(pollResponse);
|
|
158
|
-
}
|
|
159
|
-
});
|
|
160
|
-
// Execute the trigger directly to be able to know if it works
|
|
161
|
-
yield executeTrigger();
|
|
162
|
-
const timezone = pollFunctions.getTimezone();
|
|
163
|
-
// Start the cron-jobs
|
|
164
|
-
const cronJobs = [];
|
|
165
|
-
// eslint-disable-next-line @typescript-eslint/no-shadow
|
|
166
|
-
for (const cronTime of cronTimes) {
|
|
167
|
-
const cronTimeParts = cronTime.split(' ');
|
|
168
|
-
// Verificar se é polling em segundos
|
|
169
|
-
if (cronTimeParts.length === 6 && cronTimeParts[0].includes('/')) {
|
|
170
|
-
const secondsInterval = parseInt(cronTimeParts[0].replace('*/', ''), 10);
|
|
171
|
-
if (secondsInterval < 1) {
|
|
172
|
-
throw new Error('The polling interval is too short. It has to be at least 1 second!');
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
else if (cronTimeParts.length > 0 && cronTimeParts[0].includes('*') && !cronTimeParts[0].includes('/')) {
|
|
176
|
-
throw new Error('The polling interval is too short. It has to be at least a minute!');
|
|
177
|
-
}
|
|
178
|
-
cronJobs.push(new cron_1.CronJob(cronTime, executeTrigger, undefined, true, timezone));
|
|
179
|
-
}
|
|
180
|
-
// Stop the cron-jobs
|
|
181
|
-
function closeFunction() {
|
|
182
|
-
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
183
|
-
for (const cronJob of cronJobs) {
|
|
184
|
-
cronJob.stop();
|
|
185
|
-
}
|
|
186
|
-
});
|
|
187
|
-
}
|
|
188
|
-
return {
|
|
189
|
-
closeFunction,
|
|
190
|
-
};
|
|
191
|
-
});
|
|
192
|
-
}
|
|
193
|
-
/**
|
|
194
|
-
* Makes a workflow inactive
|
|
195
|
-
*
|
|
196
|
-
* @param {string} id The id of the workflow to deactivate
|
|
197
|
-
* @returns {Promise<void>}
|
|
198
|
-
* @memberof ActiveWorkflows
|
|
199
|
-
*/
|
|
200
|
-
remove(id) {
|
|
201
|
-
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
202
|
-
if (!this.isActive(id)) {
|
|
203
|
-
// Workflow is currently not registered
|
|
204
|
-
throw new Error(`The workflow with the id "${id}" is currently not active and can so not be removed`);
|
|
205
|
-
}
|
|
206
|
-
const workflowData = this.workflowData[id];
|
|
207
|
-
if (workflowData.triggerResponses) {
|
|
208
|
-
for (const triggerResponse of workflowData.triggerResponses) {
|
|
209
|
-
if (triggerResponse.closeFunction) {
|
|
210
|
-
try {
|
|
211
|
-
yield triggerResponse.closeFunction();
|
|
212
|
-
}
|
|
213
|
-
catch (error) {
|
|
214
|
-
workflow_1.LoggerProxy.error(
|
|
215
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/restrict-template-expressions
|
|
216
|
-
`There was a problem deactivating trigger of workflow "${id}": "${error.message}"`, {
|
|
217
|
-
workflowId: id,
|
|
218
|
-
});
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
if (workflowData.pollResponses) {
|
|
224
|
-
for (const pollResponse of workflowData.pollResponses) {
|
|
225
|
-
if (pollResponse.closeFunction) {
|
|
226
|
-
try {
|
|
227
|
-
yield pollResponse.closeFunction();
|
|
228
|
-
}
|
|
229
|
-
catch (error) {
|
|
230
|
-
workflow_1.LoggerProxy.error(
|
|
231
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/restrict-template-expressions
|
|
232
|
-
`There was a problem deactivating polling trigger of workflow "${id}": "${error.message}"`, {
|
|
233
|
-
workflowId: id,
|
|
234
|
-
});
|
|
235
|
-
}
|
|
236
|
-
}
|
|
237
|
-
}
|
|
238
|
-
}
|
|
239
|
-
delete this.workflowData[id];
|
|
240
|
-
});
|
|
241
|
-
}
|
|
242
|
-
}
|
|
243
|
-
exports.ActiveWorkflows = ActiveWorkflows;
|
|
244
|
-
//# sourceMappingURL=ActiveWorkflows.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ActiveWorkflows.js","sourceRoot":"","sources":["../../../src/lib/ActiveWorkflows.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { IBinaryDataConfig, IBinaryDataManager } from '../Interfaces';
|
|
2
|
-
export declare class BinaryDataFileSystem implements IBinaryDataManager {
|
|
3
|
-
private storagePath;
|
|
4
|
-
private binaryDataTTL;
|
|
5
|
-
private persistedBinaryDataTTL;
|
|
6
|
-
constructor(config: IBinaryDataConfig);
|
|
7
|
-
init(startPurger?: boolean): Promise<void>;
|
|
8
|
-
storeBinaryData(binaryBuffer: Buffer, executionId: string): Promise<string>;
|
|
9
|
-
retrieveBinaryDataByIdentifier(identifier: string): Promise<Buffer>;
|
|
10
|
-
markDataForDeletionByExecutionId(executionId: string): Promise<void>;
|
|
11
|
-
deleteMarkedFiles(): Promise<void>;
|
|
12
|
-
deleteMarkedPersistedFiles(): Promise<void>;
|
|
13
|
-
private addBinaryIdToPersistMeta;
|
|
14
|
-
private deleteMarkedFilesByMeta;
|
|
15
|
-
duplicateBinaryDataByIdentifier(binaryDataId: string, prefix: string): Promise<string>;
|
|
16
|
-
deleteBinaryDataByExecutionId(executionId: string): Promise<void>;
|
|
17
|
-
deleteBinaryDataByIdentifier(identifier: string): Promise<void>;
|
|
18
|
-
persistBinaryDataForExecutionId(executionId: string): Promise<void>;
|
|
19
|
-
private generateFileName;
|
|
20
|
-
private getBinaryDataMetaPath;
|
|
21
|
-
private getBinaryDataPersistMetaPath;
|
|
22
|
-
private deleteMetaFileByPath;
|
|
23
|
-
private deleteFromLocalStorage;
|
|
24
|
-
private saveToLocalStorage;
|
|
25
|
-
private retrieveFromLocalStorage;
|
|
26
|
-
}
|