Опубликуйте флоу, сравните его версии и откатите

Что выполняет запрос, как черновик становится опубликованной версией, как сравнить две версии и как вернуть флоу к более ранней.

4 мин чтения

Флоу редактируют как черновик, а выполняется он как опубликованная версия. Публикация превращает черновик в следующую по номеру версию, и запросы начинают выполнять её. Откат снова делает рабочей более раннюю версию. Опубликованная версия никогда не меняется, поэтому каждая версия остаётся такой, какой её опубликовали.

Что выполняет запрос

  • Версия — это либо черновик, либо опубликованная версия. У флоу не больше одного черновика, и запросы никогда его не выполняют.

  • Запросы выполняют активную версию: опубликованную последней или ту, к которой вернул откат. Вкладка Версии флоу показывает у неё статус Активная.

  • Черновик начинается с активной версии. Редактируя опубликованный флоу, вы редактируете копию того, что выполняется, а запросы продолжают выполнять активную версию до следующей публикации.

  • Выполнение остаётся на той версии, с которой началось. Публикация или откат меняют то, что выполнит следующий запрос, а не тот, что выполняется или ждёт.

Опубликовать черновик

1. Проверьте черновик

Откройте флоу в конструкторе и нажмите Проверить. Проверка показывает ошибки и предупреждения. Ошибка — это то, с чем версию нельзя опубликовать, — что должно быть в каждом флоу, перечислено в статье Как устроен флоу. Предупреждение публикацию не останавливает.

2. Опубликуйте его

Нажмите Опубликовать. Черновик проверяется ещё раз, и ошибка останавливает публикацию, ничего не меняя. Без ошибок черновик сразу становится следующей опубликованной версией и активной.

  • Публикация снова делает флоу из архива активным.

  • Черновик, в котором есть узел HTTP-запрос, не публикуется: узел заморожен, если сервис не настроен иначе, и в новой версии его быть не может. Версия, опубликованная с ним раньше, продолжает выполняться, и откат может вернуть флоу к такой версии.

  • Для публикации и отката нужно разрешение flows:write — какие роли его имеют, сказано в статье Организации, проекты и роли.

  • После публикации Slen отправляет событие вебхука flow.published.

Через API публикация — это POST /v1/flows/{id}/publish. Ошибка в черновике отклоняет её с 422 и кодом flow_invalid, а error.details.issues перечисляет найденное. Флоу без черновика получает ответ 404 с кодом flow_draft_not_found: нового для публикации нет. Публикация, которая встретила сохранение черновика, сделанное, пока она готовилась, — или другую публикацию того же черновика, — получает ответ 409 с кодом draft_conflict, и ничего не публикуется.

Посмотреть версии

Откройте флоу, затем его вкладку Версии. История версий слева показывает все версии флоу, сначала самые новые: номер, статус, когда версию опубликовали — у черновика Не опубликована — и кто это сделал. Автор — человек, который опубликовал версию, API-ключ или Удалённый аккаунт, если этого аккаунта больше нет. У активной версии статус Активная.

Нажмите на версию, чтобы выбрать её. Выбранная версия обведена рамкой, а сравнение справа показывает её рядом с активной версией; саму активную версию — рядом с версией перед ней.

Сравнить две версии

Сравнение версий читает две версии как политики трат. Выберите одну версию в поле Было, а другую — в поле Стало; в «было» попадает более старая, в каком бы порядке их ни выбрали. Вкладка открывается со сравнением активной версии и версии перед ней.

Изменения показывают, что изменилось между ними, узел за узлом. Каждый узел помечен как добавленный, удалённый или изменённый, а таблица под ним показывает каждую изменённую настройку: её название, как в настройках узла, технический ключ под ним, значение до и значение после. Ветка, которая ведёт в другое место, показана в блоке Ветки. Настройки, которые не определяют, сколько может стоить вызов, — температура, имя узла и подобные — собраны в блоке Технические изменения; он свёрнут, если ничего другого не изменилось. Узел, передвинутый на холсте, изменением не считается.

Откатить

1. Выберите версию

На вкладке Версии нажмите на версию в списке История версий, затем на кнопку отката под списком. Кнопка есть у опубликованной версии, которая не активна.

2. Подтвердите

Нажмите Откатить. Версия становится активной.

  • Сначала заново проверяются ссылки версии. Модель или пул провайдеров, которых с тех пор не стало, останавливают откат, и API отвечает 422 с кодом flow_invalid.

  • Откат ничего нового не публикует. Версия сохраняет свой номер и своего автора.

  • Черновик остаётся как есть. Если черновика у флоу нет, следующая правка начнётся с версии, к которой вернулся флоу.

  • Флоу в архиве остаётся в архиве.

  • Slen отправляет событие вебхука flow.rolled_back.

Через API откат — это POST /v1/flows/{id}/rollback. С version_number он ведёт к этой версии; черновик отклоняется с 409 и кодом flow_version_not_published. Без него флоу переходит к опубликованной версии сразу перед активной, поэтому повторные вызовы идут назад по истории. На первой версии ответ — 409 с кодом no_previous_version.

Что читать дальше

  • AI-флоу — как запрос находит свой флоу и какие состояния бывают у флоу.

  • Как устроен флоу — что содержит версия: узлы и их порты.

  • Глоссарий — версия, черновик и активная версия в одном месте.

  • Конструктор флоу — где редактируют черновик перед публикацией.