Repository navigation
feat(ui): Needs you now slot on the home page, and the landing page design review - #35462
Conversation
CustomizeMyDataPageClassBase.getNeedsYouNowSection() returns null in OpenMetadata, so the page is unchanged. A deployment that has a ranked inbox returns a component, and HomeLandingPage renders it between the announcements rail and the topic widgets, in its own Suspense boundary.
Card titles drop to 14px medium, card body text, rows and footers to 12px, section headings to 14px, and card buttons and links to the xs variant, all from the design-system scale. The gap between the home sections narrows to 40px. Activity links take text-xs, overriding the legacy 14px prose link rule.
…e design Announcement cards name their type in the type's colour rather than a badge, set the body and footer in the tertiary and quaternary greys, and pad 16px across. Opening an announcement from the All announcements dialog now closes the dialog. The rail pager uses ButtonUtility's own xs size. Topic card summaries move to the quaternary grey and status badges to medium weight. FilterSelect gains buttonSize for its bordered button trigger (md by default, so existing callers are unchanged); the landing page's filters use xs.
Topic cards carry their status badge on the right beside a heavier, darker collapse chevron. Data Quality groups its latest results by table or test case instead of filtering by test type, shows each result's status icon and badge whatever the status, and colours the legend text like its dot. Curated Assets sets its rule chips white on a blue-gray rule box, moves the persona note to the right, and puts each asset's logo on a white tile.
…y widget Each row now says where its incident stands (New, Ack, Assigned, Resolved), read from the incidentStatus the test search already inlines. An aborted run with no incident offers Raise incident, which opens the test's Issues tab. Table headers count every result on that table in the card's scope, from one dataQualityReport aggregation by originEntityFQN, instead of only the rows shown.
FilterButton now renders the small core Select, as the Audit Hub's filters do: a neutral trigger showing the current choice and a check on the selected option. Every card filter is single-choice and always holds a value, so FilterSelect's brand-coloured selected state read as a permanently active filter. The Playwright helper picks options through chooseSelectOption.
The topic card filters moved to the core Select, so the bordered button trigger's size option has no user left.
❌ PR checklist incompleteThis PR cannot be merged until the following are addressed on its linked issue:
The fields live on the linked issue in the Shipping project (open the issue → right sidebar → Projects). After you set them, re-run this check (or push a commit) — issue/project changes do not re-trigger it automatically. Maintainers can bypass this check by adding the |
|
Hi there 👋 Thanks for your contribution! The OpenMetadata team will review the PR shortly! Once it has been labeled as Let us know if you need any help! |
🔄 Playwright impact map auto-refreshedThis PR touched specs or UI source that changed the source→spec routing map. I regenerated What is this file? It is the auto-generated half of Playwright's PR planner. It routes "if source X changes, run specs Y" by walking spec imports and cross-referencing What if I want to regenerate locally instead? Run this before pushing your next change to skip the bot commit: python3 .github/scripts/generate_playwright_impact_map.py
git add .github/playwright/impact-map.generated.json
git commit --amend --no-edit # or a separate commit |
|
Hi there 👋 Thanks for your contribution! The OpenMetadata team will review the PR shortly! Once it has been labeled as Let us know if you need any help! |
originEntityFQN has a lowercase normalizer, so the report returns its table buckets lowercased; a table with uppercase letters never found its counts and the header fell back to the rows shown. Key and look up the counts by the lowercased FQN. Records the Needs you now slot contract and its merge order with Collate. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
karanh37
left a comment
There was a problem hiding this comment.
@shrabantipaul-collate post the playwright run screenshot
…ds-you-now-slot # Conflicts: # openmetadata-ui/src/main/resources/ui/src/components/MyData/HomeLandingPage/HomeLandingPage.tsx
A fixed w-36 cut "Last 7 days" to "Last 7 d..." once the calendar icon took its share. The trigger now fits its label, keeping w-36 as its floor. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
🔄 Playwright impact map auto-refreshedThis PR touched specs or UI source that changed the source→spec routing map. I regenerated What is this file? It is the auto-generated half of Playwright's PR planner. It routes "if source X changes, run specs Y" by walking spec imports and cross-referencing What if I want to regenerate locally instead? Run this before pushing your next change to skip the bot commit: python3 .github/scripts/generate_playwright_impact_map.py
git add .github/playwright/impact-map.generated.json
git commit --amend --no-edit # or a separate commit |
❌ UI Checkstyle Failed❌ Bundle Runtime CheckA route chunk loads but one of its chunks still exports 🔍 ESLint findings in this PR's files — 0 error(s), 3 warning(s)Errors block the build. Warnings do not yet — they are rules whose backlog is still 0 error(s), 3 warning(s) across 3 changed file(s).
All findings
Fix locally (fast - only checks files changed in this branch): make ui-checkstyle-changed |
Take the CI renders of the design review: 14px card titles, 12px body text, the topic card filters on the core Select. The navbar search also renders as main now draws it; the old landing baselines predated that. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Code Review ✅ Approved 2 closed / 2 findings🟡 Medium risk · Adding recent-result lists and table-wide aggregates to the Data Quality widget could display misleading counts or incident guidance if query scopes diverge. Adds a Needs you now slot to the home landing page, rendered between announcements and topic widgets via a class-base seam, plus landing page design refinements to announcements, topic cards, Data Quality, and Curated Assets. Per-table counts now match uppercase FQNs, and the Collate slot contract is recorded. No open issues found. ✅ 2 closed✅ Bug: Per-table counts never match tables with uppercase letters in the FQN
✅ Quality: Needs-you-now slot contract with Collate has no record in this tree
VerificationRules No rules evaluated Functional validation Not enabledAuto-approval Not enabledFor more verification details, comment OptionsDisplay: compact → Showing compact verification results. Comment with these commands to change the behavior for this request:
Was this helpful? React with 👍 / 👎 | Powered by Gitar — free for open source |
|



Describe your changes:
Screen.Recording.2026-10-14.at.6.18.17.PM.mov
No OpenMetadata issue, as with #34770: the work is tracked in the Collate epic
(open-metadata/openmetadata-collate#6790).
Adds a Needs you now slot to the home landing page and applies the landing page design review
to the announcements and topic widgets. Pairs with open-metadata/openmetadata-collate#7488,
which fills the slot — merge this PR first.
CustomizeMyDataPageClassBase.getNeedsYouNowSection()returnsnull, so a plainOpenMetadata home is unchanged. A deployment with a ranked inbox returns a component, and
HomeLandingPagerenders it between the announcements rail and the topic widgets, in its ownSuspenseboundary. It is the same class-base seam asgetPlatformHealthInsight, so it reachesboth the Classic and the AI-mode mount of the page.
card buttons and links
xs; 40px between the home sections. All from the design-system scale.quaternary greys for body and footer. Opening an announcement from the All announcements
dialog now closes the dialog.
filters are the small core
Select(the Audit Hub › Gaps style) instead ofFilterSelect,whose brand-coloured selected state read as an always-active filter.
test-type filter). Each row shows where its incident stands (
incidentStatus, already inlinedby the test search), and an aborted run with no incident offers Raise incident, which opens
the test's Issues tab. Table headers count every result on that table in the card's scope, from
one
dataQualityReportaggregation onoriginEntityFQN, not only the rows shown.logos on a white tile.
Type of change:
High-level design:
The slot is a method on
CustomizeMyDataPageClassBase, not a prop: Classic mountsHomeLandingPagefromMyDataPagewith no props, and Collate's AI mode mounts it from its ownlanding page, so only the class-base seam reaches both. OpenMetadata keeps no dependency on the
Collate API behind the section. The Collate side records this in
ADR:2026-10-14-needs-you-now-renders-through-an-oss-home-slot-in-ai-mode-only(Collate repo).The per-table counts reuse the existing
GET /dataQuality/testSuites/dataQualityReportwith atableterms bucket onoriginEntityFQNand a nestedstatusbucket, scoped by the sameowner / followed-by filters as the card. No backend change.
Tests:
Use cases covered
renders it between the announcements and the topics.
only on an aborted run with no incident, table headers use the aggregated counts.
Select.Unit tests
HomeLandingPage.test.tsx,AnnouncementsRail.test.tsx,FilterButton.test.tsx,DataQualityWidget.test.tsx,useDataQualitySummary.test.tsx,dataQualityFilters.test.ts.yarn jest src/components/MyData/HomeLandingPage src/components/MyData/Widgets src/hooks/useDataQualitySummary src/utils/dataQualityFilters src/utils/CustomizeMyDataPageClassBase→ 44 suites, 387 tests passed.
--fix+ Prettier on every changed file leave no diff.Backend integration tests
make java_affected: no Java tests are impacted.Playwright (UI) tests
playwright/e2e/Flow/CustomizeWidgets.spec.ts(Data Quality row test id),playwright/utils/widgetFilters.ts(filters pick throughchooseSelectOption),.github/playwright/impact-map.json(maps the Data Quality summary sources to the landing specs).The changed spec plus the 18 impact-mapped specs (
plan_local_playwright.py; canary and smoke sets not run), UI from this branch against a Collate server on:8585,--workers=2, 1 retry.Flow/CustomizeWidgets.spec.ts (changed)Flow/CustomizeLandingPage.spec.tsFlow/PersonaFlow.spec.tsFeatures/CuratedAssets.spec.tsFeatures/LandingPageWidgets/DomainDataProductsWidgets.spec.tsFeatures/LandingPageWidgets/DomainWidgetFilter.spec.tsFeatures/LandingPageWidgets/FollowingWidget.spec.tsFeatures/LandingPageWidgets/LandingPage.spec.tsFeatures/LandingPageWidgets/LandingPageContextCenter.spec.tsFeatures/LandingPageWidgets/LandingPageDataEstate.spec.tsFeatures/LandingPageWidgets/LandingPagePlatformHealth.spec.tsFeatures/LandingPageWidgets/LandingPageTopicWidgets.spec.tsFeatures/ActivityAPI.spec.tsFeatures/ActivityFeed.spec.tsFeatures/ActivityFeedTabBadge.spec.tsFeatures/ActivityStream.spec.tsFeatures/NavigationBlocker.spec.tsFeatures/RTL.spec.tsFeatures/SettingsNavigationPage.spec.tsPages/DataInsight.spec.tsRun 1: 142 passed, 2 failed, 1 flaky (145 incl. setup / teardown), 31 min. All three non-passes were
CuratedAssets… with display name filter (Databases, Database Schemas; API Collections flaky), each a strict-mode violation: two rows with the same name. The search index held a secondpw-database-4b9b4c7e/pw-database-schema-cb347bddleft by an interrupted earlier run against the same server. This PR's Curated Assets change is styling only (row tint, logo tile, text size). After removing that run's leftover services:Re-run
CuratedAssets.spec.ts: 26/26 passed (23 specs + setup / teardown), 15.4 min.Manual testing performed
:8585with the landing-page backend, OSS and Collate UIs from these branches.Quality groups by table / test case, incident lines and Raise incident navigate to the
test's Issues tab, and All announcements closes on opening one.
UI screen recording:
Checklist:
Fixes <issue-number>: <short explanation>Fixes #<issue-number>above.🤖 Generated with Claude Code