НАЧАЛО >> Оглавление >> Общее описание >> История изменений >> Что нового в проекте I128 >> Версия 2026.3 >> [I128-2796] Расширить FT как постоянное хранилище вложений задач📄 Скачать в DOCX
| Тип | Версия | Статус | Приоритет | Исполнитель |
|---|---|---|---|---|
| ⚙️ Новые возможности | 2026.3 | 🔘 Завершено |
Средний | Ilya Mikhaylenko |
Компоненты: FT, ИРБИС 128. Модуль TemporaryFiles - Временные файлы
Завершено: 09.09.2026 07:47
Цель Расширить FT как системное постоянное файловое хранилище для workflow/task-сценариев и зафиксировать безопасный staging временных файлов через TemporaryFiles.
Контекст Промышленные формы и задачи должны поддерживать вложения: пользователь загружает файл до сохранения записи, файл проходит временное хранение, проверку и только после успешного сохранения становится постоянным объектом FT. Модуль Tasks или другой предметный модуль не должен самостоятельно владеть физическим хранением файлов.
Что Нужно Сделать
Ввести или формализовать модель постоянного FTObject: file id, владелец, object reference, имя, MIME type, размер, hash, версия, storage path, статус обработки, права, retention policy и trace id.
Зафиксировать роль TemporaryFiles как staging-слоя: upload token, draft/session binding, TTL, owner, source form, ожидаемое назначение, ограничения размера/типа и безопасное удаление.
Реализовать stagingtostorage apply: при успешном сохранении формы временные файлы атомарно связываются с постоянной записью FT; при ошибке сохранения не должно появляться постоянных потерянных файлов.
Реализовать attachment links между записью предметного модуля и FTObject через общий reference contract, пригодный для WorkflowScreen, WorkflowView, API, TestA и миграций.
Реализовать проверку прав на upload, preview, download, export, delete, restore, legal hold и просмотр metadata через Security.
Реализовать preview/download/export с безопасными именами, MIME headers, ограничением доступа и возможностью маскирования чувствительных metadata.
Реализовать quarantine state для подозрительных или не прошедших проверку файлов; пользователь и администратор должны видеть понятный статус.
Поддержать OCR/text extraction и indexing как отдельные состояния обработки, которые могут выполняться через Queue.
Реализовать retention, legal hold, cleanup и backup/export policy. Retention/legal hold не должны обходиться предметным модулем.
Предусмотреть миграцию существующих вложений VirtualRef без потери ссылок, доступности и истории.
FT владеет постоянным хранением и metadata файлов, TemporaryFiles владеет временным staging.
Предметные модули задают категории вложений, обязательность, политику проекта и доменные реакции, но не реализуют storage runtime.
FT не должен знать структуру Tasks или других предметных записей, кроме универсальной ссылки на объект.
Файл из публичной или внутренней формы сначала попадает в TemporaryFiles, а после успешного сохранения становится постоянным FTObject.
Ошибка сохранения формы не оставляет постоянных orphan files.
Preview/download/export проверяют права и не раскрывают файл пользователю без доступа к объекту.
Quarantine, OCR/indexing и processing errors имеют видимые и диагностируемые состояния.
Cleanup удаляет просроченные staging-файлы, но не нарушает legal hold и retention.
Миграционный сценарий сохраняет доступность старых вложений VirtualRef.
-
Срез по I128-2796.
Что изменено:
Границы:
Проверки:
[I128-2803] Рабочее место задач и внутренний API
Статус: Завершено | Автор: Ilya Mikhaylenko
[I128-2806] Системные треды и публичные коммуникации Collaboration
Статус: Завершено | Автор: Ilya Mikhaylenko
[I128-2810] Миграция VirtualRef в промышленный контур Tasks
Статус: Завершено | Автор: Ilya Mikhaylenko
[I128-2811] Заявительский портал TaskPortal
Статус: Завершено | Автор: Ilya Mikhaylenko
[I128-2827] Расширить I128FMail как входящий почтовый канал задач
Статус: Завершено | Автор: Ilya Mikhaylenko
[I128-2793] Ввести TraceContext для сквозной трассировки операций
Статус: Завершено | Автор: Ilya Mikhaylenko
[I128-2795] Расширить Queue как runtime фоновых заданий, retry и расписаний
Статус: Завершено | Автор: Ilya Mikhaylenko
[I128-2797] Расширить Security для проектных прав, полей, действий и аудита доступа
Статус: Завершено | Автор: Ilya Mikhaylenko