# Файл конфигурации На некоторых платных планах, GlarusBI поддерживает инициализацию параметров при запуске из файла конфигурации `config.yml`. Этот файл должен находиться либо в текущем каталоге (каталоге, в котором находится запущенный JAR GlarusBI), либо в пути, указанном переменной среды `MB_CONFIG_FILE_PATH`. В этом файле конфигурации вы можете указать следующее: - Настройки - Пользователей - Базы данных Настройки, определенные в файле конфигурации, работают так же, как если бы вы установили эти настройки в Настройках администратора в вашем GlarusBI. Настройки, определенные в этом файле конфигурации, имеют приоритет и переопределят любые другие существующие настройки. Например, если база данных уже существует (то есть вы уже добавили ее через начальную настройку или **Настройки администратора** > **Базы данных**, GlarusBI обновит запись базы данных на основе данных в файле конфигурации). Файл конфигурации не рассматривается GlarusBI как жестко заданный источник данных (наподобие [переменных окружения](./environment-variables.md)). ## Пример файла `config.yml` В следующем файле задается пользовательский аккаунт и две базы данных источников. ``` version: 1 config: users: - first_name: Cam last_name: Era password: 2cans3cans4cans email: cam@example.com databases: - name: test-data (Postgres) engine: postgres details: host: localhost port: 5432 password: {% raw %} "{{ env POSTGRES_TEST_DATA_PASSWORD }}" {% endraw %} dbname: test-data - name: Sample Dataset (Copy) engine: h2 details: db: "/home/cam/metabase/resources/sample-database.db;USER=GUEST;PASSWORD={{env SAMPLE_DATASET_PASSWORD}}" ``` Чтобы определить, какие ключи вы можете указать, просто посмотрите на доступные поля в самом GlarusBI. ## Использование переменных, определенных в `config.yml` На переменные окружения можно сослаться с помощью `{% raw %}{{ теги-шаблона }}{% endraw %}` как `{% raw %}{{ env POSTGRES_TEST_DATA_PASSWORD }}{% endraw %}` или `{% raw %}[[опции {{теги-шаблона}}]]{% endraw %}`. GlarusBI не поддерживает рекурсивное использование, поэтому если одна из ваших переменных окружения ссылается на *другую* переменную окружения, это вернет непредсказуемый результат. ## Отключить первоначальную синхронизацию базы данных При загрузке модели данных из сериализованного дампа вам нужно отключить планировщик, чтобы GlarusBI не пытался синхронизироваться. Чтобы отключить начальную синхронизацию базы данных, вы можете добавить `config-from-file-sync-database` в список `settings` и установить значение в `false`. Настройка `config-from-file-sync-database` должна идти *до* списка баз данных, как показано ниже: ``` version: 1 config: settings: config-from-file-sync-databases: false databases: - name: my-database engine: h2 details: ... ``` ## Список настроек В общем случае, настройки, которые вы можете установить в разделе `settings` этого файла конфигурации соответствуют [переменным окружения](./environment-variables.md). Фактический ключ, который вы включаете в файл конфигурации, немного отличается от формата, используемого для переменных окружения. Для переменных окружения форма используется с префиксом `MB`: ``` MB_NAME_OF_VARIABLE ``` тогда как в файле конфигурации это должно быть изменено на: ``` name-of-variable ``` Так что, если, к примеру, вы хотите использовать значение `MB_EMAIL_FROM_NAME` не как переменную окружения, а как параметр в `config.yml` файле, используйте следующее: ``` version: 1 config: settings: config-from-file-sync-databases: false email-from-name: Stampy von Mails-a-lot databases: - name: my-database engine: h2 details: ... ``` ## Пользователи и администраторы Первый пользователь, созданный в экземпляре GlarusBI, является администратором. Первый пользователь, указанный в файле конфигурации, может быть назначен администратором, но не обязательно, например, если кто-то уже запустил и вошел в GlarusBI в первый раз, этот пользователь будет автоматически назначен администратором. Кроме того, вы можете указать учетную запись пользователя как администратора, используя ключ `is_superuser: true`. В следующем примере: ``` version: 1 config: users: - first_name: a last_name: b password: metabot1 email: a@b.com - first_name: b last_name: a password: metabot1 email: b@a.com - first_name: c last_name: a password: metabot1 is_superuser: true email: c@a.com ``` оба пользователи a@b.com и c@a.com будут администраторами: a@b.com потому что первый в списке (если экземляр еще не сконфигурирован), а c@a.com потому что у него задан флаг is_superuser. Если экземпляр уже сконфигурирован, то a@b.com будет создан обычнм пользователем.