Skip to main content

UI, Personas & Customization

For end users this is a visual and navigational refresh. For anyone who forks the UI, writes a UI plugin, or maintains end-to-end test suites, it is a large refactor. The Explore page changes are documented separately in Discovery & Search.

Design system consolidation

Breaking for forks and plugins. Cosmetic for end users.
1.13 carried a transitional set of MUI* wrapper components inside the UI module. 2.0 removes them and standardises on the shared @openmetadata/ui-core-components package.

Removed component modules

The SELECT_MUI field type is removed from the form builder.

Other removed UI modules

Search your fork for MUI imports, SELECT_MUI, usePaginationControls, NotistackUtils, CommonUtils and DescriptionV1. Expect a mechanical but wide migration. PaginationCardDefault replaces usePaginationControls, and Input from core-ui replaces the useSearch hook.

New extension points

Additive — these are the supported way to customise in 2.0.

App Mode

New concept. Affects the login experience and persona configuration.
2.0 introduces two application experiences — Classic (the standard OpenMetadata UI) and AI (the assistant-driven experience, which requires the AI plugin). Resolution order, highest priority first:
  1. User preference — the appMode entry in the user’s preferences bag
  2. Persona appModeclassic or AI (default classic), forced on login
  3. Tenant defaultAppMode — the appConfiguration setting
The active mode is held in a single source of truth backed by session storage, so sibling tabs no longer lose the active mode.
Setting a persona’s appMode to AI on OpenMetadata OSS has no effect beyond the mode flag — the AI experience ships with the Collate distribution.

Per-user preferences API

New API, backed by a new user_preferences table.
The preferences bag is a typed discriminated union keyed by type. It is deliberately not a full entity — no versioning, audit or soft-delete — and is cascade-deleted with the user.
Do not store per-user UI state in the User entity’s extension. Use the preferences API.

Personas gain AI context

Additive (Collate AI features).
Personas gain a contextDefinition field — “rules and settings used to materialize the shared AI context for this persona” — plus new endpoints:

Context Center & Knowledge Center

New routes. Affects navigation and reverse proxies.
New REST namespaces: /v1/contextCenter/pages, /v1/contextCenter/memories, /v1/contextCenter/drive/files, /v1/contextCenter/drive/folders and /v1/attachments. New entities: page, article, quickLink, pageHierarchy, folder, contextFile, contextFileContent, contextMemory and asset.
If you front OpenMetadata with a proxy that allowlists paths, add /knowledge-center, /context-center, /api/v1/contextCenter and /api/v1/attachments. Uploads require object storage to be enabled — see Platform & Security.

Visual and navigation changes

Behavioural. Affects end users, screenshots in your internal documentation, and end-to-end tests.
Expect widespread data-testid and DOM-structure churn. Budget for an end-to-end test refresh.

Performance refactor (fork-visible)

Behavioural. Affects forks with deep imports.
2.0 does a large code-splitting and lazy-loading pass:
  • Pure utility functions are extracted into *PureUtils modules.
  • utils/CommonUtils.tsx and utils/EntityUtils.tsx are deleted; facade imports are migrated to direct sources.
  • Settings, entity and entity-import routers, tab-level components and heavy components are lazy-loaded.
  • The build configuration is reworked for code splitting and chunk loading.
Deep imports from utils/CommonUtils or utils/EntityUtils will not resolve. Import from the specific domain module instead.

Component library

Additive. The shared component package gains Breadcrumbs, EmptyPlaceholder, ProgressSteps, Toast, a filter bar, an extra-small button size and a nightly Storybook build.
Two renames to be aware of when consuming the package: safe class renames applied across components, and the Select-family placeholderIcon prop renamed to icon.