НАЧАЛО >> Оглавление >> Общее описание >> История изменений >> Что нового в проекте I128 >> Версия 2026.3 >> [I128-2840] Реализовать WorkflowDesigner как единую административную студию настройки workflow-проектов📄 Скачать в DOCX
| Тип | Версия | Статус | Приоритет | Исполнитель |
|---|---|---|---|---|
| ⚙️ Новые возможности | 2026.3 | 🔘 Завершено |
Средний | Unassigned |
Компоненты: Нет
Завершено: 08.09.2026 13:52
Нужно реализовать модуль WorkflowDesigner как единую административную студию настройки workflow-проектов ИРБИС 128.
WorkflowDesigner должен позволить администратору настраивать промышленный процесс из одного интерфейса: проект, workflow, статусы, переходы, экраны, схемы экранов, фильтры, представления, доски, календари, согласования, автоматизацию, навигацию, публикацию, права и диагностику.
WorkflowDesigner не является новым workflow engine и не хранит source of truth для workflowсущностей. Он строит единую административную рабочую область, показывает связи между настройками и делегирует сохранение изменений модулямвладельцам.
Настройка workflow-проекта в промышленной системе затрагивает несколько модулей: WorkflowProject, Workflow, WorkflowStatus, WorkflowTransition, WorkflowScreen, WorkflowView, WorkflowFilter, WorkflowApproval, WorkflowCalendar, Menu, Automation, Security, FieldConfiguration, HealthCheck, TestA и Help.
Если администратор вынужден переходить между разрозненными редакторами записей, он легко теряет общую картину процесса: какие статусы есть, какие переходы доступны, какой экран откроется, какие права проверяются, какие согласования включены, какие фильтры и страницы публикуют записи и почему конфигурацию нельзя публиковать.
WorkflowDesigner должен дать единый интерфейс "от и до", но не должен переносить в себя ответственность модулей-владельцев.
Нужно создать отдельный модуль WorkflowDesigner.
Первый промышленный срез должен включать:
административную страницу Designer;
выбор WorkflowProject и workflow;
агрегированную model проекта, собранную через API модулей-владельцев;
левое дерево сущностей проекта;
центральную интерактивную схему процесса;
правый inspector выбранной сущности;
toolbar схемы;
readonly и editable режимы по правам;
переход к штатным редакторам owner modules;
HealthCheck/dry-run diagnostics;
Help и TestA coverage.
Страница Designer должна быть рабочим административным интерфейсом, а не информационной страницей.
Интерфейс должен иметь четыре зоны:
Режимы первого среза:
Обзор: просмотр полной модели проекта и связей.
Проектирование: создание и изменение статусов и переходов через owner APIs.
Экраны и страницы: просмотр связей transition -> screen, route -> view -> filter -> card/action.
Права: объяснение итоговой доступности через Security.
Проверка: HealthCheck, dryrun, whereused и impact analysis.
Публикация: сравнение draft/published, publication dry-run и переход к публикации через WorkflowProject.
Схема должна показывать статусы как прямоугольники, переходы как направленные связи со стрелками.
Нужно поддержать:
В обычном режиме узел статуса должен показывать человекочитаемое название без технического кода. Технические коды можно показывать в диагностическом режиме.
Цвет статуса должен браться из WorkflowStatus или API-статуса. WorkflowDesigner не должен хранить собственную независимую палитру.
1. Inspector
Inspector выбранной сущности должен показывать:
Inline edit допускается только для безопасных часто используемых полей, если owner module предоставляет API изменения. Если такого API нет, WorkflowDesigner должен открывать штатный редактор записи.
WorkflowDesigner не должен напрямую менять физические поля чужих записей.
1. Делегирование Owner Modules
Все изменения конфигурации должны выполняться через owner modules:
WorkflowProject владеет проектом, binding типов записей, draft/published состоянием, import/export/system JSON, publish и rollback.
Workflow владеет runtime, состоянием записи, history 907, transition dry-run и impact analysis.
WorkflowStatus владеет статусами и визуальными атрибутами статусов.
WorkflowTransition владеет переходами, route, condition, post-functions, screenKey и approvalGateKey.
WorkflowScreen и WorkflowScreenScheme владеют ws-экранами, draft/apply и public renderer.
WorkflowView и WorkflowViewScheme владеют списками, карточками, routes, variants и page configuration.
WorkflowFilter и WorkflowFilterScheme владеют фильтрами и materialized slices.
WorkflowApproval владеет approval gates, policies, requests, decisions, delegation и continuation.
WorkflowView владеет досочными типами представлений: kanban и timebox.
WorkflowCalendar владеет календарными и timeline-представлениями.
WorkflowNavigationScheme и Menu владеют навигацией и materialized menu records.
Automation владеет no-code rules.
Security владеет правами и explain access.
FieldConfiguration владеет field keys и семантикой полей.
HealthCheck владеет provider registry, result model и publication gate.
TestA владеет тестовым каркасом.
Help владеет опубликованной документацией.
WorkflowDesigner должен различать сохранение черновых изменений и публикацию.
Перед публикацией нужно показывать:
Публикация, rollback, import и export выполняются только через WorkflowProject и owner modules. Designer не должен самостоятельно переключать published flags или переписывать system JSON definitions.
1. Security
WorkflowDesigner не должен расширять права администратора.
Нужно проверять:
Designer должен показывать причину отказа, если Security предоставляет explain API, но не должен раскрывать скрытые данные.
1. Extensibility
Нужно предусмотреть extension contract для модулей семейства Workflow* и смежных системных модулей.
Extension должен уметь добавить:
Добавление нового extension-модуля не должно требовать изменения ядра WorkflowDesigner, если extension соблюдает контракт.
1. Help И TestA
Нужно подготовить Help:
Нужно подготовить TestA:
загрузка Designer model на тестовом workflow-проекте;
readonly mode;
отказ доступа по Security;
отсутствие extension-модуля с понятной диагностикой;
создание статуса и перехода через owner APIs;
сохранение координат статуса;
where-used preflight при удалении;
HealthCheck blocker перед публикацией;
отсутствие прямой записи в чужие поля;
структурная проверка metadata, Help и system JSON.
Входит:
Не входит:
новый workflow engine;
собственное хранение WorkflowProject, Workflow, Status, Transition, Screen, View, Filter, Approval, Board, Calendar или Menu records;
прямое изменение физических полей чужих записей;
замена всех штатных редакторов;
собственный редактор прав вместо Security;
собственный renderer публичных форм, списков, досок или календарей;
runtime approval, automation, events или queue jobs.
Администратор может открыть Designer, выбрать workflow-проект и увидеть дерево проекта, схему процесса и inspector.
Статусы и переходы отображаются на схеме с корректными названиями, направлением связей и диагностическими бейджами.
Можно выбрать статус или переход кликом и открыть штатный редактор double click или кнопкой inspector.
Создание статуса и перехода выполняется через owner APIs, а не прямой записью в поля.
Перемещение статуса сохраняет layout через owner contract.
Удаление выбранного статуса или перехода выполняет where-used/impact preflight и блокируется при blocker.
Designer показывает screen, filter, view, approval, automation и navigation связи без переноса их source of truth в себя.
Права на просмотр, изменение, удаление, публикацию и диагностику проверяются через Security.
HealthCheck blockers/warnings/info отображаются в списке проблем и на связанных элементах схемы.
Publication dry-run не применяет изменения, но показывает полный список blockers и warnings.
System project доступен в readonly режиме; пользовательская копия создается через owner module.
Отсутствующий extension-модуль отображается понятной диагностикой, а не PHP fatal error.
Help содержит руководство администратора и программиста.
TestA покрывает загрузку модели, Security refusal, readonly mode, создание статуса/перехода, where-used preflight и HealthCheck blocker.
-
Jira: https://jira.irbis128.ru/browse/I128-2840
Добавлен первый срез WorkflowDesigner как единой административной студии настройки workflow-проектов.
Входит в PR:
Границы:
Проверки:
[I128-2790] Расширить Workflow* для промышленного контура задач
Статус: Завершено | Автор: Ilya Mikhaylenko
[I128-2791] Расширить WorkflowScreen/WorkflowView для публичных ws-форм и представлений
Статус: Завершено | Автор: Ilya Mikhaylenko
[I128-2793] Ввести TraceContext для сквозной трассировки операций
Статус: Завершено | Автор: Ilya Mikhaylenko
[I128-2794] Реализовать системную событийную шину EventBus
Статус: Завершено | Автор: Ilya Mikhaylenko
[I128-2795] Расширить Queue как runtime фоновых заданий, retry и расписаний
Статус: Завершено | Автор: Ilya Mikhaylenko
[I128-2797] Расширить Security для проектных прав, полей, действий и аудита доступа
Статус: Завершено | Автор: Ilya Mikhaylenko
[I128-2798] Реализовать HealthCheck для workflow-проектов и задач
Статус: Завершено | Автор: Ilya Mikhaylenko
[I128-2799] Подготовить TestA-контракты системных JSON и end-to-end сценариев
Статус: Завершено | Автор: Ilya Mikhaylenko
[I128-2809] Сохраненные и материализованные фильтры WorkflowFilter
Статус: Завершено | Автор: Ilya Mikhaylenko
[I128-2816] Расширить Menu для публикации TaskPortal в навигации и Cabinet
Статус: Завершено | Автор: Ilya Mikhaylenko
[I128-2818] Реализовать наблюдаемость Observability для промышленных модулей
Статус: Завершено | Автор: Ilya Mikhaylenko
[I128-2820] Реализовать общесистемную автоматизацию Automation
Статус: Завершено | Автор: Ilya Mikhaylenko
[I128-2821] Реализовать рабочие доски WorkflowBoard для workflow-записей
Статус: Завершено | Автор: Ilya Mikhaylenko
[I128-2822] Реализовать календарные представления WorkflowCalendar для workflow-записей
Статус: Завершено | Автор: Ilya Mikhaylenko
[I128-2825] Расширить FieldConfiguration как реестр полей workflow-проектов
Статус: Завершено | Автор: Ilya Mikhaylenko
[I128-2826] Расширить Help для документации задач, API и эксплуатационных runbook
Статус: Завершено | Автор: Ilya Mikhaylenko
[I128-2828] Расширить Flags для системных feature flags и rollout policy
Статус: Завершено | Автор: Ilya Mikhaylenko
[I128-2839] Реализовать WorkflowApproval для формальных согласований workflow-переходов
Статус: Завершено | Автор: Ilya Mikhaylenko