Normalizing Active Directory Fields
Fuzzy Fix is a binary that cleans and normalizes Active Directory (AD) data, supporting the normalization of AD fields before map_maintainer uses it or generates mapping files, helping keep the output clean, consistent, and free of duplicate variations.
In AD fields, the same value can appear in multiple variations due to differences in spelling, formatting, abbreviations, or casing. Although these values refer to the same entity, they are treated as distinct entries in reports and mappings.
For example, an AD field may contain the following variations for the same location:
- Massachusetts
- Massachusets
- Masachussetts
Without normalization, these variations lead to duplicate entries, inconsistent mappings, and less reliable reporting.
The fuzzy fix resolves this issue by identifying similar values within AD fields and normalizing them into a single, standardized form before the data is consumed by downstream components. This results in cleaner input for map_maintainer and more consistent, accurate outputs in reports and mapping files.
Data Flow and Dependencies
Fuzzy Fix requires data generated by the LDAP collector from the client. This data contains the AD field values that are evaluated and normalized during the fuzzy matching process. By default, the LDAP collector data is stored in <DATA_DIR>/ldap.
Once the LDAP collector output is available, it can be processed by Fuzzy Fix to normalize the AD field values.
After processing, the normalized results are written as .mod files in the same input directory, ensuring that the data is updated in place and immediately available for downstream use. These .mod files can also be used as a mapping source in the Core Server Web Interface under the Mapping Configuration section, allowing the normalized LDAP data to be selected as input when creating or configuring mappings.
Make sure that the LDAP collector data is sent to the Core Server.
Normalized Active Directory Fields
By default, fuzzy matching normalization is applied only to the following set of Active Directory fields:
- l (location)
- department
- division
Only values from these fields are evaluated and normalized using fuzzy matching logic. All other AD fields are left unchanged.
Configuration
This section is for administrators and advanced users who want to manually execute or customize the Fuzzy Fix binary.
Running the Binary Manually
If you want to run the binary manually, follow the instructions below:
- Windows
- Unix
-
Open a command prompt with Administrator level privileges.
-
Go to the bin directory, which is by default in
C:\Program Files\OpeniT\Core\bin, run the command:Command Syntaxcd <bin_dir>Examplecd C:\Program Files\OpeniT\Core\bin -
Run the command:
Command Syntaxopenit_fuzzyfix -
Verify that the ldap directory, which is by default in
C:\ProgramData\OpeniT\Data\ldap, contains a.modfile.
-
Go to the bin directory, which is by default in
/opt/openit/bin, run the command:Command Syntaxcd <bin_dir>Examplecd /opt/openit/bin -
Run the command:
Command Syntax./openit_fuzzyfix --settings-dir <settings-dir> --input-directory <input-directory> --output <output> --log-directory <log-directory>Example./openit_fuzzyfix --settings-dir /opt/openit/bin --input-directory /opt/openit_data/ldap --output /opt/openit_data/ldap --log-directory /var/opt/openit/debug -
Verify that there is a
.modfile created in the ldap directory in your defined data_dir (<ROOT_DATA_DIR>) upon Open iT Core Server installation.
Command-Line Parameters
In addition to the default behavior, you can use the following optional parameters when running the binary:
| Parameters | Description |
|---|---|
--indput-directory <input-directory> | Use this to specify the directory containing the CSV or TSV files to normalize. |
--output <output> | Use this to specify the directory where the output file with normalized AD fields will be stored. |
--debug-output <debug-output> | Use this to specify the directory where debug or diagnostic files will be written. |
--debug | Use this to enable debugging. This is false by default. |
--log-directory <log-directory> | Use this to specify the directory where run logs will be written. |
--settings-dir <settings-dir> | Use this to specify the directory where the appsettings.json is located. The default value is the current working directory. |
--affixes <affixes> | Use this to specify a comma-separated list of affixes to strip. |
--model <model> | Use this to specify the embedding or encoder identifier. The default and currently the only available option is paraphrase-multilingual-MiniLM-L12-v2. |
--column-names <column-names> | Use this to specify one or more columns or fields that contain the phrases to normalize. The default is l, department, and division. |
--threshold <threshold> | Use this to specify the combined similarity threshold. The default is 0.85. |
--vector-weight <vector-weight> | Use this to specify the weight of the vector-based similarity (range: 0–1). The default is 0.5. |
--fuzzy-weight <fuzzy-weight> | Use this to specify the weight of the fuzzy heuristics (range: 0–1). The default is 0.5. |
--version | Use this to display the version information of the binary. |
-?, -h, --help | Use this to display help and usage information. |
These parameters allow you to control how Fuzzy Fix processes input data.
Default values for these parameters are specified in the <BIN_DIR>/appsettings.json configuration file. You can change this either by editing the file or by providing values when manually executing the binary.
Updating the Configuration File
The configuration file contains the default values for the Fuzzy Fix binary parameters, including the columns to normalize and other runtime settings.
You can update this file to change the default behavior of the binary, such as parameter values or normalized fields.
- Windows
- Unix
-
Go to the bin directory, which is by default in
C:\Program Files\OpeniT\Core\bin. -
Look for the configuration file
appsettings.jsonand open it with a text editor. -
Update the values of the relevant parameters as needed. For example, if you want to change the default columns to normalize, modify
ColumnNamesaccordingly.appsettings.json"ColumnNames": [
"l",
"department",
"division"
], -
Save the changes.
-
Go to the bin directory, which is by default in
/opt/openit/bin. -
Look for the configuration file
appsettings.jsonand open it with a text editor. -
Update the values of the relevant parameters as needed. For example, if you want to change the default columns to normalize, modify
ColumnNamesaccordingly.appsettings.json"ColumnNames": [
"l",
"department",
"division"
], -
Save the changes.