From 8b41d4b42c02dc8912a9984556589f42bf8baae6 Mon Sep 17 00:00:00 2001
From: Candace Park
Date: Wed, 8 Jul 2020 17:55:32 -0400
Subject: [PATCH 1/6] some random stuff
---
.../public/common/utils/route/types.ts | 7 +++-
.../public/management/common/constants.ts | 8 ++---
.../public/management/common/routing.ts | 10 +++---
.../components/management_page_view.tsx | 14 ++++----
.../public/management/pages/index.tsx | 36 +++++++++++++++++++
.../public/management/types.ts | 4 +--
6 files changed, 60 insertions(+), 19 deletions(-)
diff --git a/x-pack/plugins/security_solution/public/common/utils/route/types.ts b/x-pack/plugins/security_solution/public/common/utils/route/types.ts
index 8656f20c92959..13eb03b07353d 100644
--- a/x-pack/plugins/security_solution/public/common/utils/route/types.ts
+++ b/x-pack/plugins/security_solution/public/common/utils/route/types.ts
@@ -12,9 +12,10 @@ import { TimelineType } from '../../../../common/types/timeline';
import { HostsTableType } from '../../../hosts/store/model';
import { NetworkRouteType } from '../../../network/pages/navigation/types';
+import { AdministrationSubTab as AdministrationType } from '../../../management/types';
import { FlowTarget } from '../../../graphql/types';
-export type SiemRouteType = HostsTableType | NetworkRouteType | TimelineType;
+export type SiemRouteType = HostsTableType | NetworkRouteType | TimelineType | AdministrationType;
export interface RouteSpyState {
pageName: string;
detailName: string | undefined;
@@ -38,6 +39,10 @@ export interface TimelineRouteSpyState extends RouteSpyState {
tabName: TimelineType | undefined;
}
+export interface AdministrationRouteSpyState extends RouteSpyState {
+ tabName: AdministrationType | undefined;
+}
+
export type RouteSpyAction =
| {
type: 'updateSearch';
diff --git a/x-pack/plugins/security_solution/public/management/common/constants.ts b/x-pack/plugins/security_solution/public/management/common/constants.ts
index 4bc586bdee8a9..f0abe905d58a5 100644
--- a/x-pack/plugins/security_solution/public/management/common/constants.ts
+++ b/x-pack/plugins/security_solution/public/management/common/constants.ts
@@ -3,16 +3,16 @@
* or more contributor license agreements. Licensed under the Elastic License;
* you may not use this file except in compliance with the Elastic License.
*/
-import { ManagementStoreGlobalNamespace, ManagementSubTab } from '../types';
+import { ManagementStoreGlobalNamespace, AdministrationSubTab } from '../types';
import { APP_ID } from '../../../common/constants';
import { SecurityPageName } from '../../app/types';
// --[ ROUTING ]---------------------------------------------------------------------------
export const MANAGEMENT_APP_ID = `${APP_ID}:${SecurityPageName.management}`;
export const MANAGEMENT_ROUTING_ROOT_PATH = '';
-export const MANAGEMENT_ROUTING_HOSTS_PATH = `${MANAGEMENT_ROUTING_ROOT_PATH}/:tabName(${ManagementSubTab.hosts})`;
-export const MANAGEMENT_ROUTING_POLICIES_PATH = `${MANAGEMENT_ROUTING_ROOT_PATH}/:tabName(${ManagementSubTab.policies})`;
-export const MANAGEMENT_ROUTING_POLICY_DETAILS_PATH = `${MANAGEMENT_ROUTING_ROOT_PATH}/:tabName(${ManagementSubTab.policies})/:policyId`;
+export const MANAGEMENT_ROUTING_HOSTS_PATH = `${MANAGEMENT_ROUTING_ROOT_PATH}/:tabName(${AdministrationSubTab.hosts})`;
+export const MANAGEMENT_ROUTING_POLICIES_PATH = `${MANAGEMENT_ROUTING_ROOT_PATH}/:tabName(${AdministrationSubTab.policies})`;
+export const MANAGEMENT_ROUTING_POLICY_DETAILS_PATH = `${MANAGEMENT_ROUTING_ROOT_PATH}/:tabName(${AdministrationSubTab.policies})/:policyId`;
// --[ STORE ]---------------------------------------------------------------------------
/** The SIEM global store namespace where the management state will be mounted */
diff --git a/x-pack/plugins/security_solution/public/management/common/routing.ts b/x-pack/plugins/security_solution/public/management/common/routing.ts
index 5add6b753a7a9..3636358ebe842 100644
--- a/x-pack/plugins/security_solution/public/management/common/routing.ts
+++ b/x-pack/plugins/security_solution/public/management/common/routing.ts
@@ -14,7 +14,7 @@ import {
MANAGEMENT_ROUTING_POLICIES_PATH,
MANAGEMENT_ROUTING_POLICY_DETAILS_PATH,
} from './constants';
-import { ManagementSubTab } from '../types';
+import { AdministrationSubTab } from '../types';
import { appendSearch } from '../../common/components/link_to/helpers';
import { HostIndexUIQueryParams } from '../pages/endpoint_hosts/types';
@@ -47,7 +47,7 @@ export const getHostListPath = (
if (name === 'hostList') {
return `${generatePath(MANAGEMENT_ROUTING_HOSTS_PATH, {
- tabName: ManagementSubTab.hosts,
+ tabName: AdministrationSubTab.hosts,
})}${appendSearch(`${urlQueryParams ? `${urlQueryParams}${urlSearch}` : urlSearch}`)}`;
}
return `${appendSearch(`${urlQueryParams ? `${urlQueryParams}${urlSearch}` : urlSearch}`)}`;
@@ -65,17 +65,17 @@ export const getHostDetailsPath = (
const urlSearch = `${urlQueryParams && !isEmpty(search) ? '&' : ''}${search ?? ''}`;
return `${generatePath(MANAGEMENT_ROUTING_HOSTS_PATH, {
- tabName: ManagementSubTab.hosts,
+ tabName: AdministrationSubTab.hosts,
})}${appendSearch(`${urlQueryParams ? `${urlQueryParams}${urlSearch}` : urlSearch}`)}`;
};
export const getPoliciesPath = (search?: string) =>
`${generatePath(MANAGEMENT_ROUTING_POLICIES_PATH, {
- tabName: ManagementSubTab.policies,
+ tabName: AdministrationSubTab.policies,
})}${appendSearch(search)}`;
export const getPolicyDetailPath = (policyId: string, search?: string) =>
`${generatePath(MANAGEMENT_ROUTING_POLICY_DETAILS_PATH, {
- tabName: ManagementSubTab.policies,
+ tabName: AdministrationSubTab.policies,
policyId,
})}${appendSearch(search)}`;
diff --git a/x-pack/plugins/security_solution/public/management/components/management_page_view.tsx b/x-pack/plugins/security_solution/public/management/components/management_page_view.tsx
index 8495628709d2a..1269db2620c2a 100644
--- a/x-pack/plugins/security_solution/public/management/components/management_page_view.tsx
+++ b/x-pack/plugins/security_solution/public/management/components/management_page_view.tsx
@@ -8,7 +8,7 @@ import React, { memo, useMemo } from 'react';
import { i18n } from '@kbn/i18n';
import { useParams } from 'react-router-dom';
import { PageView, PageViewProps } from '../../common/components/endpoint/page_view';
-import { ManagementSubTab } from '../types';
+import { AdministrationSubTab } from '../types';
import { SecurityPageName } from '../../app/types';
import { useFormatUrl } from '../../common/components/link_to';
import { getHostListPath, getPoliciesPath } from '../common/routing';
@@ -16,7 +16,7 @@ import { useNavigateByRouterEventHandler } from '../../common/hooks/endpoint/use
export const ManagementPageView = memo>((options) => {
const { formatUrl, search } = useFormatUrl(SecurityPageName.management);
- const { tabName } = useParams<{ tabName: ManagementSubTab }>();
+ const { tabName } = useParams<{ tabName: AdministrationSubTab }>();
const goToEndpoint = useNavigateByRouterEventHandler(
getHostListPath({ name: 'hostList' }, search)
@@ -30,11 +30,11 @@ export const ManagementPageView = memo>((options) =>
}
return [
{
- name: i18n.translate('xpack.securitySolution.managementTabs.endpoints', {
+ name: i18n.translate('xpack.securitySolution.managementTabs.hosts', {
defaultMessage: 'Hosts',
}),
- id: ManagementSubTab.hosts,
- isSelected: tabName === ManagementSubTab.hosts,
+ id: AdministrationSubTab.hosts,
+ isSelected: tabName === AdministrationSubTab.hosts,
href: formatUrl(getHostListPath({ name: 'hostList' })),
onClick: goToEndpoint,
},
@@ -42,8 +42,8 @@ export const ManagementPageView = memo>((options) =>
name: i18n.translate('xpack.securitySolution.managementTabs.policies', {
defaultMessage: 'Policies',
}),
- id: ManagementSubTab.policies,
- isSelected: tabName === ManagementSubTab.policies,
+ id: AdministrationSubTab.policies,
+ isSelected: tabName === AdministrationSubTab.policies,
href: formatUrl(getPoliciesPath()),
onClick: goToPolicies,
},
diff --git a/x-pack/plugins/security_solution/public/management/pages/index.tsx b/x-pack/plugins/security_solution/public/management/pages/index.tsx
index 2cf07b9b4382e..d62df028cd661 100644
--- a/x-pack/plugins/security_solution/public/management/pages/index.tsx
+++ b/x-pack/plugins/security_solution/public/management/pages/index.tsx
@@ -4,6 +4,7 @@
* you may not use this file except in compliance with the Elastic License.
*/
+import { isEmpty } from 'lodash/fp';
import React, { memo } from 'react';
import { useHistory, Route, Switch } from 'react-router-dom';
@@ -16,6 +17,41 @@ import {
import { NotFoundPage } from '../../app/404';
import { HostsContainer } from './endpoint_hosts';
import { getHostListPath } from '../common/routing';
+import {ChromeBreadcrumb} from 'kibana/public';
+import {APP_ID} from 'x-pack/plugins/security_solution/common/constants';
+import {GetUrlForApp} from '../../common/components/navigation/types';
+import {AdministrationRouteSpyState} from '../../common/utils/route/types';
+
+const TabNameMappedToI18nKey: Record = {
+
+};
+
+export const getBreadcrumbs = (
+ params: AdministrationRouteSpyState,
+ search: string[],
+ getUrlForApp: GetUrlForApp
+): ChromeBreadcrumb[] => {
+ let breadcrumb = [
+ {
+ text: PAGE_TITLE,
+ href: getUrlForApp(`${APP_ID}:${SecurityPageName.management}`, {
+ path: !isEmpty(search[0]) ? search[0] : '',
+ }),
+ },
+ ];
+
+ const tabName = params?.tabName;
+ if (!tabName) return breadcrumb;
+
+ breadcrumb = [
+ ...breadcrumb,
+ {
+ text: TabNameMappedToI18nKey[tabName],
+ href: '',
+ },
+ ];
+ return breadcrumb;
+};
export const ManagementContainer = memo(() => {
const history = useHistory();
diff --git a/x-pack/plugins/security_solution/public/management/types.ts b/x-pack/plugins/security_solution/public/management/types.ts
index cb21a236ddd7e..1dd8ca68540a6 100644
--- a/x-pack/plugins/security_solution/public/management/types.ts
+++ b/x-pack/plugins/security_solution/public/management/types.ts
@@ -24,7 +24,7 @@ export type ManagementState = CombinedState<{
/**
* The management list of sub-tabs. Changes to these will impact the Router routes.
*/
-export enum ManagementSubTab {
+export enum AdministrationSubTab {
hosts = 'hosts',
policies = 'policy',
}
@@ -34,7 +34,7 @@ export enum ManagementSubTab {
*/
export interface ManagementRoutePolicyListParams {
pageName: SecurityPageName.management;
- tabName: ManagementSubTab.policies;
+ tabName: AdministrationSubTab.policies;
}
/**
From 661c4ad7ab8f6c8d5a19819c7550c315d3e24373 Mon Sep 17 00:00:00 2001
From: Candace Park
Date: Thu, 9 Jul 2020 12:55:02 -0400
Subject: [PATCH 2/6] basic working breadcrumbs
---
.../navigation/breadcrumbs/index.ts | 26 +++++++++++++++++++
.../public/management/common/translations.ts | 15 +++++++++++
.../public/management/pages/index.tsx | 16 +++++++-----
3 files changed, 51 insertions(+), 6 deletions(-)
create mode 100644 x-pack/plugins/security_solution/public/management/common/translations.ts
diff --git a/x-pack/plugins/security_solution/public/common/components/navigation/breadcrumbs/index.ts b/x-pack/plugins/security_solution/public/common/components/navigation/breadcrumbs/index.ts
index dc5324adbac7d..bc38bc4a2254a 100644
--- a/x-pack/plugins/security_solution/public/common/components/navigation/breadcrumbs/index.ts
+++ b/x-pack/plugins/security_solution/public/common/components/navigation/breadcrumbs/index.ts
@@ -15,6 +15,7 @@ import { getBreadcrumbs as getIPDetailsBreadcrumbs } from '../../../../network/p
import { getBreadcrumbs as getCaseDetailsBreadcrumbs } from '../../../../cases/pages/utils';
import { getBreadcrumbs as getDetectionRulesBreadcrumbs } from '../../../../detections/pages/detection_engine/rules/utils';
import { getBreadcrumbs as getTimelinesBreadcrumbs } from '../../../../timelines/pages';
+import { getBreadcrumbs as getAdminBreadcrumbs } from '../../../../management/pages';
import { SecurityPageName } from '../../../../app/types';
import {
RouteSpyState,
@@ -61,6 +62,10 @@ const isCaseRoutes = (spyState: RouteSpyState): spyState is RouteSpyState =>
const isAlertsRoutes = (spyState: RouteSpyState) =>
spyState != null && spyState.pageName === SecurityPageName.detections;
+const isAdminRoutes = (spyState: RouteSpyState) =>
+ spyState != null && spyState.pageName === SecurityPageName.management;
+
+// eslint-disable-next-line complexity
export const getBreadcrumbsForRoute = (
object: RouteSpyState & TabNavigationProps,
getUrlForApp: GetUrlForApp
@@ -159,6 +164,27 @@ export const getBreadcrumbsForRoute = (
),
];
}
+
+ if (isAdminRoutes(spyState) && object.navTabs) {
+ const tempNav: SearchNavTab = { urlKey: 'administration', isDetailPage: false };
+ let urlStateKeys = [getOr(tempNav, spyState.pageName, object.navTabs)];
+ if (spyState.tabName != null) {
+ urlStateKeys = [...urlStateKeys, getOr(tempNav, spyState.tabName, object.navTabs)];
+ }
+
+ return [
+ ...siemRootBreadcrumb,
+ ...getAdminBreadcrumbs(
+ spyState,
+ urlStateKeys.reduce(
+ (acc: string[], item: SearchNavTab) => [...acc, getSearch(item, object)],
+ []
+ ),
+ getUrlForApp
+ ),
+ ];
+ }
+
if (
spyState != null &&
object.navTabs &&
diff --git a/x-pack/plugins/security_solution/public/management/common/translations.ts b/x-pack/plugins/security_solution/public/management/common/translations.ts
new file mode 100644
index 0000000000000..70ccf715eaa09
--- /dev/null
+++ b/x-pack/plugins/security_solution/public/management/common/translations.ts
@@ -0,0 +1,15 @@
+/*
+ * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
+ * or more contributor license agreements. Licensed under the Elastic License;
+ * you may not use this file except in compliance with the Elastic License.
+ */
+
+import { i18n } from '@kbn/i18n';
+
+export const HOSTS_TAB = i18n.translate('xpack.securitySolution.hostsTab', {
+ defaultMessage: 'Hosts',
+});
+
+export const POLICIES_TAB = i18n.translate('xpack.securitySolution.policiesTab', {
+ defaultMessage: 'Policies',
+});
diff --git a/x-pack/plugins/security_solution/public/management/pages/index.tsx b/x-pack/plugins/security_solution/public/management/pages/index.tsx
index d62df028cd661..56e795a0cff46 100644
--- a/x-pack/plugins/security_solution/public/management/pages/index.tsx
+++ b/x-pack/plugins/security_solution/public/management/pages/index.tsx
@@ -8,6 +8,7 @@ import { isEmpty } from 'lodash/fp';
import React, { memo } from 'react';
import { useHistory, Route, Switch } from 'react-router-dom';
+import { ChromeBreadcrumb } from 'kibana/public';
import { PolicyContainer } from './policy';
import {
MANAGEMENT_ROUTING_HOSTS_PATH,
@@ -17,13 +18,16 @@ import {
import { NotFoundPage } from '../../app/404';
import { HostsContainer } from './endpoint_hosts';
import { getHostListPath } from '../common/routing';
-import {ChromeBreadcrumb} from 'kibana/public';
-import {APP_ID} from 'x-pack/plugins/security_solution/common/constants';
-import {GetUrlForApp} from '../../common/components/navigation/types';
-import {AdministrationRouteSpyState} from '../../common/utils/route/types';
+import { APP_ID, SecurityPageName } from '../../../common/constants';
+import { GetUrlForApp } from '../../common/components/navigation/types';
+import { AdministrationRouteSpyState } from '../../common/utils/route/types';
+import { ADMINISTRATION } from '../../app/home/translations';
+import { AdministrationSubTab } from '../types';
+import { HOSTS_TAB, POLICIES_TAB } from '../common/translations';
const TabNameMappedToI18nKey: Record = {
-
+ [AdministrationSubTab.hosts]: HOSTS_TAB,
+ [AdministrationSubTab.policies]: POLICIES_TAB,
};
export const getBreadcrumbs = (
@@ -33,7 +37,7 @@ export const getBreadcrumbs = (
): ChromeBreadcrumb[] => {
let breadcrumb = [
{
- text: PAGE_TITLE,
+ text: ADMINISTRATION,
href: getUrlForApp(`${APP_ID}:${SecurityPageName.management}`, {
path: !isEmpty(search[0]) ? search[0] : '',
}),
From 4df5aa7d78a2b9a8d1a3720dc4cd1c48753a7dcd Mon Sep 17 00:00:00 2001
From: Candace Park
Date: Thu, 9 Jul 2020 15:14:54 -0400
Subject: [PATCH 3/6] typecheck fix, mgmt -> admin
---
x-pack/plugins/security_solution/common/constants.ts | 2 +-
.../security_solution/public/app/home/home_navigations.tsx | 6 +++---
.../common/components/navigation/breadcrumbs/index.ts | 5 +++--
.../public/common/components/navigation/types.ts | 2 +-
.../public/common/components/url_state/constants.ts | 2 +-
.../public/common/components/url_state/helpers.ts | 2 ++
.../public/common/components/url_state/types.ts | 2 +-
.../security_solution/public/management/common/constants.ts | 2 +-
.../public/management/components/management_page_view.tsx | 2 +-
.../pages/endpoint_hosts/view/details/host_details.tsx | 2 +-
.../management/pages/endpoint_hosts/view/details/index.tsx | 2 +-
.../public/management/pages/endpoint_hosts/view/index.tsx | 4 ++--
.../security_solution/public/management/pages/index.tsx | 2 +-
.../public/management/pages/policy/view/policy_details.tsx | 6 +++---
.../public/management/pages/policy/view/policy_list.tsx | 4 ++--
x-pack/plugins/security_solution/public/management/types.ts | 2 +-
x-pack/plugins/security_solution/public/plugin.tsx | 2 +-
x-pack/plugins/security_solution/server/plugin.ts | 2 +-
18 files changed, 27 insertions(+), 24 deletions(-)
diff --git a/x-pack/plugins/security_solution/common/constants.ts b/x-pack/plugins/security_solution/common/constants.ts
index 3b5b5958c879f..19409568301d2 100644
--- a/x-pack/plugins/security_solution/common/constants.ts
+++ b/x-pack/plugins/security_solution/common/constants.ts
@@ -42,7 +42,7 @@ export enum SecurityPageName {
network = 'network',
timelines = 'timelines',
case = 'case',
- management = 'management',
+ administration = 'administration',
}
export const APP_OVERVIEW_PATH = `${APP_PATH}/overview`;
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 543a4634ceecc..9f0f5351d8a54 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
@@ -61,11 +61,11 @@ export const navTabs: SiemNavTab = {
disabled: false,
urlKey: 'case',
},
- [SecurityPageName.management]: {
- id: SecurityPageName.management,
+ [SecurityPageName.administration]: {
+ id: SecurityPageName.administration,
name: i18n.ADMINISTRATION,
href: APP_MANAGEMENT_PATH,
disabled: false,
- urlKey: SecurityPageName.management,
+ urlKey: SecurityPageName.administration,
},
};
diff --git a/x-pack/plugins/security_solution/public/common/components/navigation/breadcrumbs/index.ts b/x-pack/plugins/security_solution/public/common/components/navigation/breadcrumbs/index.ts
index bc38bc4a2254a..845ef580ddbe2 100644
--- a/x-pack/plugins/security_solution/public/common/components/navigation/breadcrumbs/index.ts
+++ b/x-pack/plugins/security_solution/public/common/components/navigation/breadcrumbs/index.ts
@@ -22,6 +22,7 @@ import {
HostRouteSpyState,
NetworkRouteSpyState,
TimelineRouteSpyState,
+ AdministrationRouteSpyState,
} from '../../../utils/route/types';
import { getAppOverviewUrl } from '../../link_to';
@@ -62,8 +63,8 @@ const isCaseRoutes = (spyState: RouteSpyState): spyState is RouteSpyState =>
const isAlertsRoutes = (spyState: RouteSpyState) =>
spyState != null && spyState.pageName === SecurityPageName.detections;
-const isAdminRoutes = (spyState: RouteSpyState) =>
- spyState != null && spyState.pageName === SecurityPageName.management;
+const isAdminRoutes = (spyState: RouteSpyState): spyState is AdministrationRouteSpyState =>
+ spyState != null && spyState.pageName === SecurityPageName.administration;
// eslint-disable-next-line complexity
export const getBreadcrumbsForRoute = (
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 0489ebba738c8..c17abaad525a2 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,7 @@ export type SiemNavTabKey =
| SecurityPageName.detections
| SecurityPageName.timelines
| SecurityPageName.case
- | SecurityPageName.management;
+ | SecurityPageName.administration;
export type SiemNavTab = Record;
diff --git a/x-pack/plugins/security_solution/public/common/components/url_state/constants.ts b/x-pack/plugins/security_solution/public/common/components/url_state/constants.ts
index 1faff2594ce80..5a4aec93dd9aa 100644
--- a/x-pack/plugins/security_solution/public/common/components/url_state/constants.ts
+++ b/x-pack/plugins/security_solution/public/common/components/url_state/constants.ts
@@ -30,4 +30,4 @@ export type UrlStateType =
| 'network'
| 'overview'
| 'timeline'
- | 'management';
+ | 'administration';
diff --git a/x-pack/plugins/security_solution/public/common/components/url_state/helpers.ts b/x-pack/plugins/security_solution/public/common/components/url_state/helpers.ts
index 6febf95aae01d..5e40cd00fa69e 100644
--- a/x-pack/plugins/security_solution/public/common/components/url_state/helpers.ts
+++ b/x-pack/plugins/security_solution/public/common/components/url_state/helpers.ts
@@ -96,6 +96,8 @@ export const getUrlType = (pageName: string): UrlStateType => {
return 'timeline';
} else if (pageName === SecurityPageName.case) {
return 'case';
+ } else if (pageName === SecurityPageName.administration) {
+ return 'administration';
}
return 'overview';
};
diff --git a/x-pack/plugins/security_solution/public/common/components/url_state/types.ts b/x-pack/plugins/security_solution/public/common/components/url_state/types.ts
index 8881a82e5cd1c..f383e18132385 100644
--- a/x-pack/plugins/security_solution/public/common/components/url_state/types.ts
+++ b/x-pack/plugins/security_solution/public/common/components/url_state/types.ts
@@ -46,7 +46,7 @@ export const URL_STATE_KEYS: Record = {
CONSTANTS.timerange,
CONSTANTS.timeline,
],
- management: [],
+ administration: [],
network: [
CONSTANTS.appQuery,
CONSTANTS.filters,
diff --git a/x-pack/plugins/security_solution/public/management/common/constants.ts b/x-pack/plugins/security_solution/public/management/common/constants.ts
index f0abe905d58a5..b07c47a398049 100644
--- a/x-pack/plugins/security_solution/public/management/common/constants.ts
+++ b/x-pack/plugins/security_solution/public/management/common/constants.ts
@@ -8,7 +8,7 @@ import { APP_ID } from '../../../common/constants';
import { SecurityPageName } from '../../app/types';
// --[ ROUTING ]---------------------------------------------------------------------------
-export const MANAGEMENT_APP_ID = `${APP_ID}:${SecurityPageName.management}`;
+export const MANAGEMENT_APP_ID = `${APP_ID}:${SecurityPageName.administration}`;
export const MANAGEMENT_ROUTING_ROOT_PATH = '';
export const MANAGEMENT_ROUTING_HOSTS_PATH = `${MANAGEMENT_ROUTING_ROOT_PATH}/:tabName(${AdministrationSubTab.hosts})`;
export const MANAGEMENT_ROUTING_POLICIES_PATH = `${MANAGEMENT_ROUTING_ROOT_PATH}/:tabName(${AdministrationSubTab.policies})`;
diff --git a/x-pack/plugins/security_solution/public/management/components/management_page_view.tsx b/x-pack/plugins/security_solution/public/management/components/management_page_view.tsx
index 1269db2620c2a..42341b524362d 100644
--- a/x-pack/plugins/security_solution/public/management/components/management_page_view.tsx
+++ b/x-pack/plugins/security_solution/public/management/components/management_page_view.tsx
@@ -15,7 +15,7 @@ import { getHostListPath, getPoliciesPath } from '../common/routing';
import { useNavigateByRouterEventHandler } from '../../common/hooks/endpoint/use_navigate_by_router_event_handler';
export const ManagementPageView = memo>((options) => {
- const { formatUrl, search } = useFormatUrl(SecurityPageName.management);
+ const { formatUrl, search } = useFormatUrl(SecurityPageName.administration);
const { tabName } = useParams<{ tabName: AdministrationSubTab }>();
const goToEndpoint = useNavigateByRouterEventHandler(
diff --git a/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/view/details/host_details.tsx b/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/view/details/host_details.tsx
index 10ea271139e49..bd7fdd086c017 100644
--- a/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/view/details/host_details.tsx
+++ b/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/view/details/host_details.tsx
@@ -61,7 +61,7 @@ export const HostDetails = memo(({ details }: { details: HostMetadata }) => {
const policyStatus = useHostSelector(
policyResponseStatus
) as keyof typeof POLICY_STATUS_TO_HEALTH_COLOR;
- const { formatUrl } = useFormatUrl(SecurityPageName.management);
+ const { formatUrl } = useFormatUrl(SecurityPageName.administration);
const detailsResultsUpper = useMemo(() => {
return [
diff --git a/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/view/details/index.tsx b/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/view/details/index.tsx
index e29d796325bd6..71b3885308558 100644
--- a/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/view/details/index.tsx
+++ b/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/view/details/index.tsx
@@ -118,7 +118,7 @@ const PolicyResponseFlyoutPanel = memo<{
const responseAttentionCount = useHostSelector(policyResponseFailedOrWarningActionCount);
const loading = useHostSelector(policyResponseLoading);
const error = useHostSelector(policyResponseError);
- const { formatUrl } = useFormatUrl(SecurityPageName.management);
+ const { formatUrl } = useFormatUrl(SecurityPageName.administration);
const [detailsUri, detailsRoutePath] = useMemo(
() => [
formatUrl(
diff --git a/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/view/index.tsx b/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/view/index.tsx
index 492c75607a255..b9895ddb68824 100644
--- a/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/view/index.tsx
+++ b/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/view/index.tsx
@@ -86,7 +86,7 @@ export const HostList = () => {
policyItemsLoading,
endpointPackageVersion,
} = useHostSelector(selector);
- const { formatUrl, search } = useFormatUrl(SecurityPageName.management);
+ const { formatUrl, search } = useFormatUrl(SecurityPageName.administration);
const dispatch = useDispatch<(a: HostAction) => void>();
@@ -408,7 +408,7 @@ export const HostList = () => {
>
)}
{renderTableOrEmptyState}
-
+
);
};
diff --git a/x-pack/plugins/security_solution/public/management/pages/index.tsx b/x-pack/plugins/security_solution/public/management/pages/index.tsx
index 56e795a0cff46..8843bf2e30e68 100644
--- a/x-pack/plugins/security_solution/public/management/pages/index.tsx
+++ b/x-pack/plugins/security_solution/public/management/pages/index.tsx
@@ -38,7 +38,7 @@ export const getBreadcrumbs = (
let breadcrumb = [
{
text: ADMINISTRATION,
- href: getUrlForApp(`${APP_ID}:${SecurityPageName.management}`, {
+ href: getUrlForApp(`${APP_ID}:${SecurityPageName.administration}`, {
path: !isEmpty(search[0]) ? search[0] : '',
}),
},
diff --git a/x-pack/plugins/security_solution/public/management/pages/policy/view/policy_details.tsx b/x-pack/plugins/security_solution/public/management/pages/policy/view/policy_details.tsx
index 2a4f839a4af1f..7f0977f2e2f01 100644
--- a/x-pack/plugins/security_solution/public/management/pages/policy/view/policy_details.tsx
+++ b/x-pack/plugins/security_solution/public/management/pages/policy/view/policy_details.tsx
@@ -55,7 +55,7 @@ export const PolicyDetails = React.memo(() => {
application: { navigateToApp },
},
} = useKibana();
- const { formatUrl, search } = useFormatUrl(SecurityPageName.management);
+ const { formatUrl, search } = useFormatUrl(SecurityPageName.administration);
const { state: locationRouteState } = useLocation();
// Store values
@@ -149,7 +149,7 @@ export const PolicyDetails = React.memo(() => {
{policyApiError?.message}
) : null}
-
+
);
}
@@ -251,7 +251,7 @@ export const PolicyDetails = React.memo(() => {
-
+
>
);
});
diff --git a/x-pack/plugins/security_solution/public/management/pages/policy/view/policy_list.tsx b/x-pack/plugins/security_solution/public/management/pages/policy/view/policy_list.tsx
index aa7e867e89d6a..579c96e306f37 100644
--- a/x-pack/plugins/security_solution/public/management/pages/policy/view/policy_list.tsx
+++ b/x-pack/plugins/security_solution/public/management/pages/policy/view/policy_list.tsx
@@ -125,7 +125,7 @@ export const PolicyList = React.memo(() => {
const { services, notifications } = useKibana();
const history = useHistory();
const location = useLocation();
- const { formatUrl, search } = useFormatUrl(SecurityPageName.management);
+ const { formatUrl, search } = useFormatUrl(SecurityPageName.administration);
const [showDelete, setShowDelete] = useState(false);
const [policyIdToDelete, setPolicyIdToDelete] = useState('');
@@ -464,7 +464,7 @@ export const PolicyList = React.memo(() => {
handleTableChange,
paginationSetup,
])}
-
+
>
);
diff --git a/x-pack/plugins/security_solution/public/management/types.ts b/x-pack/plugins/security_solution/public/management/types.ts
index 1dd8ca68540a6..86959caaba4f4 100644
--- a/x-pack/plugins/security_solution/public/management/types.ts
+++ b/x-pack/plugins/security_solution/public/management/types.ts
@@ -33,7 +33,7 @@ export enum AdministrationSubTab {
* The URL route params for the Management Policy List section
*/
export interface ManagementRoutePolicyListParams {
- pageName: SecurityPageName.management;
+ pageName: SecurityPageName.administration;
tabName: AdministrationSubTab.policies;
}
diff --git a/x-pack/plugins/security_solution/public/plugin.tsx b/x-pack/plugins/security_solution/public/plugin.tsx
index 6096a9b0e0bb8..46cfdaee28b07 100644
--- a/x-pack/plugins/security_solution/public/plugin.tsx
+++ b/x-pack/plugins/security_solution/public/plugin.tsx
@@ -280,7 +280,7 @@ export class Plugin implements IPlugin {
From 1f6bdae498ae1f5bebcb902b529c2e16f3f36d6a Mon Sep 17 00:00:00 2001
From: Candace Park
Date: Thu, 9 Jul 2020 17:57:28 -0400
Subject: [PATCH 4/6] fix tests
---
.../cypress/integration/navigation.spec.ts | 4 ++--
.../cypress/screens/security_header.ts | 2 +-
.../common/components/navigation/index.test.tsx | 12 ++++++------
.../pages/policy/view/policy_details.test.tsx | 2 +-
4 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/x-pack/plugins/security_solution/cypress/integration/navigation.spec.ts b/x-pack/plugins/security_solution/cypress/integration/navigation.spec.ts
index e4f0ec2c4828f..792eee3660429 100644
--- a/x-pack/plugins/security_solution/cypress/integration/navigation.spec.ts
+++ b/x-pack/plugins/security_solution/cypress/integration/navigation.spec.ts
@@ -7,7 +7,7 @@ import {
CASES,
DETECTIONS,
HOSTS,
- MANAGEMENT,
+ ADMINISTRATION,
NETWORK,
OVERVIEW,
TIMELINES,
@@ -73,7 +73,7 @@ describe('top-level navigation common to all pages in the Security app', () => {
});
it('navigates to the Administration page', () => {
- navigateFromHeaderTo(MANAGEMENT);
+ navigateFromHeaderTo(ADMINISTRATION);
cy.url().should('include', ADMINISTRATION_URL);
});
});
diff --git a/x-pack/plugins/security_solution/cypress/screens/security_header.ts b/x-pack/plugins/security_solution/cypress/screens/security_header.ts
index 20fcae60415ae..a337db7a9bfaa 100644
--- a/x-pack/plugins/security_solution/cypress/screens/security_header.ts
+++ b/x-pack/plugins/security_solution/cypress/screens/security_header.ts
@@ -14,7 +14,7 @@ export const HOSTS = '[data-test-subj="navigation-hosts"]';
export const KQL_INPUT = '[data-test-subj="queryInput"]';
-export const MANAGEMENT = '[data-test-subj="navigation-management"]';
+export const ADMINISTRATION = '[data-test-subj="navigation-administration"]';
export const NETWORK = '[data-test-subj="navigation-network"]';
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 229e2d2402298..c60feb63241fb 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
@@ -106,12 +106,12 @@ describe('SIEM Navigation', () => {
name: 'Cases',
urlKey: 'case',
},
- management: {
+ administration: {
disabled: false,
href: '/app/security/administration',
- id: 'management',
+ id: 'administration',
name: 'Administration',
- urlKey: 'management',
+ urlKey: 'administration',
},
hosts: {
disabled: false,
@@ -218,12 +218,12 @@ describe('SIEM Navigation', () => {
name: 'Hosts',
urlKey: 'host',
},
- management: {
+ administration: {
disabled: false,
href: '/app/security/administration',
- id: 'management',
+ id: 'administration',
name: 'Administration',
- urlKey: 'management',
+ urlKey: 'administration',
},
network: {
disabled: false,
diff --git a/x-pack/plugins/security_solution/public/management/pages/policy/view/policy_details.test.tsx b/x-pack/plugins/security_solution/public/management/pages/policy/view/policy_details.test.tsx
index ca4d0929f7a7a..8612b15f89857 100644
--- a/x-pack/plugins/security_solution/public/management/pages/policy/view/policy_details.test.tsx
+++ b/x-pack/plugins/security_solution/public/management/pages/policy/view/policy_details.test.tsx
@@ -172,7 +172,7 @@ describe('Policy Details', () => {
cancelbutton.simulate('click', { button: 0 });
const navigateToAppMockedCalls = coreStart.application.navigateToApp.mock.calls;
expect(navigateToAppMockedCalls[navigateToAppMockedCalls.length - 1]).toEqual([
- 'securitySolution:management',
+ 'securitySolution:administration',
{ path: policyListPathUrl },
]);
});
From 36e34d2e86d7b9c345d40e305fa7976d81ea2064 Mon Sep 17 00:00:00 2001
From: Candace Park
Date: Mon, 13 Jul 2020 11:00:19 -0400
Subject: [PATCH 5/6] fix tests
---
.../security_solution/public/management/pages/index.tsx | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/x-pack/plugins/security_solution/public/management/pages/index.tsx b/x-pack/plugins/security_solution/public/management/pages/index.tsx
index c73de58c468e8..3e1c0743fb4f1 100644
--- a/x-pack/plugins/security_solution/public/management/pages/index.tsx
+++ b/x-pack/plugins/security_solution/public/management/pages/index.tsx
@@ -27,7 +27,6 @@ import { ADMINISTRATION } from '../../app/home/translations';
import { AdministrationSubTab } from '../types';
import { HOSTS_TAB, POLICIES_TAB } from '../common/translations';
import { SpyRoute } from '../../common/utils/route/spy_routes';
-import { SecurityPageName } from '../../app/types';
import { useIngestEnabledCheck } from '../../common/hooks/endpoint/ingest_enabled';
const TabNameMappedToI18nKey: Record = {
@@ -87,7 +86,7 @@ const NoPermissions = memo(() => {
}
/>
-
+
>
);
});
From 5b58de03b9453068bdb65e8e803d9ac9da359d25 Mon Sep 17 00:00:00 2001
From: Candace Park
Date: Mon, 13 Jul 2020 16:36:24 -0400
Subject: [PATCH 6/6] mgmt > admin
---
.../pages/endpoint_hosts/view/details/host_details.tsx | 2 +-
.../public/management/pages/endpoint_hosts/view/index.tsx | 6 +++---
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/view/details/host_details.tsx b/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/view/details/host_details.tsx
index bd7fdd086c017..62efa621e6e3b 100644
--- a/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/view/details/host_details.tsx
+++ b/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/view/details/host_details.tsx
@@ -106,7 +106,7 @@ export const HostDetails = memo(({ details }: { details: HostMetadata }) => {
path: agentDetailsWithFlyoutPath,
state: {
onDoneNavigateTo: [
- 'securitySolution:management',
+ 'securitySolution:administration',
{
path: getHostDetailsPath({ name: 'hostDetails', selected_host: details.host.id }),
},
diff --git a/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/view/index.tsx b/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/view/index.tsx
index 48d58efd02b12..9e28568609e09 100644
--- a/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/view/index.tsx
+++ b/x-pack/plugins/security_solution/public/management/pages/endpoint_hosts/view/index.tsx
@@ -127,12 +127,12 @@ export const HostList = () => {
}`,
state: {
onCancelNavigateTo: [
- 'securitySolution:management',
+ 'securitySolution:administration',
{ path: getHostListPath({ name: 'hostList' }) },
],
onCancelUrl: formatUrl(getHostListPath({ name: 'hostList' })),
onSaveNavigateTo: [
- 'securitySolution:management',
+ 'securitySolution:administration',
{ path: getHostListPath({ name: 'hostList' }) },
],
},
@@ -145,7 +145,7 @@ export const HostList = () => {
path: `#/configs/${selectedPolicyId}?openEnrollmentFlyout=true`,
state: {
onDoneNavigateTo: [
- 'securitySolution:management',
+ 'securitySolution:administration',
{ path: getHostListPath({ name: 'hostList' }) },
],
},