Greenmask is a powerful open-source utility for logical database dumping, anonymization, synthetic data generation, and restoration. Designed for PostgreSQL and MySQL (in progress), it is stateless and creates logical backups compatible with standard tools like pg_restore or mysqldump.
- PostgreSQL: Fully supported (Production Ready).
- MySQL: Work In Progress (Beta).
- Database Subsetting: Create smaller, referentially intact development databases with support for cyclic and polymorphic references.
- Storage Agnostic: Supports local directories and S3-compatible storage (AWS S3, MinIO, GCS, Azure, etc.) for flexible backup management.
- Deterministic Transformation: Reproducible data masking using hash functions, ensuring consistent output for the same input.
- Dynamic Parameters: Transformers can adapt based on other column values to maintain logical consistency (e.g.,
created_at < updated_at). - Transformation Condition: Apply transformations only when specific criteria are met, allowing for conditional logic at the table or transformer scope.
- Stateless & Compatible: Operates as a logical dump proxy. Dumps are compatible with
pg_restore. - Transformation Inheritance: Eliminate redundancy by automatically applying transformations to partitioned tables and foreign key references.
- Database Type Safety: Ensures data integrity by using the native database driver for all encoding and decoding operations.
- Extensible: Implement domain-specific transformations in any programming language or use predefined templates.
- Cross-Platform: Single binary, runs anywhere.
- Sensitive Data Sanitization: Anonymize, transform, and mask PII for staging, analytics, and testing environments, ensuring compliance and security.
- Backup & Restore: A robust, drop-in replacement for
pg_dump/pg_restoreandmysqldump, handling schema and data with ease. - Local Development: Quickly spin up lightweight, referentially intact subsets of production databases for developers.
- Synthetic Data Generation: Generate realistic test data from scratch to populate empty environments using the CMD transformer and custom transformations.
Try the sandbox environment with a sample database and pre-configured transformations:
git clone [email protected]:GreenmaskIO/greenmask.git && cd greenmask
docker-compose run greenmaskFor more details, visit the Documentation or the Playground.