# Brume 2.1 adds deterministic FK-safe pseudonymization for PostgreSQL 12-18

> **Key takeaway:** Brume 2.1 produces referentially intact, pseudonymized PostgreSQL database copies using format-preserving encryption and deterministic transformations keyed by user secrets.

**Published:** 2026-11-07T14:02:06.451486+00:00 
**Source:** PostgreSQL Official News 
**Category:** databases-storage 
**Canonical URL:** https://fosswire.org/news/brume-21-adds-deterministic-fk-safe-pseudonymization-for-pos.html 

## Summary
Brume 2.1, released under Apache 2.0, addresses a persistent operational problem for PostgreSQL teams: creating realistic test and debug datasets without exposing production personal data or breaking foreign key relationships. The tool reads from a source database and writes transformed output to either a target database or a .sql file, applying column-level pseudonymization strategies before any data is persisted.

The release supports PostgreSQL versions 12 through 18 and offers packages for Debian/Ubuntu, RHEL/Fedora, and macOS. Its deterministic output guarantees that identical inputs with the same secret produce identical pseudonyms across all releases within a major version, enabling stable test fixtures and reproducible debug sessions.

## Pseudonymization strategies and referential integrity
- **Column-level transformation strategies:** Brume provides FAKE for synthetic values, MASK for partial reveals, HASH for one-way hashing, NULLIFY for data removal, FPE_ID and FPE_UUID for format-preserving encryption of identifiers, and DATE_SHIFT for preserving date distributions while altering actual values.
- **Deterministic keyed output:** All transformations use user-provided secrets as keys, ensuring that the same input consistently produces the same pseudonym across runs and releases within a major version.
- **Foreign key preservation:** Format-preserving encryption rewrites primary keys and their corresponding foreign keys identically, maintaining referential integrity without disabling triggers or suspending constraints.
- **Cross-table consistency via linked_columns:** Values shared across tables without formal foreign key relationships, such as an email appearing in both users and audit_logs, receive identical pseudonyms throughout the extract.
- **Declarative subsetting and configuration:** Row-level filters with configurable foreign-key traversal depth produce self-contained extracts, controlled by a version-controllable brume.yml file supporting semantic types and JSONB path targeting.

## Why it matters
For Linux-based PostgreSQL deployments in regulated industries, Brume offers a practical alternative to ad-hoc masking scripts that routinely corrupt database relationships. The tool's audit-friendly, code-reviewable configuration aligns with GDPR Articles 25 and 32 requirements for pseudonymization, reducing compliance overhead for data protection officers while preserving developer productivity in bug reproduction and testing workflows.