Data De-identification¶
Warning
The current page still doesn't have a translation for this language.
But you can help translating it: Contributing.
De-identification is the umbrella term for reducing how directly data identifies a person while retaining only the utility a test actually needs. Masking, generalization, and pseudonymization are techniques used to reach that outcome; they are not interchangeable legal guarantees.
- Masking removes visible characters, for example with
MaskorMiddleMask. - Generalization reduces precision, for example by retaining only a postal-code prefix.
- Pseudonymization replaces a value with a stable token. The current
Hashconverter is stable for the same value, field path, and<setup rngSeed>; a different field path receives a separate token space. - Anonymization describes the resulting dataset only when re-identification is no longer reasonably possible. A converter alone cannot establish that property.
Prefer synthetic generation when production-derived values are unnecessary. When a test must retain source shape or selected relationships, define the required utility first and expose no more information than that purpose needs.
A complete CSV example¶
The source deliberately contains one repeated customer ID. The descriptor proves four different transformations without using real personal data.
| data/customers.ent.csv | |
|---|---|
1 2 3 4 | |
| de-identification.xml | |
|---|---|
1 2 3 4 5 6 7 8 9 | |
The .ent.csv suffix declares an entity-shaped CSV source. target="CSV" creates a downloadable result artifact in the Platform; use the registered LogExporter only when inspecting bounded diagnostic output instead of publishing an artifact.
The result has these observable properties:
- both occurrences of
C-100receive the same pseudonym withincustomer_id, whileC-200receives a different one; - names retain only their length;
- email values retain two leading and four trailing characters;
- postal codes retain only the first three characters.
rngSeed is the run-level key owner for seeded hashing. Rotating it changes the pseudonyms. The current implementation isolates hashes by statement path, so this example proves linkability only inside the customer_id field; it does not claim automatic joins between unrelated fields or models. An unseeded hash remains deterministic but loses keyed separation and is unsuitable as a protection claim for low-entropy values.
Choosing the outcome¶
Review the complete dataset and threat model, not just the selected converter. Direct identifiers, rare combinations, free text, timestamps, and external linkability can still identify a person after individual fields have been transformed. Preserve a relationship only when the test explicitly requires it, and rotate or separate token domains when it does not.
Hosted Platform workflow¶
The Platform Database View can create a baseline de-identification descriptor from database metadata. See De-identification workflow in the Platform; the resulting XML remains governed by the Core contract documented here.