Kafka Connect MaskField SMT Usage Reference for Confluent Cloud or Confluent Platform

The following provides usage information for the Apache Kafka® SMT org.apache.kafka.connect.transforms.MaskField.

Description

Can be used for the following scenarios:

  • Replace any string or numeric field using the replacement property.
  • Mask specified fields with a valid null value for the following field types:
    • Boolean: Boolean.FALSE
    • Byte: (byte) 0
    • Short: (short) 0
    • Integer: 0
    • Long: 0L
    • Float: Of
    • Double: 0d
    • BigInteger: BigInteger.ZERO
    • BigDecimal: BigDecimal.ZERO
    • Date: new Date(0)
    • String: “”

Use the concrete transformation type designed for the record key (org.apache.kafka.connect.transforms.MaskField$Key) or value (org.apache.kafka.connect.transforms.MaskField$Value).

Examples

Mask value

This configuration snippet shows how to use MaskField to mask the value of a field.

"transforms": "MaskField",
"transforms.MaskField.type": "org.apache.kafka.connect.transforms.MaskField$Value",
"transforms.MaskField.fields": "string_field"

This masks string_field, transforming the original message as seen here:

{"integer_field":22, "string_field":"foo"}

into the result here:

{"integer_field":22, "string_field":""}

Replace value

This configuration snippet shows how to use MaskField to replace the value of a field. There are three transformations in the example. The first and second replace a value in a single field. The third is applied to both office and mobile phone number fields.

"transforms": "SSNMask", "IPMask", "PhoneMask",

"transforms.SSNMask.type": "org.apache.kafka.connect.transforms.MaskField$Value",
"transforms.SSNMask.fields": "SSN",
"transforms.SSNMask.replacement": "***-***-****",

"transforms.IPMask.type": "org.apache.kafka.connect.transforms.MaskField$Value",
"transforms.IPMask.fields": "IPAddress",
"transforms.IPMask.replacement": "xxx.xxx.xxx.xxx",

"transforms.PhoneMask.type": "org.apache.kafka.connect.transforms.MaskField$Value",
"transforms.PhoneMask.fields": "office,mobile",
"transforms.PhoneMask.replacement": "+0-000-000-0000"

Tip

For additional examples, see Mask Field for managed connectors.

Properties

Name Description Type Default Valid Values Importance
fields Names of fields to mask. list   non-empty list high
replacement Custom value replacement applied to all fields values. string null Non-empty string with a numeric or text value that can be converted to fields type(s). low

Predicates

Transformations can be configured with predicates so that the transformation is applied only to records which satisfy a condition. You can use predicates in a transformation chain and, when combined with the Kafka Connect Filter (Kafka) SMT Usage Reference for Confluent Cloud or Confluent Platform, predicates can conditionally filter out specific records. For details and examples, see Predicates.