Skip to content
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 search bar on Explore agent modal #5447

Merged
merged 116 commits into from
Aug 11, 2023

Conversation

Desvelao
Copy link
Member

@Desvelao Desvelao commented May 16, 2023

Description

This pull request replaces the search bar and table component on Explore agent modal

Affected sections:

  • Explore agent modal

Additional changes:

  • Remove unused code

It depends on #5442

Issues Resolved

#4312

Evidence

image
image
image

Table - Explore agent
Suggestions:

field get distinct values searchable searchable term
id GET /agents?distinct=true&limit=30&select={field}&sort=+{field}&q={currentValue}
group GET /agents?distinct=true&limit=30&select={field}&sort=+{field}&q={currentValue}
name GET /agents?distinct=true&limit=30&select={field}&sort=+{field}&q={currentValue}
os.name GET /agents?distinct=true&limit=30&select={field}&sort=+{field}&q={currentValue}
os.version GET /agents?distinct=true&limit=30&select={field}&sort=+{field}&q={currentValue}
status active,disconnected,pending,neved_connected
version GET /agents?distinct=true&limit=30&select={field}&sort=+{field}&q={currentValue}

Test

Use a Wazuh manager

Legend:
⚫: none
🟢: pass
🟡: warning
🔴: fail
⚪: not applicable

UI

Test Chrome Firefox Safari
Explore agent modal: For each suggested field, check the value suggestion display results or at least doesn't break
Explore agent modal: Using a value suggested should allow to run the search
Explore agent modal: Type a term and run the search should search in each displayed field
Explore agent modal: Type a simple field search and this should returns the expected results
Explore agent modal: Type a complex field search and this should returns the expected results

Details

⚫ Explore agent modal: For each suggested field, check the value suggestion display results or at least doesn't break

Chrome - ⚫

Firefox - ⚫

Safari - ⚫

⚫ Explore agent modal: Using a value suggested should allow to run the search

Chrome - ⚫

Firefox - ⚫

Safari - ⚫

⚫ Explore agent modal: Type a term and run the search should search in each displayed field

Chrome - ⚫

Firefox - ⚫

Safari - ⚫

⚫ Explore agent modal: Type a simple field search and this should returns the expected results

Chrome - ⚫

Firefox - ⚫

Safari - ⚫

⚫ Explore agent modal: Type a complex field search and this should returns the expected results

Chrome - ⚫

Firefox - ⚫

Safari - ⚫

Check List

  • All tests pass
    • yarn test:jest
  • New functionality includes testing.
  • New functionality has been documented.
  • Update CHANGELOG.md
  • Commits are signed per the DCO using --signoff

Desvelao and others added 30 commits February 16, 2023 12:50
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
- 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.
…uery-language-api-query-language-implementation
…uery-language-api-query-language-implementation
…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
@chantal-kelm chantal-kelm self-requested a review August 10, 2023 11:29
Copy link
Member

@jbiset jbiset left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

CR: ✅ (comment)

Test

Use a Wazuh manager

Legend:
⚫: none
🟢: pass
🟡: warning
🔴: fail
⚪: not applicable

UI

Test Chrome Firefox Safari
Explore agent modal: For each suggested field, check the value suggestion display results or at least doesn't break 🟢 🟢
Explore agent modal: Using a value suggested should allow to run the search 🟢 🟢
Explore agent modal: Type a term and run the search should search in each displayed field 🟢 🟢
Explore agent modal: Type a simple field search and this should returns the expected results 🟢 🟢
Explore agent modal: Type a complex field search and this should returns the expected results 🟢 🟢

Details

🟢 Explore agent modal: For each suggested field, check the value suggestion display results or at least doesn't break

Chrome - 🟢

Evidence_1

Evidence_1_A

Firefox - 🟢

Evidence_1_Firefox

Evidence_1_A_Firefox

Safari - ⚫

🟢 Explore agent modal: Using a value suggested should allow to run the search

Chrome - 🟢

Evidence_2_B

Firefox - 🟢

Evidence_2_B_Firefox

Safari - ⚫

🟡 Explore agent modal: Type a term and run the search should search in each displayed field **_Api bug_**

Chrome - 🟡

Api bug Error case ( wazuh/wazuh#18204 )

Evidence_5_A_Error

Good case

Evidence_5_B

Firefox - 🟡

Api bug Error case ( wazuh/wazuh#18204 )

Evidence_5_A_Firefox_Error

Good case

Evidence_5_B_Firefox

Safari - ⚫

🟢 Explore agent modal: Type a simple field search and this should returns the expected results

Chrome - 🟢

Evidence_2_A

Evidence_3_A

Evidence_3_B

Evidence_3_C

Evidence_3_D

Evidence_3_E

Firefox - 🟢

Evidence_2_A_Firefox

Evidence_3_A_Firefox

Evidence_3_B_Firefox

Evidence_3_C_Firefox

Evidence_3_D_Firefox

Evidence_3_E_Firefox

Safari - ⚫

🟡 Explore agent modal: Type a complex field search and this should returns the expected results **_Api bug_**

Chrome - 🟡
Api bug Error case

Evidence_4_E_Error

Good cases

Evidence_4_A

Evidence_4_B

Evidence_4_C

Evidence_4_D

Evidence_4_F

Firefox - 🟡
Api bug Error case

Evidence_4_E_ErrorFirefox

Good cases

Evidence_4_A_Firefox

Evidence_4_B_Firefox

Evidence_4_C_Firefox

Evidence_4_D_Firefox

Evidence_4_F_Firefox

Safari - ⚫

Check List

  • All tests pass
    • yarn test:jest
  • New functionality includes testing.
  • New functionality has been documented.
  • Update CHANGELOG.md
  • Commits are signed per the DCO using --signoff

@chantal-kelm
Copy link
Member

chantal-kelm commented Aug 10, 2023

Legend:
⚫: none
🟢: pass
🟡: warning
🔴: fail
⚪: not applicable

Test Chrome Firefox Safari
Explore agent modal: For each suggested field, check the value suggestion display results or at least doesn't break 🟢 🟢 🟢
Explore agent modal: Using a value suggested should allow to run the search 🟢 🟢 🟢
Explore agent modal: Type a term and run the search should search in each displayed field 🟢 🟢 🟢
Explore agent modal: Type a simple field search and this should returns the expected results 🟢 🟢 🟢
Explore agent modal: Type a complex field search and this should returns the expected results 🟢 🟢 🟢

Details

🟢 Explore agent modal: For each suggested field, check the value suggestion display results or at least doesn't break

Chrome - 🟢

Captura de pantalla 2023-08-10 a la(s) 10 35 49 Captura de pantalla 2023-08-10 a la(s) 10 35 43

Firefox - 🟢

Captura de pantalla 2023-08-10 a la(s) 10 37 40 Captura de pantalla 2023-08-10 a la(s) 10 37 48

Safari - 🟢

Captura de pantalla 2023-08-10 a la(s) 10 38 54 Captura de pantalla 2023-08-10 a la(s) 10 38 41
🟢 Explore agent modal: Using a value suggested should allow to run the search

Chrome - 🟢

Captura de pantalla 2023-08-10 a la(s) 10 42 50

Firefox - 🟢

Captura de pantalla 2023-08-10 a la(s) 10 44 05

Safari - 🟢

Captura de pantalla 2023-08-10 a la(s) 10 44 18
🟡 Explore agent modal: Type a term and run the search should search in each displayed field **_Api bug_**

Chrome - 🟡 Api bug wazuh/wazuh#18204

Grabacion.de.pantalla.2023-08-10.a.la.s.10.10.07.mov

Firefox - 🟡 Api bug wazuh/wazuh#18204

Grabacion.de.pantalla.2023-08-10.a.la.s.10.48.17.mov

Safari - 🟡 Api bug wazuh/wazuh#18204

Grabacion.de.pantalla.2023-08-10.a.la.s.10.50.23.mov
🟢 Explore agent modal: Type a simple field search and this should returns the expected results

Chrome - 🟢

Captura de pantalla 2023-08-10 a la(s) 10 52 11

Firefox - 🟢

Captura de pantalla 2023-08-10 a la(s) 10 56 17

Safari - 🟢

Captura de pantalla 2023-08-10 a la(s) 10 56 43
🟢 Explore agent modal: Type a complex field search and this should returns the expected results

Chrome - 🟢

Captura de pantalla 2023-08-10 a la(s) 10 58 16

Firefox - 🟢

Captura de pantalla 2023-08-10 a la(s) 10 58 41

Safari - 🟢

Captura de pantalla 2023-08-10 a la(s) 10 59 01

chantal-kelm
chantal-kelm previously approved these changes Aug 10, 2023
@Desvelao Desvelao dismissed stale reviews from jbiset and chantal-kelm via 0f379aa August 11, 2023 12:36
jbiset
jbiset previously approved these changes Aug 11, 2023
@chantal-kelm chantal-kelm self-requested a review August 11, 2023 13:05
chantal-kelm
chantal-kelm previously approved these changes Aug 11, 2023
…o feat/4312-search-bar-replace-explore-agent-modal
@Desvelao Desvelao dismissed stale reviews from chantal-kelm and jbiset via 38a2195 August 11, 2023 13:51
@chantal-kelm chantal-kelm self-requested a review August 11, 2023 13:52
@Desvelao Desvelao merged commit 559f255 into 4.6.0 Aug 11, 2023
2 checks passed
@Desvelao Desvelao deleted the feat/4312-search-bar-replace-explore-agent-modal branch August 11, 2023 13:52
@github-actions
Copy link
Contributor

Code coverage (Jest) % values
Statements 11.44% ( 3959 / 34578 )
Branches 7.55% ( 1775 / 23486 )
Functions 10.82% ( 896 / 8279 )
Lines 11.63% ( 3847 / 33069 )

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Wazuh API usage - Modules New search bar component
3 participants