Меню


[I128-2806] Системные треды и публичные коммуникации Collaboration


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


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

Компоненты: Нет

Завершено: 08.09.2026 13:51

  1. Цель

Нужно создать общесистемный модуль Collaboration для содержательной совместной работы вокруг записей ИРБИС 128. Модуль должен хранить треды, сообщения, публичные ответы, внутренние обсуждения, упоминания, реакции, ссылки на документы и вложения, а также выдавать безопасную коммуникационную ленту для карточек задач и других record-based модулей.

  1. Контекст

Первый практический потребитель Collaboration - модуль Tasks. Миграция VirtualRef должна переносить ответы и публичные коммуникации не в частные поля Tasks, а в общий коммуникационный механизм. TaskPortal должен показывать публичные ответы, комментарии заявителя и непрочитанные сообщения без доступа к внутреннему рабочему месту сотрудников.

Collaboration не является частью Tasks и не заменяет EventBus, Queue, Workflow, WorkflowApproval, Security, UserMessage, I128FMail, TelegramBot, Help или файловое хранилище. Его зона ответственности - хранение и представление содержательной коммуникации, связанной с доменными объектами.

  1. Что Нужно Сделать

Нужно реализовать конфигурационные сущности CollaborationSpace, CollaborationThreadType, CollaborationMessageType, CollaborationVisibilityPolicy, CollaborationTemplate, CollaborationEventType, CollaborationApiSchema, CollaborationMigrationProfile и CollaborationTestScenario.

Нужно реализовать runtimeхранилище для тредов, сообщений, участников, ссылок на доменные объекты, упоминаний, реакций, привязок вложений, audit и восстановимой проекции ленты. Runtimeхранилище должно иметь версионируемую схему, idempotent EnsureSchema и диагностический GetSchemaStatus.

Нужно реализовать API открытия треда, добавления сообщения, ответа в ветке, изменения видимости, добавления упоминания, реакции, ссылки на документ или вложение. Все операции должны проверять права, видимость и idempotency key.

Нужно поддержать уровни видимости публичного, внутреннего, конфиденциального, технического и персонального сообщения. Публичный DTO не должен раскрывать внутренние комментарии, скрытые поля, технические значения и персональные данные без права.

Нужно интегрироваться с EventBus: Collaboration публикует события о создании сообщения, ответе, упоминании, изменении видимости, реакции и ошибке доставки. EventBus отвечает за доставку, подписки, retry и dead-letter; Collaboration не превращается в технический event log.

Нужно интегрироваться с FT и TemporaryFiles: физические файлы не хранятся в Collaboration, а привязываются как ссылки на объекты файлового хранилища с категорией, видимостью, quarantine state и правами просмотра.

Нужно поддержать связь с WorkflowScreen и WorkflowTransition: комментарий, введенный на экране перехода, должен сохраняться как сообщение Collaboration, а в истории 907 должна оставаться только краткая человекочитаемая отметка действия.

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

Collaboration владеет тредами, сообщениями, видимостью коммуникаций, упоминаниями, реакциями, ссылками на материалы, публичными ответами и лентой карточки.

Collaboration не владеет записью задачи, workflow-состоянием, правами доступа, доставкой уведомлений, очередями, физическим хранением файлов, заявительским порталом, SLA и доменными переходами Tasks. Эти области остаются у профильных модулей.

  1. Критерии Приемки

Можно создать тред по доменной записи, добавить публичное и внутреннее сообщение, ответить в ветке и получить ленту с учетом прав текущего пользователя.

Публичный пользователь видит только публично разрешенные сообщения, а внутренние комментарии и технические детали не попадают в DTO.

Повторный вызов с тем же idempotency key не создает дубли сообщений и возвращает предсказуемый результат.

Упоминание пользователя или группы создает событие для доставки, но само сообщение остается source of truth в Collaboration.

Вложение сообщения хранится через FT/TemporaryFiles и не копируется в Collaboration.

HealthCheck может проверить версию схемы, наличие обязательных хранилищ и индексов, freshness проекции ленты и базовые ошибки доступа.

  1. Проверки И Документация

TestA должен проверять создание схемы, тред, публичное и внутреннее сообщение, права видимости, idempotency, упоминание, привязку вложения, событие EventBus и rebuild проекции ленты.

Help должен описывать модель тредов, уровни видимости, права, API, интеграцию с Tasks, WorkflowScreen, EventBus и FT, а также диагностику проблем.

-

I128-2806: Системные треды и публичные коммуникации Collaboration

Куда смотреть:

Границы:

Проверки:

CLI-примечание: при запуске TestA через CLI есть предупреждение Undefined array key "SERVER_PORT" из initsystem.php; оно не относится к Collaboration и не влияет на результат TestA.

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

1.1. 🔗 blocks: I128-2810

[I128-2810] Миграция VirtualRef в промышленный контур Tasks Статус: Завершено | Автор: Ilya Mikhaylenko

1.2. 🔗 blocks: I128-2811

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

1.3. 🔗 blocks: I128-2824

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

1.4. 🔗 blocks: I128-2838

[I128-2838] AI-операции задач в модуле Tasks Статус: Завершено | Автор: Ilya Mikhaylenko

1.5. 🔗 blocks: I128-2839

[I128-2839] Реализовать WorkflowApproval для формальных согласований workflow-переходов Статус: Завершено | Автор: Ilya Mikhaylenko

1.6. 🔗 blocks: I128-2793

[I128-2793] Ввести TraceContext для сквозной трассировки операций Статус: Завершено | Автор: Ilya Mikhaylenko

1.7. 🔗 blocks: I128-2794

[I128-2794] Реализовать системную событийную шину EventBus Статус: Завершено | Автор: Ilya Mikhaylenko

1.8. 🔗 blocks: I128-2796

[I128-2796] Расширить FT как постоянное хранилище вложений задач Статус: Завершено | Автор: Ilya Mikhaylenko

1.9. 🔗 blocks: I128-2797

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

1.10. 🔗 blocks: I128-2798

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

1.11. 🔗 blocks: I128-2799

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