fix glossary status frontend filtering logic to move to backend#25428
fix glossary status frontend filtering logic to move to backend#25428
Conversation
|
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! |
.../src/main/resources/ui/src/components/Glossary/GlossaryTermTab/GlossaryTermTab.component.tsx
Show resolved
Hide resolved
openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/ListFilter.java
Outdated
Show resolved
Hide resolved
|
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! |
|
The Java checkstyle failed. Please run You can install the pre-commit hooks with |
|
@gitar-bot fix the SQL injection, add a commit |
|
The Java checkstyle failed. Please run You can install the pre-commit hooks with |
I've fixed the SQL injection vulnerability in The fix validates input values against the Changes in GlossaryTermRepository.java:1633
This complements the earlier fix in |
…e against the enum, in case if an invalid value like "Bogus" is passed
.../src/main/resources/ui/src/components/Glossary/GlossaryTermTab/GlossaryTermTab.component.tsx
Outdated
Show resolved
Hide resolved
Remove rejected terms from visible list when status filter excludes them, and fix reused waitForResponse promise in Playwright test. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
@gitar-bot do a frontend review |
Frontend Review SummaryI've reviewed the frontend changes in this PR. Overall, the implementation is solid and well-architected. Here are my findings: ✅ Strengths1. Clean State Management
2. Smart API Integration
3. Excellent UX Implementation
4. Type Safety
💡 Suggestions for Improvement1. Magic String "all" Pattern // Current approach uses string literal 'all'
if (!selectedStatus.includes('all'))
// Consider: Define as constant for better maintainability
const STATUS_FILTER_ALL = 'all';
if (!selectedStatus.includes(STATUS_FILTER_ALL))2. API Parameter Clarity // Good: entityStatusParam is computed once
const entityStatusParam = isStatusFilterActive
? selectedStatus.filter((s) => s !== 'all').join(',')
: undefined;
// Suggestion: Add JSDoc comment explaining the format
/**
* Comma-separated list of entity statuses for filtering.
* undefined = no filter (show all)
* Example: "Approved,Draft,InReview"
*/3. Error Boundary Consideration
4. Accessibility
🐛 Potential IssuesNone identified! The critical bug where rejected terms stayed visible after rejection was fixed in commit 📊 Code Quality Metrics
🎯 Overall AssessmentStatus: Approved ✅ The frontend implementation is production-ready. The status filtering feature is well-integrated, type-safe, and provides excellent UX. The recent fix for removing rejected terms from the visible list shows good attention to detail. Key Achievement: Seamless integration of status filtering without disrupting existing glossary term navigation and hierarchy features. |
|
@gitar-bot do a frontend review |
Pass entityStatus parameter in fetchExpadedTree so Expand All respects the active status filter. Add E2E test suite to verify the behavior. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…atterns Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Scoped unscoped `tbody .ant-table-row` locators to `glossary-terms-table` testid, and replaced unreliable row count assertion in empty state test with visibility checks on `no-data-placeholder`. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
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! |
Code Review ✅ Approved 13 resolved / 13 findingsAll 10 findings have been resolved, including API documentation inconsistencies, SQL query issues, code duplication, memory management concerns, and UI filter logic problems. The code is approved and ready. ✅ 13 resolved✅ Bug: API doc says "InReview" but valid value is "In Review"
✅ Edge Case: Missing newline at end of migration SQL files
✅ Quality: Duplicated parseEntityStatusValues method across classes
✅ Performance: Fallback search path loads ALL glossary terms into memory
✅ Quality: CollectionDAO comment references wrong migration version (1.11.7)
...and 8 more resolved from earlier reviews OptionsAuto-apply is off → Gitar will not commit updates to this branch. Comment with these commands to change:
Was this helpful? React with 👍 / 👎 | Gitar |
|
|
|
Failed to cherry-pick changes to the 1.11.12 branch. |



Fixes #25377
I worked on ... because ...
Type of change:
Checklist:
Fixes <issue-number>: <short explanation>Summary by Gitar
entityStatuswith index toglossary_term_entitytable for efficient filtering/api/v1/glossaryTerms/searchendpoint to acceptentityStatusquery parameter; updated repository methods to filter at database level with SQL injection preventionsearchGlossaryTermsPaginated()to accept single params object; addedentityStatusparameter to list endpointsGlossaryTermTab.component; now passes status filters to backend APIThis will update automatically on new commits.