Журнал действий (аудит)

Журнал действий (аудит)

Журнал действий

Зачем

В журнале действий записывается всё, что происходит в системе: кто вошёл, кто что добавил, кто что изменил, кто что удалил. Это нужно для:

  • Проверок Роспотребнадзора и внутренних аудитов — можно показать, что записи реальные, не подделаны задним числом.
  • Расследований — если в журнале нашли ошибку, видно, кто её внёс, когда, и что именно поменялось.
  • Восстановления — если кто-то удалил важную запись, в журнале действий есть полный снимок удалённой строки. Восстановить можно.
  • Защиты сотрудников — если возникнут претензии «ты не заполнила», можно показать факт заполнения и время.

Кому виден

Журнал действий видит только супер-администратор. Главная медсестра — не видит. Это сделано намеренно: журнал действий должен быть защищён от тех, кто может быть его субъектом.

Доступ настраивается в пункте меню «Система → Журнал действий» (виден только super-admin).

Что записывается

Действия с журналами

  • Создание записи — кто, когда, что записал (полный снимок данных).
  • Изменение записи — кто, когда, что поменял (видно «было → стало» только по изменённым полям).
  • Удаление записи — кто, когда, полный снимок удалённой строки. Удалённое всегда можно посмотреть.
  • Восстановление удалённой записи.

Это работает для всех 16 журналов автоматически.

Действия со справочниками

То же самое — CRUD по справочникам (Кабинеты, Дезсредства, Оборудование и др.).

Авторизация

  • Успешный вход (login) — логин, IP, браузер.
  • Выход (logout) — кто вышел.
  • Неудачный вход (login_failed) — попытка зайти с неправильным паролем (видно, кого пытались взломать).

Электронная подпись

Каждое подписание записи через ЭЦП — отдельное событие в журнале (signed). Видно, кто подписал, когда, и какую именно запись.

Печать

Каждое открытие печатной формы (printed) — с кодом журнала и фильтрами. Это нужно для проверки, кто и зачем выгружал данные.

Управление правами

  • Выдача роли (role_attached) — кто, кому, какую.
  • Отзыв роли (role_detached).
  • Выдача права (permission_attached).
  • Отзыв права (permission_detached).

Чего НЕТ в журнале действий

Из соображений безопасности и приватности исключены:

  • Пароли (никогда не логируются).
  • Содержимое подписи ЭЦП (только сам факт подписания).
  • Токены сессий.
  • Сертификаты.

Как пользоваться

Открыть журнал

Сайдбар → Система → Журнал действий.

Фильтры

  • По периоду — выбрать диапазон дат.
  • По пользователю — что делал конкретный сотрудник.
  • По действию — только удаления, только входы, только подписания и т.п.
  • По типу объекта — только записи в журнале температуры, только в кабинетах и т.п.

Быстрые теги

  • Сегодня (по умолчанию) — события за сегодня.
  • За неделю — последние 7 дней.
  • За месяц — последние 30 дней.
  • Все — без ограничения по дате.

Сортировка

По умолчанию — самые свежие сверху (ID DESC).

Открыть событие

Клик на строку — открывается страница детализации. Там:

  • Полный список изменённых полей в формате «было → стало».
  • IP-адрес.
  • Браузер (user-agent).
  • URL страницы, с которой пришло действие.

Защита от подделки

На уровне приложения

Модель журнала действий (Audit) запрещает операции UPDATE и DELETE — при попытке система выкидывает ошибку. То есть даже супер-админ через интерфейс не может изменить или удалить запись в журнале действий.

На уровне базы данных

Дополнительно, при первом разворачивании, администратор сервера выполняет команду на БД:

REVOKE UPDATE, DELETE ON audits FROM <db_user>;

После этого даже если в коде системы найдут уязвимость — изменить или удалить аудит-запись через приложение невозможно. Только напрямую через прямой доступ к БД с правами root, что фиксируется уже на уровне сервера БД.

Объём и срок хранения

Записи копятся бесконечно. Чистятся вручную при необходимости (обычно — раз в несколько лет).

На скорость работы это не влияет: таблица аудита проиндексирована, поиск по дате/пользователю/событию — мгновенный.

Связанные документы