diff --git a/packages/api/src/utility/crypting.js b/packages/api/src/utility/crypting.js index 95220e6d6..fc9b31003 100644 --- a/packages/api/src/utility/crypting.js +++ b/packages/api/src/utility/crypting.js @@ -5,12 +5,16 @@ const path = require('path'); const _ = require('lodash'); const { datadir } = require('./directories'); +const { encryptionKeyArg } = require('./processArgs'); const defaultEncryptionKey = 'mQAUaXhavRGJDxDTXSCg7Ej0xMmGCrx6OKA07DIMBiDcYYkvkaXjTAzPUEHEHEf9'; let _encryptionKey = null; function loadEncryptionKey() { + if (encryptionKeyArg) { + return encryptionKeyArg; + } if (_encryptionKey) { return _encryptionKey; } @@ -131,6 +135,11 @@ function pickSafeConnectionInfo(connection) { function setEncryptionKey(encryptionKey) { _encryptionKey = encryptionKey; _encryptor = null; + global.ENCRYPTION_KEY = encryptionKey; +} + +function getEncryptionKey() { + return _encryptionKey; } module.exports = { @@ -142,4 +151,6 @@ module.exports = { maskConnection, pickSafeConnectionInfo, loadEncryptionKeyFromExternal, + getEncryptionKey, + setEncryptionKey, }; diff --git a/packages/api/src/utility/processArgs.js b/packages/api/src/utility/processArgs.js index f4f9301a7..0cdee1ef7 100644 --- a/packages/api/src/utility/processArgs.js +++ b/packages/api/src/utility/processArgs.js @@ -17,6 +17,7 @@ const processDisplayName = getNamedArg('--process-display-name'); const listenApi = process.argv.includes('--listen-api'); const listenApiChild = process.argv.includes('--listen-api-child') || listenApi; const runE2eTests = process.argv.includes('--run-e2e-tests'); +const encryptionKeyArg = getNamedArg('--encryption-key'); function getPassArgs() { const res = []; @@ -31,6 +32,9 @@ function getPassArgs() { if (runE2eTests) { res.push('--run-e2e-tests'); } + if (global['ENCRYPTION_KEY']) { + res.push('--encryption-key', global['ENCRYPTION_KEY']); + } return res; } @@ -45,4 +49,5 @@ module.exports = { listenApiChild, processDisplayName, runE2eTests, + encryptionKeyArg, };