[I128-2816] Расширить Menu для публикации TaskPortal в навигации и Cabinet


НАЧАЛО >> Оглавление >> Общее описание >> История изменений >> Что нового в проекте I128 >> Версия 2026.3 >> [I128-2816] Расширить Menu для публикации TaskPortal в навигации и Cabinet📄 Скачать в DOCX


Тип Версия Статус Приоритет Исполнитель
⚙️ Новые возможности 2026.3 🔘 Завершено Средний Ilya Mikhaylenko

Компоненты: ИРБИС 128. Модуль Menu - Модуль Меню web-портала

Завершено: 09.09.2026 07:47

Нужно расширить Menu так, чтобы TaskPortal мог штатно публиковаться в навигации ИРБИС 128, личном кабинете и host-aware меню без ручного дублирования пунктов и без обхода прав.

Цель

Администратор должен иметь управляемый способ включить портал задач в стандартную навигацию. Пункт меню должен ссылаться на каноническую страницу TaskPortal, учитывать host context, права пользователя и состояние target-страницы.

Что нужно сделать

  1. Поддержать materialized-пункты Menu, созданные из portal entrypoint или navigation scheme.
  2. Хранить stable source key, owner module, target route/page, host context, порядок, иконку, подпись и cache policy.
  3. Реализовать idempotent sync/dry-run: показать, какие пункты будут созданы, обновлены, отключены или удалены.
  4. Поддержать публикацию entrypoint в общей навигации и, если доступен модуль Cabinet, в личном кабинете.
  5. Проверять видимость пункта по Menu, host context, Security и правам target-страницы. Пункт не должен открывать доступ к закрытой странице.
  6. Поддержать cache invalidation после изменения portal entrypoint, прав, host visibility или target view/screen.
  7. Подготовить диагностику: битый route, удаленный target, конфликт пользовательского override, недоступная страница, устаревшая materialized-запись.

Границы ответственности

Menu владеет отображением, порядком, кэшем, materialized-записями меню и административной диагностикой пунктов меню.

TaskPortal владеет portal routes/pages и сообщает, какие entrypoint можно публиковать.

WorkflowView и WorkflowScreen владеют настройкой target-страниц и форм.

Security принимает итоговое решение о доступе к target.

ProfileManager хранит пользовательские предпочтения и разрешенные overrides, но не рендерит меню и не проверяет права вместо Security.

HealthCheck диагностирует битые targetы, недоступные routes, дубли stable keys, конфликты overrides и устаревшие materializedзаписи.

TestA должен проверять sync/dryrun, права, host visibility, cache invalidation и отсутствие runtimeобхода Menu.

Критерии приемки

  1. Администратор может выполнить dry-run публикации TaskPortal в меню и увидеть список создаваемых или изменяемых пунктов.
  2. Повторный sync не создает дубли пунктов.
  3. Пункт меню отображается только на разрешенном host и только пользователям, которым доступна target-страница.
  4. Изменение route/page/permission корректно инвалидирует кэш и отражается в меню.
  5. При удаленном или недоступном target пункт не становится битой публичной ссылкой без диагностики.
  6. Help и TestA покрывают sync/dryrun, права, host visibility, cache invalidation и отсутствие runtimeобхода Menu.

Связанные модули и контракты

TaskPortal должен предоставить стабильные portal routes/pages и entrypoint metadata. WorkflowView и WorkflowScreen предоставляют target-страницы и формы, на которые может вести пункт меню. Security проверяет итоговый доступ к пункту и target-странице. ProfileManager может хранить пользовательские overrides порядка, избранного или отображения, если такие overrides разрешены. HealthCheck проверяет целостность материализованных пунктов меню. TestA и Help должны покрыть реализацию и эксплуатационную диагностику.

-

Реализован первый прикладной срез I1282816: расширение Menu для публикации TaskPortal и workflow navigation items через штатные PAGEпункты меню.

Что изменено:

Границы ответственности:

Проверки:

1. Связанные задачи

1.1. 🔗 blocks: I128-2811

[I128-2811] Заявительский портал TaskPortal Статус: Завершено | Автор: Ilya Mikhaylenko

1.2. 🔗 blocks: I128-2840

[I128-2840] Реализовать WorkflowDesigner как единую административную студию настройки workflow-проектов Статус: Завершено | Автор: Ilya Mikhaylenko

1.3. 🔗 blocks: I128-2791

[I128-2791] Расширить WorkflowScreen/WorkflowView для публичных ws-форм и представлений Статус: Завершено | Автор: Ilya Mikhaylenko

1.4. 🔗 blocks: I128-2797

[I128-2797] Расширить Security для проектных прав, полей, действий и аудита доступа Статус: Завершено | Автор: Ilya Mikhaylenko

1.5. 🔗 blocks: I128-2798

[I128-2798] Реализовать HealthCheck для workflow-проектов и задач Статус: Завершено | Автор: Ilya Mikhaylenko

1.6. 🔗 blocks: I128-2799

[I128-2799] Подготовить TestA-контракты системных JSON и end-to-end сценариев Статус: Завершено | Автор: Ilya Mikhaylenko

1.7. 🔗 blocks: I128-2814

[I128-2814] Расширить ProfileManager для пользовательских настроек TaskPortal Статус: Завершено | Автор: Ilya Mikhaylenko