НАЧАЛО >> Оглавление >> Общее описание >> История изменений >> Что нового в проекте I128 >> Версия 2026.3 >> [I128-2807] История значимых полей FieldHistory📄 Скачать в DOCX
| Тип | Версия | Статус | Приоритет | Исполнитель |
|---|---|---|---|---|
| ⚙️ Новые возможности | 2026.3 | 🔘 Завершено |
Средний | Ilya Mikhaylenko |
Компоненты: Нет
Завершено: 08.09.2026 12:26
Нужно создать общесистемный модуль FieldHistory для семантической истории значимых значений полей записей ИРБИС 128. Модуль должен хранить old/new values, diff, причину изменения, автора, trace id, права просмотра, маскирование и возможность управляемого восстановления отдельного значения.
В ИРБИС 128 уже есть техническая история версий записи и человекочитаемая история действий в поле 907. Для промышленного taskmanagement и других recordbased модулей этого недостаточно: нужно видеть, какие именно значимые поля изменились, сравнить старое и новое значение, скрыть чувствительные данные и при необходимости восстановить отдельное поле без отката всей MST-копии записи.
FieldHistory должен быть общесистемным. Tasks, Workflow, Collaboration и другие модули только выбирают профиль значимых полей и передают контекст доменного действия, а не реализуют собственную историю old/new values.
Нужно реализовать сущности 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.
FieldHistory владеет хранением и выдачей fieldlevel истории, diff, маскированием old/new values, retention policy и fieldlevel восстановлением.
FieldHistory не заменяет поле 907, техническую историю MSTверсий, ФЛК, доменную модель Tasks, workflowпереходы и права Security. Он работает как общий сервис истории значимых полей и не знает бизнес-логику конкретного модуля.
Можно настроить профиль значимых полей и получить FieldChangeBatch при изменении этих полей.
Просмотр diff показывает старое и новое значение пользователю с правом и маскирует их для пользователя без права.
FieldChangeBatch может быть связан с действием 907 и trace id.
Восстановление отдельного значения создает новое изменение, не откатывает всю запись и не обходит штатные проверки сохранения.
Модуль применим не только к Tasks, но и к другим record-based модулям через профиль.
TestA должен проверять профиль значимых полей, фиксацию old/new values, маскирование, diff, связь с 907, восстановление значения, события EventBus и запрет восстановления без права.
Help должен описывать назначение FieldHistory, отличие от 907 и MST-версий, настройку профилей, права просмотра, маскирование, восстановление и диагностику.
-
Реализован первый кодовый срез системного модуля FieldHistory по I128-2807.
Состав:
Границы:
Проверки:
[I128-2810] Миграция VirtualRef в промышленный контур Tasks
Статус: Завершено | Автор: Ilya Mikhaylenko
[I128-2824] Расширить NewsFeed для ленты проектной активности workflow-проектов
Статус: Завершено | Автор: Ilya Mikhaylenko
[I128-2838] AI-операции задач в модуле Tasks
Статус: Завершено | Автор: Ilya Mikhaylenko
[I128-2793] Ввести TraceContext для сквозной трассировки операций
Статус: Завершено | Автор: Ilya Mikhaylenko
[I128-2794] Реализовать системную событийную шину EventBus
Статус: Завершено | Автор: Ilya Mikhaylenko
[I128-2797] Расширить Security для проектных прав, полей, действий и аудита доступа
Статус: Завершено | Автор: Ilya Mikhaylenko
[I128-2798] Реализовать HealthCheck для workflow-проектов и задач
Статус: Завершено | Автор: Ilya Mikhaylenko
[I128-2799] Подготовить TestA-контракты системных JSON и end-to-end сценариев
Статус: Завершено | Автор: Ilya Mikhaylenko