From 2f4817137ea3c9aa2d18ad80082466abc5f8556a Mon Sep 17 00:00:00 2001 From: Andrey Epifancev Date: Sat, 7 Nov 2026 04:18:34 +0400 Subject: [PATCH] =?UTF-8?q?docs(#190):=20M-16=20=D0=B4=D0=B5=D0=BB=D1=8C?= =?UTF-8?q?=D1=82=D0=B0=20audit-trail=20=E2=80=94=20=D0=B0=D1=83=D0=B4?= =?UTF-8?q?=D0=B8=D1=82=20=D0=B2=D1=8B=D0=B3=D1=80=D1=83=D0=B7=D0=BA=D0=B8?= =?UTF-8?q?=20=D0=BC=D0=B5=D1=82=D1=80=D0=B8=D0=BA=20=D0=BA=D0=B0=D1=87?= =?UTF-8?q?=D0=B5=D1=81=D1=82=D0=B2=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 5.5 --- .../quality-metrics/specs/audit-trail/spec.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 openspec/changes/quality-metrics/specs/audit-trail/spec.md diff --git a/openspec/changes/quality-metrics/specs/audit-trail/spec.md b/openspec/changes/quality-metrics/specs/audit-trail/spec.md new file mode 100644 index 0000000..8389001 --- /dev/null +++ b/openspec/changes/quality-metrics/specs/audit-trail/spec.md @@ -0,0 +1,12 @@ +## ADDED Requirements + +### Requirement: Аудит выгрузки метрик качества +Каждый успешный `GET /quality-metrics/export` SHALL добавлять отдельное неизменяемое событие `audit_event` с +`action = EXPORT`, `section = EXPORT`, `object_type = quality_metrics`, `object_id = null`, `user_id` инициатора, +`before_value = null` и `after_value = {report, format, filters, rows}`: `report` — тип выгрузки, `format` — `csv` или +`json`, `filters` — применённые фильтры, `rows` — число выгруженных строк. Выгрузка сводной ОСВ и шахматки продолжают +писать собственные события `EXPORT`. + +#### Scenario: Выгрузка метрик оставляет след +- **WHEN** пользователь с `QUALITY_METRICS_VIEW` выгружает факты за период в CSV +- **THEN** записано одно событие `EXPORT` с `object_type = quality_metrics`, форматом, фильтрами и числом строк