Trigger.dev
Подключить
Подключите Trigger.dev из терминала. Передайте --help, чтобы увидеть флаги, которые принимает Trigger.dev, а также --no-browser для окружений без браузера.
polylane cloud connect --provider triggerdevСекретный ключ окружения, созданный с пресетом "No restrictions", со страницы API Keys окружения.
- В Trigger.dev откройте страницу API Keys окружения и создайте ключ с пресетом "No restrictions".
- Вставьте ключ в Polylane и нажмите Connect. Ключ сам называет свой проект и окружение, так что больше ничего вводить не нужно.
Polylane отображает окружение, его деплой, задачи, расписания и очереди. Задача, замеченная в запусках, но отсутствующая в текущей версии, остаётся на карте и помечается. Ключи шифруются, и агент их никогда не видит.
Вебхуки деплоев и оповещений
Вебхук-оповещения Trigger.dev открывают инцидент при неудачном запуске и закрывают оповещения о деплое при следующем успехе. Одно оповещение на окружение:
- На странице Alerts окружения добавьте вебхук-оповещение с URL из Settings аккаунта, раздел Webhooks, и событиями "Task run failure", "Deployment failure" и "Deployment success".
- Вставьте секрет подписи, который Trigger.dev показывает один раз, в ту же карточку Webhooks.
Устранение неполадок
"Polylane needs a key created with the 'No restrictions' preset"
- Ключи Trigger only, Observer, Deploy only, Task operator и Variables only использовать нельзя: Polylane читает идентификацию проекта через эндпоинт, который может вызвать только ключ "No restrictions". Создайте ключ "No restrictions" на странице API Keys окружения и подключите его.
"Trigger.dev did not recognize this key"
- Проверьте, что ключ скопирован целиком и не был отозван.
"Dev keys only work while trigger dev runs" и "Preview keys are per branch and not supported"
- Используйте ключ prod или staging.
Отсутствующие ресурсы
- "Sync" в заголовке аккаунта обновляет раньше следующего 15-минутного прохода.
Отключение
Отключите в Polylane, затем удалите ключ на странице API Keys окружения.
Подключите Trigger.dev из CI-задания или любого другого окружения без браузера.
Для подключения Trigger.dev браузер не нужен: тот же эндпоинт, который вызывает консоль, помещается в CI-задание. Один аутентифицированный POST создаёт подключение и запускает первую синхронизацию.
Требования
- API-ключ Polylane с областями
cloud_accounts:writeиcloud_accounts:read. См. API-ключи и OAuth. - ID вашего рабочего пространства, который начинается с
ws_. Прочитайте его изGET /v1/workspacesтем же ключом. - Секретный ключ окружения Trigger.dev (
tr_prod_sk_…илиtr_stg_sk_…) из окружения prod или staging вашего проекта, в разделе API Keys. Создайте его с пресетом No restrictions: Polylane читает идентификацию проекта через эндпоинт, который может вызвать только ключ "No restrictions", поэтому ключи Trigger only, Observer, Deploy only, Task operator и Variables only отклоняются, как и ключи dev и preview.
Создайте подключение
curl -X POST https://api.polylane.com/v1/cloud_accounts \
-H "x-api-key: $POLYLANE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"provider": "triggerdev",
"workspaceId": "ws_0abc123",
"apiKey": "<environment-secret-key>"
}'
Ключ сам называет свой проект и окружение, и ключ принадлежит ровно одному окружению, поэтому один вызов подключает одно окружение: ключ prod подключает продакшен, ключ staging подключает staging, каждый как отдельный аккаунт. Отправка ключа для уже подключённого окружения заменяет ключ аккаунта. Переключателя окружения нет. Подключить окружение значит выбрать наблюдать за ним.
Ответ перечисляет, что было подключено, с уже запущенной первой синхронизацией. Сокращён до двух полей, которые читает остальная часть процесса:
{
"success": true,
"result": {
"provider": "triggerdev",
"accounts": [{ "id": "acc_34gky74ibc92h8t2efn8csrh", "status": "syncing" }],
"failures": []
}
}
Ключ, который API отклоняет, попадает в failures, а не в accounts, с сообщением о причине, поэтому повторный вызов никогда не дублирует подключение.
Дождитесь первой синхронизации
Опрашивайте каждый возвращённый аккаунт по его id, пока status не достигнет ready (new при регистрации, syncing пока ресурсы поступают):
until [ "$(curl -s "https://api.polylane.com/v1/cloud_accounts/$WORKSPACE_ID/$ACCOUNT_ID" \
-H "x-api-key: $POLYLANE_API_KEY" | jq -r '.result.status')" = "ready" ]; do
sleep 15
done
Задайте циклу предельное время, чтобы неудачное подключение проваливало задание, а не подвешивало его. Как только аккаунт в состоянии ready, его ресурсы находятся в топологии, и Polylane начал свою первую проверку.
Отключение через API
Удаление подключения останавливает все синхронизации и проверки и удаляет учётные данные, которые хранил Polylane. Вызову нужна область cloud_accounts:delete:
curl -X DELETE "https://api.polylane.com/v1/cloud_accounts/$WORKSPACE_ID/$ACCOUNT_ID" \
-H "x-api-key: $POLYLANE_API_KEY"
Затем отозовите ключ Trigger.dev на стороне провайдера, как описано ниже в разделе Отключение.
Отключить
Отключение останавливает все синхронизации и проверки и удаляет учётные данные, которые хранил Polylane. Polylane удаляет то, что позволяет удалить API Trigger.dev. Следующее остаётся, пока вы не удалите его сами:
- Trigger.dev webhook alert
polylane cloud disconnect <id>Инструменты
5Операции, которые агенты могут выполнять в тредах.
Поддерживаемые ресурсы
5Типы ресурсов, которые появляются в графе вашей инфраструктуры.