Skip to content

Masking

Edition: Community and Enterprise

The kind a requester declares for each parameter decides how its values are shown to the business approver, the auditor and the requester after submit. The DBA reviewer sees no value at all. A masked value never shows the original length: the hidden part is always ****. A value too short to keep a tail is shown as [hidden]. Separators (space, -, ., /, (, ), +) are removed first.

Kind Shown Example (fake) Masked
national_id last 4 characters 29001011234567 ****4567
card last 4 characters 4111 1111 1111 1111 ****1111
account last 4 characters EG380019000500000000263180002 ****0002
phone last 3 characters +20 100 123 4567 ****567
email first character, ***@, the domain nour.hassan@example.com n***@example.com
amount shown; hidden when masking.amount: hide is set in sealfix.yaml 1500.00 1500.00
text hidden closed at customer request [hidden]
id shown 48213 48213
code shown while it is a code: 1 to 32 ASCII letters, digits, _, - or ., starting with a letter or a digit, with at most 6 digits; anything else is hidden suspended suspended

Declare sensitive data with its real kind

id, text, amount and code are weak kinds. Check C8 refuses one bound to a sensitive column, and check V1 refuses a value of one that looks like customer data. V1 also refuses a code value that is not a code. Use code for a status, a flag or a reason code that the business approver must read to judge the change; it is at most suggested, for a parameter or a column named as a status, a flag or a reason code, and you confirm it. code is for a value that names no one, never for a person's name or a username: a one-word name passes as a code. Mark name and username columns sensitive on the target, so that C8 refuses code on them. C8 then refuses text there as well, and no kind fits a name.