-
Notifications
You must be signed in to change notification settings - Fork 187
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Replace WzSearchBar component #5366
Conversation
Features: - Supports multiple query languages - Decouple the business logic of query languages of the search bar component - Ability of query language to interact with the search bar Query language implementations - AQL: custom implementation of the Wazuh Query Language. Include suggestions. - UIQL: simple implementation (as another example)
…ression used in the Wazuh manager API - Change the implementation of AQL query language to use the regular expression decomposition defined in the Wazuh manager API - Adapt the tests for the tokenizer and getting the suggestions - Enchance documentation of search bar - Add documentation of AQL query language - Add more fields and values for the use example in Agents section - Add description to the query language select input
…using the Search suggestion in AQL - Fixes a problem hidding the suggestion popover when using the Search suggestion in AQL - Fixes a problem of input text with undefined value - Minor fixes - Remove `syntax` property of SearchBar component - Add disableFocusTrap property to the custom EuiSuggestInput component to be forwarded to the EuiInputPopover - Replace the inputRef by a reference instead of a state and pass as a parameter in the query language run function - Move the rebuiding of input text when using some suggestion that changes the input to be done when a related suggestion was clicked instead of any suggestion (exclude Search).
implemenation - Add the ability to update the input of the search bar in the example implementation - Enhance the component documentation
- (AQL) Add the fields and an open operator group when there is no input text
link of query language displayed in the popover
- AQL enhancements: - documentation: - Enhance some descriptions - Enhance input processing - Remove intermetiate interface of EuiSuggestItem - Remove the intermediate interface of EuiSuggestItem. Now it is managed in the internal of query language instead of be built by the suggestion handler - Display suggestions when the input text is empty - Add the unifiedQuery field to the query language output - Adapt tests - Search Bar component: - Enhance documentation
- Remove UIQL - Add HAQL query language that is a high-level implementation of AQL - Add the query language interface - Add tests for tokenizer, get suggestions and transformSpecificQLToUnifiedQL method - Add documentation about the language - Syntax - Options - Workflow
- Add tests to HAQL and AQL query languages - Fix suggestions for HAQL when typing as first element a value entity. Now there are no suggestions because the field and operator_compare are missing. - Enhance documentation of HAQL and AQL - Removed unnecesary returns of suggestion handler in the example implementation of search bar on Agents section
- Rename query language HAQL to WQL - Update tests - Remove AQL usage from the implementation in the agents section
- Add more use cases to the test of WQL query language - Replace some literals by constants in the WQL query language implementation
…platform search bar
… is an implicit query
- WQL - add implicit query mode to WQL - enhance query language documentation - renamed transformUnifiedQuery to transformUQLToQL - now wraps the user input if this is defined and there a implicit query string - fix a problem with the value suggestions if there is a previous conjunction - add tests cases - update tests - AQL - enhance query language documentation - renamed transformUnifiedQuery to transformUQLToQL - add warning about the query language implementation is not updated to the last changes in the search bar component - update tests - Search Bar - renamed transformUnifiedQuery to transformUQLToQL
- Set a width for the syntax options popover - Unify the description in the suggestions of WQL example implementation - Update tests - Fix minor bugs in the WQL example implementation in Agents
- WQL - Enhance documentation - Add partial and "expanded" input validation - Add tests
…feat/4312-poc-search-bar-component-multiple-query-language-api-query-language-implementation
Fix an error when the last token in the input was a value and used a value suggestion whose label contains whitespaces, the value was not wrapped with quotes.
Replace the WzSearchBar component by the new search bar Add comments related to TODO and FIX Enhance request to get the agents data
- Change the sort column or order, or current page or page size doesn't fetch the data after change the state. It was moved to the componentDidUpdate comparing the previous state with the current one. - Enhance how the sort query parameter is built - Enhance the application of external query input in the search bar
- Replace the WzSearchBar by SearchBar in the Agents section - Adapt the external filters - Group filter from labels - Rename the name of the sessionStorage property from `agents_preview_selected_options` to `wz_page_agents_search_bar_query` and change the saved value. This is used to communicate from other sections with the search bar. Renaming avoids errors when the users upgrading due to the change in the schema of saved value. - Enhance the building of request parameters to fetch the table data. - Clean: - Remove `removeFilters` props in the `AgentsTable` component. Adapt `AgentsPreview` render. - Remove unused file: public/controllers/overview/components/select-agent.js
…uery-language-api-query-language-implementation
…uery-language-api-query-language-implementation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
While testing the search bar I found a few issues:
Clicking the refresh button does not update the query status if the input changes. Instead, it uses the previous search parameters. If the user press the "enter" key, then it does update the state.
This also happens if the selected columns change.
If the search input is empty, it doesn't show the Apply Search in the available suggestions. An empty input is still a valid search.
If the user makes a generic search without a date format throughout all the available fields, which includes a Date format field, the API returns a format error.
Maybe date fields should not be used when a generic search is made.
The integration of the search bar in the Agents section is problematic due to the possibility to force refreshing the request data, which was not contemplated that input or selected columns could vary. In this case, we should extract the transformation of the input query to the API The problem with the search term with the date fields should be discussed. I think removing the date fields of the search it is not a good approach because the user can not search in these fields using the search term mode of the search bar. |
…the onChange handler
…age-api-query-language-implementation' of https://github.com/wazuh/wazuh-kibana-app into feat/4312-replace-wzsearchbar
I am working around this problem. It could need some refactoring or extracting the generation of the Wazuh API parameters out of the search bar.
I added the search suggestion when the input is empty.
The current behavior in the
I was researching this problem and we will need to talk with the API coworkers. I did some researching here: #4312 (comment) |
Definitely, due how the component of the I got to solve some problems, but modifying the visible columns meanwhile, the search bar input is in search term mode, if clicking on the |
…earch term fields changed - Search bar: - Add a dependency to run the query language output - Adapt search bar documentation to the changes - WQL - Create a new parameter called `options` - Moved the `implicitFilter` and `searchTerm` settings to `options` - Update tests - Update documentation
…age-api-query-language-implementation' of https://github.com/wazuh/wazuh-kibana-app into feat/4312-replace-wzsearchbar
…age-api-query-language-implementation' of https://github.com/wazuh/wazuh-kibana-app into feat/4312-replace-wzsearchbar
UpdateI refactored the search bar component and now, the current implementations are managing when the user input changes without using the This enables the The |
… `Explore agent` views - adapt the replacement of search bar in `Agents` and `Explore agent` views - enhance the `Agents` section - session storage management - display an `Update` button instead of `Refresh` one when the input changed - display always the table pagination - filter out the date fields from the search term fields in WQL (`dateAdd` and `lastKeepAlive`) - add a mechanism to redo the same request when using the search bar - enhance the management of the visible table columns - enhance the `Explore agent` section - restrict the search term fields to the visibles in the table - add a mechanism to redo the same request when using the search bar
|
This pull request is closed in favor to that replaces the search bar and table components by the reusable TableWzAPI component: |
Description
This pull request replaces the usage of WzSearchBar with the new one.
Changes:
TODO
Issues Resolved
Part of #4312
Evidence
Agent selection modal
Agents section
Test
Status
panel should add a query input to the search bar and fetch data with the queryDetails
panel should add a query input to the search bar and fetch data with the queryCheck List
yarn test:jest