Before connecting, ensure the following are in place:
The workspaces Prizm will scan are hosted on Power BI Premium Per User (PPU), Premium capacity, or Microsoft Fabric capacity. Prizm reads semantic model metadata (tables, columns, measures, relationships, calculated fields) over the XMLA endpoint, which is only available on these capacity tiers — a standard Pro license alone is not sufficient.
The XMLA endpoint is enabled with Read access for metadata discovery (Power BI Admin portal → Tenant settings → Integration settings). Write access is not required.
The Prizm service identity has been granted the required API permissions in Azure Active Directory (see below).
Admin API access is enabled in the Power BI tenant settings: go to the Power BI admin portal → Tenant settings → Admin API settings and enable Allow service principals to use read-only Power BI admin APIs.
Fabric API access is enabled for service principals: in the Fabric Admin portal, go to Tenant settings → Developer settings and enable Service principals can call Fabric public APIs.
If you plan to use OAuth 2.0 authentication, a redirect URI is registered on the Azure AD app registration: https://<your-prizm-domain>/source/powerbi/callback.
Prizm accesses Power BI through the Power BI REST API and the Power BI Scanner API. The following delegated or application permissions are required in Azure AD, depending on your authentication method:
Permission
Purpose
Dataset.Read.All
Read semantic model metadata, tables, columns, measures
Dashboard.Read.All
Read dashboard tiles and metadata
Report.Read.All
Read report metadata and page structure
Workspace.Read.All
List and enumerate all workspaces
Dataflow.Read.All
Read dataflow metadata and M-expressions
All permissions above are read-only. Prizm does not write to, modify, or trigger refreshes on your Power BI assets during catalog or observability runs.
Navigate to Source and click the + icon next to the source list. Select PowerBI from the connector grid.
Field
Description
Connection Name
A label for this connection (e.g., powerbi-prod)
Description
Optional notes about what this connection covers
2
Choose an authentication method
Select your authentication method from the dropdown. The three supported methods are described below.
Power BI source details. Service Principal is the default authentication type
Service Principal (Recommended)
Master User
OAuth 2.0
Service Principal is the recommended authentication method for production deployments. It authenticates as a registered Azure AD application rather than a named user, which means:
Credentials are not tied to an individual’s account or license
Permissions survive employee offboarding or license changes
Audit logs show a distinct service identity rather than a user account
Azure-side setup:
Go to Azure Portal → Azure Active Directory → App registrations → New registration. Give it a name (e.g., prizm-powerbi-connector).
Under Certificates & secrets, create a Client secret. Copy the value immediately — it is shown only once.
Under API permissions, add the five permissions listed in Prerequisites as Application permissions and grant admin consent.
Note the Application (client) ID and Directory (tenant) ID from the app’s overview page.
In the Power BI Admin portal → Tenant settings → Admin API settings, add the service principal’s security group (or the app itself) to the allowed list.
Then enter the following in Prizm:
Field
Description
Tenant ID
Azure AD directory (tenant) ID
Client ID
Application (client) ID of the registered app
Client Secret
The secret value generated in step 2
Workspace access: In addition to the Azure AD permissions above, the service principal must be added directly to each target Power BI workspace (workspace Manage access → add the app/service principal) with the Member or Admin role. It also needs Build permission on the semantic models Prizm will scan — this is required for XMLA metadata access.
The same Entra ID app registration can be reused across Service Principal, Master User, or OAuth authentication, depending on which method you select for this connection.
Master User authenticates with a standard Power BI user account (username and password). The account must have a Power BI Pro or Premium Per User license and must be a member of all workspaces you want Prizm to access.
Master User authentication is not recommended for production. If the user’s account is disabled, their password changes, or MFA enforcement changes, the connector will fail silently until credentials are updated. Use Service Principal for stable, long-running connections.
Field
Description
Username
Email address of the Power BI user account
Password
Account password
Requirements:
The account must not have MFA enforced (or must be excluded from MFA conditional access policies for service-account use).
The account must have at least Power BI Pro license.
Add the account as a Member or Admin in each workspace you want Prizm to catalog.
OAuth 2.0 uses the delegated authorization flow to connect Prizm as the authenticated user who grants access. This is suited for single-user or evaluation setups where a Service Principal is not yet available.Before authorizing, make sure the Azure AD app registration has the following redirect URI configured: https://<your-prizm-domain>/source/powerbi/callback.Click Authorize with Microsoft in the Prizm connector form. You will be redirected to Microsoft’s login page to grant the required permissions. Once you approve, Prizm stores the refresh token and renews access automatically.Limitations:
Access is bound to the authorizing user’s account and workspace memberships.
If the user’s account changes (password reset, license change, MFA), the token may be invalidated.
Not recommended for shared or production environments — use Service Principal instead.
For production deployments, always use Service Principal. It avoids credential decay, works with tenant-level admin API access, and produces a clean audit trail.
3
Configure extraction scope
After authentication is verified, select which workspaces to include:
Setting
Description
Workspaces
Select specific workspaces by name, or leave blank to include all workspaces the service principal has access to
Extract Dataflows
Toggle on to include Power Query dataflows in the catalog and lineage graph. Disabled by default.
Enabling Extract Dataflows increases catalog job duration proportionally to the number of dataflows in scope. Enable it only for workspaces where dataflows are part of the lineage you want to trace.
4
Review job schedules
For Power BI connections with semantic models in scope, Prizm creates the following background jobs automatically. You can adjust their schedules from the connector detail page after saving:
Job
Default Cadence
What it collects
Technical
Daily — first job in the pipeline
Workspace metadata and semantic model schema (tables, columns, measures, calculated columns, relationships, hierarchies) via the XMLA endpoint, plus reports, dashboards, dataflows, and data sources via the REST/Scanner API
Operational
Hourly
Volume, freshness, and schema-change signals on semantic models, including refresh history and success/failure status
Performance
Daily
Refresh duration trends and capacity/query performance signals for semantic models
Profile Recommendation
Runs in parallel after Operational completes
Determines which semantic model columns to profile, at what frequency, based on criticality and scope. The Profile job will not run until this job produces its output.
Profile
Runs on the schedule generated by Profile Recommendation
Column-level statistical profiling on semantic model columns — null rate, distinct count, min/max, mean, pattern conformance, and related metrics
Structural Recommendation
Runs in parallel after Operational completes
Recommends structural quality metrics (Essential or Advanced) for each semantic model column, based on data type and criticality. The Structural job executes against this output.
Structural
Triggered after Structural Recommendation completes
Distribution, frequency, pattern, and statistics metrics at the column level for in-scope semantic model columns
This job set applies to Power BI connections where semantic models are in scope. Governance, Usage Summary, Compute Metric, and Lineage jobs are not part of the current Power BI job pipeline. Operational, Technical, and Performance job execution has been verified directly against a live Power BI connector.
Manual re-sync: Trigger a manual catalog run at any time from Settings → Connectors → [your connection] → Run Now. Manual runs execute immediately without disrupting the configured schedule.
5
Save and verify
Click Save to create the connection. Prizm runs an initial full catalog scan immediately. Assets appear in the catalog within a few minutes depending on workspace size.Navigate to Settings → Connectors → Logs to monitor scan progress and review any errors from the initial run.
See the full field-level breakdown of every metadata object Prizm extracts from Power BI.
FAQ
Common questions about authentication, scoping, and permissions.
Was this page helpful?
⌘I
{"docsConfig":{"theme":"luma","$schema":"https://mintlify.com/docs.json","name":"DQLabs PRIZM","description":"Industry's first AI Native platform where Data Observability, Data Quality, and Context work as one system—turning trust from a manual, reactive process into autonomous operations governed by the enterprise.","colors":{"primary":"#e40404","light":"#f9cdcd","dark":"#747474"},"logo":{"light":"https://media.brand.dev/332adc35-5bc4-4d2b-bf78-256aa4a5e414.svg","dark":"https://media.brand.dev/332adc35-5bc4-4d2b-bf78-256aa4a5e414.svg"},"favicon":"https://media.brand.dev/9afdd2b1-c5b5-4aba-87dd-63e926be4e0e.jpg","navbar":{"primary":{"type":"github","href":"https://github.com/DQLabs-Inc/prizm-ui"}},"seo":{"metatags":{"robots":"index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1","canonical":"https://docs.dqlabs.ai"},"organization":{"name":"DQLabs Inc","logo":"https://media.brand.dev/332adc35-5bc4-4d2b-bf78-256aa4a5e414.svg"}},"integrations":{"ga4":{"measurementId":"G-9XW6S04GGD"}},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"dqlabs","hasAudioNarration":false,"actualSubdomain":"dqlabs","customDomains":["docs.dqlabs.ai"],"gitSource":{"type":"github","owner":"dqlabs-inc","repo":"prizm-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"feedback":{"thumbs":true,"agentFeedback":true},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6af49520c5d18096e67ffded","clientVersion":"0.0.4111","searchFilterCounts":[{"language":"default","tag":"Documentation","count":217},{"language":"default","tag":"Architecture","count":88},{"language":"default","tag":"Data Sources","count":54},{"language":"default","tag":"Metric","count":44},{"language":"default","tag":"Integrations","count":40},{"language":"default","tag":"Metric Types","count":40},{"language":"default","tag":"API Reference","count":34},{"language":"default","tag":"Business","count":12},{"language":"default","tag":"Collaboration","count":12},{"language":"default","tag":"Security \u0026 Access Control","count":11}],"searchSettings":{"maxResults":9}},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"sources/powerbi/setup","slug":"/sources/powerbi/setup","pageMetadata":{"title":"Setup","description":"Prerequisites, authentication methods, and step-by-step instructions for connecting Microsoft Power BI to Prizm.","icon":"plug","href":"/sources/powerbi/setup"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Prerequisites, authentication methods, and step-by-step instructions for connecting Microsoft Power BI to Prizm.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={code:`code`,li:`li`,ol:`ol`,p:`p`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Card,CardGroup,Frame,Heading,Note,OptimizedImage,Step,Steps,Tab,Table,Tabs,Tip,Warning}=_components;if(!Card)_missingMdxReference(`Card`,true);if(!CardGroup)_missingMdxReference(`CardGroup`,true);if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Step)_missingMdxReference(`Step`,true);if(!Steps)_missingMdxReference(`Steps`,true);if(!Tab)_missingMdxReference(`Tab`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tabs)_missingMdxReference(`Tabs`,true);if(!Tip)_missingMdxReference(`Tip`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(`script`,{type:`application/ld+json`,children:`{\n \"@context\": \"https://schema.org\",\n \"@type\": \"TechArticle\",\n \"headline\": \"Power BI Setup\",\n \"description\": \"Prerequisites, authentication methods, and step-by-step instructions for connecting Microsoft Power BI to Prizm.\",\n \"url\": \"https://docs.dqlabs.ai/sources/powerbi/setup\",\n \"publisher\": {\n \"@type\": \"Organization\",\n \"name\": \"DQLabs Inc\",\n \"logo\": \"https://media.brand.dev/332adc35-5bc4-4d2b-bf78-256aa4a5e414.svg\"\n }\n }`}),`\n`,_jsx(Heading,{level:`2`,id:`prerequisites`,children:`Prerequisites`}),`\n`,_jsx(_components.p,{children:`Before connecting, ensure the following are in place:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`The workspaces Prizm will scan are hosted on `,_jsx(_components.strong,{children:`Power BI Premium Per User (PPU), Premium capacity, or Microsoft Fabric capacity`}),`. Prizm reads semantic model metadata (tables, columns, measures, relationships, calculated fields) over the `,_jsx(_components.strong,{children:`XMLA endpoint`}),`, which is only available on these capacity tiers — a standard Pro license alone is not sufficient.`]}),`\n`,_jsxs(_components.li,{children:[`The `,_jsx(_components.strong,{children:`XMLA endpoint`}),` is enabled with `,_jsx(_components.strong,{children:`Read`}),` access for metadata discovery (Power BI Admin portal → `,_jsx(_components.strong,{children:`Tenant settings → Integration settings`}),`). Write access is not required.`]}),`\n`,_jsx(_components.li,{children:`The Prizm service identity has been granted the required API permissions in Azure Active Directory (see below).`}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Admin API access`}),` is enabled in the Power BI tenant settings: go to the Power BI admin portal → `,_jsx(_components.strong,{children:`Tenant settings → Admin API settings`}),` and enable `,_jsx(_components.strong,{children:`Allow service principals to use read-only Power BI admin APIs`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Fabric API access`}),` is enabled for service principals: in the Fabric Admin portal, go to `,_jsx(_components.strong,{children:`Tenant settings → Developer settings`}),` and enable `,_jsx(_components.strong,{children:`Service principals can call Fabric public APIs`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`If you plan to use `,_jsx(_components.strong,{children:`OAuth 2.0`}),` authentication, a `,_jsx(_components.strong,{children:`redirect URI`}),` is registered on the Azure AD app registration: `,_jsx(_components.code,{children:`https://\u003cyour-prizm-domain>/source/powerbi/callback`}),`.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`required-api-permissions`,children:`Required API Permissions`}),`\n`,_jsx(_components.p,{children:`Prizm accesses Power BI through the Power BI REST API and the Power BI Scanner API. The following delegated or application permissions are required in Azure AD, depending on your authentication method:`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{style:{textAlign:`left`},children:`Permission`}),_jsx(_components.th,{style:{textAlign:`left`},children:`Purpose`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.code,{children:`Dataset.Read.All`})}),_jsx(_components.td,{style:{textAlign:`left`},children:`Read semantic model metadata, tables, columns, measures`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.code,{children:`Dashboard.Read.All`})}),_jsx(_components.td,{style:{textAlign:`left`},children:`Read dashboard tiles and metadata`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.code,{children:`Report.Read.All`})}),_jsx(_components.td,{style:{textAlign:`left`},children:`Read report metadata and page structure`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.code,{children:`Workspace.Read.All`})}),_jsx(_components.td,{style:{textAlign:`left`},children:`List and enumerate all workspaces`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.code,{children:`Dataflow.Read.All`})}),_jsx(_components.td,{style:{textAlign:`left`},children:`Read dataflow metadata and M-expressions`})]})]})]}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`All permissions above are `,_jsx(_components.strong,{children:`read-only`}),`. Prizm does not write to, modify, or trigger refreshes on your Power BI assets during catalog or observability runs.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`connector-setup`,children:`Connector Setup`}),`\n`,_jsxs(Steps,{children:[_jsxs(Step,{title:`Open the connector wizard`,children:[_jsxs(_components.p,{children:[`Navigate to `,_jsx(_components.strong,{children:`Source`}),` and click the `,_jsx(_components.strong,{children:`+`}),` icon next to the source list. Select `,_jsx(_components.strong,{children:`PowerBI`}),` from the connector grid.`]}),_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{style:{textAlign:`left`},children:`Field`}),_jsx(_components.th,{style:{textAlign:`left`},children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.strong,{children:`Connection Name`})}),_jsxs(_components.td,{style:{textAlign:`left`},children:[`A label for this connection (e.g., `,_jsx(_components.code,{children:`powerbi-prod`}),`)`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.strong,{children:`Description`})}),_jsx(_components.td,{style:{textAlign:`left`},children:`Optional notes about what this connection covers`})]})]})]})]}),_jsxs(Step,{title:`Choose an authentication method`,children:[_jsx(_components.p,{children:`Select your authentication method from the dropdown. The three supported methods are described below.`}),_jsx(Frame,{caption:`Power BI source details. Service Principal is the default authentication type`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/dqlabs/-llXdpktU4fg82jU/images/sources/powerbi/form.png?fit=max\u0026auto=format\u0026n=-llXdpktU4fg82jU\u0026q=85\u0026s=d66d709d3d609906debb8d005b582bdf`,alt:`The Power BI Source Details form with Service Principal selected`,\"data-og-width\":`1339`,width:`1339`,\"data-og-height\":`668`,height:`668`,\"data-path\":`images/sources/powerbi/form.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/dqlabs/-llXdpktU4fg82jU/images/sources/powerbi/form.png?w=280\u0026fit=max\u0026auto=format\u0026n=-llXdpktU4fg82jU\u0026q=85\u0026s=bc97ebb9ed355d180816b733f9a54fec 280w, https://mintcdn.com/dqlabs/-llXdpktU4fg82jU/images/sources/powerbi/form.png?w=560\u0026fit=max\u0026auto=format\u0026n=-llXdpktU4fg82jU\u0026q=85\u0026s=b31748add4390c2c2d03932a41d1aa14 560w, https://mintcdn.com/dqlabs/-llXdpktU4fg82jU/images/sources/powerbi/form.png?w=840\u0026fit=max\u0026auto=format\u0026n=-llXdpktU4fg82jU\u0026q=85\u0026s=1bdf0dad5a9e8624f54eee863ab6b289 840w, https://mintcdn.com/dqlabs/-llXdpktU4fg82jU/images/sources/powerbi/form.png?w=1100\u0026fit=max\u0026auto=format\u0026n=-llXdpktU4fg82jU\u0026q=85\u0026s=f486d41866aa304b8fe6f0087d5ea119 1100w, https://mintcdn.com/dqlabs/-llXdpktU4fg82jU/images/sources/powerbi/form.png?w=1650\u0026fit=max\u0026auto=format\u0026n=-llXdpktU4fg82jU\u0026q=85\u0026s=a30d242608d73154b3ff3bea152b66a8 1650w, https://mintcdn.com/dqlabs/-llXdpktU4fg82jU/images/sources/powerbi/form.png?w=2500\u0026fit=max\u0026auto=format\u0026n=-llXdpktU4fg82jU\u0026q=85\u0026s=c99d5e7f26dc889a048fa77404a4ba59 2500w`})}),_jsxs(Tabs,{children:[_jsxs(Tab,{title:`Service Principal (Recommended)`,id:`service-principal-recommended`,children:[_jsxs(_components.p,{children:[`Service Principal is the `,_jsx(_components.strong,{children:`recommended authentication method`}),` for production deployments. It authenticates as a registered Azure AD application rather than a named user, which means:`]}),_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Credentials are not tied to an individual’s account or license`}),`\n`,_jsx(_components.li,{children:`Permissions survive employee offboarding or license changes`}),`\n`,_jsx(_components.li,{children:`Audit logs show a distinct service identity rather than a user account`}),`\n`]}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`Azure-side setup:`})}),_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Go to `,_jsx(_components.strong,{children:`Azure Portal → Azure Active Directory → App registrations → New registration`}),`. Give it a name (e.g., `,_jsx(_components.code,{children:`prizm-powerbi-connector`}),`).`]}),`\n`,_jsxs(_components.li,{children:[`Under `,_jsx(_components.strong,{children:`Certificates \u0026 secrets`}),`, create a `,_jsx(_components.strong,{children:`Client secret`}),`. Copy the value immediately — it is shown only once.`]}),`\n`,_jsxs(_components.li,{children:[`Under `,_jsx(_components.strong,{children:`API permissions`}),`, add the five permissions listed in Prerequisites as `,_jsx(_components.strong,{children:`Application`}),` permissions and grant admin consent.`]}),`\n`,_jsxs(_components.li,{children:[`Note the `,_jsx(_components.strong,{children:`Application (client) ID`}),` and `,_jsx(_components.strong,{children:`Directory (tenant) ID`}),` from the app’s overview page.`]}),`\n`,_jsxs(_components.li,{children:[`In the `,_jsx(_components.strong,{children:`Power BI Admin portal → Tenant settings → Admin API settings`}),`, add the service principal’s security group (or the app itself) to the allowed list.`]}),`\n`]}),_jsx(_components.p,{children:`Then enter the following in Prizm:`}),_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{style:{textAlign:`left`},children:`Field`}),_jsx(_components.th,{style:{textAlign:`left`},children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.strong,{children:`Tenant ID`})}),_jsx(_components.td,{style:{textAlign:`left`},children:`Azure AD directory (tenant) ID`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.strong,{children:`Client ID`})}),_jsx(_components.td,{style:{textAlign:`left`},children:`Application (client) ID of the registered app`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.strong,{children:`Client Secret`})}),_jsx(_components.td,{style:{textAlign:`left`},children:`The secret value generated in step 2`})]})]})]}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Workspace access:`}),` In addition to the Azure AD permissions above, the service principal must be added directly to each target Power BI workspace (workspace `,_jsx(_components.strong,{children:`Manage access`}),` → add the app/service principal) with the `,_jsx(_components.strong,{children:`Member`}),` or `,_jsx(_components.strong,{children:`Admin`}),` role. It also needs `,_jsx(_components.strong,{children:`Build`}),` permission on the semantic models Prizm will scan — this is required for XMLA metadata access.`]}),_jsx(Note,{children:_jsx(_components.p,{children:`The same Entra ID app registration can be reused across Service Principal, Master User, or OAuth authentication, depending on which method you select for this connection.`})})]}),_jsxs(Tab,{title:`Master User`,id:`master-user`,children:[_jsx(_components.p,{children:`Master User authenticates with a standard Power BI user account (username and password). The account must have a Power BI Pro or Premium Per User license and must be a member of all workspaces you want Prizm to access.`}),_jsx(Warning,{children:_jsx(_components.p,{children:`Master User authentication is not recommended for production. If the user’s account is disabled, their password changes, or MFA enforcement changes, the connector will fail silently until credentials are updated. Use Service Principal for stable, long-running connections.`})}),_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{style:{textAlign:`left`},children:`Field`}),_jsx(_components.th,{style:{textAlign:`left`},children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.strong,{children:`Username`})}),_jsx(_components.td,{style:{textAlign:`left`},children:`Email address of the Power BI user account`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.strong,{children:`Password`})}),_jsx(_components.td,{style:{textAlign:`left`},children:`Account password`})]})]})]}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`Requirements:`})}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`The account must `,_jsx(_components.strong,{children:`not`}),` have MFA enforced (or must be excluded from MFA conditional access policies for service-account use).`]}),`\n`,_jsx(_components.li,{children:`The account must have at least Power BI Pro license.`}),`\n`,_jsxs(_components.li,{children:[`Add the account as a `,_jsx(_components.strong,{children:`Member`}),` or `,_jsx(_components.strong,{children:`Admin`}),` in each workspace you want Prizm to catalog.`]}),`\n`]})]}),_jsxs(Tab,{title:`OAuth 2.0`,id:`oauth-2-0`,children:[_jsx(_components.p,{children:`OAuth 2.0 uses the delegated authorization flow to connect Prizm as the authenticated user who grants access. This is suited for single-user or evaluation setups where a Service Principal is not yet available.`}),_jsxs(_components.p,{children:[`Before authorizing, make sure the Azure AD app registration has the following `,_jsx(_components.strong,{children:`redirect URI`}),` configured: `,_jsx(_components.code,{children:`https://\u003cyour-prizm-domain>/source/powerbi/callback`}),`.`]}),_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`Authorize with Microsoft`}),` in the Prizm connector form. You will be redirected to Microsoft’s login page to grant the required permissions. Once you approve, Prizm stores the refresh token and renews access automatically.`]}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`Limitations:`})}),_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Access is bound to the authorizing user’s account and workspace memberships.`}),`\n`,_jsx(_components.li,{children:`If the user’s account changes (password reset, license change, MFA), the token may be invalidated.`}),`\n`,_jsx(_components.li,{children:`Not recommended for shared or production environments — use Service Principal instead.`}),`\n`]})]})]}),_jsx(Tip,{children:_jsxs(_components.p,{children:[`For production deployments, always use `,_jsx(_components.strong,{children:`Service Principal`}),`. It avoids credential decay, works with tenant-level admin API access, and produces a clean audit trail.`]})})]}),_jsxs(Step,{title:`Configure extraction scope`,children:[_jsx(_components.p,{children:`After authentication is verified, select which workspaces to include:`}),_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{style:{textAlign:`left`},children:`Setting`}),_jsx(_components.th,{style:{textAlign:`left`},children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.strong,{children:`Workspaces`})}),_jsx(_components.td,{style:{textAlign:`left`},children:`Select specific workspaces by name, or leave blank to include all workspaces the service principal has access to`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.strong,{children:`Extract Dataflows`})}),_jsx(_components.td,{style:{textAlign:`left`},children:`Toggle on to include Power Query dataflows in the catalog and lineage graph. Disabled by default.`})]})]})]}),_jsx(Note,{children:_jsxs(_components.p,{children:[`Enabling `,_jsx(_components.strong,{children:`Extract Dataflows`}),` increases catalog job duration proportionally to the number of dataflows in scope. Enable it only for workspaces where dataflows are part of the lineage you want to trace.`]})})]}),_jsxs(Step,{title:`Review job schedules`,children:[_jsx(_components.p,{children:`For Power BI connections with semantic models in scope, Prizm creates the following background jobs automatically. You can adjust their schedules from the connector detail page after saving:`}),_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{style:{textAlign:`left`},children:`Job`}),_jsx(_components.th,{style:{textAlign:`left`},children:`Default Cadence`}),_jsx(_components.th,{style:{textAlign:`left`},children:`What it collects`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.strong,{children:`Technical`})}),_jsx(_components.td,{style:{textAlign:`left`},children:`Daily — first job in the pipeline`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Workspace metadata and semantic model schema (tables, columns, measures, calculated columns, relationships, hierarchies) via the XMLA endpoint, plus reports, dashboards, dataflows, and data sources via the REST/Scanner API`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.strong,{children:`Operational`})}),_jsx(_components.td,{style:{textAlign:`left`},children:`Hourly`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Volume, freshness, and schema-change signals on semantic models, including refresh history and success/failure status`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.strong,{children:`Performance`})}),_jsx(_components.td,{style:{textAlign:`left`},children:`Daily`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Refresh duration trends and capacity/query performance signals for semantic models`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.strong,{children:`Profile Recommendation`})}),_jsx(_components.td,{style:{textAlign:`left`},children:`Runs in parallel after Operational completes`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Determines which semantic model columns to profile, at what frequency, based on criticality and scope. The Profile job will not run until this job produces its output.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.strong,{children:`Profile`})}),_jsx(_components.td,{style:{textAlign:`left`},children:`Runs on the schedule generated by Profile Recommendation`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Column-level statistical profiling on semantic model columns — null rate, distinct count, min/max, mean, pattern conformance, and related metrics`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.strong,{children:`Structural Recommendation`})}),_jsx(_components.td,{style:{textAlign:`left`},children:`Runs in parallel after Operational completes`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Recommends structural quality metrics (Essential or Advanced) for each semantic model column, based on data type and criticality. The Structural job executes against this output.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.strong,{children:`Structural`})}),_jsx(_components.td,{style:{textAlign:`left`},children:`Triggered after Structural Recommendation completes`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Distribution, frequency, pattern, and statistics metrics at the column level for in-scope semantic model columns`})]})]})]}),_jsx(Note,{children:_jsx(_components.p,{children:`This job set applies to Power BI connections where semantic models are in scope. Governance, Usage Summary, Compute Metric, and Lineage jobs are not part of the current Power BI job pipeline. Operational, Technical, and Performance job execution has been verified directly against a live Power BI connector.`})}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Manual re-sync:`}),` Trigger a manual catalog run at any time from `,_jsx(_components.strong,{children:`Settings → Connectors → [your connection] → Run Now`}),`. Manual runs execute immediately without disrupting the configured schedule.`]})]}),_jsxs(Step,{title:`Save and verify`,children:[_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`Save`}),` to create the connection. Prizm runs an initial full catalog scan immediately. Assets appear in the catalog within a few minutes depending on workspace size.`]}),_jsxs(_components.p,{children:[`Navigate to `,_jsx(_components.strong,{children:`Settings → Connectors → Logs`}),` to monitor scan progress and review any errors from the initial run.`]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`next-steps`,children:`Next Steps`}),`\n`,_jsxs(CardGroup,{cols:2,children:[_jsx(Card,{title:`What We Collect`,icon:`database`,href:`/sources/powerbi/what-we-collect`,children:_jsx(_components.p,{children:`See the full field-level breakdown of every metadata object Prizm extracts from Power BI.`})}),_jsx(Card,{title:`FAQ`,icon:`circle-question`,href:`/sources/powerbi/faq`,children:_jsx(_components.p,{children:`Common questions about authentication, scoping, and permissions.`})})]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Setup","description":"Prerequisites, authentication methods, and step-by-step instructions for connecting Microsoft Power BI to Prizm.","icon":"plug","href":"/sources/powerbi/setup"}}},"mdxSourceWithNoJs":null,"noJsSplices":[[1079,1671,""]]},"mdxExtracts":{"tableOfContents":[{"title":"Prerequisites","slug":"prerequisites","depth":2,"children":[{"title":"Required API Permissions","slug":"required-api-permissions","depth":3,"children":[]}]},{"title":"Connector Setup","slug":"connector-setup","depth":2,"children":[]},{"title":"Next Steps","slug":"next-steps","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"dqlabs","siteName":"DQLabs PRIZM","title":"Setup - DQLabs PRIZM","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-21T16:07:33.407Z","originalFileLocation":"sources/powerbi/setup.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Prerequisites, authentication methods, and step-by-step instructions for connecting Microsoft Power BI to Prizm.\">\u003cmeta data-mint-head name=\"application-name\" content=\"DQLabs PRIZM\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003cmeta data-mint-head name=\"robots\" content=\"index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/jpeg\" sizes=\"180x180\" href=\"https://media.brand.dev/9afdd2b1-c5b5-4aba-87dd-63e926be4e0e.jpg\">\u003clink data-mint-head rel=\"icon\" type=\"image/jpeg\" sizes=\"32x32\" href=\"https://media.brand.dev/9afdd2b1-c5b5-4aba-87dd-63e926be4e0e.jpg\">\u003clink data-mint-head rel=\"icon\" type=\"image/jpeg\" sizes=\"16x16\" href=\"https://media.brand.dev/9afdd2b1-c5b5-4aba-87dd-63e926be4e0e.jpg\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/jpeg\" href=\"https://media.brand.dev/9afdd2b1-c5b5-4aba-87dd-63e926be4e0e.jpg\">\u003cmeta data-mint-head property=\"og:title\" content=\"Setup - DQLabs PRIZM\">\u003cmeta data-mint-head property=\"og:description\" content=\"Prerequisites, authentication methods, and step-by-step instructions for connecting Microsoft Power BI to Prizm.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"DQLabs PRIZM\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.dqlabs.ai/sources/powerbi/setup\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://dqlabs.mintlify.site/_mintlify/api/og/v2?division=Power+BI\u0026amp;title=Setup\u0026amp;description=Prerequisites%2C+authentication+methods%2C+and+step-by-step+instructions+for+connecting+Microsoft+Power+BI+to+Prizm.\u0026amp;theme=427ee605c16ad5234d5bc748\u0026amp;signature=81dd97909fe43967df04da27282f34653921b0ce44684c04640248a8dda68eec\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Setup - DQLabs PRIZM\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Prerequisites, authentication methods, and step-by-step instructions for connecting Microsoft Power BI to Prizm.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://dqlabs.mintlify.site/_mintlify/api/og/v2?division=Power+BI\u0026amp;title=Setup\u0026amp;description=Prerequisites%2C+authentication+methods%2C+and+step-by-step+instructions+for+connecting+Microsoft+Power+BI+to+Prizm.\u0026amp;theme=427ee605c16ad5234d5bc748\u0026amp;signature=81dd97909fe43967df04da27282f34653921b0ce44684c04640248a8dda68eec\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"https://mintlify.s3.us-west-1.amazonaws.com/dqlabs/_generated/favicon/browserconfig.xml?v=3\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"DQLabs PRIZM\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#e40404\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.dqlabs.ai/sources/powerbi/setup\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/sources/powerbi/setup.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.dqlabs.ai/#organization\",\"name\":\"DQLabs Inc\",\"url\":\"https://docs.dqlabs.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://media.brand.dev/332adc35-5bc4-4d2b-bf78-256aa4a5e414.svg\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.dqlabs.ai#website\",\"name\":\"DQLabs PRIZM\",\"url\":\"https://docs.dqlabs.ai\",\"publisher\":{\"@id\":\"https://docs.dqlabs.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.dqlabs.ai/sources/powerbi/setup#webpage\",\"url\":\"https://docs.dqlabs.ai/sources/powerbi/setup\",\"name\":\"Setup\",\"description\":\"Prerequisites, authentication methods, and step-by-step instructions for connecting Microsoft Power BI to Prizm.\",\"dateModified\":\"2026-10-21T16:07:33.407Z\",\"isPartOf\":{\"@id\":\"https://docs.dqlabs.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.dqlabs.ai/sources/powerbi/setup#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.dqlabs.ai/sources/powerbi/setup#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Data Sources\",\"item\":\"https://docs.dqlabs.ai/sources/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Power BI\",\"item\":\"https://docs.dqlabs.ai/sources/powerbi/overview\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Setup\",\"item\":\"https://docs.dqlabs.ai/sources/powerbi/setup\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.dqlabs.ai/sources/powerbi/setup#article\",\"headline\":\"Setup\",\"name\":\"Setup\",\"description\":\"Prerequisites, authentication methods, and step-by-step instructions for connecting Microsoft Power BI to Prizm.\",\"url\":\"https://docs.dqlabs.ai/sources/powerbi/setup\",\"mainEntityOfPage\":{\"@id\":\"https://docs.dqlabs.ai/sources/powerbi/setup#webpage\"},\"dateModified\":\"2026-10-21T16:07:33.407Z\",\"publisher\":{\"@id\":\"https://docs.dqlabs.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.dqlabs.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"DQLabs PRIZM\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"DQLabs Inc\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/sources/powerbi/setup.md","siteName":"DQLabs PRIZM","nav":{"global":null,"tabs":[{"tab":"Documentation","icon":"dochub","groups":[{"group":"Get Started","icon":"running","pages":[{"title":"What is PRIZM? ","icon":"triangle","href":"/introduction"},{"title":"Sign in \u0026 Invite your team","icon":"user-check","href":"/quickstart"},{"title":"Get up and running with PRIZM: a step-by-step guide","icon":"rocket-launch","href":"/login"}]},{"group":"Core Concepts","icon":"apple-core","pages":[{"title":"Assets: Discover and manage your context in PRIZM","icon":"album-collection","mode":"wide","href":"/concepts/assets"},{"title":"Metrics: Monitor data quality and pipeline health in PRIZM","icon":"badge-check","href":"/concepts/metrics"},{"title":"Alerts: Automatic data drift and quality notifications","icon":"bolt-lightning","href":"/concepts/alerts"},{"title":"Issues: Manage data problems from detection to fix","icon":"bug","href":"/concepts/issues"}]},{"group":"Platform","icon":"laptop-code","pages":[{"title":"Platform Overview","icon":"grid","href":"/platform/overview"},{"title":"Multi-Agent Architecture","icon":"network-wired","href":"/platform/multi-agent-architecture"},{"title":"Autonomous Intelligence","icon":"brain","href":"/platform/autonomous-intelligence"},{"title":"AI \u0026 ML Capabilities","icon":"user-robot","href":"/platform/ai-and-ml-capabilities"},{"title":"Converse — AI Chat Interface","icon":"comments","href":"/platform/converse"},{"title":"AI Stewardship","icon":"robot","href":"/platform/ai-stewardship"}]},{"group":"Architecture","icon":"crate-apple","pages":[{"title":"Architecture Overview","icon":"server","href":"/architecture/overview"},{"title":"Criticality Scoring","icon":"star-sharp","href":"/architecture/criticality"},{"group":"Asset","icon":"album-collection","pages":[{"title":"Asset Overview","icon":"table-rows","href":"/architecture/asset"},{"title":"Asset Detail","icon":"table-rows","href":"/architecture/asset-details"},{"title":"Asset Type","icon":"computer-classic","href":"/architecture/asset-type"}]},{"group":"Entities (Child Objects)","icon":"list-tree","pages":[{"title":"Entities","icon":"objects-column","href":"/architecture/entities"},{"title":"Entity List","icon":"list-ul","href":"/architecture/entity-list"},{"title":"Attribute","icon":"table-columns-add-after","href":"/architecture/attribute"}]},{"group":"Profiling","icon":"creative-commons-sampling","pages":[{"title":"Data Profiling","icon":"magnifying-glass-chart","href":"/architecture/data-profiling"},{"title":"Profile Insights","icon":"box-isometric-tape","href":"/architecture/profile-insights"}]},{"group":"Metric","icon":"box-isometric-tape","pages":[{"title":"Metric Overview","icon":"chart-line","href":"/architecture/metric"},{"group":"Metric Types","icon":"shapes","pages":[{"group":"Operational","icon":"gears","pages":[{"group":"Volume","icon":"database","pages":[{"title":"Overview","icon":"circle-info","href":"/architecture/metrics/volume/overview"},{"title":"Configure","icon":"sliders","href":"/architecture/metrics/volume/configure"}]},{"group":"Freshness","icon":"clock","pages":[{"title":"Overview","icon":"circle-info","href":"/architecture/metrics/freshness/overview"},{"title":"Configure","icon":"sliders","href":"/architecture/metrics/freshness/configure"}]},{"group":"Schema","icon":"table-columns","pages":[{"title":"Overview","icon":"circle-info","href":"/architecture/metrics/schema/overview"},{"title":"Configure","icon":"sliders","href":"/architecture/metrics/schema/configure"}]}]},{"group":"Performance","icon":"gauge-high","pages":[{"group":"Credits","icon":"coins","pages":[{"title":"Overview","icon":"circle-info","href":"/architecture/metrics/credits/overview"},{"title":"Configure","icon":"sliders","href":"/architecture/metrics/credits/configure"}]},{"group":"Queries","icon":"bolt","pages":[{"title":"Overview","icon":"circle-info","href":"/architecture/metrics/queries/overview"},{"title":"Configure","icon":"sliders","href":"/architecture/metrics/queries/configure"}]},{"group":"Usage","icon":"chart-simple","pages":[{"title":"Overview","tag":"Ready For Review","icon":"circle-info","href":"/architecture/metrics/usage/overview"}]}]},{"group":"Structural","icon":"cubes","pages":[{"group":"Distribution","icon":"chart-column","pages":[{"title":"Overview","icon":"circle-info","href":"/architecture/metrics/distribution/overview"},{"title":"Configure","icon":"sliders","href":"/architecture/metrics/distribution/configure"}]},{"group":"Frequency","icon":"wave-square","pages":[{"title":"Overview","icon":"circle-info","href":"/architecture/metrics/frequency/overview"},{"title":"Configure","icon":"sliders","href":"/architecture/metrics/frequency/configure"}]},{"group":"Pattern","icon":"braille","pages":[{"title":"Overview","icon":"circle-info","href":"/architecture/metrics/pattern/overview"},{"title":"Configure","icon":"sliders","href":"/architecture/metrics/pattern/configure"}]},{"group":"Statistics","icon":"calculator","pages":[{"title":"Overview","icon":"circle-info","href":"/architecture/metrics/statistics/overview"},{"title":"Configure","icon":"sliders","href":"/architecture/metrics/statistics/configure"}]}]},{"group":"Business","icon":"briefcase","pages":[{"group":"Conditional","icon":"code-branch","pages":[{"title":"Overview","icon":"circle-info","href":"/architecture/metrics/conditional/overview"},{"title":"Setup","icon":"gear","href":"/architecture/metrics/conditional/setup"},{"title":"Use Cases","icon":"lightbulb","href":"/architecture/metrics/conditional/usecases"}]},{"group":"Query","icon":"terminal","pages":[{"title":"Overview","icon":"lightbulb","href":"/architecture/metrics/query/usecases"},{"title":"Setup","icon":"gear","href":"/architecture/metrics/query/setup"},{"title":"Use Cases","icon":"lightbulb","href":"/architecture/metrics/query/examples"}]},{"group":"Standalone","icon":"cube","pages":[{"title":"Overview","icon":"circle-info","href":"/architecture/metrics/standalone/overview"},{"title":"Setup","icon":"gear","href":"/architecture/metrics/standalone/setup"},{"title":"Use Cases","icon":"lightbulb","href":"/architecture/metrics/standalone/usecases"}]},{"group":"Behavioural","icon":"person-running","pages":[{"title":"Overview","icon":"circle-info","href":"/architecture/metrics/behavioural/overview"},{"title":"Setup","icon":"gear","href":"/architecture/metrics/behavioural/setup"},{"title":"Use Cases","icon":"lightbulb","href":"/architecture/metrics/behavioural/usecases"}]}]},{"group":"Reconciliation","icon":"scale-balanced","pages":[{"group":"Comparison","icon":"code-compare","pages":[{"title":"Overview","icon":"circle-info","href":"/architecture/metrics/comparison/overview"},{"title":"Setup","icon":"gear","href":"/architecture/metrics/comparison/setup"},{"title":"Use Cases","icon":"lightbulb","href":"/architecture/metrics/comparison/usecases"}]},{"group":"Lookup","icon":"magnifying-glass","pages":[{"title":"Overview","icon":"circle-info","href":"/architecture/metrics/lookup/overview"},{"title":"Setup","icon":"gear","href":"/architecture/metrics/lookup/setup"},{"title":"Use Cases","icon":"lightbulb","href":"/architecture/metrics/lookup/usecases"}]}]},{"group":"Semantic","icon":"folder-open","pages":[{"title":"Semantic Metrics","sidebarTitle":"overview","icon":"folder-open","href":"/architecture/metrics/semantic/overview"}]},{"group":"Metric Template","icon":"copy","pages":[{"title":"Overview","icon":"circle-info","href":"/architecture/metrics/metric-template/overview"},{"title":"Setup","icon":"gear","href":"/architecture/metrics/metric-template/setup"}]}]},{"title":"Anomaly Detection","icon":"wave-pulse","href":"/architecture/anomaly-detection"},{"title":"Metric Results","icon":"chart-simple","href":"/architecture/metric-result"},{"title":"Pipeline Metric","icon":"diagram-project","href":"/architecture/pipeline-metric"}]},{"group":"Lineage","icon":"arrow-left-arrow-right","pages":[{"title":"Lineage","icon":"diagram-project","href":"/architecture/lineage"},{"title":"Lineage Extraction","icon":"arrows-left-right","href":"/architecture/lineage-extraction"}]},{"title":"Usage","icon":"users","href":"/architecture/usage"},{"group":"Logs","icon":"money-check-pen","pages":[{"title":"Logging Overview","icon":"book-open-lines","href":"/architecture/log/logging-overview"},{"title":"Asset Audit","icon":"block-quote","href":"/architecture/log/asset-audit"},{"title":"Audit Log","icon":"train-track","href":"/architecture/log/audit-log"},{"title":"Activity Log","icon":"user-pen","href":"/architecture/log/activity-log"}]},{"group":"Command Center","icon":"terminal","pages":[{"title":"Overview","icon":"terminal","href":"/architecture/command-center/overview"},{"title":"Jobs","icon":"briefcase","href":"/architecture/command-center/jobs"},{"title":"Schedules","icon":"calendar","href":"/architecture/command-center/schedule"},{"title":"Utility: Import and Export","sidebarTitle":"Utility","icon":"arrows-left-right","href":"/architecture/command-center/utility"}]},{"title":"Documentation","icon":"file-doc","href":"/architecture/documentation"},{"title":"Scoring","icon":"star","href":"/architecture/score"},{"group":"Semantics","icon":"sitemap","pages":[{"title":"Overview","icon":"book-open","href":"/architecture/semantics/overview"},{"title":"Domain","icon":"globe","href":"/architecture/semantics/domain"},{"title":"Product","icon":"box","href":"/architecture/semantics/product"},{"title":"Application","icon":"window-maximize","href":"/architecture/semantics/application"},{"title":"Tag","icon":"tag","href":"/architecture/semantics/tag"},{"title":"Glossary","icon":"book","href":"/architecture/semantics/glossary"}]},{"group":"Exceptions","icon":"triangle-exclamation","pages":[{"title":"Exceptions Overview","icon":"triangle-exclamation","href":"/architecture/exceptions/overview"},{"title":"Exception Records","icon":"table-list","href":"/architecture/exceptions/exception-records"},{"title":"Notifications","icon":"bell","href":"/architecture/exceptions/notifications"},{"title":"Exception Dashboard","icon":"gauge","href":"/architecture/exceptions/exception-dashboard"}]},{"group":"Alerts","icon":"sensor-alert","pages":[{"title":"Alerts Overview","icon":"bell","href":"/architecture/alerts/overview"},{"title":"Alert Detail","icon":"circle-info","href":"/architecture/alerts/details"},{"title":"Alert Management","icon":"sliders","href":"/architecture/alerts/management"},{"title":"Alert Thresholds","icon":"gauge-high","href":"/architecture/alerts/thresholds"}]},{"title":"Actions","icon":"bolt","href":"/architecture/actions"},{"title":"SLA","icon":"stopwatch","href":"/architecture/sla"},{"group":"Dashboard","icon":"gauge","pages":[{"title":"Quality Dashboard","sidebarTitle":"quality-dashboard","icon":"shield-check","href":"/architecture/Quality-dashboard"},{"title":"Catalog Dashboard","icon":"book-open","href":"/architecture/catalog-dashboard"},{"title":"Observability Dashboard — Data","sidebarTitle":"Observability: Data","icon":"database","href":"/architecture/observability-data-dashboard"},{"title":"Observability Dashboard — Pipeline","sidebarTitle":"Observability: Pipeline","icon":"diagram-project","href":"/architecture/observability-pipeline-dashboard"},{"title":"Observability Dashboard — Report","sidebarTitle":"Observability: Report","icon":"chart-pie","href":"/architecture/observability-report-dashboard"}]}]},{"group":"Data Sources","icon":"sourcetree","pages":[{"title":"Data Sources Overview","icon":"database","href":"/sources/overview"},{"group":"ADLS","icon":"microsoft","pages":[{"title":"ADLS Overview","icon":"microsoft","href":"/sources/adls/overview"},{"title":"ADLS Setup","icon":"plug","href":"/sources/adls/setup"},{"title":"What We Collect","icon":"list-check","href":"/sources/adls/what-we-collect"},{"title":"FAQ","icon":"circle-question","href":"/sources/adls/faq"}]},{"group":"Snowflake","icon":"snowflake","pages":[{"title":"Snowflake Overview","icon":"snowflake","href":"/sources/snowflake/overview"},{"title":"Snowflake Setup","icon":"plug","href":"/sources/snowflake/setup"},{"title":"What Prizm Collects from Snowflake","icon":"database","href":"/sources/snowflake/what-we-collect"},{"title":"Snowflake FAQ","icon":"question","href":"/sources/snowflake/faq"}]},{"group":"Oracle","icon":"database","pages":[{"title":"Oracle Overview","icon":"database","href":"/sources/oracle/overview"},{"title":"Oracle Setup","icon":"plug","href":"/sources/oracle/setup"},{"title":"What We Collect","icon":"list-check","href":"/sources/oracle/what-we-collect"},{"title":"FAQ","icon":"circle-question","href":"/sources/oracle/faq"}]},{"group":"Sigma","icon":"chart-mixed","hidden":true,"pages":[{"title":"Sigma Overview","icon":"chart-mixed","href":"/sources/sigma/overview"},{"title":"Sigma Setup","icon":"plug","href":"/sources/sigma/setup"},{"title":"What We Collect","icon":"list-check","href":"/sources/sigma/what-we-collect"},{"title":"FAQ","icon":"circle-question","href":"/sources/sigma/faq"}]},{"group":"BigQuery","icon":"google","pages":[{"title":"BigQuery Overview","sidebarTitle":"Overview","icon":"database","href":"/sources/bigquery/overview"},{"title":"BigQuery Setup","sidebarTitle":"Setup","icon":"plug","href":"/sources/bigquery/setup"},{"title":"BigQuery — What We Collect","sidebarTitle":"What We Collect","icon":"database","href":"/sources/bigquery/what-we-collect"},{"title":"BigQuery FAQ","sidebarTitle":"FAQ","icon":"circle-question","href":"/sources/bigquery/faq"}]},{"group":"Databricks","icon":"fire","pages":[{"title":"Databricks Overview","icon":"fire","href":"/sources/databricks/overview"},{"title":"Setup","icon":"plug","href":"/sources/databricks/setup"},{"title":"What Prizm Collects from Databricks","icon":"database","href":"/sources/databricks/what-we-collect"},{"title":"FAQ","icon":"question","href":"/sources/databricks/faq"}]},{"group":"SQL Server","icon":"server","pages":[{"title":"SQL Server Overview","icon":"database","href":"/sources/sql/overview"},{"title":"Setup","icon":"plug","href":"/sources/sql/setup"},{"title":"What Prizm Collects from SQL Server","icon":"database","href":"/sources/sql/what-we-collect"},{"title":"FAQ","icon":"question","href":"/sources/sql/faq"}]},{"group":"dbt","icon":"cube","pages":[{"title":"dbt Overview","icon":"cube","href":"/sources/dbt/overview"},{"title":"Setup","icon":"plug","href":"/sources/dbt/setup"},{"title":"What Prizm Collects from dbt","icon":"database","href":"/sources/dbt/what-prizm-collects"},{"title":"FAQ","icon":"question","href":"/sources/dbt/faq"}]},{"group":"Tableau","icon":"chart-column","pages":[{"title":"Tableau Overview","icon":"chart-bar","href":"/sources/tableau/overview"},{"title":"Tableau Setup","icon":"plug","href":"/sources/tableau/setup"},{"title":"What Prizm Collects from Tableau","icon":"database","href":"/sources/tableau/what-we-collect"},{"title":"Tableau FAQ","icon":"question","href":"/sources/tableau/faq"}]},{"group":"Power BI","icon":"chart-pie","pages":[{"title":"Overview","icon":"chart-bar","description":"What the Power BI connector does, which asset types Prizm catalogs and monitors, and how lineage flows from source systems through semantic models to reports and dashboards.","href":"/sources/powerbi/overview"},{"title":"Setup","icon":"plug","href":"/sources/powerbi/setup"},{"title":"What We Collect","description":"Field-level breakdown of every metadata object Prizm extracts from Power BI — workspaces, semantic models, reports, dashboards, dataflows, and data sources.","icon":"database","href":"/sources/powerbi/what-we-collect"},{"title":"FAQ","icon":"circle-question","href":"/sources/powerbi/faq"}]},{"group":"Apache Airflow","icon":"wind","pages":[{"title":"Airflow Overview","icon":"wind","href":"/sources/airflow/overview"},{"title":"Setup","icon":"plug","href":"/sources/airflow/setup"},{"title":"What We Collect","icon":"database","href":"/sources/airflow/what-we-collect"},{"title":"Plugin Setup","icon":"puzzle-piece","href":"/sources/airflow/plugin-setup"}]},{"group":"SAP HANA","icon":"memory","pages":[{"title":"SAP HANA Overview","sidebarTitle":"Overview","icon":"database","href":"/sources/sap-hana/overview"},{"title":"SAP HANA Setup","sidebarTitle":"Setup","icon":"plug","href":"/sources/sap-hana/setup"},{"title":"SAP HANA — What We Collect","sidebarTitle":"What We Collect","icon":"database","href":"/sources/sap-hana/what-we-collect"},{"title":"SAP HANA FAQ","sidebarTitle":"FAQ","icon":"circle-question","href":"/sources/sap-hana/faq"}]},{"group":"Azure Data Factory","icon":"diagram-project","hidden":true,"pages":[{"title":"Azure Data Factory Overview","sidebarTitle":"Overview","icon":"database","href":"/sources/adf/overview"},{"title":"Azure Data Factory Setup","sidebarTitle":"Setup","icon":"plug","href":"/sources/adf/setup"},{"title":"Azure Data Factory — What We Collect","sidebarTitle":"What We Collect","icon":"database","href":"/sources/adf/what-we-collect"},{"title":"Azure Data Factory FAQ","sidebarTitle":"FAQ","icon":"circle-question","href":"/sources/adf/faq"}]},{"group":"Azure Synapse","icon":"warehouse","pages":[{"title":"Azure Synapse Overview","sidebarTitle":"Overview","icon":"database","href":"/sources/synapse/overview"},{"title":"Azure Synapse Setup","sidebarTitle":"Setup","icon":"plug","href":"/sources/synapse/setup"},{"title":"Azure Synapse — What We Collect","sidebarTitle":"What We Collect","icon":"database","href":"/sources/synapse/what-we-collect"},{"title":"Azure Synapse FAQ","sidebarTitle":"FAQ","icon":"circle-question","href":"/sources/synapse/faq"},{"title":"Pipelines","tag":"Internal","icon":"diagram-project","href":"/sources/synapse/pipelines"}]},{"group":"Salesforce Data Cloud","icon":"salesforce","pages":[{"title":"Salesforce Data Cloud Overview","sidebarTitle":"Overview","icon":"database","href":"/sources/salesforce-data-cloud/overview"},{"title":"Salesforce Data Cloud Setup","sidebarTitle":"Setup","icon":"plug","href":"/sources/salesforce-data-cloud/setup"},{"title":"Salesforce Data Cloud — What We Collect","sidebarTitle":"What We Collect","icon":"database","href":"/sources/salesforce-data-cloud/what-we-collect"},{"title":"Salesforce Data Cloud FAQ","sidebarTitle":"FAQ","icon":"circle-question","href":"/sources/salesforce-data-cloud/faq"}]},{"group":"WhereScape","icon":"diagram-project","pages":[{"title":"WhereScape Overview","sidebarTitle":"Overview","icon":"database","href":"/sources/wherescape/overview"},{"title":"WhereScape Setup","sidebarTitle":"Setup","icon":"plug","href":"/sources/wherescape/setup"},{"title":"WhereScape — What We Collect","sidebarTitle":"What We Collect","icon":"database","href":"/sources/wherescape/what-we-collect"},{"title":"WhereScape FAQ","sidebarTitle":"FAQ","icon":"circle-question","href":"/sources/wherescape/faq"}]},{"group":"Salesforce Marketing","icon":"salesforce","pages":[{"title":"Salesforce Marketing Overview","sidebarTitle":"Overview","icon":"database","href":"/sources/salesforce-marketing/overview"},{"title":"Salesforce Marketing Setup","sidebarTitle":"Setup","icon":"plug","href":"/sources/salesforce-marketing/setup"},{"title":"Salesforce Marketing — What We Collect","sidebarTitle":"What We Collect","icon":"database","href":"/sources/salesforce-marketing/what-we-collect"},{"title":"Salesforce Marketing FAQ","sidebarTitle":"FAQ","icon":"circle-question","href":"/sources/salesforce-marketing/faq"}]}]},{"group":"Integrations","icon":"connectdevelop","pages":[{"group":"Alation","icon":"book-open","pages":[{"title":"Overview","icon":"circle-info","href":"/integrations/alation/overview"},{"title":"Setup","icon":"gear","href":"/integrations/alation/setup"},{"title":"Integration","icon":"plug","href":"/integrations/alation/integration"}]},{"group":"Collibra","icon":"book-open","pages":[{"title":"Overview","icon":"circle-info","href":"/integrations/collibra/overview"},{"title":"Setup","icon":"gear","href":"/integrations/collibra/setup"}]},{"group":"Atlan","icon":"book-open","pages":[{"title":"Overview","tag":"Private","icon":"circle-info","href":"/integrations/atlan/overview"},{"title":"Setup","tag":"Private","icon":"gear","href":"/integrations/atlan/setup"}]},{"group":"Microsoft Purview","icon":"book-open","pages":[{"title":"Overview","icon":"circle-info","href":"/integrations/purview/overview"},{"title":"Setup","icon":"gear","href":"/integrations/purview/setup"}]},{"group":"Collaboration","icon":"people-group","pages":[{"group":"Jira","icon":"jira","pages":[{"title":"Overview","icon":"circle-info","href":"/integrations/jira/overview"},{"title":"Setup","icon":"gear","href":"/integrations/jira/setup"},{"title":"Integration","icon":"plug","href":"/integrations/jira/integration"}]},{"group":"Service Now","icon":"ticket","pages":[{"title":"Overview","icon":"circle-info","href":"/integrations/servicenow/overview"},{"title":"Setup","icon":"gear","href":"/integrations/servicenow/setup"},{"title":"Integration","icon":"plug","href":"/integrations/servicenow/integration"}]},{"group":"Github Action","icon":"circle-play","pages":[{"title":"Overview","icon":"circle-info","href":"/integrations/githubaction/overview"},{"title":"Setup","icon":"gear","href":"/integrations/githubaction/setup"},{"title":"Integration","icon":"plug","href":"/integrations/githubaction/integrations"}]},{"group":"Github App","icon":"github","pages":[{"title":"Overview","icon":"circle-info","href":"/integrations/githubapp/overview"},{"title":"Setup","icon":"gear","href":"/integrations/githubapp/setup"},{"title":"Integration","icon":"arrows-left-right","href":"/integrations/githubapp/integrations"}]}]},{"group":"Notification","icon":"bell","pages":[{"group":"Email","icon":"envelope","pages":[{"title":"Overview","icon":"circle-info","href":"/integrations/email/overview"},{"title":"Setup","icon":"gear","href":"/integrations/email/setup"}]},{"group":"Google Chat","icon":"google","pages":[{"title":"Overview","icon":"circle-info","href":"/integrations/googlechat/overview"},{"title":"Setup","icon":"gear","href":"/integrations/googlechat/setup"}]},{"group":"Microsoft Team","icon":"microsoft","pages":[{"title":"Overview","icon":"circle-info","href":"/integrations/teams/overview"},{"title":"Setup","icon":"gear","href":"/integrations/teams/setup"}]},{"group":"Slack","icon":"slack","pages":[{"title":"Overview","icon":"circle-info","href":"/integrations/slack/overview"},{"title":"Setup","icon":"gear","href":"/integrations/slack/setup"}]}]},{"group":"Vault","icon":"vault","pages":[{"group":"Azure Key Vault","icon":"key","pages":[{"title":"Overview","icon":"circle-info","href":"/integrations/azure-key-vault/overview"},{"title":"Prerequisites","icon":"list-check","href":"/integrations/azure-key-vault/prerequisites"},{"title":"Setup","icon":"gear","href":"/integrations/azure-key-vault/setup"}]},{"group":"HashiCorp Vault","icon":"vault","pages":[{"title":"Overview","icon":"circle-info","href":"/integrations/hashicorp-vault/overview"},{"title":"Prerequisites","icon":"list-check","href":"/integrations/hashicorp-vault/prerequisites"},{"title":"Setup","icon":"gear","href":"/integrations/hashicorp-vault/setup"}]},{"group":"AWS Secret Manager","icon":"aws","pages":[{"title":"Overview","icon":"circle-info","href":"/integrations/aws-secret-manager/overview"},{"title":"Prerequisites","icon":"list-check","href":"/integrations/aws-secret-manager/prerequisites"},{"title":"Setup","icon":"gear","href":"/integrations/aws-secret-manager/setup"}]}]}]},{"group":"Security \u0026 Access Control","icon":"user-lock","pages":[{"title":"Security Overview","icon":"shield","href":"/security/overview"},{"title":"RBAC","icon":"user-shield","href":"/security/rbac"},{"group":"SSO integration","icon":"right-to-bracket","pages":[{"title":"SSO Integration Overview","icon":"key","href":"/security/sso"},{"title":"Azure Active Directory/Entra ID","icon":"microsoft","href":"/security/sso/azure"},{"title":"Okta","icon":"id-badge","href":"/security/sso/okta"},{"title":"IBM Verify","icon":"shield-check","href":"/security/sso/ibm-verify"},{"title":"Ping Identity","icon":"fingerprint","href":"/security/sso/ping-identity"},{"title":"SCIM Integration","icon":"users-gear","tag":"Ready for review","href":"/security/sso/scim"}]},{"title":"Data Protection","icon":"shield-halved","href":"/security/data-protection"},{"title":"AI Governance","icon":"user-robot","href":"/security/aigovernance"},{"title":"Compliance","icon":"certificate","href":"/security/compliance"}]},{"group":"Deployment","icon":"octopus-deploy","pages":[{"title":"Deployment Overview","icon":"rectangle-terminal","href":"/deployment/overview"},{"group":"Hybrid","icon":"cloud","pages":[{"group":"Azure Agent Outbound","icon":"microsoft","pages":[]},{"group":"AWS Agent Outbound","icon":"aws","pages":[]},{"group":"GCP Agent Outbound","icon":"google","pages":[]},{"group":"On Prem Agent Outbound","icon":"container-storage","pages":[]}]},{"group":"Customer Hosted","icon":"building","pages":[{"group":"Online","icon":"wifi","pages":[]},{"group":"Offline(Private)","icon":"lock","pages":[]}]}]},{"group":"Help","icon":"hands-helping","pages":[{"title":"FAQ","icon":"circle-question","href":"/faq"},{"title":"Troubleshooting","icon":"wrench","href":"/help/troubleshooting"},{"title":"Glossary","icon":"book","href":"/help/glossary"}]},{"group":"Settings","icon":"cog","pages":[{"title":"Platform","icon":"layer-group","href":"/Platform"},{"title":"Security","icon":"lock","href":"/settings"},{"title":"Remediation","icon":"screwdriver-wrench","href":"/remediation"},{"title":"Color Mode","icon":"palette","href":"/color-mode"},{"title":"Overview","icon":"building","href":"/organization-overview"}]},{"group":"MCP","icon":"plug","pages":[{"title":"MCP Access Tokens","icon":"key","href":"/ai/mcp-access-tokens"}]},{"group":"Release Notes","icon":"clipboard-list","pages":[{"title":"1.3.3 Release Notes","icon":"tag","href":"/Release_Notes_v1.3.3"},{"title":"1.3.4 Release Notes","icon":"tag","href":"/Release_Notes_v1.3.4"},{"title":"1.4.1 Release Notes","icon":"tag","href":"/Release_Notes_v1.4.1"}]},{"group":"Placeholder reference - might remove","icon":"box-archive","hidden":true,"pages":[{"title":"security","icon":"shield","href":"/introduction/security"},{"title":"What is Prizm?","icon":"sparkles","href":"/introduction/overview"},{"title":"Key Concepts","icon":"lightbulb","href":"/introduction/key-concepts"},{"title":"Quick Start","icon":"rocket","href":"/introduction/quick-start"},{"group":"Data Quality","icon":"shield-check","pages":[{"title":"Data Quality Overview","icon":"shield-check","href":"/data-quality/overview"},{"title":"Quality Metrics","icon":"shield-check","href":"/data-quality/metrics"},{"title":"Quality Scoring","icon":"star","href":"/data-quality/scoring"},{"title":"Exception Management","icon":"triangle-exclamation","href":"/data-quality/exceptions"},{"title":"YAML Metrics - DQaC","icon":"code","href":"/data-quality/yaml-dqac"}]},{"group":"AI-Powered Experiences","icon":"robot","pages":[{"title":"AI-Powered Experiences","icon":"wand-magic-sparkles","href":"/ai/overview"},{"title":"GPT Prompts","icon":"wand-magic-sparkles","href":"/ai/gpt-prompts"},{"title":"Model Configuration","icon":"sliders","href":"/ai/model-configuration"},{"title":"Converse MCP Tools","icon":"plug","href":"/ai/converse-mcp"},{"title":"AI Recommendations","icon":"lightbulb","href":"/ai/recommendations"},{"title":"Glossary Generation","icon":"book","href":"/ai/glossary-generation"}]},{"group":"Guides","icon":"notes-sticky","pages":[{"title":"Navigate the PRIZM dashboard, nav bar, and search","icon":"compass","href":"/guides/navigating-dashboard"},{"title":"Search and discover assets across your data ecosystem","icon":"magnifying-glass","href":"/guides/searching-assets"},{"title":"Explore asset details, schema, lineage, and metrics","icon":"table","href":"/guides/asset-details"},{"title":"View, triage, and respond to PRIZM data quality alerts","icon":"bell","href":"/guides/managing-alerts"},{"title":"Track and resolve data quality issues with PRIZM Issues","icon":"bug","href":"/guides/tracking-issues"},{"title":"Explore insights with Analytics","icon":"chart-bar","href":"/guides/analytics"},{"title":"Use the PRIZM AI Chat Assistant to explore your data","icon":"comments","href":"/guides/chat-assistant"}]},{"group":"Architecture","icon":"sitemap","pages":[{"title":"Audience","icon":"users-gear","href":"/architecture/audience"},{"title":"Infrastructure","icon":"cloud","href":"/architecture/infrastructure"},{"title":"Data Model","icon":"table","href":"/architecture/data-model"},{"title":"Context Module","icon":"brain","href":"/architecture/context"},{"title":"Notifications","icon":"bell","href":"/architecture/notifications"},{"title":"Scheduling","icon":"calendar","href":"/architecture/scheduling"},{"title":"Impact Analysis","icon":"explosion","href":"/lineage/impact-analysis"}]}]}]},{"tab":"API Reference","icon":"code","pages":[{"title":"API Reference","href":"/api-reference/overview"}]}]},"basePath":"","title":"Setup - DQLabs PRIZM","buildId":"dpl_DqYu5MPb49gWBBbUGgpHQUmCHY3P","deploymentId":"dpl_DqYu5MPb49gWBBbUGgpHQUmCHY3P","dynamics":["07c022d89b","a74be98ba7"],"chunks":["Frame-u3J1-UOn.js","DynamicMarkdown-B-f2cqXQ.js","zoom-image-lightbox-DTFzvaXJ.js","lightbox-handle-r17bVUz3.js"]}