Решить судьбу выполнения, которое ждёт человека
Читайте запросы на согласование, одобряйте или отклоняйте их и знайте, что будет, если никто не решит вовремя.
3 мин чтения
Согласование — это запрос решения человека. Выполнение, которое доходит до узла Требуется одобрение, останавливается на нём и ждёт, пока кто-нибудь его одобрит или отклонит, или пока не выйдет его время. Эта страница — о странице согласований в консоли.
Где находятся согласования
Откройте Согласования. Вкладки Ожидают, Одобренные, Отклонённые и Просроченные показывают запросы проекта, выбранного в шапке. Вкладка Ожидают перечитывает список каждые 30 секунд; Обновить перечитывает его сразу.
Строка называет флоу и операцию, заметку, которую автор флоу оставил на узле, узел и то, когда было запрошено решение. Ожидающая строка говорит, сколько осталось на решение; решённая — кто решил и когда. Нажмите на строку, чтобы открыть её выполнение.
Страница открывается тому, у кого есть разрешение management:read. Для одобрения и отклонения нужно management:write: в консоли оно есть у ролей Владелец и Администратор. Без него кнопки не показываются.
Одобрить или отклонить
1. Выберите запрос
На вкладке Ожидают найдите строку и нажмите Одобрить или Отклонить.
2. Укажите причину
Окно просит подтвердить. Причина необязательна: она хранится вместе с согласованием и видна в трассировке выполнения.
3. Подтвердите
Нажмите Одобрить или Отклонить в окне. Строка уходит с вкладки Ожидают.
Одобрить выводит выполнение из узла через порт Одобрено, и оно идёт дальше так, как говорит флоу, включая вызов модели.
Отклонить выводит его через порт Отклонено. За вызов модели, которого оно ждало, ничего не списывается.
Решение не двигает выполнение сразу: оно продолжится в течение минуты.
Пока выполнение ждёт, никакой холд не стоит. Деньги резервируются, когда выполнение доходит до вызова модели — после решения, по новой оценке.
Если никто не решил
Автор флоу задаёт на узле, сколько может длиться решение; новый узел даёт 24 часа. Когда это время проходит, запрос становится expired, и выполнение выходит через Отклонено, как если бы его отклонили. Ожидающая строка, чьё время прошло, кнопок не показывает.
Запрос, чьё выполнение закончилось — например, было закрыто, потому что слишком долго ждало, — тоже решить нельзя. Через API такое решение отклоняется с кодом approval_expired, а решение по запросу, который кто-то только что решил, — с кодом approval_already_decided. Консоль тогда перечитывает список.
Запрос от узла модели
Строка может прийти и от узла AI-модель, чья политика перерасхода просит человека одобрить вызов, который оказался дороже своего холда. Такая строка называет узел модели, а её заметка, которую пишет Slen, называет новую оценку вызова и холд, который у него был. У нового узла модели политики перерасхода нет, а политика, которая у узла есть, практически не срабатывает, — почему, говорит строка overrun_approval_required в статье Коды ошибок. Саму политику описывает статья AI-модель.
Одобрить пускает вызов модели дальше. Его холд был возвращён, когда запрашивалось согласование, поэтому вызов берёт новый.
Отклонить или отсутствие решения в течение 24 часов отклоняет вызов с кодом
overrun_stopped. Выполнение выходит из узла модели через его порт Отказ и заканчивается какrejected, если к этому порту ничего не подключено.
Через API и в вебхуках
API-ключ с
management:writeрешает черезPOST /v1/approvals/{id}/approveилиPOST /v1/approvals/{id}/reject; его строка тогда говорит, что решил API-ключ.Событие вебхука
approval.requestedотправляется, когда выполнение начинает ждать, аapproval.decided— когда запрос одобрен, отклонён или просрочен, — Вебхуки.Журнал аудита записывает каждое одобрение и отклонение.
Что читать дальше
Вебхуки — узнавать о запросе, не открывая консоль.
Требуется одобрение — узел, который просит решения: его настройки и то, что он оставляет следующим узлам.
Порты и ветвление — куда ведут две ветки узла.
Коды ошибок — каждый код API — что он значит и что делать.
Согласования — те же запросы через API.