Install
Works with Drupal: ^11.3 || ^12Using Composer to manage Drupal site dependencies
Alternative installation files
Download tar.gz
1.34 MB
MD5: 8ab2b25650bcf45256d9947f429c920a
SHA-1: dcdd309b45c8f04f9af0bddf72c69da02ba62882
SHA-256: bdba444cb8be745699efbd08bd5e7ebb3ac1248f68902d5edbb1327ef0cc3199
Download zip
1.65 MB
MD5: af365cc2f10e6f6fbc311b30fa23e317
SHA-1: ab9d545bb1101100ed566d96d516aaf9ffb418cf
SHA-256: 37811277048422004026e99c23165f867417c7b2b2f74f9dc1f94d284b6bc13a
Release notes
Every chained row now records the trace ID of the request or job that wrote it, and a new submodule fills it from OpenTelemetry. The two identifiers a row can carry, correlation_id and trace_id, are now transient data.
Upgrading
The audit_trail and audit_trail_outbox tables have a new trace_id column, and there is no update hook until the first beta release: reinstall the module to upgrade.
New
- Trace ID on every chained row (#3620443). The writer asks the new
audit_trail.trace_id_providerservice for the current W3C trace ID and stores it in an indexedtrace_idcolumn, whatever path wrote the entry. The base module's provider returns NULL; a module that knows the current trace decorates it. The entries list has a Trace ID filter, and an entry's detail page links its trace ID to that list. audit_trail_opentelemetrysubmodule (#3620442). Supplies the trace ID of the current OpenTelemetry span. It needs theopen-telemetry/apilibrary (composer require open-telemetry/api) and something that starts spans, such as the OpenTelemetry module. Its README explains why a trace ID continued from an incomingtraceparentheader is chosen by the client.- Account name on account events (#3620441). Every
audit_trail_user_authrow about a known account names it underaccount_name, in the transient bucket, so a row still says whose account it was after the account is deleted.
Changed
correlation_idandtrace_idare transient data (#3620443). Either can carry personal data: a trace ID continued from an incoming header is the client's, and a correlation ID is whatever the caller chose. Neither is signed. The transient purge clears both together withcontext_transient, and an archive carries them only while they are still set, so a row restored from an archive gets them back.
Fixed
- Interface strings (#3620444). The retention-delay units and the TSA verification messages can now be translated. Strings made only of placeholders are gone. Every label writes ID in capitals, so the detail page and the filter form share one string per label. A unit test now fails on any translation call whose string an extractor cannot read.
- Documentation (#3620445). The configuration guide documents the bundled
severityfilter, and lists the settings every filter shares in one place.