Yammi Audit Log: відстежуйте справжніх ініціаторів змін крізь ланцюжки Jobs та Queues

Перекладено ШІ 0 Laravel News 26 червня, 2026

Пакет Yammi Audit Log дозволяє відстежувати зміни в моделях Eloquent навіть крізь черги та фонові завдання без додаткових налаштувань. Дізнайтеся, як забезпечити повну прозорість дій користувачів та контроль цілісності даних у вашому проєкті.

Більшість пакетів для аудиту фіксують час зміни поля та автора правки. Проте вони часто втрачають зв'язок, якщо зміна відбувається через кілька етапів у чергах. Yammi Audit Log від RomaLytar розв'язує цю проблему: крім попередніх та нових значень, пакет записує виконавця, ініціатора та correlation ID, який об’єднує запит, Job, команду чи заплановане завдання в єдиний ланцюжок.

# Аудит без змін у моделях

Вам не потрібно додавати трейти, імплементувати інтерфейси чи реєструвати обсервери. Після встановлення пакета та запуску міграцій усі операції запису Eloquent фіксуються автоматично:

User::first()->update(['name' => 'Eric']);

Це оновлення потрапить до логу без жодних правок у моделі User. За замовчуванням відстежуються всі моделі, але у файлі config/audit-log.php можна активувати режим opt-in для обраного списку:

'capture'   => ['mode' => env('AUDIT_LOG_CAPTURE_MODE', 'all')],  // all | opt_in
'retention' => ['days' => env('AUDIT_LOG_RETENTION_DAYS', 180)],
'write'     => ['async' => env('AUDIT_LOG_WRITE_ASYNC', false)],

Варто врахувати: оскільки пакет використовує події Eloquent, прямі оновлення через Query Builder автоматично не фіксуються — їх потрібно записувати окремо.

# Збереження ініціатора у чергах

Це головна перевага Yammi. Коли користувач запускає завдання, яке згодом змінює модель, звичайний аудит припише цю дію воркеру черги. Yammi передає ідентичність ініціатора через увесь ланцюжок, тому в логах чітко видно різницю між тим, хто виконав код, і тим, хто запустив процес. Correlation ID групує записи одного робочого циклу, дозволяючи відстежити каскад змін від контролера до Job або запланованої команди.

Крім того, система фіксує контекст виконання: HTTP-запит, Job, команда Artisan або Scheduler. Це допомагає зрозуміти, звідки саме прийшли зміни в модель.

# Продуктивність та стабільність

Процес запису спроєктовано так, щоб аудит не сповільнював роботу програми. Кожна зміна — це один запис в основну таблицю та пакетне додавання змінених полів у окрему індексовану таблицю. Такий підхід дозволяє швидко шукати за полями, не скануючи JSON-колонки. За потреби запис логів можна зробити асинхронним:

'write' => ['async' => env('AUDIT_LOG_WRITE_ASYNC', false)],

Логування працює за принципом fail-open: якщо під час запису аудиту виникне помилка, основна операція все одно буде завершена успішно.

# Форензика та відповідність вимогам

Yammi містить набір підсистем, які можна активувати за потреби. Режим цілісності додає ланцюжок хешів (tamper-evident hash chain) для виявлення маніпуляцій з історією, а функція Time Machine дозволяє відтворити стан запису на будь-який момент у минулому. Також передбачені інструменти для GDPR, виявлення аномалій, стрімінг у SIEM, сповіщення у Slack та підтримка multi-tenancy. Опціональна панель керування активується окремо:

composer require romalytar/yammi-audit-log-laravel
php artisan migrate
php artisan audit-log:ui enable

Завдяки модульності Yammi залишається легким інструментом для простого логування, але дозволяє нарощувати потужність там, де цього вимагає безпека чи законодавство.

Yammi працює на PHP 8.1+ та Laravel версій від 9 до 13. Документація та вихідний код доступні на GitHub.

Популярні

Інше, що варто прочитати

17 Оновлено 26 червня, 2026

Обробка геопросторових даних за допомогою Laravel Magellan

Ви готові відкрити нові горизонти у роботі з геопросторовими даними в Laravel? Дізнайтеся, як за допомогою PostGIS та пакету Laravel-Magellan можна легко зберігати, запитувати та маніпулювати інформацією про розташування, перетворюючи ваші проекти на вражаючі рішення у сфері картографії та геолокації!

11 Оновлено 26 червня, 2026

Генерація документації в Laravel за допомогою штучного інтелекту

Docudoodle — це потужний пакет для генерації документації в Laravel, який допомагає легко аналізувати вашу кодову базу та створювати документацію за допомогою обраного вами AI. Чи готові ви дізнатися, як цей інструмент може спростити вашу роботу з документуванням коду? Читайте далі!

16 Оновлено 26 червня, 2026

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

Хочете забезпечити повну прозорість у своїх Laravel-додатках? Пакет Laravel Audit Log допоможе вам детально відстежувати всі зміни моделей Eloquent та відповідати вимогам регуляторів. Читайте далі, щоб дізнатися, як цей потужний інструмент може підвищити надійність вашого проєкту