Skip to content

feat(powerbi): Add support for powerbi datamarts#28896

Merged
harshsoni2024 merged 2 commits into
mainfrom
feat/powerbi-datamarts
Jun 10, 2026
Merged

feat(powerbi): Add support for powerbi datamarts#28896
harshsoni2024 merged 2 commits into
mainfrom
feat/powerbi-datamarts

Conversation

@harshsoni2024

@harshsoni2024 harshsoni2024 commented Jun 10, 2026

Copy link
Copy Markdown
Contributor

Describe your changes:

Fix #28051

Add support for PowerBI datamarts under DashboardDatamodels

Type of change:

  • Bug fix
  • Improvement
  • New feature
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Documentation

High-level design:

N/A — small change.

Tests:

Use cases covered

Unit tests

Backend integration tests

Ingestion integration tests

Playwright (UI) tests

Manual testing performed

UI screen recording / screenshots:

Not applicable.

Checklist:

  • I have read the CONTRIBUTING document.
  • My PR title is Fixes <issue-number>: <short explanation>
  • My PR is linked to a GitHub issue via Fixes #<issue-number> above.
  • I have commented on my code, particularly in hard-to-understand areas.
  • For JSON Schema changes: I updated the migration scripts or explained why it is not needed.
  • For UI changes: I attached a screen recording and/or screenshots above.
  • I have added tests (unit / integration / Playwright as applicable) and listed them above.

@harshsoni2024 harshsoni2024 requested review from a team as code owners June 10, 2026 05:21
Copilot AI review requested due to automatic review settings June 10, 2026 05:21
@github-actions github-actions Bot added Ingestion safe to test Add this label to run secure Github workflows on PRs labels Jun 10, 2026
Comment thread ingestion/src/metadata/ingestion/source/dashboard/powerbi/metadata.py Outdated

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds PowerBI Datamart support as a DashboardDataModel type across the OpenMetadata schema/UI types and the PowerBI ingestion source, including lineage and unit test coverage.

Changes:

  • Extend DataModelType with PowerBIDatamart in the JSON schema and UI-generated TypeScript API/entity enums.
  • Add PowerBI scan-result parsing for datamarts[], emit CreateDashboardDataModelRequest entries for datamarts, and add upstream-datamart lineage emission.
  • Add unit tests validating datamart datamodel emission and upstream lineage filtering (self-reference excluded).

Reviewed changes

Copilot reviewed 4 out of 6 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
openmetadata-ui/src/main/resources/ui/src/generated/entity/data/dashboardDataModel.ts Adds PowerBIDatamart to the UI entity DataModelType enum.
openmetadata-ui/src/main/resources/ui/src/generated/api/data/createDashboardDataModel.ts Adds PowerBIDatamart to the create-request DataModelType enum.
openmetadata-spec/src/main/resources/json/schema/entity/data/dashboardDataModel.json Extends the schema enum/javaEnums to include PowerBIDatamart.
ingestion/src/metadata/ingestion/source/dashboard/powerbi/models.py Introduces Datamart + UpstreamDatamart models and adds datamarts to Group.
ingestion/src/metadata/ingestion/source/dashboard/powerbi/metadata.py Emits datamart datamodels, builds datamart source URLs, and generates upstream lineage.
ingestion/tests/unit/topology/dashboard/test_powerbi.py Adds unit tests for datamart datamodel yield and upstream-datamart lineage filtering.

Comment thread ingestion/src/metadata/ingestion/source/dashboard/powerbi/models.py
Comment thread ingestion/src/metadata/ingestion/source/dashboard/powerbi/models.py
@github-actions

Copy link
Copy Markdown
Contributor

Jest test Coverage

UI tests summary

Lines Statements Branches Functions
Coverage: 62%
62.77% (66997/106722) 44.1% (37124/84177) 46.44% (11356/24448)

@sonarqubecloud

Copy link
Copy Markdown

@sonarqubecloud

Copy link
Copy Markdown

@github-actions

Copy link
Copy Markdown
Contributor

🟡 Playwright Results — all passed (19 flaky)

✅ 4264 passed · ❌ 0 failed · 🟡 19 flaky · ⏭️ 88 skipped

Shard Passed Failed Flaky Skipped
🟡 Shard 1 300 0 1 4
🟡 Shard 2 801 0 5 9
🟡 Shard 3 802 0 2 8
🟡 Shard 4 846 0 1 12
🟡 Shard 5 718 0 3 47
🟡 Shard 6 797 0 7 8
🟡 19 flaky test(s) (passed on retry)
  • Pages/Policies.spec.ts › Add new policy with invalid condition (shard 1, 1 retry)
  • Features/DataQuality/TestCaseImportExportE2eFlow.spec.ts › Admin: Complete export-import-validate flow (shard 2, 1 retry)
  • Features/DataQuality/TestCaseImportExportE2eFlow.spec.ts › EditAll User: Complete export-import-validate flow (shard 2, 1 retry)
  • Features/DataQuality/TestCaseResultPermissions.spec.ts › User with TEST_CASE.EDIT_ALL can see edit action on test case (shard 2, 1 retry)
  • Features/Glossary/GlossaryWorkflow.spec.ts › should display correct status badge color and icon (shard 2, 2 retries)
  • Features/Glossary/GlossaryWorkflow.spec.ts › should start term as Draft when glossary has reviewers (shard 2, 1 retry)
  • Features/RTL.spec.ts › Verify Following widget functionality (shard 3, 1 retry)
  • Flow/CustomizeWidgets.spec.ts › Data Products Widget (shard 3, 1 retry)
  • Pages/DataContractsSemanticRules.spec.ts › Validate DataProduct Rule Any_In (shard 4, 1 retry)
  • Pages/Entity.spec.ts › User as Owner with unsorted list (shard 5, 1 retry)
  • Pages/EntityDataSteward.spec.ts › Tier Add, Update and Remove (shard 5, 1 retry)
  • Pages/ExplorePageRightPanel_KnowledgeCenter.spec.ts › Should remove user owner for knowledgeCenter (shard 5, 1 retry)
  • Pages/ExploreTree.spec.ts › Explore Tree (shard 6, 1 retry)
  • Pages/Lineage/LineageFilters.spec.ts › Verify lineage service filter selection (shard 6, 1 retry)
  • Pages/Lineage/LineageFilters.spec.ts › Verify lineage schema filter selection (shard 6, 1 retry)
  • Pages/Lineage/LineageRightPanel.spec.ts › Verify custom properties tab IS visible for supported type: searchIndex (shard 6, 1 retry)
  • Pages/Lineage/PlatformLineage.spec.ts › Verify domain platform view (shard 6, 1 retry)
  • Pages/ODCSImportExport.spec.ts › Multi-object ODCS contract - object selector shows all schema objects (shard 6, 1 retry)
  • Pages/UserDetails.spec.ts › Create team with domain and verify visibility of inherited domain in user profile after team removal (shard 6, 1 retry)

📦 Download artifacts

How to debug locally
# Download playwright-test-results-<shard> artifact and unzip
npx playwright show-trace path/to/trace.zip    # view trace

@harshsoni2024 harshsoni2024 merged commit 9d418ae into main Jun 10, 2026
70 of 77 checks passed
@harshsoni2024 harshsoni2024 deleted the feat/powerbi-datamarts branch June 10, 2026 11:04
@gitar-bot

gitar-bot Bot commented Jun 10, 2026

Copy link
Copy Markdown
Code Review ✅ Approved 1 resolved / 1 findings

Adds PowerBI Datamart support under DashboardDatamodels and fixes the missing experience query parameter in the URL. No issues found.

✅ 1 resolved
Quality: Datamart URL omits experience query param used elsewhere

📄 ingestion/src/metadata/ingestion/source/dashboard/powerbi/metadata.py:420-424
_get_datamart_url builds the URL as .../groups/{workspace_id}/datamarts/{datamart_id} without the ?experience=power-bi query parameter that _get_dataset_url, _get_dataflow_url, and _get_report_url all append. While the datamart link likely still resolves in the Power BI portal, the inconsistency may cause the link to open in a different experience than the other data model types. Consider appending ?experience=power-bi for consistency with the sibling URL builders.

Options

Display: compact → Showing less information.

Comment with these commands to change:

Compact
gitar display:verbose         

Was this helpful? React with 👍 / 👎 | Gitar

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Ingestion safe to test Add this label to run secure Github workflows on PRs

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feature: Add support for PowerBI datamarts

4 participants