From b7d49a6f8c120821acc3a43ab6c00629003644c8 Mon Sep 17 00:00:00 2001 From: Michael Olorunnisola Date: Tue, 10 Oct 2023 11:37:53 -0400 Subject: [PATCH 1/2] fix types --- .../discover_in_timeline/vis_apply_filter.ts | 13 +++++-------- .../security_solution/public/actions/types.ts | 2 +- .../customizations/use_histogram_customizations.tsx | 6 ++---- 3 files changed, 8 insertions(+), 13 deletions(-) diff --git a/x-pack/plugins/security_solution/public/actions/discover_in_timeline/vis_apply_filter.ts b/x-pack/plugins/security_solution/public/actions/discover_in_timeline/vis_apply_filter.ts index 5b6d2f547c491..8c3f9e0214a63 100644 --- a/x-pack/plugins/security_solution/public/actions/discover_in_timeline/vis_apply_filter.ts +++ b/x-pack/plugins/security_solution/public/actions/discover_in_timeline/vis_apply_filter.ts @@ -9,7 +9,7 @@ import { createFilterAction } from '@kbn/unified-search-plugin/public'; import type { History } from 'history'; import type { SecurityAppStore } from '../../common/store'; import type { StartServices } from '../../types'; -import { DiscoverInTimelineTrigger, DiscoverInTimelineAction } from '../constants'; +import { EsqlInTimelineTrigger, EsqlInTimelineAction } from '../constants'; const createDiscoverHistogramCustomFilterAction = ( store: SecurityAppStore, @@ -20,8 +20,8 @@ const createDiscoverHistogramCustomFilterAction = ( services.customDataService.query.filterManager, services.customDataService.query.timefilter.timefilter, services.theme, - DiscoverInTimelineAction.VIS_FILTER_ACTION, - DiscoverInTimelineAction.VIS_FILTER_ACTION + EsqlInTimelineAction.VIS_FILTER_ACTION, + EsqlInTimelineAction.VIS_FILTER_ACTION ); services.uiActions.registerAction(histogramApplyFilter); @@ -34,7 +34,7 @@ const createDiscoverHistogramCustomTrigger = ( services: StartServices ) => { services.uiActions.registerTrigger({ - id: DiscoverInTimelineTrigger.HISTOGRAM_TRIGGER, + id: EsqlInTimelineTrigger.HISTOGRAM_TRIGGER, }); }; @@ -47,8 +47,5 @@ export const registerDiscoverHistogramActions = ( const histogramApplyFilter = createDiscoverHistogramCustomFilterAction(store, history, services); - services.uiActions.attachAction( - DiscoverInTimelineTrigger.HISTOGRAM_TRIGGER, - histogramApplyFilter.id - ); + services.uiActions.attachAction(EsqlInTimelineTrigger.HISTOGRAM_TRIGGER, histogramApplyFilter.id); }; diff --git a/x-pack/plugins/security_solution/public/actions/types.ts b/x-pack/plugins/security_solution/public/actions/types.ts index 582c63c467360..3450f6796ce27 100644 --- a/x-pack/plugins/security_solution/public/actions/types.ts +++ b/x-pack/plugins/security_solution/public/actions/types.ts @@ -7,7 +7,7 @@ import type { CellAction, CellActionExecutionContext, CellActionFactory } from '@kbn/cell-actions'; import type { QueryOperator } from '../../common/types'; -export { DiscoverInTimelineAction, DiscoverInTimelineTrigger } from './constants'; +export { EsqlInTimelineTrigger, EsqlInTimelineAction } from './constants'; export interface AndFilter { field: string; value: string | string[]; diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/esql_tab_content/customizations/use_histogram_customizations.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/esql_tab_content/customizations/use_histogram_customizations.tsx index 9ff69adbf4655..65a7f1a977696 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/esql_tab_content/customizations/use_histogram_customizations.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/esql_tab_content/customizations/use_histogram_customizations.tsx @@ -14,7 +14,7 @@ import type { CustomizationCallback } from '@kbn/discover-plugin/public'; import type { UnifiedHistogramContainerProps } from '@kbn/unified-histogram-plugin/public'; import { ACTION_GLOBAL_APPLY_FILTER } from '@kbn/unified-search-plugin/public'; import { useCallback } from 'react'; -import { DiscoverInTimelineTrigger } from '../../../../../actions/constants'; +import { EsqlInTimelineTrigger } from '../../../../../actions/constants'; import { useKibana } from '../../../../../common/lib/kibana'; export type WithPreventableEvent = T & { @@ -67,9 +67,7 @@ export const useHistogramCustomization = () => { } if (filters && filters.length > 0) { - const applyFilterTrigger = uiActions.getTrigger( - DiscoverInTimelineTrigger.HISTOGRAM_TRIGGER - ); + const applyFilterTrigger = uiActions.getTrigger(EsqlInTimelineTrigger.HISTOGRAM_TRIGGER); await applyFilterTrigger.exec({ filters, From 5bce311e8f502194500e456075d726333795169f Mon Sep 17 00:00:00 2001 From: Michael Olorunnisola Date: Tue, 10 Oct 2023 14:02:33 -0400 Subject: [PATCH 2/2] use esql settings config --- .../security_solution/common/experimental_features.ts | 6 ------ .../customizations/use_search_bar_customizations.tsx | 4 +--- .../timelines/components/timeline/tabs_content/index.tsx | 9 +++++---- x-pack/test/security_solution_cypress/config.ts | 1 - .../investigations/timelines/discover/cell_actions.cy.ts | 1 - .../timelines/discover/discover_state.cy.ts | 1 - .../discover/discover_timeline_state_integration.cy.ts | 1 - .../timelines/discover/search_filter.cy.ts | 1 - .../cypress/screens/timeline.ts | 2 +- 9 files changed, 7 insertions(+), 19 deletions(-) diff --git a/x-pack/plugins/security_solution/common/experimental_features.ts b/x-pack/plugins/security_solution/common/experimental_features.ts index a30b5cfe17ae6..90346011c23e5 100644 --- a/x-pack/plugins/security_solution/common/experimental_features.ts +++ b/x-pack/plugins/security_solution/common/experimental_features.ts @@ -103,12 +103,6 @@ export const allowedExperimentalValues = Object.freeze({ * Enables experimental Entity Analytics HTTP endpoints */ riskScoringRoutesEnabled: true, - /* - * - * Enables Discover embedded within timeline - * - * */ - discoverInTimeline: true, /** * disables ES|QL rules diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/esql_tab_content/customizations/use_search_bar_customizations.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/esql_tab_content/customizations/use_search_bar_customizations.tsx index c748357bb24b8..0e74125e5ada4 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/esql_tab_content/customizations/use_search_bar_customizations.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/esql_tab_content/customizations/use_search_bar_customizations.tsx @@ -6,18 +6,16 @@ */ import type { CustomizationCallback } from '@kbn/discover-plugin/public'; -import { useIsExperimentalFeatureEnabled } from '../../../../../common/hooks/use_experimental_features'; import { useGetStatefulQueryBar } from '../use_get_stateful_query_bar'; export const useSearchBarCustomizations = () => { const { CustomStatefulTopNavKqlQueryBar } = useGetStatefulQueryBar(); - const isDiscoverInTimelineEnabled = useIsExperimentalFeatureEnabled('discoverInTimeline'); const setSearchBarCustomizations: CustomizationCallback = ({ customizations }) => { customizations.set({ id: 'search_bar', CustomSearchBar: CustomStatefulTopNavKqlQueryBar, - hideDataViewPicker: isDiscoverInTimelineEnabled, + hideDataViewPicker: true, }); }; diff --git a/x-pack/plugins/security_solution/public/timelines/components/timeline/tabs_content/index.tsx b/x-pack/plugins/security_solution/public/timelines/components/timeline/tabs_content/index.tsx index d82987aaa6003..36aa32ce38f1d 100644 --- a/x-pack/plugins/security_solution/public/timelines/components/timeline/tabs_content/index.tsx +++ b/x-pack/plugins/security_solution/public/timelines/components/timeline/tabs_content/index.tsx @@ -15,6 +15,7 @@ import { useDispatch } from 'react-redux'; import styled from 'styled-components'; import { FormattedMessage } from '@kbn/i18n-react'; +import { useKibana } from '../../../../common/lib/kibana'; import { useAssistantTelemetry } from '../../../../assistant/use_assistant_telemetry'; import { useIsExperimentalFeatureEnabled } from '../../../../common/hooks/use_experimental_features'; import { useConversationStore } from '../../../../assistant/use_conversation_store'; @@ -133,7 +134,7 @@ const ActiveTimelineTab = memo( setConversationId, showTimeline, }) => { - const isEsqlInTimelineEnabled = useIsExperimentalFeatureEnabled('discoverInTimeline'); + const isEsqlSettingEnabled = useKibana().services.configSettings.ESQLEnabled; const { hasAssistantPrivilege } = useAssistantAvailability(); const getTab = useCallback( (tab: TimelineTabs) => { @@ -181,7 +182,7 @@ const ActiveTimelineTab = memo( timelineId={timelineId} /> - {isEsqlInTimelineEnabled && ( + {isEsqlSettingEnabled && ( = ({ sessionViewConfig, timelineDescription, }) => { - const isEsqlInTimelineEnabled = useIsExperimentalFeatureEnabled('discoverInTimeline'); + const isEsqlSettingEnabled = useKibana().services.configSettings.ESQLEnabled; const { hasAssistantPrivilege } = useAssistantAvailability(); const dispatch = useDispatch(); const getActiveTab = useMemo(() => getActiveTabSelector(), []); @@ -399,7 +400,7 @@ const TabsContentComponent: React.FC = ({ {i18n.QUERY_TAB} {showTimeline && } - {isEsqlInTimelineEnabled && ( + {isEsqlSettingEnabled && ( { diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/timelines/discover/discover_state.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/timelines/discover/discover_state.cy.ts index be3e9de9c6a10..580091e832b74 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/timelines/discover/discover_state.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/timelines/discover/discover_state.cy.ts @@ -32,7 +32,6 @@ const DEFAULT_ESQL_QUERY = describe( 'Discover State', { - env: { ftrConfig: { enableExperimental: ['discoverInTimeline'] } }, tags: ['@ess'], }, () => { diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/timelines/discover/discover_timeline_state_integration.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/timelines/discover/discover_timeline_state_integration.cy.ts index 76aa204c89b14..d1a446df25a5a 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/timelines/discover/discover_timeline_state_integration.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/timelines/discover/discover_timeline_state_integration.cy.ts @@ -63,7 +63,6 @@ const esqlQuery = 'from auditbeat-* | where ecs.version == "8.0.0"'; describe( 'Discover Timeline State Integration', { - env: { ftrConfig: { enableExperimental: ['discoverInTimeline'] } }, tags: ['@ess', '@brokenInServerless'], // ESQL and test involving STACK_MANAGEMENT_PAGE are broken in serverless }, diff --git a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/timelines/discover/search_filter.cy.ts b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/timelines/discover/search_filter.cy.ts index 8784dc53bd5f2..51054e9c9d550 100644 --- a/x-pack/test/security_solution_cypress/cypress/e2e/investigations/timelines/discover/search_filter.cy.ts +++ b/x-pack/test/security_solution_cypress/cypress/e2e/investigations/timelines/discover/search_filter.cy.ts @@ -36,7 +36,6 @@ const esqlQuery = 'from auditbeat-* | where ecs.version == "8.0.0"'; describe( 'Basic discover search and filter operations', { - env: { ftrConfig: { enableExperimental: ['discoverInTimeline'] } }, tags: ['@ess'], }, () => { diff --git a/x-pack/test/security_solution_cypress/cypress/screens/timeline.ts b/x-pack/test/security_solution_cypress/cypress/screens/timeline.ts index d08c406231756..2c89a0a5877bd 100644 --- a/x-pack/test/security_solution_cypress/cypress/screens/timeline.ts +++ b/x-pack/test/security_solution_cypress/cypress/screens/timeline.ts @@ -341,7 +341,7 @@ export const GET_TIMELINE_HEADER = (fieldName: string) => { return `[data-test-subj="timeline"] [data-test-subj="header-text-${fieldName}"]`; }; -export const ESQL_TAB = getDataTestSubjectSelector('timelineTabs-discover'); +export const ESQL_TAB = getDataTestSubjectSelector('timelineTabs-esql'); export const TIMELINE_DATE_PICKER_CONTAINER = getDataTestSubjectSelector( 'timeline-date-picker-container'