Masking functionality is configured with the Masking
property in TealeafBasicConfig.plist
inside TLFResources.bundle
.
Applicable iOS controls
These iOS controls can be masked:
UITextField
UITextFieldSecure
UITextView
UITextViewSecure
UIButton
UILabel
UIAlertView
UIAlertControl
Masking levels
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 TLFResources.bundle
.
HasMasking
and HasCustomMask
properties of the Masking
list.
Masking Level | HasMasking Property |
HasCustomMask Property |
---|---|---|
No Masking | NO | |
Standard Masking | YES | NO |
Custom Masking | YES | YES |
To mask a control, add the regular expression under the MaskingIdList
property 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.
Custom masking
Sensitive
dictionary in the TealeafBasicConfig.plist
file.
Configuration | Description |
---|---|
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 Tealeaf. No other configuration is required.
Migrate 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.
- The
TagRegex
property ofTealeafBasicConfig.plist
, which takes comma-separated regular expressions, is replaced with theMaskIdList
array property that takes regular expressions as elements. - The masking levels that used to be set on individual elements and controls (for example, adding key
UITextField
with the value 3 under theMasking
property would setUITextField
with a masking level of 3) is replaced with universal level masking across the application through the propertiesHasMasking
andHasCustomMask
.