config config, config config и файлы ключей - это хорошая практика? - PullRequest
0 голосов
/ 30 июня 2019

Я использую файлы конфигурации для хранения настроек по умолчанию и паролей / токенов / ключей.По умолчанию это не проблема, чтобы быть публичным.Очевидно, я хочу, чтобы пароли оставались в секрете.Я имею в виду - не нажимать на GitHub.

Я думал о том, чтобы сделать каталог configs , содержащий следующие файлы:

common.js, который все могут видеть.keys.js пароли / токены / ключи.Не следует отправлять на GitHub - используйте файл .gitignore, чтобы предотвратить это.keys-placeholder.js должен содержать только заполнители, так что клонам, которые должен понимать проект, чтобы создать файл keys.js и разместить его реальные пароли.

Это хорошая практика?Как скрыть пароли от отправки на GitHub, а также сделать их удобными для использования при первой сборке проекта?

1 Ответ

1 голос
/ 30 июня 2019

Лично я использую config для конфигурации / констант общедоступного приложения и файл .env и пакет dotenv для секретов.

Затем добавьте .env в .gitignore.

Таким образом, пример проекта будет

config // app configuration/constants
 - prod.json
 - dev.json
 - test.json
.env // secrets
src/
 - models
 - app.js
 ...

----- добавлен -----

Почему бы вам не включить конфигурацию вsrc dir?

A: Конечно, вам решать, куда поместить папку config.Это просто вопрос предпочтений.

А как насчет постановки конфигурации?

A: Как и в вопросе № 1, вы можете добавить staging.json в config.

Если вы не предоставили файл-заполнитель для .env, как я узнаю, какие пароли должныЯ заполняю этот файл?

A: Типичный .env файл выглядит так, как показано ниже.

API_CREDENTIAL=your api credentials
DB_PASSWORD=your db password

Как вам лениво загрузить файлы конфигурации prod / dev в приложение узла?

A: Я не вижу большой пользы для ленивой загрузки небольших файлов json.Если вы спрашиваете, как конкретно обращаться с библиотекой config и dotenv, обратитесь к их репозиторию Github. ( config , dotenv )

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...