This project is not covered by Drupal’s security advisory policy.

Config Trail gives you a complete, timestamped history of every configuration
change on your Drupal site — with the tools to understand and undo them safely,
even across deployments.

The problem it solves

Rolling back config only in the database means the next

drush config:import

silently overwrites your rollback. Config Trail treats yml sync files and
Git as first-class citizens of the rollback workflow, so rollbacks survive
deployments.

Features

  • Automatic tracking of every config create, update, and delete
  • Side-by-side diff viewer for any two trail entries
  • Per-key partial restore — undo only the keys that changed in an entry,
    leaving all other keys untouched
  • Full restore — replace the entire config with a point-in-time snapshot
  • Bulk rollback — revert every tracked config to a chosen date and time
  • Five rollback strategies: DB only → DB + yml export → + Git commit →
    + push → + GitLab MR / GitHub PR
  • Sync status page — spot configs that will be overwritten on the next
    deployment before it happens
  • Async queue support — Git and API operations run via Drupal Queue so
    they never block a page request
  • Drush commands for every operation (list, show, rollback, export,
    sync-status, clean)
  • Slack and Microsoft Teams webhook notifications on every rollback
    and export
  • Configurable exclusion patterns with wildcard support
  • Developer hooks: hook_config_trail_should_track_alter(),
    hook_config_trail_entry_saved(),
    hook_config_trail_rollback_applied()

Comparison with config_revision

Feature config_revision Config Trail
Change tracking
Diff viewing
Rollback
Auto-export to yml
Git commit on rollback
GitLab MR / GitHub PR
Deployment-safe rollbacks
Slack / Teams notifications
Drush commands Partial
Drupal 11 support
No core patches required

Requirements

  • Drupal 10.x or 11.x
  • PHP 8.1+
  • Git binary on the server (optional — only needed for commit/push features)
  • cURL extension (optional — only needed for GitLab/GitHub/Slack/Teams)

Installation

  composer require drupal/config_trail
  drush en config_trail -y
  drush updb -y
  

Tracking begins immediately. No configuration required to get started.

Tracking begins immediately. No configuration required to get started.

Configuration

Administration → Configuration → Development → Config Trail → Settings

Set your rollback strategy default, exclusion patterns, Git binary path,
remote/branch, GitLab/GitHub tokens, and notification webhooks. API tokens
and webhook URLs are stored in Drupal State so they are never exported to
yml or committed to Git.

Rollback strategies

  1. Database only — fast, but lost on the next
    drush cim
  2. Database + Export to yml — writes the yml file to
    the sync directory
  3. Database + Export + Git commit — commits locally
    without pushing
  4. Database + Export + Git commit + Push — pushes
    directly to the target branch
  5. Database + Export + Git commit + Push + MR/PR
    opens a merge/pull request for team review

Project information

Releases