Documentation

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:


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

ParameterTypeDefaultDescription
visible_charsinteger4Characters to show at end
mask_charstring*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

ParameterTypeDefaultDescription
strategystringhashhash, random, mask, null
preserve_typebooleantruePreserve data type

Strategies:

  • hash: Consistent hash (same input = same output)
  • random: Random replacement value
  • mask: 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

ParameterTypeDefaultDescription
saltstringemptySalt 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

ParameterTypeDefaultDescription
saltstringdefault_saltSalt 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

ParameterTypeDefaultDescription
replacement_charstringXCharacter 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