rcsofttech/audit-trail-bundle

Enterprise-grade, high-performance Symfony audit trail bundle. Automatically track Doctrine entity changes with split-phase architecture, multiple transports (HTTP, Queue, Doctrine), and sensitive data masking.

Fund package maintenance!
rcsofttech85

Installs: 370

Dependents: 0

Suggesters: 0

Security: 0

Stars: 77

Watchers: 3

Forks: 3

Open Issues: 0

Type:symfony-bundle

pkg:composer/rcsofttech/audit-trail-bundle

v1.9.4 2026-01-29 17:04 UTC

README

CI Version Downloads License Codacy Badge Mutation Testing

Enterprise-grade, high-performance audit trail solution for Symfony.

AuditTrailBundle is a modern, lightweight bundle that automatically tracks and stores Doctrine ORM entity changes. Built for performance and compliance, it uses a unique Split-Phase Architecture to ensure your application stays fast even under heavy load.

Documentation

Topic Description
Installation & Setup Getting started guide.
Configuration Full configuration reference (enabled, transports, integrity).
Advanced Usage Attributes, Conditional Auditing, Impersonation, Custom Context.
Transports Doctrine, HTTP, and Queue (Messenger) transport details.
Audit Reader Querying audit logs programmatically.
Revert & Recovery Point-in-time restoration of entities.
Security & Integrity Data masking, cryptographic signing, and verification.
CLI Commands Console commands for listing, purging, and exporting logs.
Integrations EasyAdmin support.
Serialization Cross-platform JSON format.
Benchmarks Performance report.

Key Features

  • High Performance: Non-blocking audits using a Split-Phase Architecture (capture in onFlush, dispatch in postFlush).
  • Multiple Transports: Doctrine, HTTP (ELK/Splunk), Queue (RabbitMQ/Redis).
  • Deep Collection Tracking: Tracks Many-to-Many and One-to-Many changes with precision.
  • Sensitive Data Masking: Native support for #[SensitiveParameter] and custom #[Sensitive] attributes.
  • Safe Revert Support: Easily roll back entities to any point in history.
  • Conditional Auditing: Skip logs based on runtime conditions.
  • Rich Context: Tracks IP, User Agent, Impersonation, and custom metadata.

Quick Start

1. Installation

composer require rcsofttech/audit-trail-bundle

2. Database Setup (Doctrine Transport)

If you are using the Doctrine Transport (default), update your database schema:

php bin/console make:migration
php bin/console doctrine:migrations:migrate

3. Basic Usage

Add the #[Auditable] attribute to any Doctrine entity you want to track.

use Rcsofttech\AuditTrailBundle\Attribute\Auditable;

#[ORM\Entity]
#[Auditable(ignoredProperties: ['internalCode'])]
class Product
{
    #[ORM\Id, ORM\GeneratedValue, ORM\Column]
    private ?int $id = null;

    #[ORM\Column]
    private string $name;
}

Requirements

  • PHP 8.4+
  • Symfony 7.4+
  • Doctrine ORM 3.0+

License

MIT License.