Доступ — аудит и расследования
Каноническая страница по audit trail: где смотреть, как фильтровать, как экспортировать для инспекции и как расследовать “кто/когда/что поменял”.
Где это в UI
- study audit:
/studies/[studyId]/audit - global audit:
/admin/audit
Права (минимум)
| Действие | Право |
|---|---|
| Просмотр audit в исследовании | audit.view_auditlog |
| Экспорт audit в исследовании | audit.export_auditlog |
| Просмотр глобального audit | audit.view_auditlog_global (и доступ в /admin/*) |
Что фиксирует аудит
- actor (кто сделал действие),
- timestamp,
- target object,
- action,
- diff (до/после, где применимо),
- служебные поля (request/tx/ip/user-agent).
Как искать быстро (фильтры в UI)
В фильтрах audit вы можете:
- искать по пользователю, объекту или причине изменения (RFC);
- фильтровать по типу объекта (модель);
- фильтровать по действию (создано/изменено/удалено и т.д.);
- задавать диапазон дат.
Практика: начинайте с узкого диапазона времени + поиска по Subject ID/CRF/username, а затем расширяйте.
Типовой процесс расследования
- Зафиксировать URL и время инцидента.
- Найти записи по пользователю/объекту/периоду.
- Проверить sequence действий в нужном контексте.
- Связать с Trace ID или Job ID (если есть).
- Сделать вывод и зафиксировать next action.
Экспорт аудита
При наличии прав можно выгружать журнал в CSV или PDF.
Практические ограничения:
- для больших объёмов PDF может запускаться в фоне (asynchronous export);
- для очень больших объёмов действует системный лимит на PDF‑выгрузку: если нужен полный период, уточните фильтры и выгружайте частями.
Для инспекций почти всегда лучше:
- задать диапазон дат,
- отфильтровать модель/действие,
- выгрузить CSV/PDF по сегментам.
Диагностика
| Симптом | Проверка | Действие |
|---|---|---|
| Нет доступа к audit | Права audit.view_auditlog / _global | Проверить роль |
| Неполный diff | Проверить тип события и уровень объекта | Уточнить фильтр и объект |
| Нет связи с ошибкой | Нет trace/job идентификатора | Собрать доп. контекст из support-runbook |