Andrey Epifancev 3623358fb4 docs(openspec): change auto-confirm-clean-documents — спека автоподтверждения чистых документов (#64)
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>
2026-10-08 16:36:48 +04:00

2.5 KiB
Raw Blame History

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_id NULL, before_value.status = RECOGNIZED, after_value.status = CONFIRMED, description = «автоподтверждение: без замечаний»