Production data.
Without the personal data.
Husonym anonymizes your databases, generates synthetic data that matches your schema, and carves out a referentially intact subset — so dev, CI and staging finally run on realistic data, with no legal exposure.
A walkthrough on your own tables, with no commitment.
Copying prod is a liability.
Hand-written fixtures are useless.
A production dump in a dev environment is personal data on the loose, duplicated into backups nobody owns any more. Hand-written fixtures are three rows per table: they reproduce no real bug and rot the moment the schema changes.
Production dump
With Husonym
Four steps, once. After that it's a job.
Connect
One source, one or many destinations: Postgres, MySQL, SQL Server, MongoDB, DynamoDB, S3, Cloud Storage.
Map
Husonym reads your schema and proposes a transformer per column. You adjust, you preview.
Subset
One SQL filter per table. Husonym walks the foreign keys and hands you a consistent dataset.
Sync
The job runs on Temporal: retries, replay, scheduling — and the same job called from your CI.
Masking is decided column by column.
Forty-four built-in transformers cover the common types: email, E164 phone, name, address, SSN, card number, UUID, timestamp. Every column keeps its format, its length and its uniqueness — your NOT NULL and UNIQUE constraints still hold.
- Schema detection, with a transformer proposed on each column
- Preview the result before anything is written
- Passthrough, Null or column default for everything that isn't sensitive
No data? Generate it.
Husonym fills an empty database from the schema alone. And for the fields that need to mean something — a product label, a reason for a visit, a customer comment — plug in OpenAI, Anthropic or TogetherAI with your own prompt.
- Generation from scratch, with no seed data at all
- LLM transformers with a custom prompt, per column
- Pick the volume: as many rows as your test actually needs
104 GB in production. 1.2 GB on your laptop. The same joins.
One WHERE per table, and Husonym handles the rest: it walks the foreign keys so the subset stays joinable. Self-referencing tables and circular dependencies are supported, as soon as a nullable column in the cycle gives it an entry point.
- One SQL filter per table, written in your database's own dialect
- Related tables pulled in automatically by following foreign keys
- Self-references and cycles handled
A job, not a script somebody re-runs by hand.
The engine is Temporal. An interrupted job resumes where it stopped, a run replays identically because the pipeline is event-sourced, and every execution leaves its logs behind. Job hooks fire whatever SQL you want before and after the sync.
- Failure recovery and a retry policy per activity
- Cron scheduling, plus triggering from the CLI or the API
- Pre-sync and post-sync SQL hooks
When no transformer fits, you write your own.
A JavaScript transformer receives the cell value and the whole row, and returns whatever you need. Enough to honour a business format, derive a value from another column, or hold a consistency Husonym cannot guess at.
- Access to the full row, not just the cell
- Reusable across columns and across jobs
- Versioned alongside the rest of your configuration
Your datasets are code.
A Terraform provider describes connections, mappings and jobs next to the rest of your infrastructure. The CLI triggers the job from a pipeline, seeding the CI database before the end-to-end suite runs.
- Terraform provider for connections, jobs and mappings
- CLI and API keys for non-interactive pipelines
- Every configuration change reviewed in a pull request
Wherever your data lives.
Sources and destinations supported today. Missing one from your stack? Let's talk — we add connectors.
Relational databases
Document & key-value
Object storage
Model providers
This list grows with every release. Tell us which database you run.
Your data never leaves your perimeter.
The engine reads your source and writes your destination without a copy going anywhere else. No sample is shipped to a third-party service for analysis — unless you wire up a model provider yourself, and you then decide exactly which columns reach it.
Locked-down access
Credentials encrypted at rest, bastion access for databases that aren't publicly reachable, and a dedicated service account rather than your admin credentials.
A smaller compliance scope
A properly anonymized database takes your dev and staging environments out of GDPR, HIPAA, FERPA and DPDP scope.
RBAC and an audit trail
Roles per account, logs kept for every execution, an event-sourced pipeline: every run is replayable and auditable.
Don't point it at production
We recommend restoring a snapshot to a dedicated database on a schedule and pointing Husonym at that. Less load on prod, less exposed surface.
Husonym is a tool: whether your processing legally qualifies as anonymized remains your call.
Your data stays yours.
Husonym works on your data where it already lives. Nothing is copied to an intermediate platform, nothing is retained once the job finishes, and every execution leaves an auditable record of what was read, transformed and written.
How it is put in place adapts to your infrastructure and compliance constraints. It is the first thing we go through in a demo.
Let's start with a demo.
Twenty minutes on your real schema: we wire up a source, mask a few tables, and you see the result.
Demo
On your schema, not ours.
- 20 to 30 minutes over video
- We set up a connection and a first job with you
- You leave with a costed rollout plan
Our pricing depends on data volume, number of environments and support level. We put a figure on it after the demo, once we know your context.
The next production copy can ship without PII.
Twenty minutes is enough to watch it run against your own tables.
Let's talk about your schema.
A question, a demo, a connector you're missing? Write to us — we answer quickly.
Prefer email? contact@husonym.com