Настройка переменных среды в узле до того, как модуль конфигурации прочитает конфигурацию из default.json

Сравнительно новичок в JS и node,

Требование: необходимо установить переменные среды после чтения из безопасного хранилища до загрузки модуля конфигурации.

Подробности. У нас есть вопрос, где нам нужно прочитать секреты из секретного хранилища и сделать их доступными для среды узла, прежде чем модуль config сработает и назначит значения с помощью default.js.

Я попытался разделить экспресс-настройку и инициализацию приложения и попытался прочитать секреты между этими шагами, но безрезультатно.

app.js -> Setup the app

index.js -> 
// Setup the environments with the secrets
import config from 'config'
import {app_init} from './app' // Setting up the express app

// Now setting up the env variables
process.env.DB_HOST = 'MyDbHost'
process.env.DB_PASS = 'DBPass' // This will be read from the secret store

log.info(`DB_HOST used in ENV: ${process.env.DB_HOST}`) // Prints the right value
log.info(`DB_HOST used in config: ${config.database.host}`) // Prints undefined

В любом случае, есть ли способ ввести секреты в env до того, как модуль конфигурации их прочитает?

Пожалуйста, дайте мне знать, если вам понадобится дополнительная информация.


person A_De    schedule 07.01.2021    source источник


Ответы (1)


Изучите документацию по конфигурации, особенно здесь можно использовать либо отложенную конфигурацию, либо использовать все возможности nodejs для создания конфигурации.


В моем случае я планирую прочитать секреты из магазина и опубликовать их как переменные среды. Я опубликую, если увижу, что это сложно.

person A_De    schedule 08.01.2021