elasticio-sailor-nodejs 2.7.1-dev2 → 2.7.1-dev4

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/settings.js CHANGED
@@ -1,126 +1,126 @@
1
- const _ = require('lodash');
2
-
3
- const PREFIX = 'ELASTICIO_';
4
-
5
- function getOptionalEnvVars(envVars) {
6
- const optional = {
7
- REBOUND_INITIAL_EXPIRATION: 15000,
8
- REBOUND_LIMIT: 20,
9
- COMPONENT_PATH: '',
10
- RABBITMQ_PREFETCH_SAILOR: 1,
11
- STARTUP_REQUIRED: false,
12
- HOOK_SHUTDOWN: false,
13
- API_REQUEST_RETRY_ATTEMPTS: 3,
14
- API_REQUEST_RETRY_DELAY: 100,
15
- DATA_RATE_LIMIT: 10, // 10 data events every 100ms
16
- ERROR_RATE_LIMIT: 2, // 2 errors every 100ms
17
- SNAPSHOT_RATE_LIMIT: 2, // 2 Snapshots every 100ms
18
- RATE_INTERVAL: 100, // 100ms
19
- PROCESS_AMQP_DRAIN: true,
20
- AMQP_PUBLISH_RETRY_DELAY: 100, // 100ms
21
- AMQP_PUBLISH_RETRY_ATTEMPTS: Infinity,
22
- AMQP_PUBLISH_MAX_RETRY_DELAY: 5 * 60 * 1000, // 5 mins
23
- AMQP_PERSISTENT_MESSAGES: false,
24
- OUTGOING_MESSAGE_SIZE_LIMIT: 10485760,
25
- NO_SELF_PASSTRHOUGH: false,
26
- PROTOCOL_VERSION: 1,
27
- NO_ERROR_REPLIES: false,
28
- INPUT_FORMAT: 'default',
29
- OBJECT_STORAGE_URI: null,
30
- OBJECT_STORAGE_TOKEN: null,
31
- OBJECT_STORAGE_SIZE_THRESHOLD: 1048576,
32
- EMIT_LIGHTWEIGHT_MESSAGE: false,
33
- AMQP_RECONNECT_ATTEMPTS: 3,
34
- AMQP_RECONNECT_TIMEOUT: 100,
35
- WAIT_MESSAGES_TIMEOUT: 50
36
- };
37
-
38
- const result = {};
39
- _.forEach(optional, function readOptional(defaultValue, key) {
40
- const envVarName = PREFIX + key;
41
- if (typeof defaultValue === 'number' && envVars[envVarName]) {
42
- result[key] = parseInt(envVars[envVarName]) || defaultValue;
43
- } else if (typeof defaultValue === 'boolean') {
44
- if (envVars[envVarName] === undefined) {
45
- result[key] = defaultValue;
46
- } else {
47
- result[key] = (!envVars[envVarName] || envVars[envVarName] === 'false') ? false : true;
48
- }
49
- } else {
50
- result[key] = envVars[envVarName] || defaultValue;
51
- }
52
- });
53
- return result;
54
- }
55
-
56
- function getAdditionalVars(envVars) {
57
- if (envVars.ELASTICIO_ADDITIONAL_VARS_FOR_HEADERS) {
58
- const vars = {};
59
- envVars.ELASTICIO_ADDITIONAL_VARS_FOR_HEADERS
60
- .split(',')
61
- .map(env => env.trim())
62
- .forEach(env => {
63
- const key = env.indexOf(PREFIX) === 0 ? env.slice(PREFIX.length) : env;
64
- vars[key] = envVars[env];
65
- });
66
-
67
- return vars;
68
- }
69
- }
70
-
71
- function getMandatoryEnvVars(envVars) {
72
- // required settings
73
- const requiredAlways = [
74
- 'FLOW_ID',
75
- 'EXEC_ID',
76
- 'STEP_ID',
77
- 'CONTAINER_ID',
78
- 'WORKSPACE_ID',
79
-
80
- 'USER_ID',
81
- 'COMP_ID',
82
- 'FUNCTION',
83
-
84
- 'API_URI',
85
- 'API_USERNAME',
86
- 'API_KEY'
87
- ];
88
-
89
- const requiredForMessageProcessing = [
90
- 'AMQP_URI',
91
- 'LISTEN_MESSAGES_ON',
92
- 'PUBLISH_MESSAGES_TO',
93
-
94
- 'DATA_ROUTING_KEY',
95
- 'ERROR_ROUTING_KEY',
96
- 'REBOUND_ROUTING_KEY',
97
- 'SNAPSHOT_ROUTING_KEY',
98
- 'MESSAGE_CRYPTO_IV',
99
- 'MESSAGE_CRYPTO_PASSWORD'
100
- ];
101
-
102
- const envVarsList = requiredAlways.slice(0);
103
-
104
- if (!envVars.ELASTICIO_HOOK_SHUTDOWN) {
105
- envVarsList.push(...requiredForMessageProcessing);
106
- }
107
-
108
- return envVarsList.reduce((result, key) => {
109
- const envVarName = PREFIX + key;
110
- if (!envVars[envVarName]) {
111
- throw new Error(`${envVarName} is missing`);
112
- }
113
- result[key] = envVars[envVarName];
114
- return result;
115
- }, {});
116
- }
117
-
118
- function readFrom(envVars) {
119
- return {
120
- ...getMandatoryEnvVars(envVars),
121
- ...getOptionalEnvVars(envVars),
122
- additionalVars: getAdditionalVars(envVars)
123
- };
124
- }
125
-
126
- exports.readFrom = readFrom;
1
+ const _ = require('lodash');
2
+
3
+ const PREFIX = 'ELASTICIO_';
4
+
5
+ function getOptionalEnvVars(envVars) {
6
+ const optional = {
7
+ REBOUND_INITIAL_EXPIRATION: 15000,
8
+ REBOUND_LIMIT: 20,
9
+ COMPONENT_PATH: '',
10
+ RABBITMQ_PREFETCH_SAILOR: 1,
11
+ STARTUP_REQUIRED: false,
12
+ HOOK_SHUTDOWN: false,
13
+ API_REQUEST_RETRY_ATTEMPTS: 3,
14
+ API_REQUEST_RETRY_DELAY: 100,
15
+ DATA_RATE_LIMIT: 10, // 10 data events every 100ms
16
+ ERROR_RATE_LIMIT: 2, // 2 errors every 100ms
17
+ SNAPSHOT_RATE_LIMIT: 2, // 2 Snapshots every 100ms
18
+ RATE_INTERVAL: 100, // 100ms
19
+ PROCESS_AMQP_DRAIN: true,
20
+ AMQP_PUBLISH_RETRY_DELAY: 100, // 100ms
21
+ AMQP_PUBLISH_RETRY_ATTEMPTS: Infinity,
22
+ AMQP_PUBLISH_MAX_RETRY_DELAY: 5 * 60 * 1000, // 5 mins
23
+ AMQP_PERSISTENT_MESSAGES: false,
24
+ OUTGOING_MESSAGE_SIZE_LIMIT: 10485760,
25
+ NO_SELF_PASSTRHOUGH: false,
26
+ PROTOCOL_VERSION: 1,
27
+ NO_ERROR_REPLIES: false,
28
+ INPUT_FORMAT: 'default',
29
+ OBJECT_STORAGE_URI: null,
30
+ OBJECT_STORAGE_TOKEN: null,
31
+ OBJECT_STORAGE_SIZE_THRESHOLD: 1048576,
32
+ EMIT_LIGHTWEIGHT_MESSAGE: false,
33
+ AMQP_RECONNECT_ATTEMPTS: 3,
34
+ AMQP_RECONNECT_TIMEOUT: 100,
35
+ WAIT_MESSAGES_TIMEOUT: 50
36
+ };
37
+
38
+ const result = {};
39
+ _.forEach(optional, function readOptional(defaultValue, key) {
40
+ const envVarName = PREFIX + key;
41
+ if (typeof defaultValue === 'number' && envVars[envVarName]) {
42
+ result[key] = parseInt(envVars[envVarName]) || defaultValue;
43
+ } else if (typeof defaultValue === 'boolean') {
44
+ if (envVars[envVarName] === undefined) {
45
+ result[key] = defaultValue;
46
+ } else {
47
+ result[key] = (!envVars[envVarName] || envVars[envVarName] === 'false') ? false : true;
48
+ }
49
+ } else {
50
+ result[key] = envVars[envVarName] || defaultValue;
51
+ }
52
+ });
53
+ return result;
54
+ }
55
+
56
+ function getAdditionalVars(envVars) {
57
+ if (envVars.ELASTICIO_ADDITIONAL_VARS_FOR_HEADERS) {
58
+ const vars = {};
59
+ envVars.ELASTICIO_ADDITIONAL_VARS_FOR_HEADERS
60
+ .split(',')
61
+ .map(env => env.trim())
62
+ .forEach(env => {
63
+ const key = env.indexOf(PREFIX) === 0 ? env.slice(PREFIX.length) : env;
64
+ vars[key] = envVars[env];
65
+ });
66
+
67
+ return vars;
68
+ }
69
+ }
70
+
71
+ function getMandatoryEnvVars(envVars) {
72
+ // required settings
73
+ const requiredAlways = [
74
+ 'FLOW_ID',
75
+ 'EXEC_ID',
76
+ 'STEP_ID',
77
+ 'CONTAINER_ID',
78
+ 'WORKSPACE_ID',
79
+
80
+ 'USER_ID',
81
+ 'COMP_ID',
82
+ 'FUNCTION',
83
+
84
+ 'API_URI',
85
+ 'API_USERNAME',
86
+ 'API_KEY'
87
+ ];
88
+
89
+ const requiredForMessageProcessing = [
90
+ 'AMQP_URI',
91
+ 'LISTEN_MESSAGES_ON',
92
+ 'PUBLISH_MESSAGES_TO',
93
+
94
+ 'DATA_ROUTING_KEY',
95
+ 'ERROR_ROUTING_KEY',
96
+ 'REBOUND_ROUTING_KEY',
97
+ 'SNAPSHOT_ROUTING_KEY',
98
+ 'MESSAGE_CRYPTO_IV',
99
+ 'MESSAGE_CRYPTO_PASSWORD'
100
+ ];
101
+
102
+ const envVarsList = requiredAlways.slice(0);
103
+
104
+ if (!envVars.ELASTICIO_HOOK_SHUTDOWN) {
105
+ envVarsList.push(...requiredForMessageProcessing);
106
+ }
107
+
108
+ return envVarsList.reduce((result, key) => {
109
+ const envVarName = PREFIX + key;
110
+ if (!envVars[envVarName]) {
111
+ throw new Error(`${envVarName} is missing`);
112
+ }
113
+ result[key] = envVars[envVarName];
114
+ return result;
115
+ }, {});
116
+ }
117
+
118
+ function readFrom(envVars) {
119
+ return {
120
+ ...getMandatoryEnvVars(envVars),
121
+ ...getOptionalEnvVars(envVars),
122
+ additionalVars: getAdditionalVars(envVars)
123
+ };
124
+ }
125
+
126
+ exports.readFrom = readFrom;
package/package.json CHANGED
@@ -1,53 +1,53 @@
1
- {
2
- "name": "elasticio-sailor-nodejs",
3
- "description": "The official elastic.io library for bootstrapping and executing for Node.js connectors",
4
- "version": "2.7.1-dev2",
5
- "main": "run.js",
6
- "scripts": {
7
- "audit": "better-npm-audit audit --level high --production",
8
- "lint": "./node_modules/.bin/eslint lib spec mocha_spec lib run.js runService.js",
9
- "pretest": "npm run lint",
10
- "test": "npm run test:jasmine && npm run test:mocha",
11
- "test:jasmine": "NODE_ENV=test jasmine-node spec",
12
- "test:mocha": "NODE_ENV=test node_modules/.bin/mocha --recursive mocha_spec",
13
- "postpublish": "./postpublish.js"
14
- },
15
- "engines": {
16
- "node": ">=12.13.0"
17
- },
18
- "dependencies": {
19
- "@elastic.io/maester-client": "4.0.3",
20
- "amqplib": "0.8.0",
21
- "bunyan": "1.8.10",
22
- "co": "4.6.0",
23
- "debug": "3.1.0",
24
- "elasticio-rest-node": "1.2.7",
25
- "event-to-promise": "0.8.0",
26
- "lodash": "4.17.21",
27
- "p-throttle": "2.1.0",
28
- "q": "1.5.1",
29
- "request-promise-native": "1.0.5",
30
- "requestretry": "7.0.2",
31
- "uuid": "3.0.1"
32
- },
33
- "devDependencies": {
34
- "better-npm-audit": "3.7.3",
35
- "chai": "4.2.0",
36
- "del": "2.2.2",
37
- "eslint": "4.19.1",
38
- "eslint-plugin-mocha": "4.12.1",
39
- "express": "4.16.4",
40
- "gulp": "3.9.1",
41
- "gulp-istanbul": "1.1.3",
42
- "gulp-jasmine": "0.2.0",
43
- "jasmine-node": "3.0.0",
44
- "mocha": "7.1.2",
45
- "nock": "12.0.3",
46
- "rabbitmq-stats": "1.2.4",
47
- "request": "2.88.0",
48
- "sinon": "9.0.2",
49
- "sinon-chai": "3.5.0"
50
- },
51
- "repository": "elasticio/sailor-nodejs",
52
- "license": "Apache-2.0"
53
- }
1
+ {
2
+ "name": "elasticio-sailor-nodejs",
3
+ "description": "The official elastic.io library for bootstrapping and executing for Node.js connectors",
4
+ "version": "2.7.1-dev4",
5
+ "main": "run.js",
6
+ "scripts": {
7
+ "audit": "better-npm-audit audit --level high --production",
8
+ "lint": "./node_modules/.bin/eslint lib spec mocha_spec lib run.js runService.js",
9
+ "pretest": "npm run lint",
10
+ "test": "npm run test:jasmine && npm run test:mocha",
11
+ "test:jasmine": "NODE_ENV=test jasmine-node spec",
12
+ "test:mocha": "NODE_ENV=test node_modules/.bin/mocha --recursive mocha_spec",
13
+ "postpublish": "./postpublish.js"
14
+ },
15
+ "engines": {
16
+ "node": ">=12.13.0"
17
+ },
18
+ "dependencies": {
19
+ "@elastic.io/maester-client": "4.0.3",
20
+ "amqplib": "0.8.0",
21
+ "bunyan": "1.8.10",
22
+ "co": "4.6.0",
23
+ "debug": "3.1.0",
24
+ "elasticio-rest-node": "1.2.7",
25
+ "event-to-promise": "0.8.0",
26
+ "lodash": "4.17.21",
27
+ "p-throttle": "2.1.0",
28
+ "q": "1.5.1",
29
+ "request-promise-native": "1.0.5",
30
+ "requestretry": "7.0.2",
31
+ "uuid": "3.0.1"
32
+ },
33
+ "devDependencies": {
34
+ "better-npm-audit": "3.7.3",
35
+ "chai": "4.2.0",
36
+ "del": "2.2.2",
37
+ "eslint": "4.19.1",
38
+ "eslint-plugin-mocha": "4.12.1",
39
+ "express": "4.16.4",
40
+ "gulp": "3.9.1",
41
+ "gulp-istanbul": "1.1.3",
42
+ "gulp-jasmine": "0.2.0",
43
+ "jasmine-node": "3.0.0",
44
+ "mocha": "7.1.2",
45
+ "nock": "12.0.3",
46
+ "rabbitmq-stats": "1.2.4",
47
+ "request": "2.88.0",
48
+ "sinon": "9.0.2",
49
+ "sinon-chai": "3.5.0"
50
+ },
51
+ "repository": "elasticio/sailor-nodejs",
52
+ "license": "Apache-2.0"
53
+ }
package/postpublish.js CHANGED
@@ -1,24 +1,24 @@
1
- #! /usr/bin/env node
2
- 'use strict';
3
-
4
- var execSync = require('child_process').execSync;
5
- var version = require('./package.json').version;
6
-
7
- if (!version) {
8
- console.error('Can not determine current version');
9
- process.exit(0);
10
- }
11
-
12
- var tag = 'v' + version;
13
- try {
14
- // if grep not found anything, it's exit code isn't zero, so execSync raises an Error
15
- execSync('git tag | grep "' + tag + '"');
16
- // it seems tag is found, do nothing
17
- process.exit(0);
18
- } catch (e) {
19
- // grep found nothing, so le'ts create new tag
20
- console.info('creating a new tag: ', tag);
21
- execSync('git tag ' + tag);
22
- console.info('pushing tag to origin: ', tag);
23
- execSync('git push origin ' + tag);
24
- }
1
+ #! /usr/bin/env node
2
+ 'use strict';
3
+
4
+ var execSync = require('child_process').execSync;
5
+ var version = require('./package.json').version;
6
+
7
+ if (!version) {
8
+ console.error('Can not determine current version');
9
+ process.exit(0);
10
+ }
11
+
12
+ var tag = 'v' + version;
13
+ try {
14
+ // if grep not found anything, it's exit code isn't zero, so execSync raises an Error
15
+ execSync('git tag | grep "' + tag + '"');
16
+ // it seems tag is found, do nothing
17
+ process.exit(0);
18
+ } catch (e) {
19
+ // grep found nothing, so le'ts create new tag
20
+ console.info('creating a new tag: ', tag);
21
+ execSync('git tag ' + tag);
22
+ console.info('pushing tag to origin: ', tag);
23
+ execSync('git push origin ' + tag);
24
+ }