Опублікуйте флоу, порівняйте його версії й відкотіть

Що виконує запит, як чернетка стає опублікованою версією, як порівняти дві версії і як повернути флоу до ранішої.

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.

Що читати далі