From fa2c7f8a465cd2716fa982af768371f2cdf2e16a Mon Sep 17 00:00:00 2001 From: Xavier Mouligneau <189600+XavierM@users.noreply.github.com> Date: Tue, 23 Jun 2020 11:58:33 -0400 Subject: [PATCH 1/4] Add back endpoint alerts url --- .../security_solution/common/constants.ts | 3 ++ .../security_solution/public/app/types.ts | 1 + .../public/endpoint_alerts/routes.tsx | 2 +- .../security_solution/public/plugin.tsx | 31 +++++++++++++++++++ 4 files changed, 36 insertions(+), 1 deletion(-) diff --git a/x-pack/plugins/security_solution/common/constants.ts b/x-pack/plugins/security_solution/common/constants.ts index 0d162c068376..c94131e95acb 100644 --- a/x-pack/plugins/security_solution/common/constants.ts +++ b/x-pack/plugins/security_solution/common/constants.ts @@ -42,6 +42,9 @@ export const APP_TIMELINES_PATH = `${APP_PATH}/timelines`; export const APP_CASES_PATH = `${APP_PATH}/cases`; export const APP_MANAGEMENT_PATH = `${APP_PATH}/management`; +export const SHOW_ENDPOINT_ALERTS_NAV = false; +export const APP_ENDPOINT_ALERTS_PATH = `${APP_PATH}/endpoint-alerts`; + /** The comma-delimited list of Elasticsearch indices from which the SIEM app collects events */ export const DEFAULT_INDEX_PATTERN = [ 'apm-*-transaction*', diff --git a/x-pack/plugins/security_solution/public/app/types.ts b/x-pack/plugins/security_solution/public/app/types.ts index 4bd888e87bbd..866a19b15771 100644 --- a/x-pack/plugins/security_solution/public/app/types.ts +++ b/x-pack/plugins/security_solution/public/app/types.ts @@ -27,6 +27,7 @@ export enum SecurityPageName { timelines = 'timelines', case = 'case', management = 'management', + endpointAlerts = 'endpointAlerts', } export interface SecuritySubPluginStore { initialState: Record; diff --git a/x-pack/plugins/security_solution/public/endpoint_alerts/routes.tsx b/x-pack/plugins/security_solution/public/endpoint_alerts/routes.tsx index acc6a82e29a2..1c92919aa982 100644 --- a/x-pack/plugins/security_solution/public/endpoint_alerts/routes.tsx +++ b/x-pack/plugins/security_solution/public/endpoint_alerts/routes.tsx @@ -11,7 +11,7 @@ import { AlertIndex } from './view'; export const EndpointAlertsRoutes: React.FC = () => ( - + diff --git a/x-pack/plugins/security_solution/public/plugin.tsx b/x-pack/plugins/security_solution/public/plugin.tsx index 58f0a0ddb749..360c81abadc8 100644 --- a/x-pack/plugins/security_solution/public/plugin.tsx +++ b/x-pack/plugins/security_solution/public/plugin.tsx @@ -33,6 +33,8 @@ import { APP_TIMELINES_PATH, APP_MANAGEMENT_PATH, APP_CASES_PATH, + SHOW_ENDPOINT_ALERTS_NAV, + APP_ENDPOINT_ALERTS_PATH, } from '../common/constants'; import { ConfigureEndpointDatasource } from './management/pages/policy/view/ingest_manager_integration/configure_datasource'; @@ -290,6 +292,35 @@ export class Plugin implements IPlugin { + const [ + { coreStart, startPlugins, store, services }, + { renderApp, composeLibs }, + { endpointAlertsSubPlugin }, + ] = await Promise.all([ + mountSecurityFactory(), + this.downloadAssets(), + this.downloadSubPlugins(), + ]); + return renderApp({ + ...composeLibs(coreStart), + ...params, + services, + store, + SubPluginRoutes: endpointAlertsSubPlugin.start(coreStart, startPlugins).SubPluginRoutes, + }); + }, + }); + } + core.application.register({ id: 'siem', appRoute: 'app/siem', From ae6d72de806b321992974e6b7533cca334a7c358 Mon Sep 17 00:00:00 2001 From: Xavier Mouligneau <189600+XavierM@users.noreply.github.com> Date: Tue, 23 Jun 2020 12:55:18 -0400 Subject: [PATCH 2/4] hack to move on --- x-pack/plugins/security_solution/common/constants.ts | 2 +- .../public/endpoint_alerts/store/selectors.ts | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/x-pack/plugins/security_solution/common/constants.ts b/x-pack/plugins/security_solution/common/constants.ts index c94131e95acb..58431e405ea8 100644 --- a/x-pack/plugins/security_solution/common/constants.ts +++ b/x-pack/plugins/security_solution/common/constants.ts @@ -42,7 +42,7 @@ export const APP_TIMELINES_PATH = `${APP_PATH}/timelines`; export const APP_CASES_PATH = `${APP_PATH}/cases`; export const APP_MANAGEMENT_PATH = `${APP_PATH}/management`; -export const SHOW_ENDPOINT_ALERTS_NAV = false; +export const SHOW_ENDPOINT_ALERTS_NAV = true; export const APP_ENDPOINT_ALERTS_PATH = `${APP_PATH}/endpoint-alerts`; /** The comma-delimited list of Elasticsearch indices from which the SIEM app collects events */ diff --git a/x-pack/plugins/security_solution/public/endpoint_alerts/store/selectors.ts b/x-pack/plugins/security_solution/public/endpoint_alerts/store/selectors.ts index ab0e4165a257..878c5f4fd2bb 100644 --- a/x-pack/plugins/security_solution/public/endpoint_alerts/store/selectors.ts +++ b/x-pack/plugins/security_solution/public/endpoint_alerts/store/selectors.ts @@ -44,7 +44,10 @@ export const alertListPagination = createStructuredSelector({ * Returns a boolean based on whether or not the user is on the alerts page */ export const isOnAlertPage = (state: Immutable): boolean => { - return state.location ? state.location.pathname === '/endpoint-alerts' : false; + return state.location + ? state.location.pathname === '/endpoint-alerts' || + window.location.pathname.includes('/endpoint-alerts') + : false; }; /** From 92def42b95d540c4892be557114a144005959bdc Mon Sep 17 00:00:00 2001 From: Xavier Mouligneau <189600+XavierM@users.noreply.github.com> Date: Tue, 23 Jun 2020 14:21:29 -0400 Subject: [PATCH 3/4] fix type --- .../public/app/home/home_navigations.tsx | 8 ++++++++ .../public/common/components/navigation/types.ts | 3 ++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/x-pack/plugins/security_solution/public/app/home/home_navigations.tsx b/x-pack/plugins/security_solution/public/app/home/home_navigations.tsx index 88e9d4179a97..8839919af206 100644 --- a/x-pack/plugins/security_solution/public/app/home/home_navigations.tsx +++ b/x-pack/plugins/security_solution/public/app/home/home_navigations.tsx @@ -15,6 +15,7 @@ import { APP_TIMELINES_PATH, APP_CASES_PATH, APP_MANAGEMENT_PATH, + APP_ENDPOINT_ALERTS_PATH, } from '../../../common/constants'; export const navTabs: SiemNavTab = { @@ -68,4 +69,11 @@ export const navTabs: SiemNavTab = { disabled: false, urlKey: SecurityPageName.management, }, + [SecurityPageName.endpointAlerts]: { + id: SecurityPageName.endpointAlerts, + name: 'Endpoint Alerts', // No Need of i18n since, it is just temporary + href: APP_ENDPOINT_ALERTS_PATH, + disabled: false, + urlKey: SecurityPageName.management, // Just to make type happy, this should go away soon + }, }; diff --git a/x-pack/plugins/security_solution/public/common/components/navigation/types.ts b/x-pack/plugins/security_solution/public/common/components/navigation/types.ts index 80302be18355..a870c790527b 100644 --- a/x-pack/plugins/security_solution/public/common/components/navigation/types.ts +++ b/x-pack/plugins/security_solution/public/common/components/navigation/types.ts @@ -48,7 +48,8 @@ export type SiemNavTabKey = | SecurityPageName.alerts | SecurityPageName.timelines | SecurityPageName.case - | SecurityPageName.management; + | SecurityPageName.management + | SecurityPageName.endpointAlerts; export type SiemNavTab = Record; From 50ced3b5239503a08b09b39cc9e19f17084a94c8 Mon Sep 17 00:00:00 2001 From: Xavier Mouligneau <189600+XavierM@users.noreply.github.com> Date: Tue, 23 Jun 2020 15:44:17 -0400 Subject: [PATCH 4/4] fix test --- .../components/navigation/index.test.tsx | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/x-pack/plugins/security_solution/public/common/components/navigation/index.test.tsx b/x-pack/plugins/security_solution/public/common/components/navigation/index.test.tsx index a99497090f84..cab4ef8ead63 100644 --- a/x-pack/plugins/security_solution/public/common/components/navigation/index.test.tsx +++ b/x-pack/plugins/security_solution/public/common/components/navigation/index.test.tsx @@ -140,6 +140,13 @@ describe('SIEM Navigation', () => { name: 'Timelines', urlKey: 'timeline', }, + endpointAlerts: { + disabled: false, + href: '/app/security/endpoint-alerts', + id: 'endpointAlerts', + name: 'Endpoint Alerts', + urlKey: 'management', + }, }, pageName: 'hosts', pathName: '/', @@ -185,7 +192,7 @@ describe('SIEM Navigation', () => { wrapper.setProps({ pageName: 'network', pathName: '/', - tabName: undefined, + tabName: 'authentications', }); wrapper.update(); expect(setBreadcrumbs).toHaveBeenNthCalledWith( @@ -209,7 +216,13 @@ describe('SIEM Navigation', () => { name: 'Cases', urlKey: 'case', }, - + endpointAlerts: { + disabled: false, + href: '/app/security/endpoint-alerts', + id: 'endpointAlerts', + name: 'Endpoint Alerts', + urlKey: 'management', + }, hosts: { disabled: false, href: '/app/security/hosts', @@ -252,7 +265,7 @@ describe('SIEM Navigation', () => { savedQuery: undefined, search: '', state: undefined, - tabName: undefined, + tabName: 'authentications', timeline: { id: '', isOpen: false }, timerange: { global: {