ml-testing-toolkit 18.13.2 → 18.14.1
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/CHANGELOG.md +19 -0
- package/package.json +2 -2
- package/{sbom-v18.12.4.csv → sbom-v18.13.2.csv} +1525 -1525
- package/src/lib/config.js +33 -6
- package/src/lib/db/adapters/dbAdapter.js +28 -5
package/src/lib/config.js
CHANGED
|
@@ -90,7 +90,6 @@ const loadSystemConfig = async (filename = SYSTEM_CONFIG_FILE) => {
|
|
|
90
90
|
const systemConfigFromEnvironment = _getSystemConfigFromEnvironment()
|
|
91
91
|
_.merge(SYSTEM_CONFIG, systemConfigFromEnvironment)
|
|
92
92
|
const secretsFromEnvironment = _getSecretsFromEnvironment()
|
|
93
|
-
console.log(secretsFromEnvironment)
|
|
94
93
|
_.merge(SYSTEM_CONFIG, secretsFromEnvironment)
|
|
95
94
|
} catch (err) {
|
|
96
95
|
console.log(`Can not read the file ${filename}`, err)
|
|
@@ -98,22 +97,50 @@ const loadSystemConfig = async (filename = SYSTEM_CONFIG_FILE) => {
|
|
|
98
97
|
return true
|
|
99
98
|
}
|
|
100
99
|
|
|
100
|
+
const mask = value => (value && value.length > 4) ? `${value.slice(0, 2)}***${value.slice(-2)}` : value
|
|
101
|
+
|
|
101
102
|
const _getSecretsFromEnvironment = () => {
|
|
102
103
|
const secretsFromEnvironment = {}
|
|
103
|
-
if (
|
|
104
|
+
if (
|
|
105
|
+
process.env.REPORTING_DB_CONNECTION_PASSWORD ||
|
|
106
|
+
process.env.REPORTING_DB_CONNECTION_STRING ||
|
|
107
|
+
process.env.REPORTING_DB_SSL_ENABLED ||
|
|
108
|
+
process.env.REPORTING_DB_SSL_VERIFY ||
|
|
109
|
+
process.env.REPORTING_DB_SSL_CA_FILE_PATH
|
|
110
|
+
) {
|
|
104
111
|
try {
|
|
105
112
|
const reportingDbConnectionPassword = process.env.REPORTING_DB_CONNECTION_PASSWORD
|
|
106
113
|
const reportingDbConnectionString = process.env.REPORTING_DB_CONNECTION_STRING
|
|
107
|
-
|
|
108
|
-
|
|
114
|
+
const reportingDbSslEnabled = process.env.REPORTING_DB_SSL_ENABLED === 'true'
|
|
115
|
+
const reportingDbSslVerify = process.env.REPORTING_DB_SSL_VERIFY !== 'false'
|
|
116
|
+
const reportingDbSslCa = process.env.REPORTING_DB_SSL_CA_FILE_PATH
|
|
117
|
+
|
|
109
118
|
secretsFromEnvironment.DB = {
|
|
110
119
|
PASSWORD: reportingDbConnectionPassword,
|
|
111
120
|
CONNECTION_STRING: reportingDbConnectionString
|
|
112
121
|
}
|
|
113
|
-
|
|
122
|
+
|
|
123
|
+
if (
|
|
124
|
+
process.env.REPORTING_DB_SSL_ENABLED ||
|
|
125
|
+
process.env.REPORTING_DB_SSL_VERIFY ||
|
|
126
|
+
process.env.REPORTING_DB_SSL_CA_FILE_PATH
|
|
127
|
+
) {
|
|
128
|
+
secretsFromEnvironment.DB.SSL_ENABLED = reportingDbSslEnabled
|
|
129
|
+
secretsFromEnvironment.DB.SSL_VERIFY = reportingDbSslVerify
|
|
130
|
+
if (reportingDbSslCa) {
|
|
131
|
+
secretsFromEnvironment.DB.SSL_CA_FILE_PATH = reportingDbSslCa
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
// Hide CA from being logged
|
|
136
|
+
const logSecrets = _.cloneDeep(secretsFromEnvironment)
|
|
137
|
+
if (logSecrets.DB && logSecrets.DB.SSL_CA_FILE_PATH) logSecrets.DB.SSL_CA_FILE_PATH = mask(logSecrets.DB.SSL_CA_FILE_PATH)
|
|
138
|
+
if (logSecrets.DB && logSecrets.DB.PASSWORD) logSecrets.DB.PASSWORD = mask(logSecrets.DB.PASSWORD)
|
|
139
|
+
if (logSecrets.DB && logSecrets.DB.CONNECTION_STRING) logSecrets.DB.CONNECTION_STRING = mask(logSecrets.DB.CONNECTION_STRING)
|
|
140
|
+
console.log('Secrets retrieved from environment to be merged into system config', logSecrets)
|
|
114
141
|
} catch (err) {
|
|
115
142
|
console.log(err)
|
|
116
|
-
console.log('Failed to retrieve reporting database
|
|
143
|
+
console.log('Failed to retrieve reporting database secrets or SSL/TLS settings from environment')
|
|
117
144
|
}
|
|
118
145
|
}
|
|
119
146
|
return secretsFromEnvironment
|
|
@@ -46,6 +46,24 @@ const getConnection = async () => {
|
|
|
46
46
|
params = {}
|
|
47
47
|
}
|
|
48
48
|
}
|
|
49
|
+
|
|
50
|
+
// TLS/SSL support
|
|
51
|
+
const mongoOptions = {
|
|
52
|
+
useNewUrlParser: true,
|
|
53
|
+
useUnifiedTopology: true
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
if (systemConfig.DB.SSL_ENABLED) {
|
|
57
|
+
mongoOptions.tls = true
|
|
58
|
+
if (typeof systemConfig.DB.SSL_VERIFY !== 'undefined') {
|
|
59
|
+
console.log(`SSL_VERIFY is set to ${systemConfig.DB.SSL_VERIFY} (type: ${typeof systemConfig.DB.SSL_VERIFY})`)
|
|
60
|
+
mongoOptions.tlsAllowInvalidCertificates = !systemConfig.DB.SSL_VERIFY
|
|
61
|
+
}
|
|
62
|
+
if (systemConfig.DB.SSL_CA_FILE_PATH) {
|
|
63
|
+
mongoOptions.tlsCAFile = systemConfig.DB.SSL_CA_FILE_PATH
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
49
67
|
const csMongoDBObj = new ConnectionString()
|
|
50
68
|
csMongoDBObj.setDefaults({
|
|
51
69
|
protocol: 'mongodb',
|
|
@@ -59,10 +77,7 @@ const getConnection = async () => {
|
|
|
59
77
|
const safeConnectionString = connectionString.replace(/(\/\/)(.*):(.*)@/, '$1****:****@')
|
|
60
78
|
Logger.info(`Connecting to MongoDB with connection string: ${safeConnectionString}`)
|
|
61
79
|
|
|
62
|
-
conn = await mongoDBWrapper.connect(connectionString,
|
|
63
|
-
useNewUrlParser: true,
|
|
64
|
-
useUnifiedTopology: true
|
|
65
|
-
})
|
|
80
|
+
conn = await mongoDBWrapper.connect(connectionString, mongoOptions)
|
|
66
81
|
}
|
|
67
82
|
return conn
|
|
68
83
|
}
|
|
@@ -188,6 +203,13 @@ const getReport = async (reportId) => {
|
|
|
188
203
|
return await MyModel.findById(reportId)
|
|
189
204
|
}
|
|
190
205
|
|
|
206
|
+
const _deleteConn = async () => {
|
|
207
|
+
if (conn) {
|
|
208
|
+
await conn.disconnect()
|
|
209
|
+
conn = undefined
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
|
|
191
213
|
module.exports = {
|
|
192
214
|
read,
|
|
193
215
|
find,
|
|
@@ -195,5 +217,6 @@ module.exports = {
|
|
|
195
217
|
remove,
|
|
196
218
|
upsertReport,
|
|
197
219
|
listReports,
|
|
198
|
-
getReport
|
|
220
|
+
getReport,
|
|
221
|
+
_deleteConn
|
|
199
222
|
}
|