damienharper/auditor-bundle
Integrate auditor library in your Symfony projects.
7.2.1
3.3M downloads/mo
#2440 most downloaded on Packagist
DamienHarper/auditor-bundle
What this package is like to depend on
Last release 5 months ago
16 Mar 2026
Release timing varies
gaps range from 2 weeks to 10 months
Rarely documented
notes for 10 of 74 stable releases
Nothing withdrawn
no release was ever pulled
9 years old
74 releases · first in 2018
9 releases in the last 12 months
see the full history below
Release timeline
74 releases · Jan 2018 to Mar 2026Releases
latest 60 of 74-
7.2.116 Mar 2026Release notes
Open source →auditor-bundle 7.2.1
What's Changed
Maintenance
- chore(deps): bump
actions/download-artifactfrom 8.0.0 to 8.0.1
Documentation
- docs: mention code quality checks required before submitting a PR
References
Full Changelog: 7.2.0...7.2.1
- chore(deps): bump
-
7.2.014 Mar 2026Release notes
Open source →auditor-bundle 7.2.0
auditor-bundle 7.2 aligns with
auditor4.2 andauditor-doctrine-provider1.1:
it tagsDoctrineProviderwithkernel.resetso that Symfony Messenger workers
audit every message correctly — not just the first one.
✨ What's new
Support for long-running processes (Symfony Messenger workers)
DoctrineProvidernow implementsSymfony\Contracts\Service\ResetInterface(see
auditor 4.2.0 and
auditor-doctrine-provider 1.1.0).Without the
kernel.resettag on its service definition, Symfony'sservices_resetter
never callsreset()between Messenger messages, leaving stalePreparedStatementcaches
and subscriber transaction state that silently break auditing after the first message in
worker processes.The bundle now tags
DoctrineProviderwithkernel.resetautomatically — no configuration
change is needed.
What's Changed
Bug fixes
CI
- ci: add
workflow_dispatchtrigger to sync-docs workflow
References
Full Changelog: 7.1.0...7.2.0
- ci: add
-
7.1.010 Mar 2026Release notes
Open source →auditor-bundle 7.1.0
auditor-bundle 7.1 aligns with
auditor4.1: it pulls in
auditor-doctrine-provider
as a direct dependency, documents the upcomingDoctrineProviderdeprecation, and ships
a bug fix for zero-result translation handling.
✨ What's new
auditor-doctrine-provider is now a direct dependency
auditor-bundlenow explicitly requires
damienharper/auditor-doctrine-provider,
the new standalone package that hostsDoctrineProviderand all related Doctrine classes
— extracted fromdamienharper/auditorin 4.1.No action required. The bundle wires everything transparently. All existing
dh_auditor.yamlconfigurations continue to work without modification.Users relying on
DoctrineProviderdirectly (without the bundle) should install it explicitly:composer require damienharper/auditor-doctrine-provider
🐛 Bug fixes
Zero-result translation crash in the audit viewer (#605)
Filtering entities in the audit viewer to produce zero results triggered a 500 error when
using a locale with complex plural rules (e.g. Russian). The plural translation string for
%formatted_count%did not cover the0case, causing Symfony's translator to throw.
The translation now handles zero correctly across all supported locales.
🔨 Deprecations
As of
damienharper/auditor4.1, all classes underDH\Auditor\Provider\Doctrine\are
deprecated and will be removed inauditor5.0.auditor-bundleusers are unaffected —
the bundle handles the transition automatically.For users of
DoctrineProvideroutside the bundle, see
docs/upgrade/v8.md for the migration path.
What's Changed
Features
- Require
auditor-doctrine-providerand documentDoctrineProviderdeprecation by @DamienHarper in #606
Bug fixes
Dependencies
- Bump actions/checkout from 4 to 6 by @dependabot in #600
- Bump actions/setup-node from 4 to 6 by @dependabot in #601
- Bump actions/upload-artifact from 6 to 7 by @dependabot in #603
- Bump actions/download-artifact from 7.0.0 to 8.0.0 by @dependabot in #604
References
Full Changelog: 7.0.1...7.1.0
- Require
-
7.0.120 Feb 2026Release notes
Open source → -
7.0.020 Feb 2026Release notes
Open source →auditor-bundle 7.0.0
The biggest release since the bundle's creation, auditor-bundle 7.0 is a full modernization: it drops legacy compatibility layers, embraces PHP 8.4+, Symfony 8, and Doctrine 4/ORM 3 — and ships a completely redesigned audit viewer with a rich new feature set.
✨ What's new
Completely redesigned audit viewer
The built-in viewer has been rebuilt from scratch. It replaces the Webpack/npm + Bootstrap stack with AssetMapper and Tailwind CSS 4 — no Node.js toolchain required.
New viewer capabilities:
- Dark / light mode — toggle persisted in
localStorage, follows system preference by default - Activity graph — visual sparkline per entity on the home page showing audit activity over the last N days, configurable and cache-backed
- Action type filter — narrow the entity stream to
insert,update,remove,associate, ordissociate - User filter — filter by any user who ever made a change, with dedicated support for anonymous entries (
blame_id IS NULL) - Extra data display — each audit entry now shows its
extra_datacontent when present, with per-key rendering, in all entry types (insert, update, associate, dissociate) - IP address and firewall — displayed inline on each entry row when available
- Cleaner entry layout — operation badge, entity link, entity label, transaction hash, date, user, IP and firewall all arranged for quick scanning
Activity graph
Each entity card on the home page shows a sparkline bar chart of audit volume over time.
dh_auditor: providers: doctrine: viewer: activity_graph: enabled: true days: 30 # 1–30 layout: 'bottom' # 'bottom' or 'inline' cache: enabled: true pool: 'cache.app' ttl: 300
Cache supports tag-based invalidation (
dh_auditor.activity) when your pool implementsTagAwareCacheInterface. A dedicatedaudit:cache:clearconsole command lets you flush it on demand.Extra data — integrated end-to-end
The new
extra_dataJSON column introduced in auditor 4.0 is fully surfaced in the viewer. No template override needed: every audit entry automatically renders its extra data, decoded and formatted, in a clearly delimited section below the diff.extra_data_provider— global context without boilerplateThe bundle ships a ready-to-use
ExtraDataProviderservice that captures the current route name for every audit entry. Opt in with a single config line:dh_auditor: extra_data_provider: dh_auditor.extra_data_provider
This stores
{"route": "app_order_edit"}inextra_datafor every audit entry produced during an HTTP request. Outside HTTP context (e.g. console commands),extra_dataremainsnull.You can also plug in any custom service that returns
?array:dh_auditor: extra_data_provider: App\Audit\MyExtraDataProvider
The provider runs before the
LifecycleEventis dispatched, so per-entity listeners can enrich or override the global context.See extra-data documentation for both approaches and their interaction.
⚡ Bundle modernization
AbstractBundle migration
The bundle now extends
Symfony\Component\HttpKernel\Bundle\AbstractBundle. TheConfigurationandDHAuditorExtensionclasses, along with four compiler passes, have been merged intoDHAuditorBundle::configure()andDHAuditorBundle::loadExtension(). Services are registered programmatically — noservices.yaml.PHP 8.4+ attributes throughout
Class Before After ConsoleEventSubscriberEventSubscriberInterface#[AsEventListener]ViewerEventSubscriberEventSubscriberInterface#[AsEventListener]ViewerControllerManual route registration #[AsController]+#[Route]TimeAgoExtensionExtends AbstractExtension#[AsTwigFilter]RoutingLoaderManual tag #[AutoconfigureTag('routing.loader')]SecurityProviderManual constructor injection #[Autowire]Final classes
All bundle classes are now
final. Customisation is done through the three provider interfaces (unchanged) and Symfony's service decoration, not inheritance.AssetMapper + Tailwind CSS 4
The frontend toolchain switches from Webpack Encore / npm to Symfony AssetMapper. No
node_modules, no build step. Assets are served directly frompublic/bundles/dhauditor/.
🔨 Breaking changes
Updated requirements
6.x 7.0 PHP ≥ 8.2 ≥ 8.4 Symfony ≥ 5.4 ≥ 8.0 Doctrine DBAL ≥ 3.2 ≥ 4.0 Doctrine ORM ≥ 2.13 ≥ 3.2 DoctrineBundle ≥ 2.0 ≥ 3.0 damienharper/auditor ≥ 3.0 ≥ 4.0 PHPUnit ≥ 11.0 ≥ 12.0 Removed classes
Removed class Replacement DH\AuditorBundle\DependencyInjection\ConfigurationDHAuditorBundle::configure()DH\AuditorBundle\DependencyInjection\DHAuditorExtensionDHAuditorBundle::loadExtension()DH\AuditorBundle\DependencyInjection\Compiler\AddProviderCompilerPassAutowiring DH\AuditorBundle\DependencyInjection\Compiler\CustomConfigurationCompilerPassDHAuditorBundle::loadExtension()DH\AuditorBundle\DependencyInjection\Compiler\DoctrineProviderConfigurationCompilerPassDoctrineMiddlewareCompilerPassRoute names
Before (6.x) After (7.0) dh_auditor_show_entity_historydh_auditor_show_entity_streamdh_auditor_show_transactiondh_auditor_show_transaction_streamUpdate any route references in your application.
ConsoleUserProvider
CLI commands now use the actual command name as the user identifier instead of the generic
"command"string.Before (6.x) After (7.0) blame_id: "command"blame_id: "app:import-users"blame_user: "app:import-users"blame_user: "app:import-users"Existing audit entries with
blame_id = "command"are not migrated automatically.Template blocks removed
Removed block Reason navbarReplaced by built-in header breadcrumbsNo longer used Available blocks in 7.0:
title,stylesheets,dh_auditor_content,dh_auditor_header,dh_auditor_pager,javascripts.Final classes
The following classes can no longer be extended:
DH\AuditorBundle\Event\ConsoleEventSubscriber DH\AuditorBundle\Event\ViewerEventSubscriber DH\AuditorBundle\Twig\TimeAgoExtension DH\AuditorBundle\Routing\RoutingLoader DH\AuditorBundle\User\UserProvider DH\AuditorBundle\User\ConsoleUserProvider DH\AuditorBundle\Security\SecurityProvider DH\AuditorBundle\Security\RoleChecker DH\AuditorBundle\Viewer\ActivityGraphProviderUse composition and Symfony's service decoration instead.
ActivityGraphProvider API
// Before (6.x) $provider->getDays(); $provider->getLayout(); // After (7.0) — PHP 8.4 property hooks $provider->days; $provider->layout;
UserProvider
AnonymousTokenhandling has been removed (deprecated in Symfony 6.0, gone in Symfony 8.0).auditor library changes
This bundle requires auditor ≥ 4.0, which introduces its own breaking changes:
Namespace: Annotation → Attribute
// Before use DH\Auditor\Provider\Doctrine\Auditing\Annotation\Auditable; use DH\Auditor\Provider\Doctrine\Auditing\Annotation\Ignore; // After use DH\Auditor\Provider\Doctrine\Auditing\Attribute\Auditable; use DH\Auditor\Provider\Doctrine\Auditing\Attribute\Ignore;
Entry model — property hooks (PHP 8.4)
// Before $entry->getId(); $entry->getType(); $entry->getObjectId(); $entry->getUserId(); $entry->getUsername(); $entry->getCreatedAt(); // After $entry->id; $entry->type; $entry->objectId; $entry->userId; $entry->username; $entry->createdAt;
utf8_convertis now opt-inThe implicit
mb_convert_encoding()pass is disabled by default. Re-enable it if your data sources are not guaranteed to be UTF-8:dh_auditor: providers: doctrine: utf8_convert: true
See the auditor upgrade guide for the complete library changelog.
🚀 Migrating from 6.x
A complete step-by-step upgrade guide is available in docs/upgrade/v7.md.
For most applications, the migration boils down to:
# 1. Update dependencies composer require \ damienharper/auditor:^4.0 \ damienharper/auditor-bundle:^7.0 \ symfony/framework-bundle:^8.0 \ doctrine/dbal:^4.0 \ doctrine/orm:^3.2 \ doctrine/doctrine-bundle:^3.0 # 2. Apply the schema migration (adds extra_data column) bin/console audit:schema:update --force # 3. Update namespace imports: Annotation → Attribute # 4. Update route names in your templates and controllers # 5. Run your test suite
The breaking changes are mechanical. No audit data is affected.
🛠 Developer experience
- Documentation moved in-repo — all docs live in
docs/and are versioned alongside the code - Unified
composer setup— replaces the four legacysetup5/setup6/setup7/setup8scripts - PHPStan 2.x, Rector 2.x, PHPUnit 12.x across the board
- Updated CI matrix — PHP 8.4 and 8.5 × Symfony 8.0 × SQLite / MySQL / PostgreSQL / MariaDB
What's Changed
Requirements & infrastructure
- Upgrade to PHP 8.4+, Symfony 8.0, Doctrine DBAL 4.x & ORM 3.x by @DamienHarper in #588
- Upgrade PHPStan 2.x, Rector 2.x, PHPUnit 12.x by @DamienHarper in #592
- Migrate from Webpack/npm to AssetMapper with Tailwind CSS 4 by @DamienHarper in #589
Modernization (PHP 8.4+ / Symfony 8+)
- Migrate to
AbstractBundle, mergeConfiguration+DHAuditorExtensioninto bundle class by @DamienHarper in #592 - Replace
EventSubscriberInterfacewith#[AsEventListener]by @DamienHarper in #592 - Add
#[AsController],#[AsTwigFilter],#[AutoconfigureTag],#[Autowire]attributes by @DamienHarper in #592 - Mark all bundle classes as
finalby @DamienHarper in #592 - Remove
AnonymousTokenhandling (removed in Symfony 8.0) by @DamienHarper in #592 ActivityGraphProviderproperty hooks (days,layout) by @DamienHarper in #592
New viewer features
- Completely redesigned audit viewer (AssetMapper + Tailwind CSS 4) by @DamienHarper in #589, #591
- Activity graph with sparklines, caching, and configurable layout by @DamienHarper in #591
- Action type filter and user filter on entity stream by @DamienHarper in #591
- Anonymous user filter via
NullFilter(blame_id IS NULL) by @DamienHarper in #591 - Display
extra_data, IP, and firewall in audit entries by @DamienHarper in #596 - Dark / light mode toggle by @DamienHarper in #591
New features (auditor 4.0 integration)
- Extra Data — display
extra_dataJSON column in viewer by @DamienHarper in #596 extra_data_providerconfig option — built-inExtraDataProviderservice (route name) and support for any custom callable; complements the existingLifecycleEventlistener approach by @DamienHarper in #594NullFilterintegration for anonymous user filtering by @DamienHarper in #591utf8_convertconfiguration option documented (opt-in, defaultfalse) by @DamienHarper
Bug fixes
- Fix
time_agofilter falling back to a hardcoded US-styleY/m/d g:i:saformat for dates older than one week and future dates — both fallback paths now useIntlDateFormatterand respect the application locale (#359)
Documentation
- Documentation moved in-repo (
docs/) by @DamienHarper in #590 - Extra Data integration guide by @DamienHarper in #595
- Full v7 upgrade guide by @DamienHarper in #592
- GitHub Flavored Markdown improvements across all docs by @DamienHarper in #593
References
Full Changelog: 6.x...7.0.0
- Dark / light mode — toggle persisted in
-
6.3.008 Feb 2026Release notes
Open source →What's Changed
- Bump js-yaml from 4.1.0 to 4.1.1 in the npm_and_yarn group across 1 directory by @dependabot[bot] in #554
- Port of #555 (early-exit) by @DamienHarper in #556
- Bump actions/checkout from 5 to 6 by @dependabot[bot] in #561
- Bump webpack from 5.102.1 to 5.103.0 by @dependabot[bot] in #557
- Bump autoprefixer from 10.4.21 to 10.4.22 by @dependabot[bot] in #559
- Bump @symfony/webpack-encore from 5.2.0 to 5.3.1 by @dependabot[bot] in #558
- Bump actions/download-artifact from 6.0.0 to 7.0.0 by @dependabot[bot] in #568
- Bump actions/upload-artifact from 5 to 6 by @dependabot[bot] in #569
- Bump actions/cache from 4 to 5 by @dependabot[bot] in #570
- Bump webpack from 5.103.0 to 5.104.1 by @dependabot[bot] in #574
- Symfony8.0 by @dmitryuk in #580
- feat: add support for twig/extra-bundle and twig/intl-extra ^4.0 by @NG-Siqual in #586
New Contributors
- @NG-Siqual made their first contribution in #586
References
Full Changelog: 6.2.3...6.3.0
-
6.2.317 Nov 2025Release notes
Open source →What's Changed
- Removed unused dependency by @DamienHarper in 67dd924
References
Full Changelog: 6.2.2...6.2.3
-
6.2.217 Nov 2025Release notes
Open source →What's Changed
- Allow doctrine bundle 3.0 by @MarijnDoeve in #544
- Add Russian and Ukrainian translations by @devdepart in #475
- Ignore files from vendor by @dmitryuk in #533
- Bump postcss from 8.4.49 to 8.5.1 by @dependabot[bot] in #467
- Bump @babel/core from 7.26.0 to 7.26.9 by @dependabot[bot] in #478
- Bump @babel/preset-env from 7.26.0 to 7.26.9 by @dependabot[bot] in #477
- Bump webpack from 5.97.1 to 5.98.0 by @dependabot[bot] in #480
- Bump postcss from 8.5.1 to 8.5.2 by @dependabot[bot] in #479
- Bump codecov/codecov-action from 4 to 5 by @dependabot[bot] in #459
- Bump actions/download-artifact from 4.1.8 to 4.1.9 by @dependabot[bot] in #486
- Bump @symfony/webpack-encore from 5.0.1 to 5.1.0 by @dependabot[bot] in #483
- Bump postcss from 8.5.2 to 8.5.3 by @dependabot[bot] in #482
- Bump babel-loader from 9.2.1 to 10.0.0 by @dependabot[bot] in #485
- Bump actions/download-artifact from 4.1.9 to 4.2.1 by @dependabot[bot] in #493
- Bump actions/download-artifact from 4.2.1 to 5.0.0 by @dependabot[bot] in #525
- Bump actions/checkout from 4 to 5 by @dependabot[bot] in #528
- Update doctrine/data-fixtures requirement from ^1.4 to ^2.2 by @dependabot[bot] in #545
- Bump webpack from 5.101.3 to 5.102.1 by @dependabot[bot] in #543
- Bump debug from 4.4.2 to 4.4.3 in the npm_and_yarn group across 1 directory by @dependabot[bot] in #540
- Bump actions/download-artifact from 5.0.0 to 6.0.0 by @dependabot[bot] in #550
- Bump error-ex from 1.3.3 to 1.3.4 in the npm_and_yarn group across 1 directory by @dependabot[bot] in #546
- Bump @babel/core from 7.28.4 to 7.28.5 by @dependabot[bot] in #547
- Bump actions/upload-artifact from 4 to 5 by @dependabot[bot] in #551
New Contributors
- @devdepart made their first contribution in #475
- @MarijnDoeve made their first contribution in #544
References
Full Changelog: 6.2.1...6.2.2
-
6.2.116 Jan 2025Release notes
Open source →What's Changed
- Bump webpack from 5.95.0 to 5.96.1 by @dependabot in #454
- Bump postcss from 8.4.47 to 8.4.48 by @dependabot in #456
- Bump tailwindcss from 3.4.14 to 3.4.15 by @dependabot in #457
- Bump cross-spawn from 7.0.3 to 7.0.5 in the npm_and_yarn group by @dependabot in #460
- Bump tailwindcss from 3.4.15 to 3.4.16 by @dependabot in #461
- Bump webpack from 5.96.1 to 5.97.1 by @dependabot in #462
- Bump nanoid from 3.3.7 to 3.3.8 in the npm_and_yarn group by @dependabot in #463
- Bump tailwindcss from 3.4.16 to 3.4.17 by @dependabot in #464
- Fix Twig spaceless filter deprecation by @jmsche in #465
New Contributors
References
Full Changelog: 6.2.0...6.2.1
-
6.2.031 Oct 2024Nothing published for this version
-
6.1.024 Oct 2024Nothing published for this version
-
6.0.010 Sep 2024Nothing published for this version
-
5.3.021 Nov 2025 -
5.2.611 Sep 2024Nothing published for this version
-
5.2.520 Dec 2023Nothing published for this version
-
5.2.401 Mar 2023Nothing published for this version
-
5.2.301 Mar 2023Nothing published for this version
-
5.2.223 Feb 2023Nothing published for this version
-
5.2.109 Dec 2022Nothing published for this version
-
5.2.026 Nov 2022Nothing published for this version
-
5.1.114 Nov 2022Nothing published for this version
-
5.1.031 Oct 2022Nothing published for this version
-
5.0.307 Aug 2022Nothing published for this version
-
5.0.231 Mar 2022Nothing published for this version
-
5.0.124 Mar 2022Nothing published for this version
-
5.0.005 Mar 2022Nothing published for this version
-
4.2.026 Sep 2021Nothing published for this version
-
4.1.002 Feb 2021Nothing published for this version
-
4.0.425 Jan 2021Nothing published for this version
-
4.0.311 Dec 2020Nothing published for this version
-
4.0.208 Dec 2020Nothing published for this version
-
4.0.107 Dec 2020Nothing published for this version
-
4.0.006 Dec 2020Nothing published for this version
-
3.4.226 Nov 2020Nothing published for this version
-
3.4.127 Apr 2020Nothing published for this version
-
3.4.029 Mar 2020Nothing published for this version
-
3.3.207 Feb 2020Nothing published for this version
-
3.3.106 Feb 2020Nothing published for this version
-
3.3.006 Feb 2020Nothing published for this version
-
3.2.305 Dec 2019Nothing published for this version
-
3.2.203 Dec 2019Nothing published for this version
-
3.2.102 Dec 2019Nothing published for this version
-
3.2.002 Dec 2019Nothing published for this version
-
3.1.021 Nov 2019Nothing published for this version
-
3.0.001 Nov 2019Nothing published for this version
-
2.5.004 Sep 2019Nothing published for this version
-
2.4.019 Aug 2019Nothing published for this version
-
2.3.229 Jul 2019Nothing published for this version
-
2.3.113 Jun 2019Nothing published for this version
-
2.3.018 Apr 2019Nothing published for this version
-
2.2.014 Apr 2019Nothing published for this version
-
2.1.012 Apr 2019Nothing published for this version
-
2.0.022 Mar 2019Nothing published for this version
-
1.6.004 Mar 2019Nothing published for this version
-
1.5.110 Feb 2019Nothing published for this version
-
1.5.006 Feb 2019Nothing published for this version
-
1.4.028 Jan 2019Nothing published for this version
-
1.3.021 Jan 2019Nothing published for this version
-
1.2.215 Jan 2019Nothing published for this version
-
1.2.107 Jan 2019Nothing published for this version