PowerBI Report Server
Important Capabilities
| Capability | Status | Notes | 
|---|---|---|
| Extract Ownership | ✅ | Enabled by default | 
Use this plugin to connect to PowerBI Report Server. It extracts the following:
Metadata that can be ingested:
- report name
 - report description
 - ownership(can add existing users in DataHub as owners)
 - transfer folders structure to DataHub as it is in Report Server
 - webUrl to report in Report Server
 
Due to limits of PBIRS REST API, it's impossible to ingest next data for now:
- tiles info
 - datasource of report
 - dataset of report
 
Next types of report can be ingested:
- PowerBI report(.pbix)
 - Paginated report(.rdl)
 - Linked report
 
Configuration Notes
See the
- Microsoft Grant user access to a Report Server doc
 - Use your user credentials from previous step in yaml file
 
Concept mapping
| Power BI Report Server | Datahub | 
|---|---|
Paginated Report | Dashboard | 
Power BI Report | Dashboard | 
Mobile Report | Dashboard | 
Linked Report | Dashboard | 
Dataset, Datasource | N/A | 
CLI based Ingestion
Starter Recipe
Check out the following recipe to get started with ingestion! See below for full configuration options.
For general pointers on writing and running a recipe, see our main recipe guide.
source:
  type: powerbi-report-server
  config:
    # Your Power BI Report Server Windows username
    username: username
    # Your Power BI Report Server Windows password
    password: password
    # Your Workstation name
    workstation_name: workstation_name
    # Your Power BI Report Server host URL, example: localhost:80
    host_port: host_port
    # Your alias for Power BI Report Server host URL, example: local_powerbi_report_server
    server_alias: server_alias
    # Workspace's dataset environments, example: (PROD, DEV, QA, STAGE)
    env: DEV
    # Your Power BI Report Server base virtual directory name for reports
    report_virtual_directory_name: Reports
    #  Your Power BI Report Server base virtual directory name for report server
    report_server_virtual_directory_name: ReportServer
    # Enable/Disable extracting ownership information of Dashboard
    extract_ownership: True
    # Set ownership type
    ownership_type: TECHNICAL_OWNER
sink:
  # sink configs
Config Details
- Options
 - Schema
 
Note that a . is used to denote nested fields in the YAML recipe.
| Field | Description | 
|---|---|
host_port ✅  string  | Power BI Report Server host URL | 
password ✅  string  | Windows account password | 
report_server_virtual_directory_name ✅  string  | Report Server Virtual Directory URL name | 
report_virtual_directory_name ✅  string  | Report Virtual Directory URL name | 
username ✅  string  | Windows account username | 
extract_ownership  boolean  | Whether ownership should be ingested  Default: True  | 
graphql_url  string  | [deprecated] Not used | 
ownership_type  string  | Ownership type of owner  Default: NONE  | 
platform_name  string  | Default: powerbi  | 
platform_urn  string  | Default: urn:li:dataPlatform:powerbi  | 
server_alias  string  | Alias for Power BI Report Server host URL  Default:   | 
workstation_name  string  | Workstation name  Default: localhost  | 
env  string  | The environment that all assets produced by this connector belong to  Default: PROD  | 
chart_pattern  AllowDenyPattern  | Default: {'allow': ['.*'], 'deny': [], 'ignoreCase': True}  | 
chart_pattern.ignoreCase  boolean  | Whether to ignore case sensitivity during pattern matching.  Default: True  | 
chart_pattern.allow  array  | List of regex patterns to include in ingestion  Default: ['.*']  | 
chart_pattern.allow.string  string  | |
chart_pattern.deny  array  | List of regex patterns to exclude from ingestion.  Default: []  | 
chart_pattern.deny.string  string  | |
report_pattern  AllowDenyPattern  | Default: {'allow': ['.*'], 'deny': [], 'ignoreCase': True}  | 
report_pattern.ignoreCase  boolean  | Whether to ignore case sensitivity during pattern matching.  Default: True  | 
report_pattern.allow  array  | List of regex patterns to include in ingestion  Default: ['.*']  | 
report_pattern.allow.string  string  | |
report_pattern.deny  array  | List of regex patterns to exclude from ingestion.  Default: []  | 
report_pattern.deny.string  string  | 
The JSONSchema for this configuration is inlined below.
{
  "title": "PowerBiReportServerDashboardSourceConfig",
  "description": "Any source that produces dataset urns in a single environment should inherit this class",
  "type": "object",
  "properties": {
    "env": {
      "title": "Env",
      "description": "The environment that all assets produced by this connector belong to",
      "default": "PROD",
      "type": "string"
    },
    "username": {
      "title": "Username",
      "description": "Windows account username",
      "type": "string"
    },
    "password": {
      "title": "Password",
      "description": "Windows account password",
      "type": "string"
    },
    "workstation_name": {
      "title": "Workstation Name",
      "description": "Workstation name",
      "default": "localhost",
      "type": "string"
    },
    "host_port": {
      "title": "Host Port",
      "description": "Power BI Report Server host URL",
      "type": "string"
    },
    "server_alias": {
      "title": "Server Alias",
      "description": "Alias for Power BI Report Server host URL",
      "default": "",
      "type": "string"
    },
    "graphql_url": {
      "title": "Graphql Url",
      "description": "[deprecated] Not used",
      "type": "string"
    },
    "report_virtual_directory_name": {
      "title": "Report Virtual Directory Name",
      "description": "Report Virtual Directory URL name",
      "type": "string"
    },
    "report_server_virtual_directory_name": {
      "title": "Report Server Virtual Directory Name",
      "description": "Report Server Virtual Directory URL name",
      "type": "string"
    },
    "extract_ownership": {
      "title": "Extract Ownership",
      "description": "Whether ownership should be ingested",
      "default": true,
      "type": "boolean"
    },
    "ownership_type": {
      "title": "Ownership Type",
      "description": "Ownership type of owner",
      "default": "NONE",
      "type": "string"
    },
    "platform_name": {
      "title": "Platform Name",
      "default": "powerbi",
      "type": "string"
    },
    "platform_urn": {
      "title": "Platform Urn",
      "default": "urn:li:dataPlatform:powerbi",
      "type": "string"
    },
    "report_pattern": {
      "title": "Report Pattern",
      "default": {
        "allow": [
          ".*"
        ],
        "deny": [],
        "ignoreCase": true
      },
      "allOf": [
        {
          "$ref": "#/definitions/AllowDenyPattern"
        }
      ]
    },
    "chart_pattern": {
      "title": "Chart Pattern",
      "default": {
        "allow": [
          ".*"
        ],
        "deny": [],
        "ignoreCase": true
      },
      "allOf": [
        {
          "$ref": "#/definitions/AllowDenyPattern"
        }
      ]
    }
  },
  "required": [
    "username",
    "password",
    "host_port",
    "report_virtual_directory_name",
    "report_server_virtual_directory_name"
  ],
  "additionalProperties": false,
  "definitions": {
    "AllowDenyPattern": {
      "title": "AllowDenyPattern",
      "description": "A class to store allow deny regexes",
      "type": "object",
      "properties": {
        "allow": {
          "title": "Allow",
          "description": "List of regex patterns to include in ingestion",
          "default": [
            ".*"
          ],
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "deny": {
          "title": "Deny",
          "description": "List of regex patterns to exclude from ingestion.",
          "default": [],
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "ignoreCase": {
          "title": "Ignorecase",
          "description": "Whether to ignore case sensitivity during pattern matching.",
          "default": true,
          "type": "boolean"
        }
      },
      "additionalProperties": false
    }
  }
}
Code Coordinates
- Class Name: 
datahub.ingestion.source.powerbi_report_server.report_server.PowerBiReportServerDashboardSource - Browse on GitHub
 
Questions
If you've got any questions on configuring ingestion for PowerBI Report Server, feel free to ping us on our Slack.
Is this page helpful?