Сервер
Первая установка
Dispatch использует ту же систему конфигурации, что и Starlette.
По умолчанию конфигурация читается из переменных окружения или файлов .env.
Все параметры с префиксом VITE_ — переменные окружения для фронтенда на Vue. Они используются только при сборке JavaScript-бандла. Подробности см. здесь. На время сборки эти переменные нужно поместить в src/dispatch/static/dispatch/.env.
Как правило, при указании значений конфигурации не используйте кавычки.
Общие
LOG_LEVEL [по умолчанию: 'WARNING']
Задаёт уровень логирования приложения во время работы. Возможные значения: CRITICAL, ERROR, WARNING, INFO, DEBUG
STATIC_DIR [по умолчанию: 'src/dispatch/static/dispatch/dist']
Задаёт, откуда на локальном диске раздаётся статика веб-интерфейса Dispatch. Переменную можно явно установить в
'', если вы хотите раздавать статику вне сервера Dispatch.
METRIC_PROVIDERS [по умолчанию: ""]
Список провайдеров метрик через запятую, куда Dispatch будет отправлять ключевые системные метрики.
SECRET_PROVIDER [по умолчанию: None]
Определяет провайдера для расшифровки секретов конфигурации. Доступные варианты:
kms-secretиmetatron-secret
ENV_TAGS [по умолчанию: ""]
Список тегов через запятую, которые Dispatch попытается взять из окружения. Например, строка
foo:bar,baz:blahсоздаст два тега:fooсо значением переменной окруженияbarиbazсо значением переменной окруженияblah.
SENTRY_DSN [по умолчанию: none]
Необязательная настройка для отправки ошибок Dispatch в Sentry.
MJML_PATH [по умолчанию: 'static/dispatch/node_modules/.bin' (относительно каталога пакета)]
Dispatch использует MJML для генерации HTML-писем. Этому пакету также нужен бинарник
node, доступный в стандартном пути (или заданный в пути Dispatch). С помощью этой переменной укажите, где Dispatch должен искать командуmjml. Если вы используете стандартный docker-образ Dispatch, это поле нужно вручную установить в путь по умолчанию.
DISPATCH_UI_URL
URL административного интерфейса Dispatch; используется в сообщениях для ссылок на него.
Аутентификация
DISPATCH_AUTHENTICATION_PROVIDER_SLUG [по умолчанию: dispatch-auth-provider-basic]
Определяет, какой провайдер аутентификации использует Dispatch; по умолчанию Dispatch поставляется с базовым провайдером аутентификации. Также доступен провайдер аутентификации PKCE (
dispatch-auth-provider-pkce).
Если вы хотите отключить аутентификацию, задайте DISPATCH_AUTHENTICATION_PROVIDER_SLUG=
Конфигурация dispatch-auth-provider-basic
Сейчас базовая аутентификация позволяет регистрироваться самостоятельно, без подтверждения.
Чтобы этот плагин работал, нужно задать DISPATCH_JWT_SECRET.
DISPATCH_JWT_SECRET
Используется базовым провайдером аутентификации для выпуска JWT-токенов.
DISPATCH_JWT_ALG [по умолчанию: 'HS256']
Используется базовым провайдером аутентификации для выпуска JWT-токенов.
DISPATCH_JWT_EXP [по умолчанию: 86400 ]
Используется базовым провайдером аутентификации для выпуска JWT-токенов и задаёт срок их действия.
DISPATCH_JWT_AUDIENCE
Значение
aud, которое провайдер PKCE требует в id-токене, — обычно это client id OIDC. Токены, выпущенные для другого приложения, отклоняются. Если ваш провайдер выставляетaud, а этот параметр не задан, отклоняется каждый токен.
DISPATCH_JWT_EMAIL_OVERRIDE
Переопределяет, где Dispatch ищет email пользователя в id-токене. По умолчанию — claim
DISPATCH_AUTHENTICATION_DEFAULT_USER [по умолчанию: dispatch@example.com]
Используется как анонимный пользователь по умолчанию, когда аутентификация отключена.
Конфигурация dispatch-auth-provider-pkce
Это универсальный провайдер OpenID Connect в Dispatch. Он аутентифицирует браузер по authorization code flow с PKCE и проверяет полученный токен при каждом запросе к API. Он работает с любым провайдером OIDC, соответствующим спецификации, — Okta, Google, Keycloak, Microsoft Entra ID. Разобранный пример для Entra см. в разделе Аутентификация через Microsoft Entra ID.
Чтобы этот плагин работал с вашей настройкой OIDC, нужно задать
DISPATCH_AUTHENTICATION_PROVIDER_PKCE_JWKS,
DISPATCH_AUTHENTICATION_PROVIDER_PKCE_ISSUER и DISPATCH_JWT_AUDIENCE. Кроме того,
могут понадобиться DISPATCH_JWT_EMAIL_OVERRIDE и
DISPATCH_PKCE_DONT_VERIFY_AT_HASH — в зависимости от того, что выдаёт ваш провайдер.
DISPATCH_AUTHENTICATION_PROVIDER_PKCE_JWKS
Используется бэкендом аутентификации Dispatch, чтобы получить открытый ключ JSON Web Key Set (JWKS) от указанного провайдера. Скорее всего, это URL
jwks_uriвашего провайдера OIDC. Обязателен при использовании провайдера аутентификацииdispatch-auth-provider-pkce.
DISPATCH_AUTHENTICATION_PROVIDER_PKCE_ISSUER
Точное значение
iss, которое выпускает ваш провайдер, напримерhttps://login.microsoftonline.com/<tenant-id>/v2.0. Токены с любым другим издателем отклоняются.
Если оставить параметр пустым, будет принят любой издатель, чью подпись подтверждает настроенный JWKS. Некоторые провайдеры — в том числе Microsoft Entra ID — подписывают токены всех тенантов общим набором ключей, поэтому без ожидаемого издателя корректная подпись не говорит, из какого каталога пришёл пользователь. Если выбран провайдер PKCE, а этот параметр не задан, Dispatch пишет предупреждение в лог при запуске. Значения по умолчанию у него нет, чтобы существующие деплои продолжали работать, но в новом деплое его нужно задавать всегда.
DISPATCH_AUTHENTICATION_PROVIDER_PKCE_JWKS_CACHE_SECONDS [по умолчанию: 300]
Как долго кешируются ключи подписи провайдера. Ключи также перезапрашиваются сразу, когда приходит токен с key id, которого Dispatch ещё не видел, поэтому ротация ключа подписи подхватывается, не дожидаясь истечения этого срока.
DISPATCH_AUTHENTICATION_PROVIDER_PKCE_JWKS_TIMEOUT_SECONDS [по умолчанию: 5]
Тайм-аут запроса при загрузке JWKS. Если загрузка не удалась, а ключи уже закешированы, продолжают использоваться закешированные ключи — вместо того чтобы отклонять каждый запрос, пока провайдер недоступен.
DISPATCH_AUTHENTICATION_PROVIDER_PKCE_LEEWAY_SECONDS [по умолчанию: 60]
Допустимое расхождение часов при проверке
exp,nbfиiat. Установите0, чтобы требовать точного совпадения с часами провайдера идентификации.
DISPATCH_PKCE_DONT_VERIFY_AT_HASH [по умолчанию: false]
В зависимости от того, какие значения отправляет ваш провайдер OIDC, может понадобиться установить
true, чтобы бэкенд Dispatch смог декодировать JWT-токен. Принимает толькоtrue/false(или1/0); любое другое значение отклоняется при запуске.
Microsoft Entra ID выдаёт at_hash только с конечной точки /authorize и никогда — при
обмене кода на токен, который использует этот поток, поэтому деплою с Entra этот параметр
не нужен.
DISPATCH_AUTHENTICATION_PROVIDER_PKCE_OPEN_ID_CONNECT_URL
URL well-known-конфигурации вашего провайдера OIDC без завершающего слеша. Используется веб-интерфейсом Dispatch для аутентификации пользователя через Proof Key Code Exchange (PKCE).
DISPATCH_AUTHENTICATION_PROVIDER_PKCE_CLIENT_ID
Client id, который отправляется на конечную точку OpenID Connect.
DISPATCH_AUTHENTICATION_PROVIDER_USE_ID_TOKEN [по умолчанию: false]
Использовать
id_tokenвместоaccess_token, принятого по умолчанию. Подробности Зависит от провайдера идентификации.
Конфигурация dispatch-auth-provider-header
Аутентифицирует пользователей по заголовкам HTTP-запроса. Полезно, когда Dispatch стоит за обратным прокси, который сам выполняет аутентификацию.
DISPATCH_AUTHENTICATION_PROVIDER_HEADER_NAME [по умолчанию: remote-user]
Убедитесь, что обратный прокси вырезает этот заголовок из входящих (то есть присланных пользователем) запросов. Иначе аутентификацию можно будет обойти.
HTTP-заголовок запроса, из которого берётся имя пользователя; регистр не учитывается.
Конфигурация dispatch-auth-provider-aws-alb
Аутентифицирует пользователей через аутентификацию AWS Application Load Balancer.
DISPATCH_AUTHENTICATION_PROVIDER_AWS_ALB_ARN
ARN вашего балансировщика; используется для проверки подписанта. Формат:
arn:aws:elasticloadbalancing:region-code:account-id:loadbalancer/app/load-balancer-name/load-balancer-id. Обязателен при использовании провайдера аутентификацииdispatch-auth-provider-aws-alb.
DISPATCH_AUTHENTICATION_PROVIDER_AWS_ALB_EMAIL_CLAIM [по умолчанию: email]
Переопределяет, где Dispatch ищет email пользователя в его claims.
DISPATCH_AUTHENTICATION_PROVIDER_AWS_ALB_PUBLIC_KEY_CACHE_SECONDS [по умолчанию: 300]
Переопределяет, как долго Dispatch кеширует открытый ключ, которым проверяется полезная нагрузка.
Добавьте действие слушателя ALB без аутентификации для /api/v1/{organization}/events/*, если хотите, чтобы плагины были публичными. Плагины сами определяют свою аутентификацию.
Хранение данных
DATABASE_HOSTNAME
Dispatch работает с базой данных
Postgres. Это имя хоста должно указывать на поддерживаемую версиюPostgres— проект тестируется на18и разворачивается с ней; поддерживаемого пути обновления с кластера версии ниже14нет.
DATABASE_CREDENTIALS [секрет: True]
Учётные данные в формате
username:passwordдля аутентификации в базе данныхpostgres.
DATABASE_NAME [по умолчанию: 'dispatch']
Позволяет задать имя базы данных для бэкенда
Dispatch.
DATABASE_PORT [по умолчанию: '5432']
Позволяет задать порт базы данных для бэкенда
Dispatch.
Модели
Стоимость инцидента
Dispatch рассчитывает стоимость инцидента, суммируя время, которое участники провели в каждой роли инцидента (например, командир инцидента), и применяя множитель вовлечённости, зависящий от роли. Также учитывается время, потраченное на разбор инцидента. Dispatch рассчитывает и публикует стоимость всех инцидентов каждые 5 минут.