Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file modified content/_apiSource/TOMWrapper.dll
Binary file not shown.
131 changes: 119 additions & 12 deletions content/_apiSource/TOMWrapper.xml

Large diffs are not rendered by default.

Binary file modified content/_apiSource/TabularEditor3.Shared.dll
Binary file not shown.
145 changes: 145 additions & 0 deletions content/_apiSource/TabularEditor3.Shared.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified content/assets/images/impersonation-dropdown.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified content/assets/images/select-impersonation.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
17 changes: 17 additions & 0 deletions content/onboarding/refresh-preview-query.md
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,23 @@ Once the impersonation is enabled, the **Impersonation..** button is checked, an

When auto-refresh is enabled on a data view, changing the impersonation will immediately refresh the view.

## CustomData

The CustomData feature allows you to pass a custom string value that can be used in DAX expressions, typically for implementing dynamic row-level security scenarios. This feature can be combined with any of the impersonation options described above, including **No Impersonation**.

![Select Impersonation](~/content/assets/images/impersonation-customdata.png)

When you enter a value in the **CustomData** input field, Tabular Editor 3 adds the [`CustomData` property](https://docs.microsoft.com/en-us/analysis-services/instances/connection-string-properties-analysis-services?view=asallproducts-allversions#customdata) to the connection string. This value can then be retrieved within your DAX expressions using the [`CUSTOMDATA()` function](https://dax.guide/customdata/).

CustomData is commonly used in implementing dynamic row-level security when an application uses custom authentication. The value you provide can be leveraged in role filter expressions to control which rows users can see based on the custom data passed through the connection string.

This feature is particularly useful in **Power BI Embedded** scenarios, where you can natively utilize CustomData to add row filters that pass free text (strings) to leverage dynamic row-level security in embedded reports, dashboards, and tiles.

**Example use case:** You might pass a user's department or region as CustomData, and then use that value in a role's filter expression like:
```dax
'Department'[DepartmentCode] = CUSTOMDATA()
```

# VertiPaq Analyzer

Tabular Editor 3 includes a version of the open-source [VertiPaq Analyzer](https://www.sqlbi.com/tools/vertipaq-analyzer/) tool, created by [SQLBI](https://sqlbi.com). VertiPaq Analyzer is useful to analyze VertiPaq storage structures for your Power BI or Tabular data model.
Expand Down