Config-driven
One YAML file with environment-variable substitution for secrets. Opt-in per table, per-column transforms, per-table row filters.
Digestive is a database-agnostic tool for getting data safely out of your database. It extracts your data, anonymises it effectively, stores it in a compressed format, and can then output it back to SQL whenever you need it.
# config.yml — export the users table, anonymised.source: dsn: ${DATABASE_DSN}
destination: directory: ./exports
hashing: key: ${EXPORT_HASH_KEY}
tables: - name: users columns: email: transform: hash_email name: transform: mask keep_first: 1 password: transform: constant value: "password"Install Digestive:
brew install social-sync/tap/digestiveScaffold a config:
digestive initEdit config.yml and .env to add your database details and tables.
Run the export:
digestive exportConfig-driven
One YAML file with environment-variable substitution for secrets. Opt-in per table, per-column transforms, per-table row filters.
Built in anonymisation transformers
Six built-in transforms — null, constant, mask, hash,
hash_email, and json_anonymise — let you redact, deterministically
hash, or anonymise sensitive columns (including values inside JSON) on
the way out.
Relationships survive
Deterministic hashing is global by default: the same value hashes the same everywhere, so foreign-key joins still work in the copy.
Single static binary
Simple to install and update.