Skip to content

Backport #29067 database schema and container lazy-loading to 1.13 - #31046

Open
shah-harshit wants to merge 7 commits into
ui/direct-1.13-seq26-29070-common-pages-settings-lazyfrom
ui/direct-1.13-seq27-29067-db-schema-container-lazy
Open

Backport #29067 database schema and container lazy-loading to 1.13#31046
shah-harshit wants to merge 7 commits into
ui/direct-1.13-seq26-29070-common-pages-settings-lazyfrom
ui/direct-1.13-seq27-29067-db-schema-container-lazy

Conversation

@shah-harshit

Copy link
Copy Markdown
Contributor

Summary

Tracking

Testing

  • git diff --check HEAD~1..HEAD

shah-harshit and others added 7 commits August 5, 2026 18:07
* feat(ui): split CustomizePageUtils.ts into 3 focused modules (#28937)

* feat(ui): split CustomizePageUtils.ts into 3 focused modules

Closes open-metadata/openmetadata-collate#4230

Splits 830-line CustomizePageUtils.ts (with 25 eager ClassBase imports)
into three focused files to eliminate unnecessary bundle weight on every
entity detail page:

- CustomizePageEntityTabUtils.ts  — tab display helpers (no ClassBase deps)
  sortTabs, getTabDisplayName, getTabLabelMapFromTabs,
  checkIfExpandViewSupported, getDetailsTabWithNewLabel

- CustomizePageDispatchUtils.ts   — dispatch/admin flow helpers (keeps all
  25 ClassBase singletons; only imported by admin/customize pages)
  getDefaultTabs, getDefaultWidgetForTab, getCustomizableWidgetByPage,
  getDummyDataByPage, getWidgetsFromKey, getWidgetHeight,
  getGlossaryTermDefaultTabs, getGlossaryDefaultTabs

- CustomizePageWidgetUtils.ts     — widget/layout helpers (no ClassBase deps)
  getAddWidgetHandler, updateWidgetHeightRecursively,
  getLayoutFromCustomizedPage, asyncNoop

CustomizePageUtils.ts deleted; all ~50 consumer files updated to import
directly from the correct split module. No re-export facade.

Test mocks updated: removed stale mock blocks on wrong paths (previously
mocking CustomizePageUtils which had no effect once consumers moved to
CustomizePagePureUtils); added correct mocks on CustomizePagePureUtils
for FileClassBase and DirectoryClassBase tests.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix checkstyle

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>

* feat(ui): lazy-load tab-level and heavy components with withSuspenseFallback (#28830)

* feat(ui): lazy-load tab-level and heavy components with withSuspenseFallback

Convert 105 component/util files from eager imports to React.lazy() +
withSuspenseFallback() for heavy components: SchemaEditor, ActivityFeedTab,
ContractTab, CustomPropertyTable, TaskTabNew, EntitySummaryPanel,
ModalWithMarkdownEditor, BlockEditor, CodeEditor, and others.

Lazy constants are placed after all traditional imports. Removed eager
component imports are replaced with import type for props interfaces where
applicable. Zero TypeScript errors introduced.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix failing test

* fix failing test

* improve performance

* update

* address comments

* fix failing e2e tests

* fix failing tests

* Fix failing tests

* fix failing test

* address comments

* fix ui checkstyle

* fix query page import

* fix checkstyle

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix(ui): use reachable my data loading state

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
(cherry picked from commit 159cee8)
* feat(ui): split CustomizePageUtils.ts into 3 focused modules (#28937)

* feat(ui): split CustomizePageUtils.ts into 3 focused modules

Closes open-metadata/openmetadata-collate#4230

Splits 830-line CustomizePageUtils.ts (with 25 eager ClassBase imports)
into three focused files to eliminate unnecessary bundle weight on every
entity detail page:

- CustomizePageEntityTabUtils.ts  — tab display helpers (no ClassBase deps)
  sortTabs, getTabDisplayName, getTabLabelMapFromTabs,
  checkIfExpandViewSupported, getDetailsTabWithNewLabel

- CustomizePageDispatchUtils.ts   — dispatch/admin flow helpers (keeps all
  25 ClassBase singletons; only imported by admin/customize pages)
  getDefaultTabs, getDefaultWidgetForTab, getCustomizableWidgetByPage,
  getDummyDataByPage, getWidgetsFromKey, getWidgetHeight,
  getGlossaryTermDefaultTabs, getGlossaryDefaultTabs

- CustomizePageWidgetUtils.ts     — widget/layout helpers (no ClassBase deps)
  getAddWidgetHandler, updateWidgetHeightRecursively,
  getLayoutFromCustomizedPage, asyncNoop

CustomizePageUtils.ts deleted; all ~50 consumer files updated to import
directly from the correct split module. No re-export facade.

Test mocks updated: removed stale mock blocks on wrong paths (previously
mocking CustomizePageUtils which had no effect once consumers moved to
CustomizePagePureUtils); added correct mocks on CustomizePagePureUtils
for FileClassBase and DirectoryClassBase tests.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix checkstyle

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>

* feat(ui): lazy-load tab-level and heavy components with withSuspenseFallback (#28830)

* feat(ui): lazy-load tab-level and heavy components with withSuspenseFallback

Convert 105 component/util files from eager imports to React.lazy() +
withSuspenseFallback() for heavy components: SchemaEditor, ActivityFeedTab,
ContractTab, CustomPropertyTable, TaskTabNew, EntitySummaryPanel,
ModalWithMarkdownEditor, BlockEditor, CodeEditor, and others.

Lazy constants are placed after all traditional imports. Removed eager
component imports are replaced with import type for props interfaces where
applicable. Zero TypeScript errors introduced.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix failing test

* fix failing test

* improve performance

* update

* address comments

* fix failing e2e tests

* fix failing tests

* Fix failing tests

* fix failing test

* address comments

* fix ui checkstyle

* fix query page import

* fix checkstyle

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>

* feat(ui): extract pure utility functions and add lazy-loading infrastructure (#29061)

* feat(ui): extract pure utility functions and add lazy-loading infrastructure

Extracts pure (React-free) utility logic into dedicated *ClassBase.ts files for better code splitting and testability. Adds new utility files: ExploreFilterUtils.ts, GlossaryTreeUtils.ts, TagTransformUtils.ts, LazyTagComponents.tsx. Updates AppRouter to use lazy-loaded components with withSuspenseFallback for improved initial load performance. Adds test coverage for extracted utility functions.

Ref: open-metadata/openmetadata-collate#4230

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* address comments

* fix: apply ui-checkstyle fixes for feat/lazy-util-pr1-new-utils-infra

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix failing tests

* fix checkstyle

* address comments

* address comments

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix(ui): address lazy foundation review comments

* test(ui): mock data quality pure helper

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
(cherry picked from commit f26af1c)
…#30126)

* feat(ui): split CustomizePageUtils.ts into 3 focused modules (#28937)

* feat(ui): split CustomizePageUtils.ts into 3 focused modules

Closes open-metadata/openmetadata-collate#4230

Splits 830-line CustomizePageUtils.ts (with 25 eager ClassBase imports)
into three focused files to eliminate unnecessary bundle weight on every
entity detail page:

- CustomizePageEntityTabUtils.ts  — tab display helpers (no ClassBase deps)
  sortTabs, getTabDisplayName, getTabLabelMapFromTabs,
  checkIfExpandViewSupported, getDetailsTabWithNewLabel

- CustomizePageDispatchUtils.ts   — dispatch/admin flow helpers (keeps all
  25 ClassBase singletons; only imported by admin/customize pages)
  getDefaultTabs, getDefaultWidgetForTab, getCustomizableWidgetByPage,
  getDummyDataByPage, getWidgetsFromKey, getWidgetHeight,
  getGlossaryTermDefaultTabs, getGlossaryDefaultTabs

- CustomizePageWidgetUtils.ts     — widget/layout helpers (no ClassBase deps)
  getAddWidgetHandler, updateWidgetHeightRecursively,
  getLayoutFromCustomizedPage, asyncNoop

CustomizePageUtils.ts deleted; all ~50 consumer files updated to import
directly from the correct split module. No re-export facade.

Test mocks updated: removed stale mock blocks on wrong paths (previously
mocking CustomizePageUtils which had no effect once consumers moved to
CustomizePagePureUtils); added correct mocks on CustomizePagePureUtils
for FileClassBase and DirectoryClassBase tests.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix checkstyle

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>

* feat(ui): lazy-load tab-level and heavy components with withSuspenseFallback (#28830)

* feat(ui): lazy-load tab-level and heavy components with withSuspenseFallback

Convert 105 component/util files from eager imports to React.lazy() +
withSuspenseFallback() for heavy components: SchemaEditor, ActivityFeedTab,
ContractTab, CustomPropertyTable, TaskTabNew, EntitySummaryPanel,
ModalWithMarkdownEditor, BlockEditor, CodeEditor, and others.

Lazy constants are placed after all traditional imports. Removed eager
component imports are replaced with import type for props interfaces where
applicable. Zero TypeScript errors introduced.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix failing test

* fix failing test

* improve performance

* update

* address comments

* fix failing e2e tests

* fix failing tests

* Fix failing tests

* fix failing test

* address comments

* fix ui checkstyle

* fix query page import

* fix checkstyle

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>

* feat(ui): extract pure utility functions and add lazy-loading infrastructure (#29061)

* feat(ui): extract pure utility functions and add lazy-loading infrastructure

Extracts pure (React-free) utility logic into dedicated *ClassBase.ts files for better code splitting and testability. Adds new utility files: ExploreFilterUtils.ts, GlossaryTreeUtils.ts, TagTransformUtils.ts, LazyTagComponents.tsx. Updates AppRouter to use lazy-loaded components with withSuspenseFallback for improved initial load performance. Adds test coverage for extracted utility functions.

Ref: open-metadata/openmetadata-collate#4230

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* address comments

* fix: apply ui-checkstyle fixes for feat/lazy-util-pr1-new-utils-infra

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix failing tests

* fix checkstyle

* address comments

* address comments

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>

* feat(ui): update DataQuality & IncidentManager components for lazy-load utility pattern (#29064)

* feat(ui): update DataQuality & IncidentManager components for lazy-load utility pattern

Updates DataQuality and IncidentManager components to import from extracted pure utility modules. Updates DataQualityUtils, TestCaseUtils imports. Updates dataQualityDashboardAPI for consistent utility usage.

Ref: open-metadata/openmetadata-collate#4230

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* address comments

* fix checkstyle, tests and build

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>

* test(ui): fix data quality backport unit tests

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
(cherry picked from commit a0692c3)
… utility pattern (#29062) (#30128)

* feat(ui): update ActivityFeed & Announcement components for lazy-load utility pattern

Updates ActivityFeed components to import from extracted pure utility modules. Updates FeedUtils, TasksUtils imports to use new utility structure. Updates TasksPage and tasksAPI for consistent utility usage.

Ref: open-metadata/openmetadata-collate#4230

* fix imports

* address gitar-bot comments

* fix checkstyle

* fix failing tests

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
(cherry picked from commit 874dbed)
* feat(ui): update Domain & Glossary components for lazy-load utility pattern (#29065)

* feat(ui): update Domain & Glossary components for lazy-load utility pattern

Updates Domain and Glossary components to import from extracted pure utility modules. Updates DomainUtils, GlossaryUtils, ClassificationUtils, TagsUtils imports. Updates Tag components and pages for consistent utility usage.

Ref: open-metadata/openmetadata-collate#4230

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix build and unit tests

* fix checkstyle

* Fix conflicts

* fix test, build, checkstyle

* fix checkstyle

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>

* test(ui): update task tab feed utils mock

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
(cherry picked from commit 5b92d40)
* feat(ui): update Common Components, Pages & Settings for lazy-load utility pattern (#29070)

* feat(ui): update Common Components, Pages & Settings for lazy-load utility pattern

Updates Common Components, MyData, Customization, DataAssets and remaining pages to import from extracted pure utility modules. Updates EntityUtils, BlockEditorUtils, formUtils, CuratedAssetsUtils imports. Updates Settings, Knowledge Center, Context Center components for consistent utility usage.

Ref: open-metadata/openmetadata-collate#4230

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix build, test and checkstyle

* fix checkstyle

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>

* Fix 1.13 group 12 unit tests

* Fix task description submit tests

* Fix popup container imports

* Fix block editor pure util imports

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
(cherry picked from commit f5426b7)
…#30132)

* feat(ui): update Database, Schema & Container components for lazy-load utility pattern (#29067)

* feat(ui): update Database, Schema & Container components for lazy-load utility pattern

Updates Database, Schema, Container and DriveService components to import from extracted pure utility modules. Updates TablePureUtils, ContainerDetailUtils, ColumnUpdateUtils imports. Updates related pages for consistent utility usage.

Ref: open-metadata/openmetadata-collate#4230

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* address gitar-bot comments

* fix build

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>

* test(ui): update version utility mocks

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
(cherry picked from commit bb102eb)
@shah-harshit
shah-harshit requested a review from a team as a code owner August 5, 2026 13:33
@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 Aug 5, 2026
@shah-harshit shah-harshit self-assigned this Aug 5, 2026
@gitar-bot

gitar-bot Bot commented Aug 5, 2026

Copy link
Copy Markdown
Code Review ✅ Approved

Backports database schema and container lazy-loading updates to the 1.13 branch to maintain feature parity with upstream changes. No issues found.

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 | Powered by Gitar — free for open source

@github-actions

github-actions Bot commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Jest test Coverage

UI tests summary

Lines Statements Branches Functions
Coverage: 63%
63.78% (61754/96823) 44.65% (33437/74884) 46.8% (10226/21847)

@sonarqubecloud

sonarqubecloud Bot commented Aug 5, 2026

Copy link
Copy Markdown

@shah-harshit
shah-harshit force-pushed the ui/direct-1.13-seq26-29070-common-pages-settings-lazy branch from 1f1eee2 to 76c2699 Compare August 6, 2026 07:51
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.

1 participant