Исходник схемы
<?xml version="1.0" encoding="UTF-8"?>
<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" id="Definitions_st_inprocess_verification" targetNamespace="urn:sharix:knowledge:handlers">
<bpmn:process id="backend_Process_backend" name="dbsynce: scoped verification.workflow API (action=advance)" isExecutable="false">
<bpmn:documentation>{"notes": ["Опубликованный Git built-in; не подтверждение выбранной версии на любом сервере.", "Процессы не исполняются просмотрщиком. End event завершает показанную операцию, не всю заявку.", "deferred_until — символ локального срока, не имя параметра конфигурации.", "Это раскрытие примитива advance и backend-контракта. Ошибки organize не подавляют advance.", "60/300 секунд — текущие константы Python, а не обещание точного времени запуска."], "sources": [{"commit": "76e0c693b628ed4a1fa34515a3f8abdff26149bb", "path": "generated_handler_blocks/open_st_request_inprocess.json", "repository": "sharix-open-handlers-examples", "sha256": "aedf573066b509bc1d7177d08530ae2ed1a5e896c8745e02edaed27e3d561313"}, {"commit": "76e0c693b628ed4a1fa34515a3f8abdff26149bb", "path": "handlers/open_st_request_inprocess.py", "repository": "sharix-open-handlers-examples", "sha256": "7dc2424c827ba4dc04971a8691d0e624566c6b4cb409cffec2e552dcad2aca4d"}, {"commit": "76e0c693b628ed4a1fa34515a3f8abdff26149bb", "path": "handlers/open_st_request_done.py", "repository": "sharix-open-handlers-examples", "sha256": "b6ae4733904d9ba8e691f43235d4836d201ac019ff99982d532816bfdc89bf31"}, {"commit": "76e0c693b628ed4a1fa34515a3f8abdff26149bb", "path": "handlers/open_st_request_wontfix.py", "repository": "sharix-open-handlers-examples", "sha256": "ece9fb7e09ee0e401e91d5d274d6b151b51d1364ba698b835c929e6416f90f03"}, {"commit": "76e0c693b628ed4a1fa34515a3f8abdff26149bb", "path": "catalog.py", "repository": "sharix-open-handlers-examples", "sha256": "e3dcb72b7e620e2837adacd7af053f35b04cdff475789496d9c114e17d57dfde"}, {"commit": "50baf376e224d915a87d63240f3f339b3dda9afa", "path": "core/blockly_runtime.py", "repository": "sharix-open-handlers-backend", "sha256": "3e222150cbff315077c6c9b160d46e59856cedf6d6591d213e958c63cb2f2428"}, {"commit": "50baf376e224d915a87d63240f3f339b3dda9afa", "path": "core/requesters.py", "repository": "sharix-open-handlers-backend", "sha256": "965a348cea477722bbaf4c8c6b06023eb238b71664a332f7ea8c90bfe72ea808"}, {"commit": "50baf376e224d915a87d63240f3f339b3dda9afa", "path": "ticket_blockly_codegen.py", "repository": "sharix-open-handlers-backend", "sha256": "bce71eab622922f8dd0954222842349799b60e18a0ab6310cc3e5f305603661e"}, {"commit": "50baf376e224d915a87d63240f3f339b3dda9afa", "path": "ticket_codegen_contract.json", "repository": "sharix-open-handlers-backend", "sha256": "0bfd2b0ebb07bd380ed3c867386536ab88ef7dfa6e13f1cd8c91d32bb02c1ae9"}, {"commit": "fd64704d7d9f01a5ec5b7b89cbc5afe5102b2c14", "path": "services/verification_results.py", "repository": "sharix-open-tickets", "sha256": "682c5f6869373e649d6d62f44e63e8fb3bb34cf6bfc85d0187b26b2c96984e91"}, {"commit": "fd64704d7d9f01a5ec5b7b89cbc5afe5102b2c14", "path": "services/st_request_contracts.py", "repository": "sharix-open-tickets", "sha256": "9c1553437dbff63c608504ee000fa67a9be6e9887b1df0599552aa4d9141276c"}, {"commit": "fd64704d7d9f01a5ec5b7b89cbc5afe5102b2c14", "path": "views/ticket_detail.py", "repository": "sharix-open-tickets", "sha256": "05d344b0fba14cf895400694d4a18f486c800fef08dd1acb43ea46909b9e7e59"}, {"commit": "fd64704d7d9f01a5ec5b7b89cbc5afe5102b2c14", "path": "utils.py", "repository": "sharix-open-tickets", "sha256": "a5680205c6522e1d9a74d9d267fe9ee96faf6f06436b00877fc0a93d80234bf5"}, {"commit": "fd64704d7d9f01a5ec5b7b89cbc5afe5102b2c14", "path": "signals.py", "repository": "sharix-open-tickets", "sha256": "39aad8690a2e7d35cebfb052127a8130a951cbb4eea316c4f767a0a59fc5fa7e"}, {"commit": "fd64704d7d9f01a5ec5b7b89cbc5afe5102b2c14", "path": "services/handler_wakeup.py", "repository": "sharix-open-tickets", "sha256": "c9fdc62a18301fd7c075395c697d5b1c738c77713aa71fcbb5ab097e173d98de"}, {"commit": "fd64704d7d9f01a5ec5b7b89cbc5afe5102b2c14", "path": "api/views/handler_workflow.py", "repository": "sharix-open-tickets", "sha256": "f97c4b467a9a30749f5c4b86b39a833c430e57aaa1f030f70030d9b5c609d368"}, {"commit": "778a3280cee115ba0efe3fdff7b0e708b0c10093", "path": "apiviews/handler_workflow.py", "repository": "sharix-open-backend", "sha256": "0f699a4e16760cbbdd09d894093c685ba69073fedf0522852cb1fdc9811636e3"}, {"commit": "778a3280cee115ba0efe3fdff7b0e708b0c10093", "path": "lib/verification_workflow.py", "repository": "sharix-open-backend", "sha256": "9fe62f8344d7fd78e5af0ce025c82ba4f7d21759e71f518df1186a1d6a4a0644"}, {"commit": "778a3280cee115ba0efe3fdff7b0e708b0c10093", "path": "lib/verification_algorithms.py", "repository": "sharix-open-backend", "sha256": "9e55e4119051847bb3596c3563b9b151ee92b660e89c39c533b16ed6b4a2099e"}, {"commit": "778a3280cee115ba0efe3fdff7b0e708b0c10093", "path": "lib/verification_responsibility.py", "repository": "sharix-open-backend", "sha256": "7919b83c89cb4214545ea2c2db0cffac09af892b190ce3af72348d688abb9cf4"}, {"commit": "778a3280cee115ba0efe3fdff7b0e708b0c10093", "path": "lib/requirement_checks.py", "repository": "sharix-open-backend", "sha256": "5a73a6e71307e734f0c0e480fd14a825a7a22242811e2523b7f25157224cf34c"}, {"commit": "778a3280cee115ba0efe3fdff7b0e708b0c10093", "path": "lib/integration_ports.py", "repository": "sharix-open-backend", "sha256": "d079ec56e6709b29d7755e47d2a88d423235fe8eb1bf7a92851ae25d74bf1066"}]}</bpmn:documentation>
<bpmn:laneSet id="backend_Lanes_backend">
<bpmn:lane id="backend_Lane_worker" name="Backend: durable состояние проверки и политика">
<bpmn:flowNodeRef>backend_request</bpmn:flowNodeRef>
<bpmn:flowNodeRef>backend_acl</bpmn:flowNodeRef>
<bpmn:flowNodeRef>backend_doc</bpmn:flowNodeRef>
<bpmn:flowNodeRef>backend_manual</bpmn:flowNodeRef>
<bpmn:flowNodeRef>backend_check</bpmn:flowNodeRef>
<bpmn:flowNodeRef>backend_terminal</bpmn:flowNodeRef>
<bpmn:flowNodeRef>backend_pending</bpmn:flowNodeRef>
<bpmn:flowNodeRef>backend_algorithm</bpmn:flowNodeRef>
<bpmn:flowNodeRef>backend_outcome</bpmn:flowNodeRef>
<bpmn:flowNodeRef>backend_completed</bpmn:flowNodeRef>
<bpmn:flowNodeRef>backend_other</bpmn:flowNodeRef>
<bpmn:flowNodeRef>backend_waiting</bpmn:flowNodeRef>
<bpmn:flowNodeRef>backend_missing</bpmn:flowNodeRef>
</bpmn:lane>
</bpmn:laneSet>
<bpmn:startEvent id="backend_request" name="Вызов advance">
<bpmn:outgoing>backend_Flow_0</bpmn:outgoing>
<bpmn:messageEventDefinition />
</bpmn:startEvent>
<bpmn:serviceTask id="backend_acl" name="Проверить API identity, capability и Ticket scope">
<bpmn:incoming>backend_Flow_0</bpmn:incoming>
<bpmn:outgoing>backend_Flow_1</bpmn:outgoing>
</bpmn:serviceTask>
<bpmn:exclusiveGateway id="backend_doc" name="Проверка документа?">
<bpmn:incoming>backend_Flow_1</bpmn:incoming>
<bpmn:outgoing>backend_Flow_2</bpmn:outgoing>
<bpmn:outgoing>backend_Flow_3</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:serviceTask id="backend_manual" name="Ответ manual_required + уведомления">
<bpmn:documentation>DocumentVersion здесь не создаётся.</bpmn:documentation>
<bpmn:incoming>backend_Flow_2</bpmn:incoming>
</bpmn:serviceTask>
<bpmn:serviceTask id="backend_check" name="Загрузить RequirementCheck">
<bpmn:incoming>backend_Flow_3</bpmn:incoming>
<bpmn:outgoing>backend_Flow_4</bpmn:outgoing>
</bpmn:serviceTask>
<bpmn:exclusiveGateway id="backend_terminal" name="PASSED / FAILED?">
<bpmn:incoming>backend_Flow_4</bpmn:incoming>
<bpmn:outgoing>backend_Flow_5</bpmn:outgoing>
<bpmn:outgoing>backend_Flow_6</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:exclusiveGateway id="backend_pending" name="PENDING?">
<bpmn:incoming>backend_Flow_6</bpmn:incoming>
<bpmn:outgoing>backend_Flow_7</bpmn:outgoing>
<bpmn:outgoing>backend_Flow_8</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:serviceTask id="backend_algorithm" name="Алгоритм, ответственный и политика результата">
<bpmn:documentation>Ручной режим/нет алгоритма/ответственного/исполнителя → manual_required. Нетерминальный результат → pending. Доменные правила могут отклонить результат.</bpmn:documentation>
<bpmn:incoming>backend_Flow_7</bpmn:incoming>
<bpmn:outgoing>backend_Flow_9</bpmn:outgoing>
</bpmn:serviceTask>
<bpmn:exclusiveGateway id="backend_outcome" name="После алгоритма результат терминальный?">
<bpmn:incoming>backend_Flow_9</bpmn:incoming>
<bpmn:outgoing>backend_Flow_10</bpmn:outgoing>
<bpmn:outgoing>backend_Flow_11</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:serviceTask id="backend_completed" name="Ответ completed: passed→DONE, failed→WONTFIX">
<bpmn:incoming>backend_Flow_5</bpmn:incoming>
<bpmn:incoming>backend_Flow_10</bpmn:incoming>
</bpmn:serviceTask>
<bpmn:serviceTask id="backend_other" name="Ответ с текущим иным состоянием">
<bpmn:documentation>Не-PENDING и не PASSED/FAILED не превращается автоматически в отрицательный результат.</bpmn:documentation>
<bpmn:incoming>backend_Flow_8</bpmn:incoming>
</bpmn:serviceTask>
<bpmn:serviceTask id="backend_waiting" name="Ответ pending или manual_required">
<bpmn:incoming>backend_Flow_11</bpmn:incoming>
</bpmn:serviceTask>
<bpmn:boundaryEvent id="backend_missing" name="Нет check / ошибка API" attachedToRef="backend_check" cancelActivity="true">
<bpmn:errorEventDefinition />
</bpmn:boundaryEvent>
<bpmn:sequenceFlow id="backend_Flow_0" sourceRef="backend_request" targetRef="backend_acl" name="" />
<bpmn:sequenceFlow id="backend_Flow_1" sourceRef="backend_acl" targetRef="backend_doc" name="" />
<bpmn:sequenceFlow id="backend_Flow_2" sourceRef="backend_doc" targetRef="backend_manual" name="Да" />
<bpmn:sequenceFlow id="backend_Flow_3" sourceRef="backend_doc" targetRef="backend_check" name="Нет" />
<bpmn:sequenceFlow id="backend_Flow_4" sourceRef="backend_check" targetRef="backend_terminal" name="" />
<bpmn:sequenceFlow id="backend_Flow_5" sourceRef="backend_terminal" targetRef="backend_completed" name="Да" />
<bpmn:sequenceFlow id="backend_Flow_6" sourceRef="backend_terminal" targetRef="backend_pending" name="Нет" />
<bpmn:sequenceFlow id="backend_Flow_7" sourceRef="backend_pending" targetRef="backend_algorithm" name="Да" />
<bpmn:sequenceFlow id="backend_Flow_8" sourceRef="backend_pending" targetRef="backend_other" name="Нет" />
<bpmn:sequenceFlow id="backend_Flow_9" sourceRef="backend_algorithm" targetRef="backend_outcome" name="" />
<bpmn:sequenceFlow id="backend_Flow_10" sourceRef="backend_outcome" targetRef="backend_completed" name="Да" />
<bpmn:sequenceFlow id="backend_Flow_11" sourceRef="backend_outcome" targetRef="backend_waiting" name="Нет" />
</bpmn:process>
<bpmn:process id="runtime_Process_runtime" name="HandlerContext: обработка ответа advance" isExecutable="false">
<bpmn:documentation>{"notes": ["Опубликованный Git built-in; не подтверждение выбранной версии на любом сервере.", "Процессы не исполняются просмотрщиком. End event завершает показанную операцию, не всю заявку.", "deferred_until — символ локального срока, не имя параметра конфигурации.", "Это раскрытие примитива advance и backend-контракта. Ошибки organize не подавляют advance.", "60/300 секунд — текущие константы Python, а не обещание точного времени запуска."], "sources": [{"commit": "76e0c693b628ed4a1fa34515a3f8abdff26149bb", "path": "generated_handler_blocks/open_st_request_inprocess.json", "repository": "sharix-open-handlers-examples", "sha256": "aedf573066b509bc1d7177d08530ae2ed1a5e896c8745e02edaed27e3d561313"}, {"commit": "76e0c693b628ed4a1fa34515a3f8abdff26149bb", "path": "handlers/open_st_request_inprocess.py", "repository": "sharix-open-handlers-examples", "sha256": "7dc2424c827ba4dc04971a8691d0e624566c6b4cb409cffec2e552dcad2aca4d"}, {"commit": "76e0c693b628ed4a1fa34515a3f8abdff26149bb", "path": "handlers/open_st_request_done.py", "repository": "sharix-open-handlers-examples", "sha256": "b6ae4733904d9ba8e691f43235d4836d201ac019ff99982d532816bfdc89bf31"}, {"commit": "76e0c693b628ed4a1fa34515a3f8abdff26149bb", "path": "handlers/open_st_request_wontfix.py", "repository": "sharix-open-handlers-examples", "sha256": "ece9fb7e09ee0e401e91d5d274d6b151b51d1364ba698b835c929e6416f90f03"}, {"commit": "76e0c693b628ed4a1fa34515a3f8abdff26149bb", "path": "catalog.py", "repository": "sharix-open-handlers-examples", "sha256": "e3dcb72b7e620e2837adacd7af053f35b04cdff475789496d9c114e17d57dfde"}, {"commit": "50baf376e224d915a87d63240f3f339b3dda9afa", "path": "core/blockly_runtime.py", "repository": "sharix-open-handlers-backend", "sha256": "3e222150cbff315077c6c9b160d46e59856cedf6d6591d213e958c63cb2f2428"}, {"commit": "50baf376e224d915a87d63240f3f339b3dda9afa", "path": "core/requesters.py", "repository": "sharix-open-handlers-backend", "sha256": "965a348cea477722bbaf4c8c6b06023eb238b71664a332f7ea8c90bfe72ea808"}, {"commit": "50baf376e224d915a87d63240f3f339b3dda9afa", "path": "ticket_blockly_codegen.py", "repository": "sharix-open-handlers-backend", "sha256": "bce71eab622922f8dd0954222842349799b60e18a0ab6310cc3e5f305603661e"}, {"commit": "50baf376e224d915a87d63240f3f339b3dda9afa", "path": "ticket_codegen_contract.json", "repository": "sharix-open-handlers-backend", "sha256": "0bfd2b0ebb07bd380ed3c867386536ab88ef7dfa6e13f1cd8c91d32bb02c1ae9"}, {"commit": "fd64704d7d9f01a5ec5b7b89cbc5afe5102b2c14", "path": "services/verification_results.py", "repository": "sharix-open-tickets", "sha256": "682c5f6869373e649d6d62f44e63e8fb3bb34cf6bfc85d0187b26b2c96984e91"}, {"commit": "fd64704d7d9f01a5ec5b7b89cbc5afe5102b2c14", "path": "services/st_request_contracts.py", "repository": "sharix-open-tickets", "sha256": "9c1553437dbff63c608504ee000fa67a9be6e9887b1df0599552aa4d9141276c"}, {"commit": "fd64704d7d9f01a5ec5b7b89cbc5afe5102b2c14", "path": "views/ticket_detail.py", "repository": "sharix-open-tickets", "sha256": "05d344b0fba14cf895400694d4a18f486c800fef08dd1acb43ea46909b9e7e59"}, {"commit": "fd64704d7d9f01a5ec5b7b89cbc5afe5102b2c14", "path": "utils.py", "repository": "sharix-open-tickets", "sha256": "a5680205c6522e1d9a74d9d267fe9ee96faf6f06436b00877fc0a93d80234bf5"}, {"commit": "fd64704d7d9f01a5ec5b7b89cbc5afe5102b2c14", "path": "signals.py", "repository": "sharix-open-tickets", "sha256": "39aad8690a2e7d35cebfb052127a8130a951cbb4eea316c4f767a0a59fc5fa7e"}, {"commit": "fd64704d7d9f01a5ec5b7b89cbc5afe5102b2c14", "path": "services/handler_wakeup.py", "repository": "sharix-open-tickets", "sha256": "c9fdc62a18301fd7c075395c697d5b1c738c77713aa71fcbb5ab097e173d98de"}, {"commit": "fd64704d7d9f01a5ec5b7b89cbc5afe5102b2c14", "path": "api/views/handler_workflow.py", "repository": "sharix-open-tickets", "sha256": "f97c4b467a9a30749f5c4b86b39a833c430e57aaa1f030f70030d9b5c609d368"}, {"commit": "778a3280cee115ba0efe3fdff7b0e708b0c10093", "path": "apiviews/handler_workflow.py", "repository": "sharix-open-backend", "sha256": "0f699a4e16760cbbdd09d894093c685ba69073fedf0522852cb1fdc9811636e3"}, {"commit": "778a3280cee115ba0efe3fdff7b0e708b0c10093", "path": "lib/verification_workflow.py", "repository": "sharix-open-backend", "sha256": "9fe62f8344d7fd78e5af0ce025c82ba4f7d21759e71f518df1186a1d6a4a0644"}, {"commit": "778a3280cee115ba0efe3fdff7b0e708b0c10093", "path": "lib/verification_algorithms.py", "repository": "sharix-open-backend", "sha256": "9e55e4119051847bb3596c3563b9b151ee92b660e89c39c533b16ed6b4a2099e"}, {"commit": "778a3280cee115ba0efe3fdff7b0e708b0c10093", "path": "lib/verification_responsibility.py", "repository": "sharix-open-backend", "sha256": "7919b83c89cb4214545ea2c2db0cffac09af892b190ce3af72348d688abb9cf4"}, {"commit": "778a3280cee115ba0efe3fdff7b0e708b0c10093", "path": "lib/requirement_checks.py", "repository": "sharix-open-backend", "sha256": "5a73a6e71307e734f0c0e480fd14a825a7a22242811e2523b7f25157224cf34c"}, {"commit": "778a3280cee115ba0efe3fdff7b0e708b0c10093", "path": "lib/integration_ports.py", "repository": "sharix-open-backend", "sha256": "d079ec56e6709b29d7755e47d2a88d423235fe8eb1bf7a92851ae25d74bf1066"}]}</bpmn:documentation>
<bpmn:laneSet id="runtime_Lanes_runtime">
<bpmn:lane id="runtime_Lane_worker" name="Python runtime">
<bpmn:flowNodeRef>runtime_receive</bpmn:flowNodeRef>
<bpmn:flowNodeRef>runtime_notify</bpmn:flowNodeRef>
<bpmn:flowNodeRef>runtime_complete</bpmn:flowNodeRef>
<bpmn:flowNodeRef>runtime_status</bpmn:flowNodeRef>
<bpmn:flowNodeRef>runtime_ok</bpmn:flowNodeRef>
<bpmn:flowNodeRef>runtime_handoff</bpmn:flowNodeRef>
<bpmn:flowNodeRef>runtime_remove</bpmn:flowNodeRef>
<bpmn:flowNodeRef>runtime_end</bpmn:flowNodeRef>
<bpmn:flowNodeRef>runtime_defer</bpmn:flowNodeRef>
<bpmn:flowNodeRef>runtime_wait_end</bpmn:flowNodeRef>
<bpmn:flowNodeRef>runtime_false</bpmn:flowNodeRef>
<bpmn:flowNodeRef>runtime_api_error</bpmn:flowNodeRef>
<bpmn:flowNodeRef>runtime_retry</bpmn:flowNodeRef>
<bpmn:flowNodeRef>runtime_error_end</bpmn:flowNodeRef>
</bpmn:lane>
</bpmn:laneSet>
<bpmn:startEvent id="runtime_receive" name="Успешный ответ API">
<bpmn:outgoing>runtime_Flow_0</bpmn:outgoing>
<bpmn:messageEventDefinition />
</bpmn:startEvent>
<bpmn:sendTask id="runtime_notify" name="Отправить уведомления и подтвердить ключи">
<bpmn:documentation>Подробно в тексте: ack не подтверждает прочтение человеком.</bpmn:documentation>
<bpmn:incoming>runtime_Flow_0</bpmn:incoming>
<bpmn:outgoing>runtime_Flow_1</bpmn:outgoing>
</bpmn:sendTask>
<bpmn:exclusiveGateway id="runtime_complete" name="completed и есть target_status?">
<bpmn:incoming>runtime_Flow_1</bpmn:incoming>
<bpmn:outgoing>runtime_Flow_2</bpmn:outgoing>
<bpmn:outgoing>runtime_Flow_3</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:serviceTask id="runtime_status" name="Scoped переход в target_status">
<bpmn:incoming>runtime_Flow_2</bpmn:incoming>
<bpmn:outgoing>runtime_Flow_5</bpmn:outgoing>
</bpmn:serviceTask>
<bpmn:exclusiveGateway id="runtime_ok" name="Переход подтверждён?">
<bpmn:incoming>runtime_Flow_5</bpmn:incoming>
<bpmn:outgoing>runtime_Flow_6</bpmn:outgoing>
<bpmn:outgoing>runtime_Flow_7</bpmn:outgoing>
</bpmn:exclusiveGateway>
<bpmn:sendTask id="runtime_handoff" name="passed→DONE handler, иначе WONTFIX">
<bpmn:incoming>runtime_Flow_6</bpmn:incoming>
<bpmn:outgoing>runtime_Flow_8</bpmn:outgoing>
</bpmn:sendTask>
<bpmn:serviceTask id="runtime_remove" name="Убрать Ticket, комнату сохранить">
<bpmn:incoming>runtime_Flow_8</bpmn:incoming>
<bpmn:outgoing>runtime_Flow_9</bpmn:outgoing>
</bpmn:serviceTask>
<bpmn:endEvent id="runtime_end" name="Передача завершена">
<bpmn:incoming>runtime_Flow_9</bpmn:incoming>
</bpmn:endEvent>
<bpmn:serviceTask id="runtime_defer" name="defer: pending 60 с, иначе 300 с">
<bpmn:documentation>Причина журнала verification_<state>, пустое состояние → verification_waiting. completed без target_status тоже ждёт 300 с.</bpmn:documentation>
<bpmn:incoming>runtime_Flow_3</bpmn:incoming>
<bpmn:outgoing>runtime_Flow_4</bpmn:outgoing>
</bpmn:serviceTask>
<bpmn:endEvent id="runtime_wait_end" name="Ожидание: worker освобождён">
<bpmn:incoming>runtime_Flow_4</bpmn:incoming>
</bpmn:endEvent>
<bpmn:endEvent id="runtime_false" name="404: локальная очистка запрошена">
<bpmn:incoming>runtime_Flow_7</bpmn:incoming>
</bpmn:endEvent>
<bpmn:startEvent id="runtime_api_error" name="Ошибка запроса/JSON ответа">
<bpmn:outgoing>runtime_Flow_10</bpmn:outgoing>
<bpmn:messageEventDefinition />
</bpmn:startEvent>
<bpmn:serviceTask id="runtime_retry" name="defer 60 с: verification_backend_error">
<bpmn:incoming>runtime_Flow_10</bpmn:incoming>
<bpmn:outgoing>runtime_Flow_11</bpmn:outgoing>
</bpmn:serviceTask>
<bpmn:endEvent id="runtime_error_end" name="Следующий проход позже">
<bpmn:incoming>runtime_Flow_11</bpmn:incoming>
</bpmn:endEvent>
<bpmn:sequenceFlow id="runtime_Flow_0" sourceRef="runtime_receive" targetRef="runtime_notify" name="" />
<bpmn:sequenceFlow id="runtime_Flow_1" sourceRef="runtime_notify" targetRef="runtime_complete" name="" />
<bpmn:sequenceFlow id="runtime_Flow_2" sourceRef="runtime_complete" targetRef="runtime_status" name="Да" />
<bpmn:sequenceFlow id="runtime_Flow_3" sourceRef="runtime_complete" targetRef="runtime_defer" name="Нет" />
<bpmn:sequenceFlow id="runtime_Flow_4" sourceRef="runtime_defer" targetRef="runtime_wait_end" name="" />
<bpmn:sequenceFlow id="runtime_Flow_5" sourceRef="runtime_status" targetRef="runtime_ok" name="" />
<bpmn:sequenceFlow id="runtime_Flow_6" sourceRef="runtime_ok" targetRef="runtime_handoff" name="Да" />
<bpmn:sequenceFlow id="runtime_Flow_7" sourceRef="runtime_ok" targetRef="runtime_false" name="Нет (404)" />
<bpmn:sequenceFlow id="runtime_Flow_8" sourceRef="runtime_handoff" targetRef="runtime_remove" name="" />
<bpmn:sequenceFlow id="runtime_Flow_9" sourceRef="runtime_remove" targetRef="runtime_end" name="" />
<bpmn:sequenceFlow id="runtime_Flow_10" sourceRef="runtime_api_error" targetRef="runtime_retry" name="" />
<bpmn:sequenceFlow id="runtime_Flow_11" sourceRef="runtime_retry" targetRef="runtime_error_end" name="" />
</bpmn:process>
<bpmn:collaboration id="Collaboration_st_inprocess_verification">
<bpmn:participant id="backend_Pool_backend" name="dbsynce: scoped verification.workflow API (action=advance)" processRef="backend_Process_backend" />
<bpmn:participant id="runtime_Pool_runtime" name="HandlerContext: обработка ответа advance" processRef="runtime_Process_runtime" />
<bpmn:messageFlow id="Message_st_inprocess_verification_0" sourceRef="backend_manual" targetRef="runtime_receive" name="manual_required" />
<bpmn:messageFlow id="Message_st_inprocess_verification_1" sourceRef="backend_completed" targetRef="runtime_receive" name="completed, outcome, target_status" />
<bpmn:messageFlow id="Message_st_inprocess_verification_2" sourceRef="backend_waiting" targetRef="runtime_receive" name="pending / manual_required" />
<bpmn:messageFlow id="Message_st_inprocess_verification_3" sourceRef="backend_other" targetRef="runtime_receive" name="Иное состояние" />
<bpmn:messageFlow id="Message_st_inprocess_verification_4" sourceRef="backend_missing" targetRef="runtime_api_error" name="Ошибка ответа API" />
</bpmn:collaboration>
<bpmndi:BPMNDiagram id="Diagram_st_inprocess_verification">
<bpmndi:BPMNPlane id="Plane_st_inprocess_verification" bpmnElement="Collaboration_st_inprocess_verification">
<bpmndi:BPMNShape id="backend_DI_Pool_backend" bpmnElement="backend_Pool_backend" isHorizontal="true">
<dc:Bounds x="0.0" y="0.0" width="1880" height="780" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="backend_DI_Lane_worker" bpmnElement="backend_Lane_worker" isHorizontal="true">
<dc:Bounds x="30.0" y="0.0" width="1850" height="780" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="backend_DI_request" bpmnElement="backend_request">
<dc:Bounds x="132.0" y="92.0" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="backend_DI_acl" bpmnElement="backend_acl">
<dc:Bounds x="315.0" y="75.0" width="150" height="70" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="backend_DI_doc" bpmnElement="backend_doc">
<dc:Bounds x="625.0" y="85.0" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="backend_DI_manual" bpmnElement="backend_manual">
<dc:Bounds x="855.0" y="75.0" width="150" height="70" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="backend_DI_check" bpmnElement="backend_check">
<dc:Bounds x="575.0" y="265.0" width="150" height="70" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="backend_DI_terminal" bpmnElement="backend_terminal">
<dc:Bounds x="905.0" y="275.0" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="backend_DI_pending" bpmnElement="backend_pending">
<dc:Bounds x="905.0" y="465.0" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="backend_DI_algorithm" bpmnElement="backend_algorithm">
<dc:Bounds x="1115.0" y="455.0" width="150" height="70" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="backend_DI_outcome" bpmnElement="backend_outcome">
<dc:Bounds x="1435.0" y="465.0" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="backend_DI_completed" bpmnElement="backend_completed">
<dc:Bounds x="1385.0" y="265.0" width="150" height="70" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="backend_DI_other" bpmnElement="backend_other">
<dc:Bounds x="855.0" y="645.0" width="150" height="70" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="backend_DI_waiting" bpmnElement="backend_waiting">
<dc:Bounds x="1645.0" y="645.0" width="150" height="70" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="backend_DI_missing" bpmnElement="backend_missing">
<dc:Bounds x="682.0" y="317.0" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="backend_DI_Flow_0" bpmnElement="backend_Flow_0">
<di:waypoint x="168.0" y="110.0" />
<di:waypoint x="315.0" y="110.0" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="backend_DI_Flow_1" bpmnElement="backend_Flow_1">
<di:waypoint x="465.0" y="110.0" />
<di:waypoint x="625.0" y="110.0" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="backend_DI_Flow_2" bpmnElement="backend_Flow_2">
<di:waypoint x="675.0" y="110.0" />
<di:waypoint x="855.0" y="110.0" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="backend_DI_Flow_3" bpmnElement="backend_Flow_3">
<di:waypoint x="650.0" y="135.0" />
<di:waypoint x="650.0" y="265.0" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="backend_DI_Flow_4" bpmnElement="backend_Flow_4">
<di:waypoint x="725.0" y="300.0" />
<di:waypoint x="905.0" y="300.0" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="backend_DI_Flow_5" bpmnElement="backend_Flow_5">
<di:waypoint x="955.0" y="300.0" />
<di:waypoint x="1385.0" y="300.0" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="backend_DI_Flow_6" bpmnElement="backend_Flow_6">
<di:waypoint x="930.0" y="325.0" />
<di:waypoint x="930.0" y="465.0" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="backend_DI_Flow_7" bpmnElement="backend_Flow_7">
<di:waypoint x="955.0" y="490.0" />
<di:waypoint x="1115.0" y="490.0" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="backend_DI_Flow_8" bpmnElement="backend_Flow_8">
<di:waypoint x="930.0" y="515.0" />
<di:waypoint x="930.0" y="645.0" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="backend_DI_Flow_9" bpmnElement="backend_Flow_9">
<di:waypoint x="1265.0" y="490.0" />
<di:waypoint x="1435.0" y="490.0" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="backend_DI_Flow_10" bpmnElement="backend_Flow_10">
<di:waypoint x="1485.0" y="490.0" />
<di:waypoint x="1435.0" y="490.0" />
<di:waypoint x="1435.0" y="300.0" />
<di:waypoint x="1385.0" y="300.0" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="backend_DI_Flow_11" bpmnElement="backend_Flow_11">
<di:waypoint x="1485.0" y="490.0" />
<di:waypoint x="1570.0" y="490.0" />
<di:waypoint x="1720.0" y="490.0" />
<di:waypoint x="1720.0" y="645.0" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="runtime_DI_Pool_runtime" bpmnElement="runtime_Pool_runtime" isHorizontal="true">
<dc:Bounds x="0.0" y="900.0" width="2080" height="600" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="runtime_DI_Lane_worker" bpmnElement="runtime_Lane_worker" isHorizontal="true">
<dc:Bounds x="30.0" y="900.0" width="2050" height="600" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="runtime_DI_receive" bpmnElement="runtime_receive">
<dc:Bounds x="132.0" y="992.0" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="runtime_DI_notify" bpmnElement="runtime_notify">
<dc:Bounds x="325.0" y="975.0" width="150" height="70" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="runtime_DI_complete" bpmnElement="runtime_complete">
<dc:Bounds x="645.0" y="985.0" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="runtime_DI_status" bpmnElement="runtime_status">
<dc:Bounds x="855.0" y="975.0" width="150" height="70" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="runtime_DI_ok" bpmnElement="runtime_ok">
<dc:Bounds x="1165.0" y="985.0" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="runtime_DI_handoff" bpmnElement="runtime_handoff">
<dc:Bounds x="1375.0" y="975.0" width="150" height="70" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="runtime_DI_remove" bpmnElement="runtime_remove">
<dc:Bounds x="1635.0" y="975.0" width="150" height="70" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="runtime_DI_end" bpmnElement="runtime_end">
<dc:Bounds x="1902.0" y="992.0" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="runtime_DI_defer" bpmnElement="runtime_defer">
<dc:Bounds x="595.0" y="1175.0" width="150" height="70" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="runtime_DI_wait_end" bpmnElement="runtime_wait_end">
<dc:Bounds x="912.0" y="1192.0" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="runtime_DI_false" bpmnElement="runtime_false">
<dc:Bounds x="1172.0" y="1192.0" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="runtime_DI_api_error" bpmnElement="runtime_api_error">
<dc:Bounds x="132.0" y="1382.0" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="runtime_DI_retry" bpmnElement="runtime_retry">
<dc:Bounds x="325.0" y="1365.0" width="150" height="70" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="runtime_DI_error_end" bpmnElement="runtime_error_end">
<dc:Bounds x="652.0" y="1382.0" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge id="runtime_DI_Flow_0" bpmnElement="runtime_Flow_0">
<di:waypoint x="168.0" y="1010.0" />
<di:waypoint x="325.0" y="1010.0" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="runtime_DI_Flow_1" bpmnElement="runtime_Flow_1">
<di:waypoint x="475.0" y="1010.0" />
<di:waypoint x="645.0" y="1010.0" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="runtime_DI_Flow_2" bpmnElement="runtime_Flow_2">
<di:waypoint x="695.0" y="1010.0" />
<di:waypoint x="855.0" y="1010.0" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="runtime_DI_Flow_3" bpmnElement="runtime_Flow_3">
<di:waypoint x="670.0" y="1035.0" />
<di:waypoint x="670.0" y="1175.0" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="runtime_DI_Flow_4" bpmnElement="runtime_Flow_4">
<di:waypoint x="745.0" y="1210.0" />
<di:waypoint x="912.0" y="1210.0" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="runtime_DI_Flow_5" bpmnElement="runtime_Flow_5">
<di:waypoint x="1005.0" y="1010.0" />
<di:waypoint x="1165.0" y="1010.0" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="runtime_DI_Flow_6" bpmnElement="runtime_Flow_6">
<di:waypoint x="1215.0" y="1010.0" />
<di:waypoint x="1375.0" y="1010.0" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="runtime_DI_Flow_7" bpmnElement="runtime_Flow_7">
<di:waypoint x="1190.0" y="1035.0" />
<di:waypoint x="1190.0" y="1192.0" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="runtime_DI_Flow_8" bpmnElement="runtime_Flow_8">
<di:waypoint x="1525.0" y="1010.0" />
<di:waypoint x="1635.0" y="1010.0" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="runtime_DI_Flow_9" bpmnElement="runtime_Flow_9">
<di:waypoint x="1785.0" y="1010.0" />
<di:waypoint x="1902.0" y="1010.0" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="runtime_DI_Flow_10" bpmnElement="runtime_Flow_10">
<di:waypoint x="168.0" y="1400.0" />
<di:waypoint x="325.0" y="1400.0" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="runtime_DI_Flow_11" bpmnElement="runtime_Flow_11">
<di:waypoint x="475.0" y="1400.0" />
<di:waypoint x="652.0" y="1400.0" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="DI_Message_st_inprocess_verification_0" bpmnElement="Message_st_inprocess_verification_0">
<di:waypoint x="930" y="145" />
<di:waypoint x="930" y="220" />
<di:waypoint x="40" y="220" />
<di:waypoint x="40" y="975" />
<di:waypoint x="132" y="975" />
<bpmndi:BPMNLabel>
<dc:Bounds x="45" y="815" width="260" height="42" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="DI_Message_st_inprocess_verification_1" bpmnElement="Message_st_inprocess_verification_1">
<di:waypoint x="1460" y="335" />
<di:waypoint x="1460" y="400" />
<di:waypoint x="30" y="400" />
<di:waypoint x="30" y="1010" />
<di:waypoint x="132" y="1010" />
<bpmndi:BPMNLabel>
<dc:Bounds x="35" y="845" width="260" height="42" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="DI_Message_st_inprocess_verification_2" bpmnElement="Message_st_inprocess_verification_2">
<di:waypoint x="1720" y="715" />
<di:waypoint x="1720" y="820" />
<di:waypoint x="150" y="820" />
<di:waypoint x="150" y="992" />
<bpmndi:BPMNLabel>
<dc:Bounds x="1100" y="790" width="260" height="42" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="DI_Message_st_inprocess_verification_3" bpmnElement="Message_st_inprocess_verification_3">
<di:waypoint x="930" y="715" />
<di:waypoint x="930" y="780" />
<di:waypoint x="75" y="780" />
<di:waypoint x="75" y="1010" />
<di:waypoint x="132" y="1010" />
<bpmndi:BPMNLabel>
<dc:Bounds x="420" y="750" width="260" height="42" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="DI_Message_st_inprocess_verification_4" bpmnElement="Message_st_inprocess_verification_4">
<di:waypoint x="700" y="353" />
<di:waypoint x="700" y="380" />
<di:waypoint x="10" y="380" />
<di:waypoint x="10" y="1400" />
<di:waypoint x="132" y="1400" />
<bpmndi:BPMNLabel>
<dc:Bounds x="15" y="1260" width="260" height="42" />
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
</bpmn:definitions>