# PowerBI

## Supported Capabilities

{% tabs %}
{% tab title="Supported Capabilities" %}
**General**

* **Metadata** — metadata extraction and display of asset information (tables, columns, schemas). Types collected: Schema, Virtual Table, Virtual Column, Chart, Dashboard
* **Configurable Collection** — selective ingestion of schemas/workspaces in Data Source Management
  {% endtab %}

{% tab title="Not Supported" %}
**General**

* Profiling
* Preview
* Data Quality
* External Table
* View Table
* Stored Procedure
  {% endtab %}
  {% endtabs %}

Connecting to PowerBI requires credentials that can be configured and found through this guide. These credentials include:

* `Tenant ID`
* `Client ID`
* `Client Secret`

<figure><img src="/files/COa1nYGwqX0jT5JMhXYd" alt=""><figcaption><p>PowerBI</p></figcaption></figure>

To note, for complete Lineage to report sources, with [additional configurations](/transformation-tools/additional-configurations.md) we only support sources from:

* BigQuery
* PostgreSQL
* Microsoft SQL
* Snowflake
* Synapse

{% hint style="warning" %}
**The connector might be rate-limited when it is scanning more than 1000 workspaces.**
{% endhint %}

### Prerequisite

1. Access to Azure Active Directory for service principals.
2. A PowerBI Pro or Premium (Premium per-user or Premium capacity ) workspace.
3. Admin access to PowerBI to change Tenant Settings.

### Creating Service Principals and Security Group

1. Go to Azure Active Directory, under the Manage tab to the left of the screen, look for `App Registrations` and click it.
2. Click on `New Registrations` on the top of the tab and you'll be presented with the screen below.

<figure><img src="/files/5ksMPRfqxxOEPJm3uU16" alt=""><figcaption></figcaption></figure>

3. We recommend entering `decube` as the Name. Click Register when you are done.

<figure><img src="/files/KlD9gjvh5N0avsm5qGhJ" alt=""><figcaption></figcaption></figure>

4. Click Overview on the left tab and take note of the `Client ID` and `Tenant ID` we would require when setting up decube.
5. Click on `Certificates and Secret`s on the left tab again and click on `New Client Secret` as below. We recommend the description to be `'decube client secret`' and the expiry date to be until the end of your contract with us.

**Make sure to copy the Value of the Client Secret and store it somewhere safe like Azure Key Vault. We will need this value for registration.**

<figure><img src="/files/kPfOb9KwhVcr8w5vA3J3" alt=""><figcaption></figcaption></figure>

6. Go back to the Azure Active Directory main page and on the left tab again click on Groups. Click `Create New Group`.

<figure><img src="/files/UiCSv4RXgVeF9J3tYa4Q" alt=""><figcaption></figcaption></figure>

7. Ensure Group Type is `Security.`
8. Click on members and search for the previously configured Service Principal. Here it would be `decube`.

<figure><img src="/files/QdcZaBoNDo2JxJ2VzXzv" alt=""><figcaption></figcaption></figure>

9. Click on `Select` to add the service principal into the group.
10. Click on `Create` and we are done retrieving the `Tenant ID`, `Client ID` and `Client Secret` for this integration.

### Setting up and providing permissions to Service Principal

1. On the main PowerBI workspace page, on the top right corner, click on the gear icon to Setting and below `Governance and Insight` you will find `Admin Portal`.
2. Here in the Admin Portal, find Tenant Settings and search for `Allow service principals to use Power BI APIs under Developer Settings`.
3. Enable it and either `Apply to Entire Organisation` or `Specific Security Group.` Here you can search for the one we created earlier. Example of how it should look like below.

<figure><img src="/files/TVSbIGcSFWxNe5uyyDux" alt=""><figcaption></figcaption></figure>

4. Please enable and do this for the following settings as well under `Admin API` settings.

* `Allow service principals to use read-only admin APIs`
* `Enhance admin APIs responses with detailed metadata`
* `Enhance admin APIs responses with DAX and mashup expressions`

### Additional Configuration for lineage

To build out the lineage, we will need to know the data sources that you've referenced within your PowerBI definitions. You can do a one-time mapping for the sources by going to the Data Sources page > Modify Data Source > Additional Config.

<figure><img src="/files/PXogfIA2n9FlCO2UJWIs" alt=""><figcaption></figcaption></figure>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.decube.io/business-intelligence/powerbi.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
