| Следующая версия | Предыдущая версия |
| sharixopen:knowledge:scenarios:access_request_pending [2026/10/28 19:36] – [sharixknowledge] approved package sx_knowledge_api_open | sharixopen:knowledge:scenarios:access_request_pending [2026/10/31 11:50] (текущий) – [sharixknowledge] approved package sx_knowledge_api_open |
|---|
| "ShariXKnowledgeSTRequestInProcessBPMN", | "ShariXKnowledgeSTRequestInProcessBPMN", |
| "ShariXKnowledgeScenarios" | "ShariXKnowledgeScenarios" |
| | ], |
| | "depends_on": [ |
| | "ShariXKnowledgeOpenKnowledgeModulesHandlers" |
| | ], |
| | "verified_by": [ |
| | "ShariXKnowledgeVerification" |
| ] | ] |
| }, | }, |
| "domain": "business_processes", | "domain": "business_processes", |
| "lifecycle": "implemented", | "lifecycle": "implemented", |
| "component": "handlers", | "component": "handlers_examples, handlers_backend, tickets, dbsynce", |
| "parents": [ | "parents": [ |
| "ShariXKnowledgeScenarios" | "ShariXKnowledgeScenarios" |
| ], | ], |
| "terms": [ | "terms": [ |
| "ACCESS_REQUEST", | "audience_developer", |
| "PENDING", | "audience_administrator", |
| "Permissions", | "audience_support", |
| "BPMN" | "audience_reviewer", |
| | "audience_ai", |
| | "product_sharix_open", |
| | "material_scenario", |
| | "topic_handlers_permissions", |
| | "topic_security_permissions", |
| | "topic_handlers_runtime", |
| | "access_request", |
| | "ticket_pending", |
| | "permissions", |
| | "bpmn", |
| | "ticket", |
| | "blockly", |
| | "generated_python" |
| ] | ] |
| }, | }, |
| "path": "services/handler_wakeup.py", | "path": "services/handler_wakeup.py", |
| "sha256": "c9fdc62a18301fd7c075395c697d5b1c738c77713aa71fcbb5ab097e173d98de" | "sha256": "c9fdc62a18301fd7c075395c697d5b1c738c77713aa71fcbb5ab097e173d98de" |
| | }, |
| | { |
| | "repository": "sharix-open-tickets", |
| | "commit": "fd64704d7d9f01a5ec5b7b89cbc5afe5102b2c14", |
| | "path": "models/ticket.py", |
| | "sha256": "4768d9ef47b61bf3ae98bf2749ed142adc477978b44de29177363ba9664baa43" |
| } | } |
| ], | ], |
| "external": "9a399efe3d5d19f5592dda76f6c97f914ea25745230c7aaffe8f56f3cb0a9bd1" | "external": "9a399efe3d5d19f5592dda76f6c97f914ea25745230c7aaffe8f56f3cb0a9bd1" |
| } | } |
| | }, |
| | "diagram_view_bounds": { |
| | "reviewed_on": "2026-10-29", |
| | "models": [ |
| | "logic" |
| | ], |
| | "semantics_unchanged": true, |
| | "utility": "tools/expand_bpmn_view_bounds.py", |
| | "utility_sha256": "f878658b0115773e34f6c3eec72eba5984d873e60d8e2a4336b3dfb2a8026d87" |
| | }, |
| | "classification": { |
| | "schema": "sharix.knowledge.classification.v1", |
| | "products": [ |
| | "sharix_open" |
| | ], |
| | "audiences": [ |
| | "developer", |
| | "administrator", |
| | "support", |
| | "reviewer", |
| | "ai" |
| | ], |
| | "material": "scenario", |
| | "topics": [ |
| | "handlers/permissions", |
| | "security/permissions", |
| | "handlers/runtime" |
| | ], |
| | "tag_terms": [ |
| | "audience_developer", |
| | "audience_administrator", |
| | "audience_support", |
| | "audience_reviewer", |
| | "audience_ai", |
| | "product_sharix_open", |
| | "material_scenario", |
| | "topic_handlers_permissions", |
| | "topic_security_permissions", |
| | "topic_handlers_runtime", |
| | "access_request", |
| | "ticket_pending", |
| | "permissions", |
| | "bpmn", |
| | "ticket", |
| | "blockly", |
| | "generated_python" |
| | ], |
| | "registry_document": "ShariXKnowledgeClassification", |
| | "state_meaning": "implemented — описана проверенная реализация исходников; серверный runtime отдельно; review — состояние текста" |
| | }, |
| | "editorial_review": { |
| | "date": "2026-10-31", |
| | "scope": "Конкретизация шагов, участников, условий, результатов и диагностики; перечисления; BPMN сохранены побайтово", |
| | "current_source_records_verified": 19, |
| | "original_source_evidence_recheck": "Все исходные commits и SHA-256 повторно совпали после git fetch; дополнительные функциональные источники включены в source_evidence", |
| | "canonical_regeneration": { |
| | "both_python_copies_match": true, |
| | "generator_sources_verified": 11, |
| | "handler_executed": false |
| | }, |
| | "runtime_checked": false, |
| | "correction": "Из PENDING доступны только ACCEPTED и DECLINED; прежнее упоминание прямого CLOSED исправлено по LIFE_CYCLE_DICT" |
| } | } |
| }, | }, |
| "content_sha256": "f1f9362aef6cfb51ea213501281445ff2c9b42d719562de1b8b5f608f5de47da", | "content_sha256": "a03738eda1548ff824a05a8bf6c3d33cda5b8e1366db1027013d6820cacb0d6d", |
| "schema": 1 | "schema": 1 |
| } | } |
| ~~NOCACHE~~ | ~~NOCACHE~~ |
| |
| **Область:** ShariX Open. **Обработчик:** ''open_access_request_pending'', тип ''ACCESS_REQUEST'' (3), рабочий статус ''PENDING'' (320). Опубликованный встроенный Python на 28.10.2026 побайтово совпадает с канонической генерацией из Blockly workspace. Состояние выбранной версии конкретного сервера проверяется отдельно. | **Назначение:** [[sharixopen:knowledge:classification:materials#scenarij_processa|Сценарий процесса]]. **Продукт:** [[sharixopen:knowledge:classification:products#sharix_open|ShariX Open]]. |
| | |
| | **Для кого:** [[sharixopen:knowledge:classification:audiences#razrabotchik|Разработчик]] · [[sharixopen:knowledge:classification:audiences#administrator|Администратор]] · [[sharixopen:knowledge:classification:audiences#podderzhka|Поддержка]] · [[sharixopen:knowledge:classification:audiences#recenzent_i_prijomschik|Рецензент и приёмщик]] · [[sharixopen:knowledge:classification:audiences#nejroset|Нейросеть]]. |
| | |
| | **Темы:** [[sharixopen:knowledge:classification:topics#access_request|Обработчики → ACCESS_REQUEST]] · [[sharixopen:knowledge:classification:topics#polnomochija|Доступ → Полномочия]] · [[sharixopen:knowledge:classification:topics#runtime|Обработчики → Runtime]]. |
| | |
| | |
| | |
| | **Область:** ShariX Open. **Обработчик:** ''open_access_request_pending'', тип ''ACCESS_REQUEST'' (3), рабочий статус ''PENDING'' (320). 31.10.2026 исходники повторно получены из Git: обе Python-копии совпали с новой канонической генерацией Blockly, проверены 11 исходников генераторов. Сам handler не исполнялся. Выбранная серверная версия, её настройки и работающие API/XMPP проверяются отдельно. |
| |
| ===== Назначение и границы ===== | ===== Назначение и границы ===== |
| Обработчик сопровождает запрос на предоставление права до решения. Он не создаёт Permissions, не проверяет все требования и не активирует право. При автоматическом режиме запрашивается стадия ''ACCEPTED'' и Ticket передаётся следующему handler; активация остаётся отдельной операцией с доменными проверками. | Обработчик сопровождает запрос на право до решения: |
| | |
| | * при ручном режиме сообщает о заявке и ждёт; |
| | * при автоматическом режиме запрашивает ACCEPTED и передаёт Ticket следующему handler; |
| | * не создаёт Permissions, не активирует право и не подтверждает выполнение всех требований. |
| | |
| | Принятие запроса и фактическая активация права — разные операции. |
| | |
| | Порядок первых проверок: |
| | |
| | - Проверить рабочий PENDING. |
| | - Если assigned_to is not None — запросить удаление локального Ticket и комнаты и закончить проход. |
| | - Только для неназначенной заявки читать ACCREQ_AUTOACCEPT и выбирать ручную/автоматическую ветвь. |
| |
| Первый фильтр после рабочего статуса — ''assigned_to is not None''. Если Ticket уже назначен, текущий проход запрашивает его удаление из локальной очереди и удаление комнаты. Это не положительное решение и не передача в ACCEPTED: статус не меняется. Scoped список PENDING фильтруется по типу и статусу, поэтому при сохранении PENDING такая карточка может снова попасть из periodic reconciliation и вновь быть исключена. Назначение пользователя и решение по заявке следует различать. | Исключение назначенного Ticket не меняет бизнес-статус. Если он остаётся PENDING, scoped список по типу и статусу может вернуть его при следующей периодической сверке. Это не автоматическое принятие и не устойчивый перевод в следующую стадию. |
| |
| Следующая развилка использует ''ACCREQ_AUTOACCEPT'', а не настройку ST_REQUEST. Значение берётся при создании HandlerContext. Изменение окружения не следует считать уже применённым к работающему процессу без проверки его конфигурации/перезапуска. | Следующая развилка использует ''ACCREQ_AUTOACCEPT'', а не настройку ST_REQUEST. Значение берётся при создании HandlerContext. Изменение окружения не следует считать уже применённым к работающему процессу без проверки его конфигурации/перезапуска. |
| <sharix-bpmn> | <sharix-bpmn> |
| <?xml version="1.0" encoding="UTF-8"?> | <?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" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" id="Definitions_access_pending_logic" targetNamespace="urn:sharix:knowledge:handlers"> | <bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:ns2="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:ns3="http://www.omg.org/spec/DD/20100524/DC" xmlns:ns4="http://www.omg.org/spec/DD/20100524/DI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" id="Definitions_access_pending_logic" targetNamespace="urn:sharix:knowledge:handlers"> |
| <bpmn:process id="access_Process_access" name="open_access_request_pending: решение о запросе, не активация права" isExecutable="false"> | <bpmn:process id="access_Process_access" name="open_access_request_pending: решение о запросе, не активация права" isExecutable="false"> |
| <bpmn:documentation>{"notes": ["Git built-in и внешние контракты, без выполнения обработчика.", "BPMN isExecutable=false. End event — конец показанного прохода, не предоставление права.", "deferred_until — символ локального срока, не настройка сервера."], "sources": [{"commit": "76e0c693b628ed4a1fa34515a3f8abdff26149bb", "path": "handlers/open_access_request_pending.py", "repository": "sharix-open-handlers-examples", "sha256": "ca7c362ab1bddd1712bc569100d827297402ffde74badaab5e4f8847c09800a6"}, {"commit": "76e0c693b628ed4a1fa34515a3f8abdff26149bb", "path": "generated_handler_blocks/open_access_request_pending.json", "repository": "sharix-open-handlers-examples", "sha256": "06b959d4511d9b64e0b6a2a1d1c0ba118199d913c15f6206d086edaf6072099d"}, {"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/handler_operations.py", "repository": "sharix-open-handlers-backend", "sha256": "28620658501c375f556e24437871620b84a17a88d0b62b2d1a3cc5deb2f14b1e"}, {"commit": "50baf376e224d915a87d63240f3f339b3dda9afa", "path": "core/data_parsers.py", "repository": "sharix-open-handlers-backend", "sha256": "d7f26f172f68e4b390f675de88fbfb3c37a58fb29d4bf3d6687b31bd7953f9e4"}, {"commit": "50baf376e224d915a87d63240f3f339b3dda9afa", "path": "core/ejabberd_muc.py", "repository": "sharix-open-handlers-backend", "sha256": "35c2eba89fab36b5c444439a87beaa516b55133991136d5370418d92a18d7bcd"}, {"commit": "50baf376e224d915a87d63240f3f339b3dda9afa", "path": "core/requesters.py", "repository": "sharix-open-handlers-backend", "sha256": "965a348cea477722bbaf4c8c6b06023eb238b71664a332f7ea8c90bfe72ea808"}, {"commit": "50baf376e224d915a87d63240f3f339b3dda9afa", "path": "classes/AccessRequestTicket.py", "repository": "sharix-open-handlers-backend", "sha256": "3f3a498ae76b3d878b19a8f32170fc2a71c6c6c182bf34a6ecc50edf7b0f5eff"}, {"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": "lib/tickets.py", "repository": "sharix-open-tickets", "sha256": "0d260c17947f9a186d07af2749159780e3c7354a95b4bafe9d67493663c96883"}, {"commit": "fd64704d7d9f01a5ec5b7b89cbc5afe5102b2c14", "path": "api/views/handler_workflow.py", "repository": "sharix-open-tickets", "sha256": "f97c4b467a9a30749f5c4b86b39a833c430e57aaa1f030f70030d9b5c609d368"}, |