Repeaters

Repeaters are values that, once created and saved in the database, can be used again so that the same original value ("RepeaterKey") is always replaced with the same masked value ("RepeatingValue").

Table of contents
Repeaters configuration
Repeaters persistence
Example

Repeaters configuration

Definition of repeating is configured in the Package.xaml file under the Properties of masking activities in the section Input: Repeating. If this section is not visible in the Properties, the repeating feature is not available for that masking activity. Names of repeaters can be passed in the string format, but it is recommended that you use custom classes and constants so their usage is consistent and more easily understandable throughout the package.

Example: Class Repeaters and its constants which are going to be used for repeating, added in Code.cs file:

namespace BizDataXPackage
{
    public static class Repeaters
    {
        public const string FirstNameRepeater = "FirstNameRepeater";
        public const string LastNameRepeater = "LastNameRepeater";
    }
}

Repeaters persistence

Repeaters can be persisted, which means that repeater values used in one masking are saved and used in another masking. This can be invaluable when masking related databases, or when masking the same database in a regular interval as the resulting masked database will be consistent.

Persistence configuration is required in order to reuse existing repeaters during data masking.

The following databases support repeater persistence:

Repeaters are loaded from and saved to the defined database. Each database requires a different persistence configuration that is added to the App.config file during NuGet package installation and can be configured once the installation is done. Only one configuration can be used at a time.

For SQL Server databases, repeater persistence can be configured to work on the fly, i.e. repeater values are saved after they are used in the package. This is recommended in most cases as it is faster and more secure since repeater values are saved even if package execution fails. If you are using restartability in your package, using repeater persistence on the fly is mandatory. The opposite of using repeater persistence on the fly is loading and saving repeater values only at specific points during package execution, in which case you will need to use activities from the Repeating group.

Example

Before masking:

First name Last name
Helen Mann
Noel Rogers

After masking:

First name Last name
Jena Larsen
Mark Grant

Saved values:

RepeaterKey RepeaterValue
Helen Jena
Noel Mark

As long as repeaters are used, in every following execution, Helen will be Jena and Noel will be Mark.