Конфигурация Heroku для приложения Django, которое требует Firebase JSON? - PullRequest
3 голосов
/ 04 ноября 2019

У меня есть приложение Python Django, развернутое на Heroku, которое использует Firebase через библиотеку drf-firebase-auth (которую я должен использовать по ряду причин). Я знаю, что конфигурация не должна быть проверена в управлении версиями, но я не уверен, как избежать этого в моем случае. Библиотеке drf-firebase-auth требуется, чтобы файл JSON учетных данных Firebase был сохранен в структуре каталогов моего кода. Как я могу передать этот JSON по существу через переменные среды Heroku без необходимости фиксировать файл JSON в моем git-репо (и отправить его в Heroku), чтобы я мог иметь правильную настройку конфигурации для подготовки / производства / и т. Д.?

Библиотека drf-firebase-auth указывает мне добавить это в мой settings.py, а также сохранить мой очень чувствительный файл firebase.json в моей кодовой базе:

DRF_FIREBASE_AUTH = {
    'FIREBASE_SERVICE_ACCOUNT_KEY': 'project/config/firebase.json'
}

Реализация в этой сторонней библиотеке выглядитпримерно так:

import firebase_admin
from drf_firebase_auth.settings import api_settings

...

firebase_credentials = firebase_admin.credentials.Certificate(
    api_settings.FIREBASE_SERVICE_ACCOUNT_KEY
)
firebase = firebase_admin.initialize_app(firebase_credentials)
...

Проблема заключается в том, что я хотел бы избежать фиксации этого JSON Firebase для git для развертывания в Heroku.

1 Ответ

0 голосов
/ 10 ноября 2019

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

  • добавить (и зафиксировать) пустышку (редактировать или изменить секреты) firebase.json к вашему git
  • вытащить обновленный коммит на свой сервер и вручнуюизмените / замените пустышку firebase.json на действительную

Поскольку json является файлом конфигурации и не будет меняться месяцами, вы можете просто игнорировать локальные изменения на вашем сервере (и убедитесь, чтоВы случайно не прячете / очищаете это). Таким образом, вы убедились, что у каждого есть файл конфигурации (локальный, промежуточный и производственный), но вам нужно будет изменить его в зависимости от требуемого уровня доступа / среды.

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