Блог Серії
Кар'єра
Вакансії Компанії
Навчання
Співбесіди Тестування Відео
Екосистема
Пакети Ресурси Проєкти
Інше
Події Про нас
Yammi Audit Log
Новини 26 червня 2026
35

Yammi Audit Log: пакет для відстеження змін через черги та фонові завдання

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

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

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

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

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

'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 потім групує всі записи, що належать до одного робочого процесу, дозволяючи відтворити каскад змін, що охоплює контролер, чергове завдання та заплановану команду, замість того щоб розглядати їх як непов'язані рядки.

Записаний контекст також відзначає, де відбулася зміна - чи то HTTP-запит, чергове завдання, artisan-команда чи планувальник, що корисно, коли та сама модель записується з кількох точок входу.

Створений, щоб не заважати

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

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

Шлях захоплення також fail-open, тому якщо сам запис аудиту видає помилку, базова операція все одно проходить замість того, щоб забрати з собою весь запит.

Опціональні рівні криміналістики та відповідності вимогам

Поза основним трейлом, Yammi постачається з набором підсистем, які залишаються неактивними, поки їх не увімкнути. Режим цілісності додає ланцюг хешів, стійкий до підробки, щоб можна було виявити постфактум, чи були змінені збережені записи, а перегляд "машини часу" відтворює стан запису в минулому. Є інструменти GDPR для звітів суб'єктів та обробки збереження, виявлення аномалій, стримінг до SIEM, сповіщення в Slack та вебхуки, підтримка мультитенантності. Опціональна панель керування доступна через окрему команду:

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

Панель та функції цілісності, криміналістики та відповідності вимогам - всі opt-in, що тримає базову установку близькою до простого журналу змін і дозволяє додавати важчий механізм лише там, де додаток дійсно цього потребує.

Сумісність та підтримка

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

Коментарі

Увійдіть, щоб залишити коментар

Будьте першим, хто залишить коментар!

Читайте також

Backpack CRUD RCE

Повідомлення про безпеку: неавтентифіковане ін'єктування команд у Backpack\CRUD

Команда Backpack for Laravel опублікувала повідомлення про безпеку: у телеметрії пакета Backpack\CRUD виявлено вразливість, що дозволяла віддалене виконання коду (RCE) без автентифікації. Дослідник безпеки Vishal Shukla (@therawdev) відповідально повідомив про проблему 16 травня 2026 року, і команда розробників випустила виправлення менш ніж за 24 години.

Що нового в PostgreSQL 19: графові запити, GROUP BY ALL і крок до "універсальної" бази даних

Що нового в PostgreSQL 19: графові запити, GROUP BY ALL і крок до "універсальної" бази даних

PostgreSQL 19 продовжує важливу тенденцію останніх років: класична реляційна база даних поступово перетворюється на універсальну платформу для роботи з різними типами даних - від JSON до графів і аналітики.

Вакансії за темою

Full-time 3 дн. тому

Middle Fullstack Developer Laravel / Vue 3 / Node.js

PSV Game Studio Віддалено $2,000 - $2,500

Ми в CAS.AI створюємо передову мобільну рекламну медіацію для ігрових студій та шукаємо Middle Fullstack Developer, який підсилить основну команду розробки та допоможе розвивати фінансові дашборди, інтеграції з платіжними системами та аналітичні сервіси для роботи з великими обсягами даних. Основні задачі: Розробка нових функціональностей для фінансових дашбордів на Laravel + Vue 3 (графіки, таблиці, фільтри, експорти) Проєктування та реалізація API-інтеграцій із платіжними системами та зовнішніми сервісами (billing, payouts, reconciliation) Робота з великими обсягами даних та ClickHouse Рефакторинг legacy-коду, винесення логіки в сервіси, покриття тестами Участь у code review та архітектурних обговореннях Написання unit та feature тестів Використання AI-інструментів (Claude Code, Cursor) для прискорення розробки з повним розумінням згенерованого коду Розробка та підтримка мікросервісів на Node.js (NestJS) Побудова асинхронної взаємодії між сервісами (черги, події) Наші очікування: 2+ роки комерційного досвіду Fullstack-розробки на PHP/Laravel + Vue.js(або React з готовністю перейти на Vue) Досвід роботи з реляційними БД (MySQL/PostgreSQL) у проєктах зі складною бізнес-логікою Досвід роботи з REST API Впевнене володіння Node.js (досвід з NestJS буде плюсом) Розуміння принципів роботи з чергами повідомлень та асинхронною обробкою Розуміння архітектурних патернів та вміння аргументувати свої технічні рішення Важливі технічні навички: PHP 8+ / Laravel: Eloquent, Queues, Events, Middleware, Service Providers, Feature Tests Vue 3: Composition API, Pinia, реактивність, компонентна архітектура SQL: складні запити, JOIN, індекси, оптимізація, розуміння EXPLAIN REST API: проєктування, версіонування, авторизація (JWT/Sanctum) Git: feature branches, pull requests, code review Вміння читати, розуміти та рефакторити чужий код Буде плюсом: Досвід роботи з ClickHouse або іншими аналітичними/колоночними БД Інтеграція платіжних систем (Stripe, Adyen або інші PSP) Docker та базове розуміння CI/CD TypeScript AWS (ECS, RDS, CloudFront, ElastiCache) Досвід використання AI-інструментів у розробці Що пропонуємо: Можливість впливати на архітектурні рішення та розвиток продукту Роботу з сучасним стеком та великими обсягами даних Динамічне середовище та цікаві технічні задачі Перспективу професійного та кар’єрного росту завдяки розширенню проєктів та зон відповідальності В резюме вказуйте Ваші очікування по ЗП Відгукнутись на вакансію

Full-time Сьогодні

Backend Engineer Core Team (Go + PHP)

BetterMe Віддалено За результатами співбесіди

About us: BetterMe - a global wellness ecosystem empowering millions to become better - physically, mentally, and emotionally. We build what makes people better and keep challenging ourselves to inspire others. We are looking for a Backend Engineer to join our Core team and help build reliable, scalable backend solutions for a product used by millions of users. This role combines developing new features, optimizing existing services, and contributing to the evolution of the system architecture. Your impact: Develop new backend functionality using Go as the primary programming language, with occasional work on the PHP codebase (~80/20). Migrate business logic from legacy PHP monoliths to Go-based services. Ensure the stability, performance, and reliability of production systems. Contribute to infrastructure improvements, including CI/CD, observability, and operational excellence initiatives. Collaborate closely with product teams and stakeholders to deliver end-to-end solutions within the domain. Conduct code reviews with a focus on best practices, code quality, and maintainability. About you: 5+ years of experience in backend development. Commercial experience with Go (Golang). Experience working with PHP, preferably Symfony or Laravel. Strong understanding of idiomatic Go patterns, best practices, and application design principles. Experience with relational databases such as MySQL and/or PostgreSQL. Experience with asynchronous messaging systems (RabbitMQ, Apache Kafka, Amazon SQS, or similar). Experience with caching and in-memory data stores (Redis / AWS ElastiCache). Exposure to infrastructure and operations, including Kubernetes, CI/CD pipelines, observability, and production troubleshooting. Experience working with Linux and Docker. Ability to write and maintain unit tests, ensuring code quality and reliability. Strong problem-solving skills and the ability to work with complex systems and domains. Nice to have: Experience migrating from PHP monoliths to Go services. Strong experience with PHP 8+ (Symfony or Laravel). Experience building and operating distributed systems and high-load services. Hands-on experience with cloud and container orchestration technologies, including AWS services, Kubernetes, Helm, and service mesh solutions (e.g., Istio). Experience with microservice architectures and REST APIs. Knowledge of architectural design principles such as Clean Architecture, Hexagonal Architecture, and Domain-Driven Design (DDD). Strong communication and collaboration skills. What you get at BetterMe: A mission that inspires. Every line of code, every design, every idea helps millions of people become healthier and more confident. Trust without micromanagement. You manage your time and make decisions independently. We value outcomes, not online hours. Growth opportunities. 90% of our leads have grown within the company. There’s space for initiative, new responsibilities, and real career upgrades. Flexible work format. Choose what works best for you - office, remote, or hybrid. Wellness in practice. Offline: workouts with professional trainers in our corporate gym, massage, corporate lunches, sports, and team activities - everything you need to recharge and reset together*. Online:* regular online workouts, partner discounts, and free access to our products. Health insurance & corporate doctor. Open communication. Transparency across teams, honest feedback, and support for initiatives are part of our everyday culture. Support for sports events. We cover entry fees and encourage the team to compete and participate together. Modern equipment. We provide new hardware and everything you need for productive work. Legal & finance support. Experienced lawyers and financial specialists are always there to help - from documents to personal consultations. An ambitious environment that gets recognized. Over the past two years, the BetterMe team has doubled in size, and we were named among Forbes’ Top 10 Best Places to Work in 2026. Find more about us on social media platforms: Instagram, LinkedIn. Відгукнутись на вакансію

Full-time Вчора

Junior Backend Developer (Laravel)

KRONAS Віддалено За результатами співбесіди

Привіт! Ми - KRONAS, перша українська компанія на ринку меблевих комплектуючих і фурнітури з майже 30-річною історією та міжнародним досвідом. Наша команда - це понад 500 професіоналів, які створюють комфортні умови праці та постійно розвиваються разом із компанією. Ми запрошуємо тебе на позицію Junior Back-end розробника у Києві. Що ти робитимеш у нас: Розроблятимеш і підтримуватимеш серверну частину наших внутрішніх і зовнішніх систем. Працюватимеш над оптимізацією продуктивності та надійності бекенду. Співпрацюватимеш з командою розробників, аналітиків і тестувальників для реалізації нових функцій і покращень. Брати участь у проєктуванні архітектури застосунків та впровадженні сучасних технологій. Вирішуватимеш технічні задачі, що підтримують масштабування бізнесу KRONAS і покращують користувацький досвід. Кого ми шукаємо: Розробника з досвідом роботи на позиції Junior Back-end не менше 1 років. Для позиції нам важливо, щоб ти знав та вмів використовувати знання з математики та геометрії Досвід з docker, REST Api, php. Того, хто вміє працювати в команді, відкритий до спільного пошуку рішень та прагне розвиватися. Освіта не є визначальною - цінуємо твої навички, досвід і бажання вчитися. Що пропонуємо ми: Роботу в стабільній і шанованій компанії з майже 30-річною історією та міжнародним досвідом. Ринкову та своєчасну заробітну плату з перспективою зростання залежно від твоїх результатів. Графік роботи: Гібрид/ офіс/ віддалено. Понеділок-п'ятниця з 9:00 до 18:00 Дружню, підтримуючу атмосферу і сильну корпоративну культуру, де цінують кожного співробітника. Можливості для професійного зростання і навчання - ми адаптуємо і розвиваємо таланти. Соціальні гарантії, корпоративні бонуси, знижки на продукцію компанії. Участь у розвитку інноваційних проєктів, які підтримують бізнес KRONAS та роблять життя клієнтів кращим. Приєднуйся до команди KRONAS - компанії, де цінують людей, підтримують прагнення до розвитку і створюють комфортне робоче середовище. Надсилай нам своє резюме та стань частиною нашої сім'ї вже сьогодні!

Пакети за темою

Bagisto

bagisto/bagisto

Bagisto — це платформа для електронної комерції, побудована на Laravel. Вона надає готове рішення для створення та управління інтернет-магазинами з підтримкою каталогу товарів, замовлень, платежів та клієнтів.

27,502 v2.4.7 12 4

Lang

laravel-lang/lang

Список 126 мов для Laravel Framework, Laravel Jetstream, Laravel Fortify, Laravel Breeze, Laravel Cashier, Laravel Nova, Laravel Spark та Laravel UI.

7,778 15.31.4 3