Я нахожусь в процессе создания пакета python для взаимодействия с различными компонентами API Salesforce (аналогично simple-salesforce, но с более масштабируемой архитектурой, поэтому разработчики могут добавить поддержку неосновных API Salesforce .
Раньше я требовал, чтобы пользователи создавали ряд переменных среды для хранения своих учетных данных Salesforce, но недавно я получил несколько запросов на создание поддержки нескольких организаций и разрешение хранения учетных данных в секретном менеджере AWS, а не переменных среды.
Я тестирую новую архитектуру, в которой я требую, чтобы пользователи отредактировали config.py в каталоге пакета и добавили специфические настройки своей организации продаж. Таким образом, пользователи могут выбирать, сколько организаций они определяют, и хотят ли они хранить учетные данные, используя переменные среды или диспетчер секретов и т. Д.
Проблема в том, что когда я запускаю новую версию и пользователи обновляют пакет через pip, файл config.py стирается вместе с обновлением. Есть ли лучшая практика для хранения пользовательских настроек? Я использовал django раньше и представлял инфраструктуру, похожую на django settings.py, но только после того, как я собрал свой пакет, я понял, что файл настроек django обычно определяется на уровне проекта, а не на уровне пакета (и я не увидеть огромную добавленную стоимость вне управления настройками, чтобы принять аналогичную структуру для моего пакета).
Кто-нибудь нашел альтернативные, успешные подходы к управлению настройками или конфигурациями?