Masking functionality is configured with the Masking property in TealeafBasicConfig.plist inside TLFResources.bundle.
Applicable iOS controls
These iOS controls can be masked:
UITextFieldUITextFieldSecureUITextViewUITextViewSecureUIButtonUILabelUIAlertViewUIAlertControl
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
TagRegexproperty ofTealeafBasicConfig.plist, which takes comma-separated regular expressions, is replaced with theMaskIdListarray property that takes regular expressions as elements. - The masking levels that used to be set on individual elements and controls (for example, adding key
UITextFieldwith the value 3 under theMaskingproperty would setUITextFieldwith a masking level of 3) is replaced with universal level masking across the application through the propertiesHasMaskingandHasCustomMask.