Как сохранить учетные данные базы данных для приложения Heroku Node.js с открытым исходным кодом?

Я создаю приложение Node.js, и мне нужно хранить учетные данные базы данных (и другие свойства среды выполнения) таким образом, чтобы их можно было прочитать при развертывании на Heroku. Мой исходный код доступен в общедоступном репозитории GitHub.

В настоящее время я использую переменные среды, настроенные с помощью heroku config:add, но я хочу понять, есть ли какие-либо альтернативы. Я потенциально хотел бы использовать Cloud9 IDE, но в настоящее время он не поддерживает переменные среды.

Другой вариант — сохранить параметры в файле config. файл, но я считаю, что файл должен быть зарегистрирован в Git (и поэтому должен быть общедоступным), чтобы его можно было отправить в Heroku.

Спасибо за вашу помощь.


person Bryan Irace    schedule 11.10.2011    source источник


Ответы (2)


Переменные ENV, как правило, считаются подходящими, и то, как Heroku делает это самостоятельно для database_urls и тому подобного.

Поскольку вы и ваше приложение — единственные люди, имеющие доступ к env vars, вы, как правило, в порядке с безопасностью.

Помещать учетные данные в Git или что-то подобное — плохая идея, поскольку это еще одно место, которое необходимо защитить.

person Neil Middleton    schedule 12.10.2011
comment
Это имеет смысл. Я просто хочу понять доступные альтернативы, так как не могу устанавливать переменные среды в Cloud9 IDE. - person Bryan Irace; 12.10.2011
comment
Я не понимаю, какое отношение выбор редактора кода имеет к этой проблеме? - person Neil Middleton; 13.10.2011
comment
Я знаю, что переменные среды — это один из способов (на первый взгляд, лучший) достижения моей цели. Я ищу, какие другие решения существуют, так как я не могу использовать переменные среды и Cloud9 IDE. - person Bryan Irace; 13.10.2011

Единственный известный мне способ решить проблему разработки с использованием аргументов командной строки. Их можно указать в конфигурации запуска/отладки. Затем вы можете получить доступ к параметрам в process.argv. Конечно, это означает, что они будут храниться в вашей среде разработки Cloud9IDE. Затем вы можете использовать переменные ENV в розничном производстве. Это, по крайней мере, предотвратит видимость учетных данных в исходных файлах или файлах конфигурации.

person Craig    schedule 03.11.2011