@nsshunt/stsconfig 1.9.0 → 1.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +3 -3
- package/stsconfig.js +87 -20
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nsshunt/stsconfig",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.11.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "stsconfig.js",
|
|
6
6
|
"dependencies": {
|
|
@@ -13,11 +13,11 @@
|
|
|
13
13
|
"parser": "@babel/eslint-parser"
|
|
14
14
|
},
|
|
15
15
|
"devDependencies": {
|
|
16
|
-
"@babel/core": "^7.17.
|
|
16
|
+
"@babel/core": "^7.17.5",
|
|
17
17
|
"@babel/eslint-parser": "^7.17.0",
|
|
18
18
|
"@babel/plugin-proposal-class-properties": "^7.16.7",
|
|
19
19
|
"@babel/plugin-proposal-private-methods": "^7.16.11",
|
|
20
|
-
"eslint": "^8.
|
|
20
|
+
"eslint": "^8.10.0",
|
|
21
21
|
"jest": "^27.5.1"
|
|
22
22
|
},
|
|
23
23
|
"scripts": {
|
package/stsconfig.js
CHANGED
|
@@ -3,6 +3,12 @@ const { accessSync, constants, readFileSync } = require('fs');
|
|
|
3
3
|
const debug = require('debug')(`proc:${process.pid}`);
|
|
4
4
|
require('colors');
|
|
5
5
|
|
|
6
|
+
// Order for config settings
|
|
7
|
+
// -------------------------
|
|
8
|
+
// Passwords;
|
|
9
|
+
// Use password specified within a database password file (if present)
|
|
10
|
+
// Fall back to use a password from an environment variable
|
|
11
|
+
|
|
6
12
|
// Add tthe STSENVFILE to script run commands in order to use the require .env file for configuration
|
|
7
13
|
let envfile = (process.env.STSENVFILE === undefined ? '../stsglobalresources/.env' : process.env.STSENVFILE);
|
|
8
14
|
let yamlfile = (process.env.STSYAMLFILE === undefined ? '../stsglobalresources/config.yml' : process.env.STSYAMLFILE);
|
|
@@ -21,32 +27,30 @@ try {
|
|
|
21
27
|
const defconfig =
|
|
22
28
|
{
|
|
23
29
|
// Node runtime environment
|
|
24
|
-
isProduction: process.env.NODE_ENV === 'production'
|
|
30
|
+
isProduction: (process.env.NODE_ENV === 'production')
|
|
25
31
|
// Log error messages to the console within the microservice
|
|
26
32
|
,consoleLogErrors: (process.env.CONSOLE_LOG_ERRORS === undefined ? false : (process.env.CONSOLE_LOG_ERRORS === "true" ? true : false ))
|
|
27
33
|
// Database username.
|
|
28
|
-
,dbuser: process.env.DB_USER
|
|
34
|
+
,dbuser: (process.env.DB_USER === undefined ? 'postgres' : process.env.DB_USER)
|
|
29
35
|
// Database password.
|
|
30
|
-
,dbpassword: process.env.DB_PASSWORD
|
|
36
|
+
,dbpassword: (process.env.DB_PASSWORD === undefined ? 'password' : process.env.DB_PASSWORD)
|
|
37
|
+
// Database password file.
|
|
38
|
+
,dbpasswordfile: process.env.DB_PASSWORD_FILE
|
|
31
39
|
// Database host.
|
|
32
|
-
,dbhost: process.env.DB_HOST
|
|
40
|
+
,dbhost: (process.env.DB_HOST === undefined ? 'localhost' : process.env.DB_HOST)
|
|
33
41
|
// Database port.
|
|
34
|
-
,dbport: process.env.DB_PORT
|
|
42
|
+
,dbport: (process.env.DB_PORT === undefined ? '5432' : process.env.DB_PORT)
|
|
35
43
|
// Database name.
|
|
36
|
-
,database: process.env.DB_DATABASE
|
|
44
|
+
,database: (process.env.DB_DATABASE === undefined ? 'stsrestmsdb01' : process.env.DB_DATABASE) // STS REST MicroService Database 01
|
|
37
45
|
// Database connection string to be used in production mode.
|
|
38
46
|
,databaseUrl: process.env.DATABASE_URL
|
|
39
|
-
// Computed connection string to be used in development mode.
|
|
40
|
-
,connectionString: `postgresql://${process.env.DB_USER}:${process.env.DB_PASSWORD}@${process.env.DB_HOST}:${process.env.DB_PORT}/${process.env.DB_DATABASE}`
|
|
41
|
-
// Default computed connection string for postgres. Database name = postgres.
|
|
42
|
-
,defaultDatabaseConnectionString: `postgresql://${process.env.DB_USER}:${process.env.DB_PASSWORD}@${process.env.DB_HOST}:${process.env.DB_PORT}/postgres`
|
|
43
47
|
// Database script(s) folder
|
|
44
48
|
,databasescriptfolder: (process.env.DB_SCRIPT_FOLDER === undefined ? "/var/lib/sts/stsglobalresources/db-scripts" : process.env.DB_SCRIPT_FOLDER)
|
|
45
49
|
|
|
46
50
|
// Use the on-screen UI for the server. Set to false for head-less mode (i.e. inside cluster etc.)
|
|
47
51
|
,useui: (process.env.USEUI === undefined ? true : (process.env.USEUI === "true" ? true : false ))
|
|
48
52
|
// The maximum pool size for pg. There will be one pool per thread.
|
|
49
|
-
,poolSize: (process.env.POOL_SIZE === undefined ?
|
|
53
|
+
,poolSize: (process.env.POOL_SIZE === undefined ? 500 : parseInt(process.env.POOL_SIZE))
|
|
50
54
|
// Maximum number of CPUs (incl. logical processors) to use within the Microservice.
|
|
51
55
|
// Use -1 to use all available within the runtime container. Each CPU will spawn a node work thread.
|
|
52
56
|
,useCPUs: (process.env.MAX_CPU === undefined ? -1 : parseFloat(process.env.MAX_CPU))
|
|
@@ -113,23 +117,51 @@ const defconfig =
|
|
|
113
117
|
*/
|
|
114
118
|
|
|
115
119
|
// STSREST01 Server endpoint
|
|
116
|
-
,rest01endpoint: (process.env.REST01_ENDPOINT === undefined ?
|
|
120
|
+
,rest01endpoint: (process.env.REST01_ENDPOINT === undefined ?
|
|
121
|
+
(process.env.ENDPOINT === undefined ? "http://localhost" : process.env.ENDPOINT)
|
|
122
|
+
: process.env.REST01_ENDPOINT)
|
|
117
123
|
// STSREST01 Server port (listen port for the service)
|
|
118
|
-
,rest01hostport: (process.env.REST01_HOST_PORT === undefined ?
|
|
124
|
+
,rest01hostport: (process.env.REST01_HOST_PORT === undefined ?
|
|
125
|
+
(process.env.HOST_PORT === undefined ? "3000" : process.env.HOST_PORT)
|
|
126
|
+
: process.env.REST01_HOST_PORT)
|
|
119
127
|
// STSREST01 Server port (client port to access the service)
|
|
120
|
-
,rest01port: (process.env.REST01_PORT === undefined ?
|
|
128
|
+
,rest01port: (process.env.REST01_PORT === undefined ?
|
|
129
|
+
(process.env.PORT === undefined ? "3000" : process.env.PORT)
|
|
130
|
+
: process.env.REST01_PORT)
|
|
121
131
|
// STSREST01 Server endpoint
|
|
122
|
-
,rest01apiroot: (process.env.REST01_APIROOT === undefined ?
|
|
132
|
+
,rest01apiroot: (process.env.REST01_APIROOT === undefined ?
|
|
133
|
+
(process.env.APIROOT === undefined ? "/stsrest01/v1/im" : process.env.APIROOT)
|
|
134
|
+
: process.env.REST01_APIROOT)
|
|
135
|
+
// STSREST01 Prometheus metric support
|
|
136
|
+
,rest01prometheussupport: (process.env.REST01_PROM_SUPPORT === undefined ?
|
|
137
|
+
(process.env.PROM_SUPPORT === undefined ? true : (process.env.PROM_SUPPORT === "true" ? true : false))
|
|
138
|
+
: (process.env.REST01_PROM_SUPPORT === "true" ? true : false))
|
|
139
|
+
// STSREST01 Cluster Server port (port used for cluster prometheus scrapes). Service will listen on this port at mount point /metrics
|
|
140
|
+
,rest01prometheusclusterport: (process.env.REST01_PROM_CLUSTER_PORT === undefined ?
|
|
141
|
+
(process.env.PROM_CLUSTER_PORT === undefined ? "3010" : process.env.PROM_CLUSTER_PORT)
|
|
142
|
+
: process.env.REST01_PROM_CLUSTER_PORT)
|
|
123
143
|
// STSREST01 Service Name
|
|
124
|
-
,rest01servicename: (process.env.REST01_SERVICE_NAME === undefined ?
|
|
144
|
+
,rest01servicename: (process.env.REST01_SERVICE_NAME === undefined ?
|
|
145
|
+
(process.env.SERVICE_NAME === undefined ? "STSRest01" : process.env.SERVICE_NAME)
|
|
146
|
+
: process.env.REST01_SERVICE_NAME)
|
|
125
147
|
// STSREST01 Service Version
|
|
126
|
-
,rest01serviceversion: (process.env.REST01_SERVICE_VERSION === undefined ?
|
|
148
|
+
,rest01serviceversion: (process.env.REST01_SERVICE_VERSION === undefined ?
|
|
149
|
+
(process.env.SERVICE_VERSION === undefined ? "1.0.0" : process.env.SERVICE_VERSION)
|
|
150
|
+
: process.env.REST01_SERVICE_VERSION)
|
|
127
151
|
// STSREST01 Service Credentials
|
|
128
152
|
// -----------------------------
|
|
129
153
|
// STSREST01 Server username email
|
|
130
|
-
,rest01email: (process.env.REST01_EMAIL === undefined ?
|
|
154
|
+
,rest01email: (process.env.REST01_EMAIL === undefined ?
|
|
155
|
+
(process.env.EMAIL === undefined ? "K6TestUser@sts" : process.env.EMAIL)
|
|
156
|
+
: process.env.REST01_EMAIL)
|
|
131
157
|
// STSREST01 Server username password
|
|
132
|
-
,rest01password: (process.env.REST01_PASSWORD === undefined ?
|
|
158
|
+
,rest01password: (process.env.REST01_PASSWORD === undefined ?
|
|
159
|
+
(process.env.PASSWORD === undefined ? "K6TestUserPassword" : process.env.PASSWORD)
|
|
160
|
+
: process.env.REST01_PASSWORD)
|
|
161
|
+
// STSREST01 Server username password file
|
|
162
|
+
,rest01passwordfile: (process.env.REST01_PASSWORD_FILE === undefined ?
|
|
163
|
+
( process.env.PASSWORD_FILE === undefined ? "rest01passwordfile" : process.env.PASSWORD_FILE)
|
|
164
|
+
: process.env.REST01_PASSWORD_FILE)
|
|
133
165
|
|
|
134
166
|
|
|
135
167
|
// STS Instrument Manager Service endpoint
|
|
@@ -140,6 +172,10 @@ const defconfig =
|
|
|
140
172
|
,import: (process.env.IM_PORT === undefined ? "3001" : process.env.IM_PORT)
|
|
141
173
|
// STS Instrument Manager Service endpoint
|
|
142
174
|
,imapiroot: (process.env.IM_APIROOT === undefined ? "/stsinstrumentmanager/v1" : process.env.IM_APIROOT)
|
|
175
|
+
// STS Instrument Manager Prometheus metric support
|
|
176
|
+
,imprometheussupport: (process.env.IM_PROM_SUPPORT === undefined ? true : (process.env.IM_PROM_SUPPORT === "true" ? true : false ))
|
|
177
|
+
// STS Instrument Manager Cluster Server port (port used for cluster prometheus scrapes)
|
|
178
|
+
,imprometheusclusterport: (process.env.IM_PROM_CLUSTER_PORT === undefined ? "3010" : process.env.IM_PROM_CLUSTER_PORT)
|
|
143
179
|
// STS Instrument Manager Service Name
|
|
144
180
|
,imservicename: (process.env.IM_SERVICE_NAME === undefined ? "STSInstrumentManager" : process.env.IM_SERVICE_NAME)
|
|
145
181
|
// STS Instrument Manager Service Version
|
|
@@ -159,6 +195,10 @@ const defconfig =
|
|
|
159
195
|
,toport: (process.env.TO_PORT === undefined ? "3004" : process.env.TO_PORT)
|
|
160
196
|
// STS Test Orchestrator Service endpoint
|
|
161
197
|
,toapiroot: (process.env.TO_APIROOT === undefined ? "/ststestorchestrator/v1" : process.env.TO_APIROOT)
|
|
198
|
+
// STS Test Orchestrator Prometheus metric support
|
|
199
|
+
,toprometheussupport: (process.env.TO_PROM_SUPPORT === undefined ? true : (process.env.TO_PROM_SUPPORT === "true" ? true : false ))
|
|
200
|
+
// STS Test Orchestrator Cluster Server port (port used for cluster prometheus scrapes)
|
|
201
|
+
,toprometheusclusterport: (process.env.TO_PROM_CLUSTER_PORT === undefined ? "3010" : process.env.TO_PROM_CLUSTER_PORT)
|
|
162
202
|
// STS Test Orchestrator Service Name
|
|
163
203
|
,toservicename: (process.env.TO_SERVICE_NAME === undefined ? "STSTestOrchestrator" : process.env.TO_SERVICE_NAME)
|
|
164
204
|
// STS Test Orchestrator Service Version
|
|
@@ -178,6 +218,10 @@ const defconfig =
|
|
|
178
218
|
,asport: (process.env.AS_PORT === undefined ? "3002" : process.env.AS_PORT)
|
|
179
219
|
// Auth Server endpoint
|
|
180
220
|
,asapiroot: (process.env.AS_APIROOT === undefined ? "/stsauth/v1" : process.env.AS_APIROOT)
|
|
221
|
+
// Auth Server Prometheus metric support
|
|
222
|
+
,asprometheussupport: (process.env.AS_PROM_SUPPORT === undefined ? true : (process.env.AS_PROM_SUPPORT === "true" ? true : false ))
|
|
223
|
+
// Auth Prometheus Cluster Server port (port used for cluster prometheus scrapes)
|
|
224
|
+
,asprometheusclusterport: (process.env.AS_PROM_CLUSTER_PORT === undefined ? "3012" : process.env.AS_PROM_CLUSTER_PORT)
|
|
181
225
|
// STSAuth Service Name
|
|
182
226
|
,asservicename: (process.env.AS_SERVICE_NAME === undefined ? "STSAuth" : process.env.AS_SERVICE_NAME)
|
|
183
227
|
// STSAuth Service Version
|
|
@@ -189,6 +233,10 @@ const defconfig =
|
|
|
189
233
|
// Auth Server username password
|
|
190
234
|
,aspassword: (process.env.AS_PASSWORD === undefined ? "K6TestUserPassword" : process.env.AS_PASSWORD)
|
|
191
235
|
|
|
236
|
+
// STS Test Runner Prometheus metric support
|
|
237
|
+
,trprometheussupport: (process.env.TR_PROM_SUPPORT === undefined ? true : (process.env.TR_PROM_SUPPORT === "true" ? true : false ))
|
|
238
|
+
// STS Test Runner Cluster Server port (port used for cluster prometheus scrapes)
|
|
239
|
+
,trprometheusclusterport: (process.env.TR_PROM_CLUSTER_PORT === undefined ? "3010" : process.env.TR_PROM_CLUSTER_PORT)
|
|
192
240
|
// STS Test Runner Service Name
|
|
193
241
|
,trservicename: (process.env.TR_SERVICE_NAME === undefined ? "STSRestRunner" : process.env.TR_SERVICE_NAME)
|
|
194
242
|
// STS Test Runner Service Version
|
|
@@ -265,7 +313,26 @@ const defconfig =
|
|
|
265
313
|
// timeout <number> Socket timeout in milliseconds. This will set the timeout when the socket is created.
|
|
266
314
|
}
|
|
267
315
|
|
|
316
|
+
if (defconfig.dbpasswordfile !== undefined)
|
|
317
|
+
{
|
|
318
|
+
try {
|
|
319
|
+
accessSync(defconfig.dbpasswordfile, constants.R_OK);
|
|
320
|
+
const data = readFileSync(defconfig.dbpasswordfile, 'utf8');
|
|
321
|
+
defconfig.dbpassword = data;
|
|
322
|
+
debug(`Successfully loaded database password file: [${defconfig.dbpasswordfile}]`.green);
|
|
323
|
+
} catch (err) {
|
|
324
|
+
debug(`Problem loading database password file: [${defconfig.dbpasswordfile}], Error: [${err}]`.red);
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
|
|
268
328
|
// Preference order is YAML file then .env file
|
|
269
|
-
const $options = {
|
|
329
|
+
const $options = {
|
|
330
|
+
...deffileconfig,
|
|
331
|
+
...defconfig
|
|
332
|
+
// Computed connection string to be used in development mode.
|
|
333
|
+
,connectionString: `postgresql://${defconfig.dbuser}:${defconfig.dbpassword}@${defconfig.dbhost}:${defconfig.dbport}/${defconfig.database}`
|
|
334
|
+
// Default computed connection string for postgres. Database name = postgres. Used by utilites that create and/or update the STS database(s).
|
|
335
|
+
,defaultDatabaseConnectionString: `postgresql://${defconfig.dbuser}:${defconfig.dbpassword}@${defconfig.dbhost}:${defconfig.dbport}/postgres`
|
|
336
|
+
}
|
|
270
337
|
|
|
271
338
|
module.exports = { $options }
|