Repository navigation
Fixes #34868: Platform Settings part 2 — Theme, Profiler Configuration, Data Quality - #34882
Conversation
✅ PR checks passedThe linked issue has a description and all required Shipping project fields set. Thanks! |
🔄 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 |
9d39524 to
96f8793
Compare
7fc58d0 to
8a57e98
Compare
96f8793 to
33ab8bb
Compare
8a57e98 to
e73aeea
Compare
33ab8bb to
4ea76a5
Compare
e73aeea to
0496389
Compare
…n, Data Quality Move the classic Settings > Preferences Theme, Profiler Configuration and Data Quality pages into the AI-mode settings modal, each as a read-only view plus an edit form built on ui-core-components and HookForm. - Theme: logo/monogram/favicon URLs with live previews, eight free-form HEX colours (native swatch + text input), primary colour re-deriving hover and selected, and Reset. - Profiler Configuration: per-data-type metric rows on a field array with the "All" shortcut, the disable toggle, sample data settings, and the Collate Spark extension point. - Data Quality: dimension list with search, counts and read-only system rows; add/edit routes (data-quality/edit[/<name>]) and a delete confirmation that reports affected test cases and definitions. Routing gains an optional item id and a per-page edit title so list pages can host add/edit forms.
4ea76a5 to
788629f
Compare
0496389 to
362e2b3
Compare
…esources (#34888) Move the classic Settings > Preferences Data Asset Rules and Learning Resources pages into the AI-mode settings modal on ui-core-components. - Data Asset Rules: rule list with the in-place Enabled toggle. Adding rules is not supported yet, so the empty state has no Add. Marked Beta on the landing, as in the classic menu. - Learning Resources: the list (search, quick filters, table/card views, preview, delete) on the classic page's data hooks; the antd drawer form is replaced by a HookForm add/edit page (learning-resources/edit[/<id>]) that carries over fields it does not edit (difficulty, context componentId). The Learning Resources quick-filter row drops its last antd Space for a core Box, which the classic page shares. Also fixes two issues in the earlier parts: - useSettingsFetch loads once per mount. Under StrictMode its effect ran twice and the second response could reset a form the user had started editing. - The dimension edit form fetches only the dimensions, not the two count endpoints it never used. - Each page is keyed by its route, so moving between items (add -> edit, browser back/forward) remounts it and loads the right data. - Empty states centre in the content area instead of the whole modal.
The delete-dimension, confirmation and test-email dialogs blocked outside clicks while busy, but the close button and Escape still dismissed them, so the request kept running behind a dialog that looked cancelled. While busy, the close button is hidden and Escape is ignored.
Code Review ✅ Approved 1 closed / 1 findings🔴 High risk · The new search access-control settings can be disabled from the modal, potentially exposing protected asset metadata in search results. Migrates Theme, Profiler Configuration, and Data Quality settings pages into the Platform Settings modal with comprehensive test coverage and HookForm-based forms. Addressed the dialog close button dismissing while operations are in flight; no remaining issues. ✅ 1 closed✅ Edge Case: Dialog close (X) button still dismisses while delete is in flight
OptionsDisplay: compact → Counting what did not apply, without listing it. Comment with these commands to change the behavior for this request:
Was this helpful? React with 👍 / 👎 | Powered by Gitar — free for open source |
|
fbdee7f
into
chirag-madlani/ai-mode-settings-modal
…de settings modal (Platform Settings, part 1) (open-metadata#34872) * Fixes open-metadata#34867: Move Settings > Preferences into the AI-mode settings modal (Platform Settings, part 1) Add an admin-only Administration > Platform Settings section to the AI-mode settings modal: a landing of cards with hash routing, and a read-only view plus edit form for Email (with Test Email), Login Configuration, Health Check, Lineage, OpenMetadata URL and Default App Mode. Built only with ui-core-components; forms use HookForm and take their field hints from the same per-form docs markdown the classic doc panel reads. The classic /settings/preferences pages are untouched. The section/row layout is extracted from ProfileDetailsPanel into SettingsSection so both share it, and the Playwright impact map gains entries for the new folder and the modal shell. * Fixes open-metadata#34868: Platform Settings part 2 — Theme, Profiler Configuration, Data Quality (open-metadata#34882) * Fixes open-metadata#34868: Platform Settings part 2 — Theme, Profiler Configuration, Data Quality Move the classic Settings > Preferences Theme, Profiler Configuration and Data Quality pages into the AI-mode settings modal, each as a read-only view plus an edit form built on ui-core-components and HookForm. - Theme: logo/monogram/favicon URLs with live previews, eight free-form HEX colours (native swatch + text input), primary colour re-deriving hover and selected, and Reset. - Profiler Configuration: per-data-type metric rows on a field array with the "All" shortcut, the disable toggle, sample data settings, and the Collate Spark extension point. - Data Quality: dimension list with search, counts and read-only system rows; add/edit routes (data-quality/edit[/<name>]) and a delete confirmation that reports affected test cases and definitions. Routing gains an optional item id and a per-page edit title so list pages can host add/edit forms. * Fixes open-metadata#34869: Platform Settings part 3 — Data Asset Rules, Learning Resources (open-metadata#34888) Move the classic Settings > Preferences Data Asset Rules and Learning Resources pages into the AI-mode settings modal on ui-core-components. - Data Asset Rules: rule list with the in-place Enabled toggle. Adding rules is not supported yet, so the empty state has no Add. Marked Beta on the landing, as in the classic menu. - Learning Resources: the list (search, quick filters, table/card views, preview, delete) on the classic page's data hooks; the antd drawer form is replaced by a HookForm add/edit page (learning-resources/edit[/<id>]) that carries over fields it does not edit (difficulty, context componentId). The Learning Resources quick-filter row drops its last antd Space for a core Box, which the classic page shares. Also fixes two issues in the earlier parts: - useSettingsFetch loads once per mount. Under StrictMode its effect ran twice and the second response could reset a form the user had started editing. - The dimension edit form fetches only the dimensions, not the two count endpoints it never used. - Each page is keyed by its route, so moving between items (add -> edit, browser back/forward) remounts it and loads the right data. - Empty states centre in the content area instead of the whole modal. * Keep busy Platform Settings dialogs open until their request finishes The delete-dimension, confirmation and test-email dialogs blocked outside clicks while busy, but the close button and Escape still dismissed them, so the request kept running behind a dialog that looked cancelled. While busy, the close button is hidden and Escape is ignored. * Report a Search reset as successful only when the reload works Resetting the global settings or restoring an entity's defaults showed a success toast even when the reload after it failed, next to the reload's error toast, while the page kept the old settings. fetchConfig now reports whether it loaded, and the success toast waits for it.



Describe your changes:
Fixes #34868
Moves three more classic Settings → Preferences pages into the AI-mode settings modal's Platform Settings section: Theme, Profiler Configuration and Data Quality. Platform Settings now covers 9 of the 12 legacy pages. Every page is a read-only view plus an edit form built only from
@openmetadata/ui-core-components, with forms onHookFormand no antd or Less. Legacy fields, validation and save behaviour are kept. The classic pages are untouched.Remaining: Data Asset Rules and Learning Resources (#34869), and Search (#34870).
Type of change:
High-level design:
Builds on the part-1 panel (
Profile/tabs/platform-settings/): the page registry, hash routing and view + edit pattern.Routing for list pages. Data Quality is a list with add/edit.
PlatformSettingsViewgains an optionalitemId.#platform-settings/data-quality/editmeans add, and…/edit/<dimension name>means edit that dimension.getEditTitle, which gives "Add Dimension" / "Edit Dimension" instead of the default "Edit {page}".Theme (
ThemeSettings,ThemeSettingsForm,HexColorField,ThemeSettings.utils)applicationConfigin the app store, as the classic page did, so a save re-themes the app immediately.ColorPickerFieldonly offers a fixed palette, but the theme accepts any HEX.HexColorFieldpairs a native<input type="color">swatch with a coreInput, both bound to the same form value. It's the same two-part control the classic page used, without antd.CustomLogoConfiguration.md.Profiler Configuration (
ProfilerSettings,ProfilerSettingsForm,ProfilerSettings.utils)useFieldArray. Each row has a data type (types already used by another row can't be chosen), metrics, and a disable toggle.ProfilerConfigurationClassBase.getSparkAgentConfigComponent) still renders when present.Data Quality (
DataQualitySettings,DimensionSettingsForm,DimensionCells,DimensionDeleteDialog)Tablewith search. Test-case counts show "--" rather than 0 when the count request fails. System dimensions are read-only.Alternatives considered. Keeping the Data Quality drawer inside the modal was rejected: a nested overlay inside the modal fights its focus scope, and the add/edit routes match how every other page edits.
Tests:
Use cases covered
Unit tests
ThemeSettings.test.tsx,ThemeSettings.utils.test.ts,ProfilerSettings.test.tsx,ProfilerSettings.utils.test.ts,DataQualitySettings.test.tsx; updatedPlatformSettingsPanel.test.tsxandPlatformSettings.utils.test.ts.Backend integration tests
Ingestion integration tests
Playwright (UI) tests
playwright/e2e/Features/ProfilePlatformSettings.spec.tsto 13 tests.finally./system/statusprobe in a sibling worker.tabs/platform-settings/**to this spec (added in Fixes #34867: Move Settings > Preferences into the AI-mode settings modal (Platform Settings, part 1) #34872).Local run against a dev server (
PLAYWRIGHT_IS_OSS=true, local backend on :8585), commitad5a518f732:Features/ProfilePlatformSettings.spec.tsManual testing performed
UI screen recording / screenshots:
Recording (
platform-settings-pr2-walkthrough.mp4, 47s) and screenshots to be attached.platform-settings-pr2-walkthrough.mp4
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: Not applicable — no schema changes.
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.
The issue properly describes why the new feature is needed, what's the goal, and how we are building it.
I have updated the documentation. Not applicable — UI move; no user-facing docs change.
I have added tests around the new logic.
🤖 Generated with Claude Code