Platform / Anonymize

Anonymize without breaking the data model

Every sensitive field is transformed with the technique it needs, and the same source value receives the same substitute in every table. Applications and tests keep working.

real dataanonymized

Field-level rules

The right technique for every piece of data

There is no single policy for the whole dataset: each field is configured with its own method. Names and emails can be replaced with fake data while a phone number keeps its format.

  • Fake data based on the field label
  • Masking with the format preserved
  • Random shuffling, replacement from a list, clearing or deletion
  • JavaScript functions for custom logic
  • Locale settings for consistent names and formats
Exampletechniques · customers
nameJuan Pérez → Marta Ruizfake data
card…3456 → **-**-****-3456masked
cityshuffled within the setshuffled
notesclearedcleared

Dictionary

The relationships between tables are preserved

The dictionary decides whether the same source value always receives the same substitute. With global scope, consistency is kept across every entity and field, and also between successive runs.

  • Scope by label, by field name, by entity or global
  • Foreign keys stay consistent after the transformation
  • Same mapping between runs for comparable datasets
  • Option to skip the dictionary when no correspondence should remain
Exampledictionary · global
customers.id4417 → 8802source
orders.customer_id4417 → 8802same value
invoices.customer_id4417 → 8802same value
The data changes. The relationships stay the same.

Synthetic data

When no link to the original should remain

Synthesis generates new records from the schema, not from existing data. It is useful to scale volume for load testing or to work without any production source.

  • Configurable volume, above or below the original
  • Fake data by label, lists, sequences and ranges
  • Custom JavaScript functions
  • Can be combined with the anonymization rules
Examplesynthesis · customers
source rows542.143·
generated rows1.000.000scaled
link to the sourcenonesynthetic
Frequently asked questions

Questions about anonymization

Does anonymization break the relationships between tables?

No, if the rule uses a dictionary. With a dictionary of global scope, the same source value always receives the same substitute across every entity and field, so the keys keep matching between tables.

Can I apply my own transformation logic?

Yes. Besides the predefined techniques you can use JavaScript functions for logic specific to your data model, such as national formats or dependencies between fields.

Is anonymization reversible?

It depends on the technique and the dictionary. Fake data, clearing or deleting a field without a persistent dictionary do not allow the original value to be reconstructed. Masking with format preserved keeps part of the value and offers a different level of protection, which should be assessed against the applicable regulatory requirement.

Does an anonymized dataset fall outside the GDPR?

Data anonymized irreversibly stops being personal data. Whether it is depends on the configuration: techniques with no recoverable mapping versus masking that keeps part of the value. The legal assessment is up to your legal team or your DPO.

What is the difference between anonymizing and synthesizing?

Anonymizing starts from real data and replaces its values. Synthesizing generates new records from the schema, without starting from previous real data.

Next step

Try it on your own schemas

We show you anonymization on an architecture like yours, with your relationships between tables intact.