Skip to content

fix(ui): support explicit extension summary layouts#30245

Open
shah-harshit wants to merge 4 commits into
mainfrom
ui/fix-ai-dashboard-summary
Open

fix(ui): support explicit extension summary layouts#30245
shah-harshit wants to merge 4 commits into
mainfrom
ui/fix-ai-dashboard-summary

Conversation

@shah-harshit

@shah-harshit shah-harshit commented Jul 20, 2026

Copy link
Copy Markdown
Contributor

Describe your changes:

Adds an explicit summary-layout extension point so product-specific entities can reuse an existing generic summary without changing their real entity type. Unknown entity types continue to render no summary content.

Screenshot 2026-07-21 at 12 03 13 PM

Type of change:

  • Bug fix

High-level design:

  • Keep the real entity type for permissions, API updates, and section operations.
  • Resolve a separate summary layout through the replaceable search class.
  • Preserve the safe final default branch that returns no content for unsupported entity types.

Tests:

Use cases covered

  • Unknown entity types do not render summary sections.
  • Explicitly mapped extension entities render the existing generic description, owner, and tag sections.
  • Existing EntitySummaryPanel entity types continue rendering their expected summaries.

Unit tests

  • Updated DataAssetSummaryPanelV1 tests.
  • Ran DataAssetSummaryPanelV1 and EntitySummaryPanel suites: 59 tests passed.

Backend integration tests

  • Not applicable (no backend API changes).

Ingestion integration tests

  • Not applicable (no ingestion changes).

Playwright (UI) tests

  • Not applicable; covered by focused component tests.

Manual testing performed

  • Verified the AI Dashboard API response and right-panel behavior in the local My Data view during diagnosis.

UI screen recording / screenshots:

Not attached.

Checklist:

  • I have read the CONTRIBUTING document.
  • I have commented on hard-to-understand extension behavior.
  • I have added tests for the changed logic.

Summary by Gitar

  • UI panel extension:
    • Added summaryEntityType to DataAssetSummaryPanelV1 to allow mapping extension entities to existing summary layouts.
    • Implemented getEntitySummaryPanelType in SearchClassBase to resolve summary layouts for product extensions.
  • Permissions and safety:
    • Updated DataAssetSummaryPanelV1 to enforce read-only state for mapped extension entities by disabling all edit permissions when summaryEntityType !== entityType.
  • Testing:
    • Updated DataAssetSummaryPanelV1.test.tsx to verify that unknown entity types render no summary sections and mapped extensions render correctly without edit actions.
    • Added integration tests to EntitySummaryPanel.test.tsx to ensure extensions fetch using their original entity type while resolving the correct summary layout.

This will update automatically on new commits.

Greptile Summary

This PR adds explicit summary layouts for product-specific entity extensions. The main changes are:

  • Keeps the original entity type for API requests and permissions.
  • Resolves summary layouts and custom panels through SearchClassBase.
  • Makes mapped extension summaries read-only.
  • Preserves empty summaries for unsupported entity types.
  • Adds focused tests for extension layouts and custom panels.

Confidence Score: 5/5

This looks safe to merge.

  • The mapped layout disables all summary edit permissions.
  • The original entity type remains in use for fetching and entity operations.
  • No blocking issues were found in the updated code.

Important Files Changed

Filename Overview
openmetadata-ui/src/main/resources/ui/src/components/DataAssetSummaryPanelV1/DataAssetSummaryPanelV1.tsx Uses a separate layout type and disables editing when the layout differs from the real entity type.
openmetadata-ui/src/main/resources/ui/src/components/Explore/EntitySummaryPanel/EntitySummaryPanel.component.tsx Selects extension-provided panels and layouts while retaining the original type for entity operations.
openmetadata-ui/src/main/resources/ui/src/utils/SearchClassBase.ts Adds typed extension points for summary layout resolution and custom panel registration.
openmetadata-ui/src/main/resources/ui/src/components/DataAssetSummaryPanelV1/DataAssetSummaryPanelV1.test.tsx Tests empty unsupported summaries and read-only mapped extension summaries.
openmetadata-ui/src/main/resources/ui/src/components/Explore/EntitySummaryPanel/EntitySummaryPanel.test.tsx Tests custom panel selection and fetching extensions with their original entity type.

Reviews (3): Last reviewed commit: "Merge branch 'main' into ui/fix-ai-dashb..." | Re-trigger Greptile

Context used (3)

  • Context used - CLAUDE.md (source)
  • Context used - openmetadata-ui-core-components/CLAUDE.md (source)
  • Context used - AGENTS.md (source)

@shah-harshit
shah-harshit requested a review from a team as a code owner July 20, 2026 13:53
@shah-harshit shah-harshit added UI UI specific issues safe to test Add this label to run secure Github workflows on PRs skip-pr-checks Bypass PR metadata validation check labels Jul 20, 2026
@shah-harshit shah-harshit self-assigned this Jul 20, 2026
@github-actions

github-actions Bot commented Jul 20, 2026

Copy link
Copy Markdown
Contributor

🔴 Playwright Results — 1 test failure(s)

✅ 4543 passed · ❌ 1 failed · 🟡 26 flaky · ⏭️ 99 skipped

Shard Passed Failed Flaky Skipped
🟡 Shard 1 436 0 4 16
✅ Shard 2 11 0 0 0
🟡 Shard 3 824 0 9 8
🟡 Shard 4 822 0 1 18
🔴 Shard 5 835 1 3 9
🟡 Shard 6 787 0 1 46
🟡 Shard 7 828 0 8 2

Genuine Failures (failed on all attempts)

Pages/CustomProperties.spec.ts › Set & Update all CP types on chart (shard 5)
�[31mTest timeout of 300000ms exceeded.�[39m
🟡 26 flaky test(s) (passed on retry)
  • Features/TeamsDragAndDrop.spec.ts › Should drag and drop team on table level (shard 1, 1 retry)
  • Pages/Lineage/LineageRightPanel.spec.ts › Verify custom properties tab IS visible for supported type: chart (shard 1, 1 retry)
  • Pages/SearchSettings.spec.ts › Latest preview config wins when a superseded request resolves late (shard 1, 1 retry)
  • Flow/SearchRBAC.spec.ts › the browse tree only shows the asset-type categories a user can access (shard 1, 1 retry)
  • Features/BulkEditEntity.spec.ts › Database (shard 3, 1 retry)
  • Features/BulkEditOperationBadges.spec.ts › Database service bulk edit search filters rows and clear restores them (shard 3, 1 retry)
  • Features/ContextCenterArticles.spec.ts › Article listing search filters, clears, and shows empty state (shard 3, 1 retry)
  • Features/ContextCenterArticles.spec.ts › Article list cards, recently viewed widget, and pagination work (shard 3, 1 retry)
  • Features/ContextCenterArticles.spec.ts › Article edits and navigation-flushed titles persist (shard 3, 2 retries)
  • Features/ContextCenterArticles.spec.ts › description: switching articles does not bleed unsaved content into next article (shard 3, 1 retry)
  • Features/ContextCenterMemories.spec.ts › adding a linked asset in edit mode shows entity badge on the row (shard 3, 1 retry)
  • Features/Glossary/GlossaryHierarchy.spec.ts › should move term with children to different glossary (shard 3, 1 retry)
  • Features/Glossary/GlossaryHierarchy.spec.ts › should cancel drag and drop operation (shard 3, 1 retry)
  • Features/SearchExport.spec.ts › Export queues a background job and downloads from the jobs tray (shard 4, 1 retry)
  • Flow/ExploreDiscovery.spec.ts › Should display domain and owner of deleted asset in suggestions when showDeleted is on (shard 5, 1 retry)
  • Flow/PersonaFlow.spec.ts › Set default persona for team should work properly (shard 5, 1 retry)
  • Pages/DataContracts.spec.ts › Contract Status badge should be visible on condition if Contract Tab is present/hidden by Persona (shard 5, 1 retry)
  • Pages/Entity.spec.ts › Domain Propagation (shard 6, 1 retry)
  • Pages/ExplorePageRightPanel.spec.ts › Should allow Data Steward to edit glossary terms for searchIndex (shard 7, 1 retry)
  • Pages/Glossary.spec.ts › Approve and reject glossary term from Glossary Listing (shard 7, 1 retry)
  • Pages/Glossary.spec.ts › Drag and Drop Glossary Term (shard 7, 1 retry)
  • Pages/InputOutputPorts.spec.ts › Lineage displays input and output ports (shard 7, 1 retry)
  • Pages/Lineage/LineageFilters.spec.ts › Verify Impact Analysis service filter selection (shard 7, 1 retry)
  • Pages/Lineage/LineageRightPanel.spec.ts › Verify custom properties tab is NOT visible for pipelineService in platform lineage (shard 7, 1 retry)
  • Pages/Lineage/LineageRightPanel.spec.ts › Verify custom properties tab is NOT visible for apiService in platform lineage (shard 7, 1 retry)
  • Pages/TestSuite.spec.ts › Logical TestSuite (shard 7, 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

@github-actions

github-actions Bot commented Jul 20, 2026

Copy link
Copy Markdown
Contributor

Jest test Coverage

UI tests summary

Lines Statements Branches Functions
Coverage: 65%
65.21% (75825/116268) 48.97% (45180/92252) 49.83% (13677/27443)

@gitar-bot

gitar-bot Bot commented Jul 20, 2026

Copy link
Copy Markdown
Code Review ✅ Approved

Implements explicit summary layouts for product-specific entities via a new registry, ensuring these mapped extensions remain read-only while preserving original entity types for API operations. Comprehensive tests verify correct rendering and safety for both supported and unsupported entity types.

Options

Display: compact → Showing less information.

Comment with these commands to change the behavior for this request:

Compact
gitar display:verbose         

Was this helpful? React with 👍 / 👎 | Gitar

@sonarqubecloud

Copy link
Copy Markdown

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

Labels

safe to test Add this label to run secure Github workflows on PRs skip-pr-checks Bypass PR metadata validation check UI UI specific issues

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants