-
[OPIK-3908] [BE] [FE] Followup experiment tags (#4789)
发布于
2026-01-21 14:27:19 +00:00 - [OPIK-3908] Add support for IS_EMPTY/IS_NOT_EMPTY filtering and grouping by empty tags
- Introduced
IS_EMPTYandIS_NOT_EMPTYoperators for filtering experiments by tags. - Enhanced grouping logic to include experiments with empty tag lists as a separate group.
- Updated backend filters and queries to handle empty LIST fields.
- Added corresponding tests for filtering and grouping scenarios with empty tags.
- [OPIK-3908] Implement batch update for experiments and add tag management in the frontend
- Added batch experiment update support in the backend, including a new endpoint with merging tags capability.
- Introduced frontend APIs, dialogs, and actions to enable adding tags to multiple experiments.
- Updated database logic to support bulk updates with optimized query handling.
- Enhanced UI components to reflect tag-related updates and batch operations.
- [OPIK-3908] Simplify LIST field validation in
FiltersFactory
- Refactored validation logic for LIST fields to streamline unnecessary checks and enhance readability.
-
[OPIK-3908] Improve error handling in
useExperimentBatchUpdateMutationby adding a default error message for unknown cases. -
[OPIK-3908] Add validation for tags in AddTagDialog
- Enforce non-blank and max-length constraints for tags.
- Improve error handling with descriptive toast messages.
- Update input field to include maxLength and disable buttons for invalid tags.
- [OPIK-3908] Refactor AddTagDialog to use
MAX_TAG_LENGTHconstant
- Replaced hardcoded tag length value (100) with
MAX_TAG_LENGTHconstant for consistency. - Updated input validation, error messages, and UI components to use the constant.
-
[OPIK-3908] Removed "final" keyword from all "FROM experiments" queries in
ExperimentDAOwhere it is unnecessary. It is related only to the places where it was added previously in this PR. -
[OPIK-3908] Removed "final" keyword from all "FROM experiments" queries in
ExperimentDAOBULK_UPDATE. -
[OPIK-3908] Fixed formatting of FilterQueryBuilder and other.
-
[OPIK-3908] Simplify LIST field invalid value tests in resource tests
- Skipped invalid value tests for NO_VALUE_OPERATORS on LIST fields to streamline testing logic.
- Applied changes across
FindTraceThreadsResourceTest,GetTracesByProjectResourceTest, andFindSpansResourceTest.
-
[OPIK-3908] Removed unnecessary
refetch() -
[OPIK-3908] Simplified value assignment in grouped experiments list query
-
[OPIK-3908] Refactor AddTagDialog to make
handleAddTagfunction asynchronous
- Converted
handleAddTagto an async function for streamlined async/await usage. - Replaced
.thenand.catchwith try/catch for improved readability and error handling consistency.
- [OPIK-3908] Add @NotNull annotation to Set elements in ExperimentBatchUpdate
- Updated
ExperimentBatchUpdate.idsto enforce@NotNullconstraint on individual elements for stricter validation.
- [OPIK-3908] Simplify
mergeTagsvalue handling inExperimentBatchUpdate
- Added
mergeTags()override inExperimentBatchUpdateto standardize null checks. - Updated
ExperimentService.batchUpdateto use the new method for improved clarity.
- [OPIK-3908] Remove unnecessary
LIMIT 1 BY idfrom query inExperimentDAO
- Simplified query by removing redundant clause to improve readability and maintainability.
- [OPIK-3908] Refactor batch update to improve error handling and simplify query logic
- Replaced
bulkUpdatewithupdateinExperimentDAOfor consistency. - Added error handling for batch updates in
ExperimentService. - Simplified query building logic by removing redundant methods in
ExperimentDAO.
- [OPIK-3908] Replace inline tag rendering with
ColoredTagcomponent inTagListTooltipContent
- Improved code readability and reusability by using the
ColoredTagcomponent for displaying tags. - Removed redundant separators for a cleaner UI.
- [OPIK-3908] Remove
hiddenItemsfromuseVisibleTagsand update tooltip logic
- Eliminated the
hiddenItemscomputation inuseVisibleTagsfor simplification. - Updated tooltip logic in
VersionTagsandListCellto use the full tag list instead ofhiddenItems.
- [OPIK-3908] Removed unnecessary
LIMIT 1 BY idfrom query inExperimentDAO
下载附件