Masking Functions
Mask and anonymize sensitive data
Masking Functions
Transform sensitive data into anonymized or partially masked values while preserving format and structure.
Contact Data Masking
mask_email_domain
Mask email addresses while preserving format.
Category: Contact
Type: Transformer
Data Types: email, string
Replaces the domain with a fake one and partially masks the local part.
columns:
- name: email
function: mask_email_domain
Example:
- Input:
[email protected] - Output:
j*********[email protected]
mask_phone_partial
Partially mask phone numbers, showing first 3 and last 4 digits.
Category: Contact
Type: Transformer
Data Types: string, phone
columns:
- name: phone_number
function: mask_phone_partial
Example:
- Input:
(555) 123-4567 - Output:
(555) ***-4567
Identity Masking
mask_ssn
Mask Social Security Numbers showing only last 4 digits.
Category: Person
Type: Transformer
Data Types: string
columns:
- name: ssn
function: mask_ssn
Example:
- Input:
123-45-6789 - Output:
***-**-6789
mask_credit_card
Mask credit card numbers showing only last 4 digits.
Category: Finance
Type: Transformer
Data Types: string, finance
columns:
- name: card_number
function: mask_credit_card
Example:
- Input:
4111-1111-1111-1234 - Output:
****-****-****-1234
Name Masking
scramble_name
Scramble characters in names while preserving structure (capitalization, length).
Category: Person
Type: Transformer
Data Types: string, text
columns:
- name: first_name
function: scramble_name
- name: last_name
function: scramble_name
Example:
- Input:
John Smith - Output:
Xkpl Rqtmv
initial_last_name
Replace first name with initial, keep last name.
Category: Person
Type: Transformer
Data Types: string, text
columns:
- name: full_name
function: initial_last_name
Example:
- Input:
John Michael Smith - Output:
J. Michael Smith
Address Masking
mask_street_number
Replace street numbers with random ones.
Category: Location
Type: Transformer
Data Types: string, text
columns:
- name: street_address
function: mask_street_number
Example:
- Input:
123 Main Street, Apt 4B - Output:
789 Main Street, Apt 4B
city_to_region
Replace city with region/state for geographic privacy.
Category: Location
Type: Transformer
Data Types: string, text
columns:
- name: city
function: city_to_region
Example:
- Input:
San Francisco - Output:
California
Generic Masking
mask_partial
Partially mask values showing only last few characters.
Category: Transform
Type: Transformer
Data Types: string, text
| Parameter | Type | Default | Description |
|---|---|---|---|
visible_chars | integer | 4 | Characters to show at end |
mask_char | string | * | Character for masking |
columns:
- name: account_number
function: mask_partial
parameters:
visible_chars: 4
mask_char: "X"
Example:
- Input:
ABCD12345678 - Output:
XXXXXXXX5678
nullify
Set value to NULL for complete anonymization.
Category: Transform
Type: Transformer
Data Types: any
columns:
- name: sensitive_notes
function: nullify
Output: NULL
anonymize
Generic anonymization with multiple strategies.
Category: Transform
Type: Transformer
Data Types: any
| Parameter | Type | Default | Description |
|---|---|---|---|
strategy | string | hash | hash, random, mask, null |
preserve_type | boolean | true | Preserve data type |
Strategies:
hash: Consistent hash (same input = same output)random: Random replacement valuemask: Partial masking (first/last char visible)null: Set to NULL
columns:
- name: customer_id
function: anonymize
parameters:
strategy: hash
preserve_type: true
Hashing Functions
hash_sha256
Generate SHA256 hash for irreversible anonymization.
Category: Text
Type: Utility
Data Types: string
| Parameter | Type | Default | Description |
|---|---|---|---|
salt | string | empty | Salt for hashing |
columns:
- name: user_id
function: hash_sha256
parameters:
salt: "my-secret-salt"
Example:
- Input:
user123 - Output:
a1b2c3d4e5f6...(64 character hex)
hash_consistent
Create consistent hash for deterministic masking.
Category: Text
Type: Utility
Data Types: string
| Parameter | Type | Default | Description |
|---|---|---|---|
salt | string | default_salt | Salt for hashing |
Same input always produces same output (useful for foreign keys).
columns:
- name: external_id
function: hash_consistent
parameters:
salt: "consistent-salt"
Example:
- Input:
ABC123 - Output:
a1b2c3d4(8 character hash, consistent)
Format Preservation
preserve_format
Preserve original format while replacing content.
Category: Text
Type: Utility
Data Types: string, text
| Parameter | Type | Default | Description |
|---|---|---|---|
replacement_char | string | X | Character for letters |
Replaces letters with the replacement character (matching case) and digits with random digits.
columns:
- name: reference_code
function: preserve_format
Example:
- Input:
ABC-123-xyz - Output:
XXX-456-xxx
Masking Strategy Examples
Customer PII
tables:
- name: customers
columns:
- name: first_name
function: scramble_name
- name: last_name
function: scramble_name
- name: email
function: mask_email_domain
- name: phone
function: mask_phone_partial
- name: ssn
function: mask_ssn
Financial Data
tables:
- name: payments
columns:
- name: card_number
function: mask_credit_card
- name: account_number
function: mask_partial
parameters:
visible_chars: 4
- name: billing_address
function: mask_street_number
Deterministic Masking (Preserve Relationships)
tables:
- name: users
columns:
- name: user_id
function: hash_consistent
parameters:
salt: "user-salt"
- name: orders
columns:
- name: user_id
function: hash_consistent
parameters:
salt: "user-salt" # Same salt = same mapping
Related Functions
- Date Transformers - Date masking
- Numeric Transformers - Number masking