Masking functionality is configured with the
Masking property in
Applicable iOS controls
These iOS controls can be masked:
A masking level tells the framework how much of the content to preserve. There are two types of masking levels: standard and custom.
The standard masking level replaces the original content with an empty string.
|Log Level||Description||Text Entered by User||Text After Privacy|
|Standard||Data is blocked.||"Password123"||""|
|Custom||Letters, numbers, and symbols are masked by using different characters.||"Password123"||"Xxxxxxxx#999"|
How to enable masking
Masking functionality can be configured with the
Masking property of
TealeafBasicConfig.plist file inside
HasCustomMaskproperties of the
To mask a control, add the regular expression under the
Masking property to match the ID of the control. All the controls whose
IDs match with the regular expression mask based on the configured masking level.
Example: The regular expression
^9[0-9][0-9][0-9]$ matches all the controls
whose IDs have four characters, start with 9 and the remaining characters range from 0-9.
Sensitivedictionary in the
|capitalCaseAlphabet||All uppercase letters are masked with the string value for the capitalCaseAlphabet key. In the example, the value is set to X. It is applied for logging levels 2 and 3 in the example.|
|smallCaseAlphabet||All lowercase letters are masked with the string value for the smallCaseAlphanet key. In the example, this value is set to x.|
|Number||All numerals are masked with the string value for the number key. In this example, this value is set to 9.|
|Symbol||All non-alphanumeric characters, such as _ or @, are masked with the string value of the symbol key. In the example, this value is set to #.|
Configuring data blocking
To apply data masking, set the standard masking level.
When the configuration is applied to the controls, no values are captured and transmitted to Experience Analytics. No other configuration is required.
Migrating old masking functionality to new masking functionality
- Previous versions of the SDK support four levels of masking, which is no longer the case with the current SDK version.
- The current version of the SDK supports only two levels of masking: standard and custom levels.
TealeafBasicConfig.plist, which takes comma-separated regular expressions, is replaced with the
MaskIdListarray property that takes regular expressions as elements.
- The masking levels that used to be set on individual elements and controls (for example, adding
UITextFieldwith the value 3 under the
Maskingproperty would set
UITextFieldwith a masking level of 3) is replaced with universal level masking across the application through the properties