Obfuscating files


This section describes how to obfuscate a VPAX file and how to deobfuscate it.

How to obfuscate a VPAX file

You can obfuscate a VPAX file via:

Obfuscation via a command line tool

To obfuscate a VPAX file with the command line, you can use the VertiPaq-Analyzer Obfuscator. This tool is a free and open source .NET library that enables the obfuscation of VertiPaq Analyzer files.

Download it and read the documentation of the tool here.

Using VertiPaq-Analyzer Obfuscator

Suppose you want to obfuscate the Contoso 1M file used in the sample walkthrough section and suppose you call the file Contoso 1M.vpax.

Put the obfuscator executable and the Contoso 1M.vpax file in the same folder. Then, open the folder via the command line.

To visualize the help options, type the following

vpax-obfuscator.exe obfuscate

To obfuscate the file, type the following:

vpax-obfuscator.exe obfuscate --vpax "Contoso 1M.vpax"

In the same folder, the obfuscator tool will create the following files:

  • Contoso 1M.ovpax: This is the obfuscated VPAX file.
  • Contoso 1M.dict: This is the dictionary to load in DAX Optimizer to deobfuscate the file.

NOTE: In case you need to upload to DAX Optimizer another version of the same VPAX file after you fixed or ignored issues and want to maintain obfuscation, you have to proceed with incremental obfuscations. To do so, you have to give to VertiPaq-Analyzer Obfuscator the obfuscation dictionary of the previous version of the model so that it can obfuscate the following one. Supposing the dictionary of the current version is called Contoso 1M.dict, in that case you have to type:
vpax-obfuscator.exe obfuscate --vpax "Contoso 1M.vpax" --dictionary "Contoso 1M.dict".
Note that, in case you create multiple versions of the same VPAX file after fixing issues, the names of the files can create confusion. In this case, you can proceed with incremental obfuscations using the optional parameters like so:
vpax-obfuscator.exe obfuscate --vpax "Contoso 1M.vpax" --dictionary "Contoso 1M.dict" --vpax "Contoso 1M - v2.vpax" --output-vpax "Contoso 1M - v2 obfuscated.ovpax" --output-dictionary "Contoso 1M - v2 obfuscated.dict"
This will create:

  • Contoso 1M - v2 obfuscated.ovpax: The obfuscated VPAX file of version 2 (v2) that contains the issues fixed.
  • Contoso 1M - v2 obfuscated.dict: The obfuscation dictionary of the version 2 (v2) of the VPAX that the issues fixed.

Obfuscation via Bravo for Power BI

NOTE: This section is coming soon…

Obfuscation via DAX Studio

NOTE: This section is coming soon…

Obfuscation via Tabular Editor

NOTE: This section is coming soon…

How to deobfuscate a VPAX file

When you load an obfuscated VPAX file into DAX Optimizer, it recognizes that this is an obfuscated model.

The obfuscation badge in DAX Optimizer

In that case, the measures’ names in the columns will not be recognizable.

Obfuscated measures in DAX Optimizer

Even the measures’ names in the DAX code will not be recognizable.

Obfuscated measures in the code in DAX Optimizer

To deobfuscate the VPAX model:

  • Click on Obfuscated. A pop-up will appear, explaining the obfuscation feature.

Deobfuscating a VPAX file in DAX Optimizer

  • Click on Next, add the deobfuscation dictionary, and click on Deobfuscate. This allows DAX Optimizer to recognize the names of the measures.

Deobfuscating a VPAX file in DAX Optimizer

NOTE: By checking the Save dictionary in local cache box, the deobfuscation dictionary will be saved in your browser’s cache, not on our servers, providing data security. By doing so, the file will remain deobfuscated: this way, you do not need to load the deobfuscation dictionary every time you analyze that file, after closing the browser.

NOTE: If you enabled the Cache obfuscation dictionaries toggle in Settings > General, the Save dictionary in local cache box will be automatically checked. Learn how to do so in the paragraph Advanced options: Cache obfuscation dictionaries in managing settings.

Last update: Jun 29, 2024