Install

Works with Drupal: ^11.3 || ^12

Using Composer to manage Drupal site dependencies

Alternative installation files

Download tar.gz 1.32 MB
MD5: 46a9abbd4866f060a46910520bf5a242
SHA-1: 5d72150a63da98a571c4320c1123ded9c4b0bf78
SHA-256: bbc50dfd6501d00ee94c3d4cb794b226ecaa8155fed0e8a979fac3141f632227
Download zip 1.62 MB
MD5: 625d5d531c6f1b10fff8a411af30891d
SHA-1: 80d5194b25c1304dfc1e7be279300a9573e1c27c
SHA-256: de7da5495178a32d682b4e5c2961194df7525db50e7c2e289fea5f22469dd4d6

Release notes

Updating from 1.0.0-alpha14

An in-place update: no schema, configuration or signature change, and no database update to run. Run drush cr straight after, so Drush finds the new audit_trail:retry-abandoned command.

If your code implements AuditTrailInterface or AuditTrailChainWriterInterface (a test double, for instance), it needs the new members: record() takes a bool $required = FALSE argument, AuditTrailInterface adds isRecording(string $channel): bool, and AuditTrailChainWriterInterface adds hasSigningSecret(): bool.

If you relied on in_transaction_write_mode: inline to abort your transaction when an entry could not be chained, it no longer does: a failed write is reported like any other. Pass required: TRUE to record() for the entries that must not go unrecorded.

Fixes worth naming

  • Every login, logout and masquerade failed with a 500 while no signing secret was active, for example on a site with the modules enabled and no Key set up yet. An entry the module cannot record no longer fails the request that recorded it, whatever the cause (no secret, an unreadable Key, a held chain lock, a row or outbox entry the database refused). It is reported on the audit_trail channel instead: a warning when no secret is active, an error otherwise. An entity save is no longer rolled back because its outbox entry could not be staged. #3620436: Recipe fails because ui_icons_patterns is not installed
  • The status report no longer fails when an audit_trail table is missing: it shows one "Audit trail tables: Unreadable" error naming the database failure. #3620436: Recipe fails because ui_icons_patterns is not installed
  • A chain write that failed after its transaction committed wrote the entry's transient context to the PHP error log, IP address and request URI included, where it outlived the transient-purge window. The report now names a database failure by its class, SQLSTATE and driver code, as the other write paths already did. #3620439: search_api_trusearch 1.0.6

New

Changed

Housekeeping

  • The codebase metrics page is refreshed: 397 files and 61,738 lines of code.
Created by: mably
Created on: 8 Oct 2026 at 16:23 UTC
Last updated: 8 Oct 2026 at 16:23 UTC
Bug fixes
New features

Other releases