5.3 KiB
Журнал аудита
Каждое изменение в системе фиксируется в журнале аудита — таблице, в которой записано: кто, что, когда, что было до и после.
Доступ — в разделе «Аудит» в навигации (для пользователей с правом 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.