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

Визуальные проверки приносят пользу только тогда, когда понятно, кто, что, когда и на каком основании одобрил. Через полгода никто не вспомнит, почему эталон поменялся именно в тот день. Журнал аудита отвечает на этот вопрос: каждое значимое решение оставляет в нём запись, и записи эти неизменяемы.

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

Запись появляется не от каждого нажатия, а от каждого значимого изменения. В журнал попадают:

  • Вердикты по снимкам и отзыв одобрения.
  • Создание эталона при первом прогоне, его одобрение, удаление, продвижение на другую ветку и ответвление.
  • Вариации: создание, удаление, восстановление, продление срока, разбор просроченных.
  • Изменения настроек: правка конфигурации, переопределение порога сравнения, подтверждение чек-листа снимков, смена бюджетов ИИ.
  • Массовые приёмы безопасных отличий — одной записью со списком затронутых снимков.
  • Действия над сборками: пометка провалом, повтор, удаление.
  • Изменения доступов: пользователи, роли, ключи API, учётные данные, переменные, среды.
  • Разбор сбоев и починки тестов: вердикты групп, применение и откат предложенной починки.
  • Сама выгрузка журнала: то, что кто-то выгрузил историю, — тоже факт, который стоит помнить.

Отборы

В журнале быстро становится много записей, поэтому нужное ищут отборами. Можно отобрать по автору, по источнику (человек, ИИ или система — так подсказку модели нельзя спутать с решением человека), по семейству действий, только одиночные или только массовые, и за период: последние недели или свой диапазон дат.

У каждой записи видно, что было до и что стало после, а также причину, если её указали. Поля «до» и «после» показываются как обычное сравнение текста — сразу заметно, что именно поменялось. Автор записи — замороженное имя: даже если пользователя потом удалили, история остаётся читаемой.

Массовые действия и риск

У массового приёма безопасных отличий есть постоянная пометка о риске — она не исчезает со временем. Рядом видно, сколько снимков было принято одним действием. Запись можно раскрыть до отдельных снимков, чтобы понять, что именно попало под массовое решение. Если по каким-то элементам отдельных записей нет, так и написано: действие просто перечислило свои цели внутри себя.

Особые отметки

Некоторые записи получают отметку, которая сама по себе важна:

  • Без дизайн-одобрения — отличие общих частей интерфейса одобрил человек без отметки дизайн-ревьюера. Отметка вычисляется при просмотре, а не хранится в записи, поэтому её нельзя «потерять» правкой данных.
  • Деградированный режим — решение приняли, когда часть продукта работала плохо (например, не отвечала база). Это объясняет, почему в тот период массовые действия были недоступны.
  • Пользователь удалён — автора записи в системе больше нет, но его имя сохранено: журнал не теряет историю вместе с учётной записью.

Выгрузка

Отобранные записи выгружаются в двух видах: таблицей для электронных таблиц и файлом для программ. Выгрузка не «всё, что есть», а именно то, что осталось после отборов. Если записей слишком много, выгрузка отклоняется и называет их число — нужно сузить отборы. Так из журнала невозможно случайно вытащить весь архив целиком.

Чего в журнале нет

Записи журнала нельзя изменить или удалить — ни одну. Это не «сложно», а невозможно: журнал существует ровно для того, чтобы на него можно было опереться в спорной ситуации. Если какое-то действие было ошибочным, оно не стирается — вместо этого появляется новая запись, которая объясняет отмену.

Дальше: как разбирать упавшую сборку, когда падений много, — в разделе Разбор проблем сборки.

← Оглавление документации