Sequence Mask

The Sequence mask can only be created as a Mask Component.

The purpose of the Sequence Mask Component is to define a re-usable sequence of masks rather than having to explicitly create the same sequence of masks in every column where it is required.

For example, suppose that an account ID column appears in many tables in a database. Such a column contains a consolidation of different types of account IDs that the masking requirement varies according to the type of each value.

Note: In cases where a foreign key or user-defined dependency exists, masked values would automatically be copied to all dependent columns and therefore only one column in the dependency chain would need to have masks assigned. The use of the Sequence mask is for situations where no such convenient automatic dependencies exist and the masking requirement involves a sequence of masks for a column, and that masking requirement may be needed in many different columns that can even be in different databases.

The masking requirements for the account ID column are:

- If the length of the value is <= 8 and the first character starts with 'A' then preserve the first 2 characters and Randomize the remainder.

- If the length of the value is <= 8 and the first character does not starts with 'A' then preserve the first character and last character and Randomize the remainder.

- If the length of the value is > 8 and <= 16 then preserve the last four characters and Randomize the remainder.

- For any other value, use the Redact mask.

Therefore, instead of manually defining the above sequence of 4 masks for every column throughout the database that contains an account ID column, a Sequence Mask can be defined only once and saved as a Mask Component. All columns that require this mask sequence can now simply refer to the Mask Component. This also makes it easy to maintain because if the sequence requirement changes in future then only the one Mask Component definition needs to be updated and all columns that reference the Mask Component shall automatically pick-up the new configuration.


To create the Sequence Mask, open the Components->Masks tab.

Click the Create... button, then choose the Sequence mask from the list and click OK.


An empty Sequence Mask form shall appear..


Click on the Add... button to create each mask required for the sequence. After performing this step for this example, the Sequence Mask is shown below:


Click OK. A Save dialog shall appear to save the Mask Component. In this example the component is being saved as "my_account_id_seq":


After the Sequence Mask is saved as a Mask Component, it can then be used as a mask for any column as described in Create a Mask Using the Mask Component.


After adding the Mask Component containing the sequence mask, it shall be displayed in the masking project with only a brief listing of the types of masks contained. In this example, this is shown as "SEQUENCE (4 masks) : Randomize, Randomize, Randomize, Redact" as shown in the Masks Summary tab below. To see the full details you would need to open its Mask Component definition under the Components tab.


A sample before/after masking result for this example Sequence Mask is shown below:


Where Condition

If a Where condition is specified in the Sequence mask then it shall be effective for every mask contained by the Sequence mask.

If a contained mask also has a Where condition then it shall be ANDed with the Sequence mask's Where condition.

You can verify the full mask expression including any expanded Where condition(s) in the run plan shown in the Execution Control panel, as described in "Runtime Expansion" below.

Note: You do not need to perform a masking run to create and view the run plan, you can simply perform a Compile.


Runtime Expansion

At runtime, DataVeil shall expand the Sequence mask to show each contained mask in detail.

This is shown in the Execution Control panel:


This is shown in the Masking Report: