# Настройка аутентификации для неинтерактивных сред

Требуется вход | Оплата по использованию

В неинтерактивной среде dbt работает без участия человека, который мог бы пройти аутентификацию вручную — например, в конвейерах CI/CD (таких как GitHub Actions, GitLab CI и Jenkins) и инструментах оркестрации в производственной среде (таких как Airflow и Prefect). В этих средах аутентификация через браузер невозможна. Вместо этого dbt State проходит аутентификацию с помощью учётных данных, переданных через переменные окружения, что позволяет продолжать кеширование состояния и оптимизацию сборок.

dbt State автоматически определяет, что работает в неинтерактивной среде. Если действительные учётные данные не предоставлены, dbt State отключается и выводит предупреждение, позволяя вашим командам dbt продолжить работу без кеширования.

Для запуска dbt в неинтерактивной среде требуется токен служебной учётной записи для аутентификации. Для создания служебного токена необходима учётная запись dbt platform; если у вас её ещё нет, обратитесь к разделу [Настройка dbt State](https://docs.getdbt.tech/docs/deploy/dbt-state-setup.md), чтобы создать бесплатную учётную запись, прежде чем продолжить.

Если вы ранее зарегистрировались в dbt State через отдельное приложение (`app.state.dbt.com`) и ещё не перешли на dbt platform, обратитесь к разделу [Учётные данные клиента OAuth](https://docs.getdbt.tech/docs/deploy/dbt-state-oauth.md).

## Предварительные требования

Прежде чем начать, убедитесь, что у вас есть:

* Учётная запись dbt platform.
* Права **Owner** или **Account Admin** для создания служебного токена.
* Установленный и настроенный dbt State. Дополнительную информацию см. в разделе [Настройка dbt State](https://docs.getdbt.tech/docs/deploy/dbt-state-setup.md).

## Создание служебного токена

Чтобы создать токен служебной учётной записи в dbt platform, обратитесь к разделу [Создание токенов служебных учётных записей](https://docs.getdbt.tech/docs/dbt-apis/service-tokens.md#generate-service-account-tokens). При добавлении разрешений для токена назначьте хотя бы одно из следующих:

* **Account Admin**

Следующие разрешения доступны только на тарифных планах Enterprise:

* **Owner**
* **Job Admin**
* **Job Creator**
* **Job Runner** (рекомендуется; предоставляет минимальные права доступа, необходимые для dbt State)
* **Developer**

## Настройка аутентификации

Задайте следующие переменные окружения в своей среде оркестрации:

```bash
DBT_CLOUD_TOKEN=YOUR_SERVICE_TOKEN
DBT_CLOUD_ACCOUNT_HOST=YOUR_ACCOUNT_HOST
DBT_CLOUD_ACCOUNT_ID=YOUR_ACCOUNT_ID
```

Замените `YOUR_SERVICE_TOKEN` своим служебным токеном, `YOUR_ACCOUNT_HOST` — [хостом вашей учётной записи](https://docs.getdbt.tech/docs/platform/about-platform/access-regions-ip-addresses.md) (например, `abc123.us1.dbt.com`), а `YOUR_ACCOUNT_ID` — числовым идентификатором вашей учётной записи. Перейдите в **Account settings** > **Account**, чтобы найти идентификатор и хост учётной записи (имя хоста из поля **Access URL**).

### Требования к сети

Если ваша сеть или среда ограничивает исходящий трафик, разрешите доступ к следующим URL-адресам, чтобы dbt State мог проходить аутентификацию и взаимодействовать с dbt platform:

| URL                  | Описание                                                                                                                                                                          |
| -------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `auth.state.dbt.com` | Аутентификация dbt State                                                                                                                                                          |
| `api.state.dbt.com`  | API dbt State                                                                                                                                                                     |
| `abc123.us1.dbt.com` | Ваш [URL-адрес доступа](https://docs.getdbt.tech/docs/platform/about-platform/access-regions-ip-addresses.md) к dbt platform (замените URL-адресом доступа вашей учётной записи) |

После настройки аутентификации [убедитесь, что dbt State активен](#verifying-dbt-state-is-active).

## Проверка активности dbt State

1. Запустите любое задание преобразования dbt в своей среде оркестрации.

2. Проверьте вывод журнала. Вы должны увидеть сообщение, подобное приведённому ниже, а затем статус конкретного шага dbt State:

   ```text
   dbt State adapter: dbt-state v2.10.1 is enabled
   ```

## Связанная документация

* [О dbt State](https://docs.getdbt.tech/docs/deploy/dbt-state-about.md)
* [Настройка dbt State](https://docs.getdbt.tech/docs/deploy/dbt-state-setup.md)
* [Конфигурации dbt State](https://docs.getdbt.tech/reference/resource-configs/dbt-state-configs.md)
* [Переход с оркестрации с учётом состояния](https://docs.getdbt.tech/docs/deploy/dbt-state-migration.md)
