Files
mdm-ordinis/docs/operator/audit-log.md
T
2026-05-12 17:05:24 +00:00

5.3 KiB
Raw Blame History

Журнал аудита

Каждое изменение в системе фиксируется в журнале аудита — таблице, в которой записано: кто, что, когда, что было до и после.

Доступ — в разделе «Аудит» в навигации (для пользователей с правом INTERNAL и выше).

Что попадает в журнал

  • Создание, обновление, закрытие записей справочников (CREATE / UPDATE / CLOSE)
  • Создание, обновление, удаление справочников
  • Schema drafts: создание, отправка на ревью, approve, reject, publish
  • Изменения настроек webhook-подписок

Технические события (запуск pod'ов, выполнение SQL миграций) — НЕ попадают в этот аудит. Они в системных логах.

Структура записи аудита

Поле Что значит
Время Когда произошло событие (точное время сервера)
Пользователь Кто сделал изменение (берётся из JWT-токена)
Справочник Какой справочник затронут
Бизнес-ключ Какая конкретно запись (для record-операций)
Действие CREATE, UPDATE, CLOSE, DRAFT_APPROVE и т.п.
Было / Стало Diff: что изменилось (для UPDATE)
Trace ID Технический идентификатор для корреляции с логами

Фильтрация

В UI — toolbar с фильтрами:

  • Справочник — конкретный или все
  • ДействиеCREATE / UPDATE / CLOSE и т.д.
  • Пользователь — кто сделал
  • Бизнес-ключ — конкретная запись
  • Период — диапазон дат (используй DateRangePicker)

Применяется автоматически при изменении любого фильтра. URL обновляется — можно поделиться ссылкой «аудит за вчера на ground_station».

Что искать в аудите

«Кто закрыл запись X?»

Фильтр: справочник = <имя>, бизнес-ключ = <код>, действие = CLOSE. Видишь оператора, время, причину (если была указана).

«Что менялось вчера в spacecraft?»

Фильтр: справочник = spacecraft, период = вчера. Сортировка по времени.

«Я подозреваю некорректное изменение»

Найди запись, посмотри diff колонки «Было / Стало». Если изменение действительно неверное — раскрой запись, кликни «Восстановить эту версию» (создаст новую активную версию из исторической).

«Кто часто меняет конкретный справочник?»

Фильтр: справочник + период (последний месяц). В UI отсортируй по пользователю — видишь топ-операторов.

Экспорт

Кнопка «Экспортировать» в правом верхнем — выгрузка в CSV отфильтрованных записей. Полезно для:

  • Отчётов руководству («что изменилось за квартал»)
  • Compliance-проверок
  • Анализа в Excel / BI

CSV содержит те же колонки, что в UI, плюс полные diff'ы в JSON-формате.

Что НЕЛЬЗЯ найти в аудите

  • Чтения (READ) — никто их не записывает (объём огромен, информативная ценность низкая)
  • Изменения настроек системы на уровне kubernetes / Vault / SSL — это в системных логах ops-команды
  • Изменения вне Ordinis — если внешняя система сделала свою копию справочника и поменяла её, в нашем аудите этого нет

Срок хранения

По умолчанию — бессрочно. Журнал растёт, но не очищается автоматически.

Если требуется retention policy (например, удалять старше 5 лет по GDPR) — свяжись с ответственным за систему, это настраивается на уровне БД.

Trace ID — как использовать

Если в audit-записи есть trace ID — это можно сопоставить с логами бэкенда. Полезно когда ошибка произошла на стороне сервера и нужно понять глубинную причину. Скопируй trace ID, отдай в support / ops.