Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[Discover-next] add query enhancements plugin as a core plugin (opens…
…earch-project#7212) ### Description Introduces the addition of a new core plugin called `Query Enhancements` This plugin seems to be focused on enhancing query capabilities, particularly in areas like PPL (Piped Processing Language), SQL, and natural language query assistance. #### Plugin Configuration and Setup The plugin is set up with the necessary configuration files: - src/plugins/query_enhancements/opensearch_dashboards.json: Defines the plugin's metadata and dependencies. - src/plugins/query_enhancements/common/config.ts: Contains the configuration schema for the plugin. - src/plugins/query_enhancements/public/plugin.tsx: The main plugin file that sets up the public-facing part of the plugin. - src/plugins/query_enhancements/server/plugin.ts: The server-side setup for the plugin. #### Query Assist Feature A significant part of the plugin is dedicated to a "Query Assist" feature: - src/plugins/query_enhancements/public/query_assist/: This directory contains components, hooks, and utilities for the Query Assist feature. - src/plugins/query_enhancements/public/query_assist/components/query_assist_bar.tsx: A React component for the Query Assist bar. - src/plugins/query_enhancements/server/routes/query_assist/: Server-side routing for Query Assist functionality. #### Search Interceptors The plugin introduces several search interceptors: - src/plugins/query_enhancements/public/search/ppl_search_interceptor.ts - src/plugins/query_enhancements/public/search/sql_search_interceptor.ts - src/plugins/query_enhancements/public/search/sql_async_search_interceptor.ts These interceptors likely modify or enhance the search functionality for different query languages. #### Data Source Connection There's a new feature for data source connections: - src/plugins/query_enhancements/public/data_source_connection/: This directory contains components and services for managing data source connections. #### Server-side Search Strategies The plugin implements server-side search strategies for different query types: - src/plugins/query_enhancements/server/search/ppl_search_strategy.ts - src/plugins/query_enhancements/server/search/sql_search_strategy.ts - src/plugins/query_enhancements/server/search/sql_async_search_strategy.ts #### Modifications to Existing Files There are some modifications to existing files outside the new plugin directory: - src/plugins/data/public/index.ts: Exports new types and interfaces. - src/plugins/data/public/ui/index.ts: Exports new UI components. - src/plugins/data/public/ui/query_editor/index.tsx: Modifies the QueryEditor component. #### Testing The plugin includes a comprehensive test setup: - src/plugins/query_enhancements/test/: Contains Jest configuration and setup files for testing. #### Acknowledgements Contains work by @sejli @joshuali925 @Swiddis @paulstn @mengweieric Thx @ashwin-pc for the description summary ### Issues Related opensearch-project#6072 opensearch-project#6074 opensearch-project#6075 Commits include: * init Signed-off-by: Kawika Avilla <[email protected]> * fixing bugs and removing target Signed-off-by: Sean Li <[email protected]> * add target and build to .gitignore Signed-off-by: Sean Li <[email protected]> * Remove SQL Async and Query Assist Going for the light weight solution for 2.15. So took out what wasn't required deliverable. However, I created a branch `feature/discover-next` which has the state where all the features where added so we can port it over post 2.15. Signed-off-by: Kawika Avilla <[email protected]> * adding fix for PPL queries Signed-off-by: Sean Li <[email protected]> * Clean up files and add helper functions Signed-off-by: Kawika Avilla <[email protected]> * final touches Signed-off-by: Kawika Avilla <[email protected]> * [Discover-next] add query assist to query enhancements plugin (opensearch-project#6895) it adds query assist specific logic in query enhancements plugin to show a UI above the PPL search bar if user has configured PPL agent. Issues Resolved: opensearch-project#6820 * add query assist to query enhancements Signed-off-by: Joshua Li <[email protected]> * align language to uppercase Signed-off-by: Joshua Li <[email protected]> * pick PR 6167 Signed-off-by: Joshua Li <[email protected]> * use useState hooks for query assist There is a bug in data explorer `AppContainer` where memorized `DiscoverCanvas` gets unmounted after `setQuery`. PR 6167 works around it by memorizing `AppContainer`. As query assist is no longer being unmounted, we can use proper hooks to persist state now. Signed-off-by: Joshua Li <[email protected]> * Revert "pick PR 6167" This reverts commit acb0d41. Wait for official 6167 to merge to avoid conflict Signed-off-by: Joshua Li <[email protected]> * address comments for PR 6894 Signed-off-by: Joshua Li <[email protected]> --------- Signed-off-by: Joshua Li <[email protected]> (cherry picked from commit 016e0f2) * [Discover-next] Address comments for search bar extensions and query assist (opensearch-project#6933) * pass dependencies to isEnabled func Signed-off-by: Joshua Li <[email protected]> * add lazy and memo to search bar extensions Signed-off-by: Joshua Li <[email protected]> * move ppl specific string out from query assist Signed-off-by: Joshua Li <[email protected]> * prevent setstate after hook unmounts Signed-off-by: Joshua Li <[email protected]> * add max-height to search bar extensions Signed-off-by: Joshua Li <[email protected]> * prevent setstate after component unmounts Signed-off-by: Joshua Li <[email protected]> * move ml-commons API to common/index.ts Signed-off-by: Joshua Li <[email protected]> * improve i18n and accessibility usages Signed-off-by: Joshua Li <[email protected]> * add hard-coded suggestions for sample data indices Signed-off-by: Joshua Li <[email protected]> --------- Signed-off-by: Joshua Li <[email protected]> (cherry picked from commit 4aade0f) * [Discover-next] Support data sources for query assist (opensearch-project#6972) * disable query assist for non-default datasource Signed-off-by: Joshua Li <[email protected]> * disable query assist input when loading Signed-off-by: Joshua Li <[email protected]> * support MDS for query assist Signed-off-by: Joshua Li <[email protected]> * add unit tests for agents Signed-off-by: Joshua Li <[email protected]> * Revert "add unit tests for agents" This reverts commit 983514e. The test configs are not yet setup in query_enhancements plugins. Signed-off-by: Joshua Li <[email protected]> --------- Signed-off-by: Joshua Li <[email protected]> (cherry picked from commit 328e08e) * add query assist banner Signed-off-by: Joshua Li <[email protected]> * implement banner rendering logic Signed-off-by: Joshua Li <[email protected]> * pick opensearch-project/dashboards-observability/pull/1896 Signed-off-by: Joshua Li <[email protected]> * Conditionally render the data source select config Signed-off-by: Kawika Avilla <[email protected]> * restore no space Signed-off-by: Kawika Avilla <[email protected]> * add basic tests Signed-off-by: Joshua Li <[email protected]> * add index selector This is a temporary solution given that in discover the index pattern selector will be removed. Before datasource and dataset selectors are added, query assist will rely on this index pattern selector to determine which index user wants to query. Signed-off-by: Joshua Li <[email protected]> * MDS working with PPL and SQL Utilizing the work from MDS to make PPL and SQL calls to a remote cluster. Signed-off-by: Kawika Avilla <[email protected]> * rename logo to mark Signed-off-by: Joshua Li <[email protected]> * extract supported languages to config Signed-off-by: Joshua Li <[email protected]> * Add missing license headers Signed-off-by: Kawika Avilla <[email protected]> * initial implementation for async queries Signed-off-by: Sean Li <[email protected]> * remove queryId and sessionId from facet Signed-off-by: Sean Li <[email protected]> * fix: Update call out tests with intl wrapper Signed-off-by: Simeon Widdis <[email protected]> * maintenance: Add and apply lint command Signed-off-by: Simeon Widdis <[email protected]> * changing to observables Signed-off-by: Sean Li <[email protected]> * search interceptor and cleanup Signed-off-by: Sean Li <[email protected]> * moving polling class into plugin Signed-off-by: Sean Li <[email protected]> * Some minor clean ups plus lint Signed-off-by: Kawika Avilla <[email protected]> * test: Add mock-heavy tests for sql search strategy Signed-off-by: Simeon Widdis <[email protected]> * test: add GH workflows Signed-off-by: Simeon Widdis <[email protected]> * More clean ups Add some props interfaces and consolidated some of the facets Signed-off-by: Kawika Avilla <[email protected]> * chore: apply auto-lints to plugin Signed-off-by: Simeon Widdis <[email protected]> * Not done Signed-off-by: Kawika Avilla <[email protected]> * working Signed-off-by: Kawika Avilla <[email protected]> * working and styled Signed-off-by: Kawika Avilla <[email protected]> * add connection service Signed-off-by: Kawika Avilla <[email protected]> * Update public/types.ts Co-authored-by: Joshua Li <[email protected]> * Update public/plugin.tsx Co-authored-by: Joshua Li <[email protected]> * Update public/plugin.tsx Co-authored-by: Joshua Li <[email protected]> * fix linter Signed-off-by: Kawika Avilla <[email protected]> * add more tests for query assist (opensearch-project#31) add more tests for query assist update eslint config to make it work increase index selector width Signed-off-by: Joshua Li <[email protected]> * fix!: remove dataSource key in get connection response The `Connection` type does not have the extra `dataSource` object around response, and most of the time code references connection over dataSource. remove the redundent object to make response consistent with type. Signed-off-by: Joshua Li <[email protected]> * change isEnabled to an observable based on selected connection Signed-off-by: Joshua Li <[email protected]> * protect duplicated calls Signed-off-by: Joshua Li <[email protected]> * [build] import via start services Signed-off-by: Kawika Avilla <[email protected]> * Changeset file for PR opensearch-project#7212 created/updated * foobar Signed-off-by: Kawika Avilla <[email protected]> * updating imports still in progress Signed-off-by: Kawika Avilla <[email protected]> * Update more imports Signed-off-by: Kawika Avilla <[email protected]> * fix setting of state Signed-off-by: Kawika Avilla <[email protected]> * fixes bugs Signed-off-by: Kawika Avilla <[email protected]> * Update test Signed-off-by: Kawika Avilla <[email protected]> --------- Signed-off-by: Kawika Avilla <[email protected]> Signed-off-by: Sean Li <[email protected]> Signed-off-by: Joshua Li <[email protected]> Signed-off-by: Simeon Widdis <[email protected]> Co-authored-by: Sean Li <[email protected]> Co-authored-by: Joshua Li <[email protected]> Co-authored-by: Simeon Widdis <[email protected]> Co-authored-by: opensearch-changeset-bot[bot] <154024398+opensearch-changeset-bot[bot]@users.noreply.github.com> Signed-off-by: Kawika Avilla <[email protected]>
- Loading branch information