Anonymization & synthetic data

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.

The trade-off

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

marie.dupont@acme.frPII
+33 6 12 34 56 78PII
FR76 3000 6000 0112 3456 7890 189PII
214 tables · 104 GBunmanaged

With Husonym

kel.varnsen@example.orgtransform_email
+33 6 88 41 07 92transform_phone_number
FR76 1027 8060 0300 0212 7480 143generate_string
214 tables · 1.2 GBFK integrity intact
How it works

Four steps, once. After that it's a job.

1

Connect

One source, one or many destinations: Postgres, MySQL, SQL Server, MongoDB, DynamoDB, S3, Cloud Storage.

2

Map

Husonym reads your schema and proposes a transformer per column. You adjust, you preview.

3

Subset

One SQL filter per table. Husonym walks the foreign keys and hands you a consistent dataset.

4

Sync

The job runs on Temporal: retries, replay, scheduling — and the same job called from your CI.

Anonymization

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
Synthetic data

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
Subsetting

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
Orchestration

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
Custom transformers

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
GitOps & CI

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
Connectors

Wherever your data lives.

Sources and destinations supported today. Missing one from your stack? Let's talk — we add connectors.

Relational databases

PostgreSQL Neon Supabase MySQL Microsoft SQL Server

Document & key-value

MongoDB DynamoDB

Object storage

AWS S3 Google Cloud Storage

Model providers

OpenAI Anthropic TogetherAI

This list grows with every release. Tell us which database you run.

Security & compliance

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.

GDPR HIPAA FERPA DPDP

Husonym is a tool: whether your processing legally qualifies as anonymized remains your call.

Sovereignty

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.

0data sent to a third party
100 %of processing inside your perimeter
Auditevery run on record
Pricing

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.

Free
Book a slot
  • 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.

Ready to clean up your environments?

The next production copy can ship without PII.

Twenty minutes is enough to watch it run against your own tables.

Contact

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