Project Settings

Project Key

A Project Key is only required when the FileMasker project contains sensitive metadata. Currently the only sensitive metadata are deterministic seeds. Therefore, if any deterministic seeds are defined in the project then FileMasker shall require a Project Key. This key is used to encrypt the deterministic seeds before being saved to the project file. Therefore, the key shall also be required whenever seeds need to be decrypted such as when the user attempts to edit or view a seed, or execute a project that contains seeds.

The Project Key is not stored anywhere. Only the hash of the key is stored in the project file so that the key can later be validated as required.

If you forget the Project Key then you can press the Delete Key button; however, this shall erase all seeds from the project file.

FileMasker shall automatically prompt you to create a Project Key if it is required.



This defines the default determinism for masks in this project.

Every individual mask that can be run in both a deterministic and non-deterministic manner will have its own Determinism tab. The default of each such mask's Determinism tab is to use this global default setting in Project Settings.


Default Seed

Any mask that uses deterministic mode masking and has not overridden the seed within the mask's own private Determinism tab shall use this seed value.

Different seed values shall generate different masked results.

Default determinism for masks

Unless a mask overrides the determinism setting within its own Determinism tab, the determinism setting defined here shall be used. This can be considered a global default setting.


When a mask is run in deterministic mode it means that it shall always produce the same masked value for the same original value provided that the seed setting and all other mask configuration parameters remain the same.

For example, if the Person Last Name mask for the original value "Smith" produces a masked value of "Baker" then "Smith" shall always be replaced with "Baker" wherever it occurs. This is also true on repeated masking runs.

Ignore case of original string values for calculating determinism

Some text-based masks calculate a deterministic masked value using the original value as input. Masks that do this include Company Name and Person Name masks. This setting defines whether the calculation should be case-sensitive of the original value or not.

For example, if this 'Ignore case' setting is selected (the default) and "Smith" is masked with "Baker", then "smith", "SMITH" and "sMiTh" shall also be masked with "Baker". If 'Ignore case' is not selected then each masked value would be different. 

Not deterministic

A mask run in non-deterministic mode means that the masked value shall be unpredictable for each occurrence of the original value.

For example, if the first occurrence of "Smith" is masked to "Baker", then the next occurrence of "Smith" may be masked to "Grange", and the next may be masked to "Bourke", and so on. The next masking run may produce an entirely different set of masked values.



This defines the default date/time input/output formats to be used by DateTime masks whenever those masks specify 'Use Date/Time format in Project Settings'.

By default this panel is blank because of the very wide range of possible date/time formats and therefore a default would likely not be useful for a given project.

For details on the format settings please refer to the DateTime Mask.



Missing Field Definitions

This defines the default behavior of FileMasker whenever a field definition cannot be found in an input file.


Each Field definition can override this setting but the default of each Field is this setting in Project Settings.

This setting is mostly relevant to JSON files that contain multiple format records.

For example, suppose that a file contains two different types of records FormatA and FormatB.
It may be that only FormatA records contain a field '/fmta/serial_number' that requires masking whereas this field is not found in FormatB. Therefore, by using the Ignore setting FileMasker would mask '/fmta/serial_number' whenever it is encountered and ignore the missing field in FormatB records. Using a setting of Error (the project default) would cause the masking run to terminate with error immediately whenever a field definition cannot be found in a record.