firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.

.Net 6 где хранить настройки?

Задался вопросом где хранить настройки.

Строку подключения в общем то решил захардкодить.

Остается имя админа и пароль + почта.
Дальше динамическая смена настроек как то:
OAUTH авторизация, которую выключать и включать можно.

Соответственно вопрос хранить это все в базе либо в json?

Лично я склоняюсь к второму варианту.

Вы как думаете?
  • Вопрос задан
  • 110 просмотров
Решения вопроса 1
vabka
@vabka Куратор тега C#
Токсичный шарпист
Кажется, тут сразу три независимые вещи, которые часто хранят раздельно:

1. Собственно настройки
Их удобнее всего хранить в appsettings.json, который можно спокойно закоммитить в репозиторий.
В коде можно получить к ним доступ через IConfiguration или IOptions

2. Секреты (пароли, токены, итд)

Строку подключения в общем то решил захардкодить.

Остается имя админа и пароль + почта.

Их лучше в репозитории не хранить.
Благо IConfiguration можно наслаивать и прокидывать секреты через переменные окружения, например, или использовать какой-нибудь Vault или keyring.
Уже упомянутый диспетчер секретов можно использовать только для разработки, но не для прода.

3. Фича-флаги.

Дальше динамическая смена настроек как то:
OAUTH авторизация, которую выключать и включать можно.

Их часто хранят в базе данных, да. Есть также несколько уже готовых решению для удобного управления фича флагами.
Гуглить feature flags.
https://learn.microsoft.com/en-us/azure/azure-app-...

4. Если есть конфиги, которые нужно менять на лету, то тут нужно уже смотреть, как именно нужно отрабатывать изменение конфигов.
Например мы храним такие конфиги в etcd и явно подписываемся на изменения. В случае изменений - делаем какие-то действия.

В дотнете для работы с такими конфигами есть интерфейс IOptionsMonitor
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
DELAKEY
@DELAKEY
Кодю почучуть
В конфиге можно установить логин/пароль по умолчанию которые будут использоваться для создания пользователя-админа при запуске проекта с пустой бд, ну а если бд не пуста то всё брать с неё
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы