Appearance
Power BI Report Link and Options
Overview
Go to the Dashboard/report area of the backend and click the button Add new report.
A form will display with the main elements to provide for report linking. The fields are:
| Name | Required | Description |
|---|---|---|
| Report Name | No | Name of the report. This will be overwritten when refreshing scanner data |
| Report ID | Yes | Power BI Id of the report (uuid with 36 characters) |
| Dataset ID | Yes | Power BI Id of the dataset/semantic model used by the report (uuid with 36 characters) |
| Report Cache Duration | Yes | Duration in seconds, default 86400 (24h), minimum 1800 (30min). After scanner data is refreshed, it will stay cached until the end of the specified duration. When the cache becomes invalid, the first user to display a report will generate a call to the Power BI API for refreshing the scanner data. |
| RLS configured on the report | No | Check if the report has RLS. This will query and cache the scanner data at user level in order to use RLS roles. |
| Use a service principal | No | Specify if a service principal will be used to query report data. If a Service principal is defined here, all users of this report will authenticate through the Service Principal. You can also define a Service Principal at user level to only force a subset of your users to authenticate through the Service Principal. |
| Schedule scanner data cache refresh | No | Define a CRON expression to refresh the scanner data at specific times. For more precise cache refresh timings, we recommend using our API. |
Scanner Data Caching
For marking text on web pages and displaying report popups, we need to query the values of some tables and columns of the linked report's dataset. This is what we call scanner data.
We query the following values:
- All the content in the tables
scanner_definitionandscanner_synonyms. - The values of columns specified for each analysis and synonyms in the aforementioned tables.
To avoid flooding the Power BI dataset (and your capacities) with queries on each new page opened by each user, we cache this data at two levels:
- On each user's device
- On our servers
When a user opens a new web page, the extension will try to retrieve the scanner data in the order described below, going to the following step if the current cache is empty or invalid:
- Get the values from the local cache on the user's device
- Get the values from the server cache
- Get the values from the Power BI dataset through the Power BI API
INFO
Scanner data refreshes initiated from the back-end interface or our API will always query the dataset through the Power BI API and import new values (thus updating the server cache).
Reports with RLS
By default, scanner data caches are saved at the report level. This has the advantage of distributing the same server cache to all users of the report, thus reducing to a minimum the queries on the underlying dataset.
Datasets with RLS rules usually display different data to different users, so the list of values to mark on the page may vary for each user. In this case, the option RLS configured on the report should be checked. This will force cache saving at the user level, so that each user has their own cache.
Service Principal
By default, the Power BI API requests will use the token associated to the connected user to authenticate. It is possible to authenticate using a Service Principal.
The Service Principal can be associated to two objects:
| Object | Description |
|---|---|
| Report | All Power BI API calls related to the report will use the Service Principal for authentication. |
| User | Only calls to the Power BI API initiating from the specified user will use the Service Principal. Other users can use their personal token for authentication (only if no Service Principal is defined at the report level). |
Most of the time, you would associate the Service Principal at the report level. But if you want to have only a subset of your users connect with the Service Principal, then it should be associated to those users.
WARNING
When using a Service Principal, you need to have the report in a premium or embedded capacity to respect Microsoft licensing terms.
See our documentation on Service Principals for more information.
Schedules
The scanner data cache can be refreshed on a schedule.
You can define here the CRON expression for triggering the refresh and the timezone to use. The smallest time intervall accepted for Scanner Data refresh is 30 min.
