Proposal, design (D-1…D-6, решения без обсуждения №1–7) и дельты osv-result-mapping, primary-files, audit-trail: чистый документ при маппинге сразу CONFIRMED (система, confirmed_by NULL; переход версии — от загрузившего), удаление автоподтверждённых файлов до DATA_CORRECTION включительно. Решение владельца 08.10.2026, ТЗ 03_9 п. 4. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2.5 KiB
2.5 KiB
Spec Delta: audit-trail
MODIFIED Requirements
Requirement: События файлов и документов
Загрузка, автозамена, удаление файла и подтверждение документа SHALL писать audit_event через сервис аудита:
| Действие | action |
section |
object_type |
user_id |
|---|---|---|---|---|
| файл принят | FILE_UPLOAD |
PRIMARY_DOCUMENTS |
stored_file |
инициатор |
| прежний файл заменён новым (автозамена после маппинга) | FILE_REPLACE |
PRIMARY_DOCUMENTS |
stored_file (заменённый) |
NULL (система; инициатор загрузки — в description) |
| файл удалён | FILE_DELETE |
PRIMARY_DOCUMENTS |
stored_file |
инициатор |
| документ подтверждён пользователем | DOCUMENT_CONFIRM |
PRIMARY_DOCUMENTS |
document |
инициатор |
| документ подтверждён автоматически при маппинге (чистый) | DOCUMENT_CONFIRM |
PRIMARY_DOCUMENTS |
document |
NULL (система; description = «автоподтверждение: без замечаний») |
FILE_REPLACE SHALL содержать в after_value новый file_id, в description — перечень заменённых документов и
confirmed=true, если среди них был CONFIRMED. FILE_DELETE SHALL содержать в after_value.unbound_version_ids
версии, где сняты привязки удалённых автоподтверждённых документов. Смена статусов задания и файла в обмене и в цикле
маппинга audit_event не пишет (ASSUMPTION(OQ-55)).
Scenario: Загрузка двух файлов
- WHEN принято два файла одним запросом
- THEN два события
FILE_UPLOADсobject_idкаждого файла иafter_value(original_name,content_hash,job_id)
Scenario: Автоподтверждение
- WHEN смаплен чистый результат ОСВ
- THEN одно событие
DOCUMENT_CONFIRMсobject_idдокумента,user_idNULL,before_value.status = RECOGNIZED,after_value.status = CONFIRMED,description = «автоподтверждение: без замечаний»