Меню


[I128-2807] История значимых полей FieldHistory


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


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

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

Завершено: 08.09.2026 12:26

  1. Цель

Нужно создать общесистемный модуль FieldHistory для семантической истории значимых значений полей записей ИРБИС 128. Модуль должен хранить old/new values, diff, причину изменения, автора, trace id, права просмотра, маскирование и возможность управляемого восстановления отдельного значения.

  1. Контекст

В ИРБИС 128 уже есть техническая история версий записи и человекочитаемая история действий в поле 907. Для промышленного taskmanagement и других recordbased модулей этого недостаточно: нужно видеть, какие именно значимые поля изменились, сравнить старое и новое значение, скрыть чувствительные данные и при необходимости восстановить отдельное поле без отката всей MST-копии записи.

FieldHistory должен быть общесистемным. Tasks, Workflow, Collaboration и другие модули только выбирают профиль значимых полей и передают контекст доменного действия, а не реализуют собственную историю old/new values.

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

Нужно реализовать сущности FieldHistoryProfile, FieldChangeBatch, FieldChange, FieldHistoryDiff, FieldHistoryRestoreRequest и FieldHistoryMaskPolicy.

FieldHistoryProfile должен задавать, какие поля и подполя считаются значимыми для проекта, типа записи или доменного сценария, какие названия показывать пользователю, как сравнивать значения, какие значения маскировать, как долго хранить историю и кто может видеть old/new values.

Нужно реализовать фиксацию изменений пачкой. FieldChangeBatch должен связывать набор изменений с доменной записью, пользователем, причиной, trace id, workflow-переходом или другим действием. Если доменный модуль передает ссылку на элемент 907, FieldHistory должен уметь связать детальный diff с этой человекочитаемой историей.

Нужно реализовать diff и просмотр истории с учетом прав. Пользователь без права не должен видеть скрытые старые и новые значения, но может видеть факт изменения, если это разрешено policy.

Нужно реализовать управляемое восстановление значения поля. Восстановление должно быть отдельной разрешенной операцией, проходить через права, ФЛК или штатную проверку сохранения записи, фиксироваться в 907 и создавать новый FieldChange. Полное восстановление старой MST-копии записи не является задачей FieldHistory.

Нужно интегрироваться с EventBus для событий создания field history и восстановления значения, с Security для прав просмотра и восстановления, с HealthCheck для проверки профилей, с TestA для contract tests.

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

FieldHistory владеет хранением и выдачей fieldlevel истории, diff, маскированием old/new values, retention policy и fieldlevel восстановлением.

FieldHistory не заменяет поле 907, техническую историю MSTверсий, ФЛК, доменную модель Tasks, workflowпереходы и права Security. Он работает как общий сервис истории значимых полей и не знает бизнес-логику конкретного модуля.

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

Можно настроить профиль значимых полей и получить FieldChangeBatch при изменении этих полей.

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

FieldChangeBatch может быть связан с действием 907 и trace id.

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

Модуль применим не только к Tasks, но и к другим record-based модулям через профиль.

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

TestA должен проверять профиль значимых полей, фиксацию old/new values, маскирование, diff, связь с 907, восстановление значения, события EventBus и запрет восстановления без права.

Help должен описывать назначение FieldHistory, отличие от 907 и MST-версий, настройку профилей, права просмотра, маскирование, восстановление и диагностику.

-

Реализован первый кодовый срез системного модуля FieldHistory по I128-2807.

Состав:

Границы:

Проверки:

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

1.1. 🔗 blocks: I128-2810

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

1.2. 🔗 blocks: I128-2824

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

1.3. 🔗 blocks: I128-2838

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

1.4. 🔗 blocks: I128-2793

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

1.5. 🔗 blocks: I128-2794

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

1.6. 🔗 blocks: I128-2797

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

1.7. 🔗 blocks: I128-2798

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

1.8. 🔗 blocks: I128-2799

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