Drupal is a registered trademark of Dries Buytaert
Protected Pages 3.0.0 Major update available for module protected_pages (3.0.0). Commerce Core 3.3.8 Minor update available for module commerce (3.3.8). Search API HTML Element Filter 1.0.7 Minor update available for module search_api_html_element_filter (1.0.7). Layout Builder Reorder 2.0.1 Minor update available for module layout_builder_reorder (2.0.1). Ban 1.1.0 Minor update available for module ban (1.1.0). Field Formatter Range 2.0.0 Major update available for module field_formatter_range (2.0.0). Field Formatter Range 8.x-1.8 Minor update available for module field_formatter_range (8.x-1.8). UI Patterns (SDC in Drupal UI) 2.0.18 Minor update available for module ui_patterns (2.0.18). Search API Solr 4.3.11 Module search_api_solr updated after 14 months of inactivity (4.3.11). Provus Mega Menu Module provus_mega_menu crossed 1,000 active installs.

Deterministic Config UUID

3 sites No security coverage
View on drupal.org

This module generates predictable UUIDs for your site's configuration files. This ensures that your exported configuration remains consistent across different environments and over time, making it easier to manage and version control your site's settings. It handles complex configurations, including nested elements and specific field settings, to maintain these consistent UUIDs.

Provides deterministic UUIDs for exported configuration. Instead of random UUIDs, this module generates predictable UUID v5 hashes based on the configuration name and a fixed namespace. This ensures stable and repeatable config:export results, making clean installs and generated configuration (such as through migrations) consistent across environments.

Features

  • Generates deterministic UUIDs using UUID v5 specification for all exported configuration.
  • UUID hash is derived from the config name and a configurable namespace UUID.
  • Ensures exports of the same config file always produce the same UUID.
  • Handles nested plugin instances within configuration (e.g., image effects, filters) with hierarchical UUID generation.
  • Intelligently skips UUID remapping for field storage configs with long names that would break Drupal's hashed table name resolution.
  • Overrides both file storage (for exports) and active database storage (for runtime consistency).
  • Integrates seamlessly with drush config:export and core configuration management.
  • Improves reproducibility and version control cleanliness by eliminating UUID churn.
  • Supports complex nested configuration structures with deterministic UUID generation at all levels.

Post-Installation

No configuration required. Once enabled, drush config:export or core export functionality will automatically use deterministic UUIDs. For example, admin_toolbar.settings.yml will always export with
the same UUID. The module uses a default namespace UUID (00000000-0000-0000-0000-000000000000) which can be customized by modifying the NAMESPACE constant in the module's classes for project-specific implementations.

Technical Details

The module implements custom storage classes that extend Drupal's FileStorage and DatabaseStorage, intercepting read and write operations to ensure UUID consistency. It uses the Ramsey UUID library to generate UUID v5 hashes, ensuring compliance with RFC 4122. The module also includes intelligent detection for field storage configurations that would be affected by Drupal's table name hashing mechanism, preserving their original UUIDs to maintain database integrity.

Additional Requirements

Requires the Ramsey UUID library (automatically managed via Composer). Works with Drupal core configuration management system (Drupal 9 or 10).

Optional but useful with migration and config management workflows:

Similar projects

Modules like Config Normalizer or href="https://www.drupal.org/project/config_sync_without_site_uuid">Config Sync Without Site UUID handle
different aspects of configuration consistency. This module is unique in providing deterministic UUID generation
for exported config, including support for nested plugin instances and intelligent field storage handling.

Supporting this Module

If you find this module helpful, consider sponsoring or contributing back via the issue queue.

Community Documentation

Examples, walkthroughs, and use cases will be shared here.

Activity

Total releases
4
First release
Aug 2025
Latest release
4 months ago
Releases (12 mo)
4 ▲ from 0
Maintenance
Active

Release Timeline

Releases

Version Type Release date
1.0.3 Stable Mar 2, 2026
1.0.2 Stable Feb 26, 2026
1.0.1 Stable Jan 24, 2026
1.0.x-dev Dev Aug 30, 2025