Skip to content

Fixes #31348: Keep NLQ disabled in OSS - #31349

Open
shah-harshit wants to merge 3 commits into
mainfrom
summarize-slack-thread
Open

Fixes #31348: Keep NLQ disabled in OSS#31349
shah-harshit wants to merge 3 commits into
mainfrom
summarize-slack-thread

Conversation

@shah-harshit

@shah-harshit shah-harshit commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

Describe your changes:

Fixes #31348

NLQ is a Collate-only feature, but the shared UI previously trusted the server deployment flag directly. This change adds an independent deployment-capability guard: OSS always reports NLQ unsupported and skips the NLQ settings request, while Collate explicitly enables the capability through its private override.

Companion Collate change: https://github.com/open-metadata/openmetadata-collate/pull/5671

Issue:
Screenshot 2026-08-11 at 9 50 11 PM

Fix:
Screenshot 2026-08-11 at 9 51 05 PM

Type of change:

  • Bug fix

High-level design:

SearchSettingsClassBase.isNLQSupported() returns false independently from hybrid-search settings. The Collate override returns true in the companion private PR, after which the server deployment flag controls runtime enablement.

Tests:

Use cases covered

  • OSS keeps NLQ inactive and disabled without requesting the server setting.
  • Hybrid-search weights do not imply NLQ support.
  • Collate-supported deployments continue to read and honor the server setting through a dedicated override.
  • Direct Marketplace navigation keeps NLQ disabled in OSS without calling the NLQ settings API.

Unit tests

  • Added tests for the changed store and search-settings behavior.
  • Files: useSearchStore.test.ts, SearchSettingsClassBase.test.ts, MarketplaceSearchBar.test.tsx
  • Result: 23 tests passed across 3 focused suites with coverage enabled.

Backend integration tests

  • Not applicable; no backend changes.

Ingestion integration tests

  • Not applicable; no ingestion changes.

Playwright (UI) tests

  • Not applicable; behavior is covered at the store and deployment-extension boundary.

Manual testing performed

  • Ran the focused OSS Jest suites for disabled, independent-capability, and Collate-supported paths.
  • Ran the companion Collate override test locally.
  • Ran UI ESLint, Prettier, and import organization on all OSS files.

UI screen recording / screenshots:

Screenshots are included above.

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 #31348 above.
  • For UI changes: I attached screenshots above.
  • I have added tests and listed them above.
  • I have added a test that covers the exact scenario being fixed.

@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 11, 2026
@shah-harshit shah-harshit self-assigned this Aug 11, 2026
@github-actions

github-actions Bot commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

✅ Playwright Results — workflow succeeded

Validated commit f225086a0ae05d669519832fbf6aa0da4aa6038e in Playwright run 31523010175, attempt 1.

✅ 550 passed · ❌ 0 failed · 🟡 0 flaky · ⏭️ 0 skipped · 🧰 0 lifecycle flaky

Performance

Blocking targets: ✅ met · Optimization targets: 🟡 in progress

Shard-job maxima below are not the full workflow wall time; the linked run includes build, fixture, planning, and reporting.

🕒 Full workflow signal wall (to summary) 1h 1m 30s

⏱️ Max setup 2m 56s · max shard execution 18m 11s · max shard-job elapsed before upload 24m 16s · reporting 4s

🌐 207.80 requests/attempt · 2.83 app boots/UI scenario · 21.36% common-shard skew

Optimization targets still in progress:

  • Common shard skew was 21.36% (convergence target: at most 15%).
  • Browser traffic was 207.8 requests per attempt (convergence target: fewer than 200).
  • Application boot ratio was 2.83 per UI scenario (1618 boots / 571 scenarios; convergence target: at most 1).
Shard Passed Failed Flaky Skipped Lifecycle failed Lifecycle flaky
✅ Shard chromium-01 130 0 0 0 0 0
✅ Shard chromium-02 133 0 0 0 0 0
✅ Shard chromium-03 136 0 0 0 0 0
✅ Shard data-asset-rules-01 61 0 0 0 0 0
✅ Shard domain-isolation-01 14 0 0 0 0 0
✅ Shard global-state-01 34 0 0 0 0 0
✅ Shard ingestion-01 1 0 0 0 0 0
✅ Shard reindex-01 2 0 0 0 0 0
✅ Shard search-01 10 0 0 0 0 0
✅ Shard search-rbac-01 29 0 0 0 0 0

📦 Download artifacts

How to debug locally
# Download playwright-test-results-<shard> artifact and unzip
npx playwright show-trace path/to/trace.zip    # view trace

@gitar-bot

gitar-bot Bot commented Aug 11, 2026

Copy link
Copy Markdown
Code Review ✅ Approved 1 resolved / 1 findings

Decouples NLQ capability from hybrid search and ensures it remains disabled in OSS deployments. No issues found.

✅ 1 resolved
Quality: NLQ support coupled to hybrid-search-weights flag

📄 openmetadata-ui/src/main/resources/ui/src/utils/SearchSettingsClassBase.ts:15-21
isNLQSupported() simply returns showHybridSearchWeights(), conflating two distinct capabilities. If a future Collate deployment ever wants hybrid search weights without NLQ (or vice versa), the two features cannot be toggled independently and one will silently follow the other. Consider adding a dedicated overridable method (e.g. an independent isNLQSupported implementation returning false in the base class) so NLQ availability is not implicitly tied to the hybrid-search-weights UI setting.

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

@github-actions

Copy link
Copy Markdown
Contributor

⚠️ UI Checkstyle passed — lint findings in changed files

🔍 ESLint findings in this PR's files — 0 error(s), 8 warning(s)

Errors block the build. Warnings do not yet — they are rules whose backlog is still
being worked down, listed so this PR does not add to it. See docs/ui-code-quality-gate.md.

0 error(s), 8 warning(s) across 1 changed file(s).

Count Rule
5 sonarjs/no-duplicate-string
3 i18next/no-literal-string
All findings
Location Rule Message
🟡 src/components/DataMarketplace/MarketplaceSearchBar/MarketplaceSearchBar.test.tsx:56:60 i18next/no-literal-string disallow literal string: dp-icon
🟡 src/components/DataMarketplace/MarketplaceSearchBar/MarketplaceSearchBar.test.tsx:60:50 i18next/no-literal-string disallow literal string: domain-icon
🟡 src/components/DataMarketplace/MarketplaceSearchBar/MarketplaceSearchBar.test.tsx:116:51 i18next/no-literal-string disallow literal string: search
🟡 src/components/DataMarketplace/MarketplaceSearchBar/MarketplaceSearchBar.test.tsx:159:31 sonarjs/no-duplicate-string Define a constant instead of duplicating this literal 13 times.
🟡 src/components/DataMarketplace/MarketplaceSearchBar/MarketplaceSearchBar.test.tsx:165:42 sonarjs/no-duplicate-string Define a constant instead of duplicating this literal 4 times.
🟡 src/components/DataMarketplace/MarketplaceSearchBar/MarketplaceSearchBar.test.tsx:292:33 sonarjs/no-duplicate-string Define a constant instead of duplicating this literal 5 times.
🟡 src/components/DataMarketplace/MarketplaceSearchBar/MarketplaceSearchBar.test.tsx:311:33 sonarjs/no-duplicate-string Define a constant instead of duplicating this literal 3 times.
🟡 src/components/DataMarketplace/MarketplaceSearchBar/MarketplaceSearchBar.test.tsx:333:28 sonarjs/no-duplicate-string Define a constant instead of duplicating this literal 3 times.

Fix locally (fast - only checks files changed in this branch):

make ui-checkstyle-changed

@github-actions

Copy link
Copy Markdown
Contributor

Jest test Coverage

UI tests summary

Lines Statements Branches Functions
Coverage: 66%
66.35% (78815/118769) 50.36% (47633/94568) 51.61% (14355/27813)

@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.

NLQ controls are visible in OSS when the server flag is enabled

1 participant