mirror of
https://github.com/elastic/kibana.git
synced 2025-04-24 09:48:58 -04:00
Remove page and links to Cloud Defend from Assets (#212753)
## Summary Closes: - https://github.com/elastic/security-team/issues/11933. Continues work on: - https://github.com/elastic/kibana/pull/200895. ### Acceptance criteria - `9.0` / `Serverless`: - Removes links to Cloud Defend from Assets page in Security Solution. - Disables navigation to `app/security/cloud_defend/` redirecting to the default `app/security/get_started/`. - `8.x` / `8.18`: - No changes (impact is minimal, only affects 4 customers who were told to uninstall the plugin) ### Screenshot <details><summary>Before - Assets page</summary> <img width="1749" alt="Screenshot 2025-02-27 at 19 35 38" src="https://github.com/user-attachments/assets/0bb076bc-984a-45be-bff8-63fe62ba6571" /> </details> <details><summary>Before - Cloud Defend page</summary> <img width="1736" alt="Screenshot 2025-02-27 at 19 36 57" src="https://github.com/user-attachments/assets/3f4f80b0-869d-48a9-90a3-70d03a37c7f6" /> </details> <details><summary>After - Assets page</summary> <img width="2006" alt="Screenshot 2025-02-28 at 12 12 11" src="https://github.com/user-attachments/assets/3ef4bfb2-6b0b-4a77-83ea-cc7b9f54e37f" /> </details> <details><summary>After - Cloud Defend page redirects to get_started/siem_migrations </summary> <img width="2011" alt="Screenshot 2025-02-28 at 11 25 43" src="https://github.com/user-attachments/assets/2ddafd46-7629-44fe-9234-049f09bc6b71" /> </details> ### How to test Authenticate to Docker Registry with ```bash docker login -u <YOUR_USER> -p <YOUR_PASSWORD> docker.elastic.co ``` Then run ES with ```bash yarn es serverless --projectType security --kill ``` In a second terminal, run Kibana with ```bash yarn serverless-security ``` ### Checklist Check the PR satisfies following conditions. Reviewers should verify this PR satisfies this list as well. - [ ] Any text added follows [EUI's writing guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses sentence case text and includes [i18n support](https://github.com/elastic/kibana/blob/main/src/platform/packages/shared/kbn-i18n/README.md) - [ ] [Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html) was added for features that require explanation or tutorials - [x] [Unit or functional tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html) were updated or added to match the most common scenarios - [ ] If a plugin configuration key changed, check if it needs to be allowlisted in the cloud and added to the [docker list](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker) - [x] This was checked for breaking HTTP API changes, and any breaking changes have been approved by the breaking-change committee. The `release_note:breaking` label should be applied in these situations. - [ ] [Flaky Test Runner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was used on any tests changed - [x] The PR description includes the appropriate Release Notes section, and the correct `release_note:*` label is applied per the [guidelines](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process) ### Identify risks We should not show more links to Cloud Defend in other parts of the app because the feature was deprecated and it might confuse end users. But there's no risk of breaking the app because navigation is handled correctly. --------- Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com>
This commit is contained in:
parent
d37fcb6fb6
commit
ed30926f0f
19 changed files with 5 additions and 230 deletions
|
@ -29,11 +29,6 @@ export enum SecurityPageName {
|
|||
cloudSecurityPostureDashboard = 'cloud_security_posture-dashboard',
|
||||
cloudSecurityPostureFindings = 'cloud_security_posture-findings',
|
||||
cloudSecurityPostureRules = 'cloud_security_posture-rules',
|
||||
/*
|
||||
* Warning: Computed values are not permitted in an enum with string valued members
|
||||
* All cloud defend page names must match `CloudDefendPageId` in x-pack/solutions/security/plugins/cloud_defend/public/common/navigation/types.ts
|
||||
*/
|
||||
cloudDefend = 'cloud_defend',
|
||||
cloudDefendPolicies = 'cloud_defend-policies',
|
||||
dashboards = 'dashboards',
|
||||
dataQuality = 'data_quality',
|
||||
|
|
|
@ -33936,7 +33936,6 @@
|
|||
"xpack.securitySolution.appLinks.category.entityAnalytics": "Analyse des entités",
|
||||
"xpack.securitySolution.appLinks.category.investigations": "Investigations",
|
||||
"xpack.securitySolution.appLinks.category.management": "Gestion",
|
||||
"xpack.securitySolution.appLinks.cloudDefendPoliciesDescription": "Sécurisez les charges de travail conteneurisées dans Kubernetes contre les attaques et les dérives grâce à des politiques d'exécution granulaires et flexibles.",
|
||||
"xpack.securitySolution.appLinks.cloudSecurityPostureBenchmarksDescription": "Voir les règles de benchmark pour la gestion du niveau de sécurité du cloud.",
|
||||
"xpack.securitySolution.appLinks.cloudSecurityPostureDashboardDescription": "Un aperçu des résultats de toutes les intégrations CSP.",
|
||||
"xpack.securitySolution.appLinks.coverageOverviewDashboard": "Couverture MITRE ATT&CK",
|
||||
|
@ -38327,8 +38326,6 @@
|
|||
"xpack.securitySolution.navigation.rules": "Règles",
|
||||
"xpack.securitySolution.navigation.timelines": "Chronologies",
|
||||
"xpack.securitySolution.navigation.users": "Utilisateurs",
|
||||
"xpack.securitySolution.navLinks.assets.cloud_defend.description": "Hôtes du cloud exécutant Elastic Defend",
|
||||
"xpack.securitySolution.navLinks.assets.cloud_defend.title": "Cloud",
|
||||
"xpack.securitySolution.navLinks.assets.fleet.agents.title": "Agents",
|
||||
"xpack.securitySolution.navLinks.assets.fleet.dataStreams.title": "Flux de données",
|
||||
"xpack.securitySolution.navLinks.assets.fleet.description": "Gestion centralisée des agents Elastic Agent",
|
||||
|
|
|
@ -33798,7 +33798,6 @@
|
|||
"xpack.securitySolution.appLinks.category.entityAnalytics": "エンティティ分析",
|
||||
"xpack.securitySolution.appLinks.category.investigations": "調査",
|
||||
"xpack.securitySolution.appLinks.category.management": "管理",
|
||||
"xpack.securitySolution.appLinks.cloudDefendPoliciesDescription": "粒度の高い柔軟なランタイムポリシーによって、Kubernetesのコンテナーワークロードを攻撃とドリフトから保護します。",
|
||||
"xpack.securitySolution.appLinks.cloudSecurityPostureBenchmarksDescription": "Cloud Security Posture Managementのベンチマークルールを表示します。",
|
||||
"xpack.securitySolution.appLinks.cloudSecurityPostureDashboardDescription": "すべてのCSP統合の結果の概要。",
|
||||
"xpack.securitySolution.appLinks.coverageOverviewDashboard": "MITRE ATT&CKの範囲",
|
||||
|
@ -38188,8 +38187,6 @@
|
|||
"xpack.securitySolution.navigation.rules": "ルール",
|
||||
"xpack.securitySolution.navigation.timelines": "タイムライン",
|
||||
"xpack.securitySolution.navigation.users": "ユーザー",
|
||||
"xpack.securitySolution.navLinks.assets.cloud_defend.description": "Elastic Defendを実行しているクラウドホスト",
|
||||
"xpack.securitySolution.navLinks.assets.cloud_defend.title": "クラウド",
|
||||
"xpack.securitySolution.navLinks.assets.fleet.agents.title": "エージェント",
|
||||
"xpack.securitySolution.navLinks.assets.fleet.dataStreams.title": "データストリーム",
|
||||
"xpack.securitySolution.navLinks.assets.fleet.description": "ElasticElasticエージェントの集中管理",
|
||||
|
|
|
@ -33274,7 +33274,6 @@
|
|||
"xpack.securitySolution.appLinks.category.entityAnalytics": "实体分析",
|
||||
"xpack.securitySolution.appLinks.category.investigations": "调查",
|
||||
"xpack.securitySolution.appLinks.category.management": "管理",
|
||||
"xpack.securitySolution.appLinks.cloudDefendPoliciesDescription": "通过细粒度、灵活的运行时策略保护 Kubernetes 中的容器工作负载,使其免于受到攻击和出现漂移。",
|
||||
"xpack.securitySolution.appLinks.cloudSecurityPostureBenchmarksDescription": "查看用于云安全态势管理的基准规则。",
|
||||
"xpack.securitySolution.appLinks.cloudSecurityPostureDashboardDescription": "所有 CSP 集成中的结果概述。",
|
||||
"xpack.securitySolution.appLinks.coverageOverviewDashboard": "MITRE ATT&CK 支持",
|
||||
|
@ -37623,8 +37622,6 @@
|
|||
"xpack.securitySolution.navigation.rules": "规则",
|
||||
"xpack.securitySolution.navigation.timelines": "时间线",
|
||||
"xpack.securitySolution.navigation.users": "用户",
|
||||
"xpack.securitySolution.navLinks.assets.cloud_defend.description": "运行 Elastic Defend 的云主机",
|
||||
"xpack.securitySolution.navLinks.assets.cloud_defend.title": "云",
|
||||
"xpack.securitySolution.navLinks.assets.fleet.agents.title": "代理",
|
||||
"xpack.securitySolution.navLinks.assets.fleet.dataStreams.title": "数据流",
|
||||
"xpack.securitySolution.navLinks.assets.fleet.description": "Elastic 代理的集中管理",
|
||||
|
|
|
@ -15,7 +15,7 @@ const NAV_ITEMS_NAMES = {
|
|||
};
|
||||
|
||||
/** The base path for all cloud defend pages. */
|
||||
export const CLOUD_DEFEND_BASE_PATH = '/cloud_defend';
|
||||
const CLOUD_DEFEND_BASE_PATH = '/cloud_defend';
|
||||
|
||||
export const cloudDefendPages: Record<CloudDefendPage, CloudDefendPageNavigationItem> = {
|
||||
policies: {
|
||||
|
|
|
@ -8,7 +8,6 @@ import { CloudDefendPlugin } from './plugin';
|
|||
|
||||
export type { CloudDefendSecuritySolutionContext } from './types';
|
||||
export { getSecuritySolutionLink } from './common/navigation/security_solution_links';
|
||||
export { CLOUD_DEFEND_BASE_PATH } from './common/navigation/constants';
|
||||
export type { CloudDefendPageId } from './common/navigation/types';
|
||||
|
||||
// This exports static code and TypeScript types,
|
||||
|
|
|
@ -115,7 +115,6 @@ export const THREAT_INTELLIGENCE_PATH = '/threat_intelligence' as const;
|
|||
export const INVESTIGATIONS_PATH = '/investigations' as const;
|
||||
export const MACHINE_LEARNING_PATH = '/ml' as const;
|
||||
export const ASSETS_PATH = '/assets' as const;
|
||||
export const CLOUD_DEFEND_PATH = '/cloud_defend' as const;
|
||||
export const ENDPOINTS_PATH = `${MANAGEMENT_PATH}/endpoints` as const;
|
||||
export const POLICIES_PATH = `${MANAGEMENT_PATH}/policy` as const;
|
||||
export const TRUSTED_APPS_PATH = `${MANAGEMENT_PATH}/trusted_apps` as const;
|
||||
|
|
|
@ -6,11 +6,11 @@
|
|||
*/
|
||||
|
||||
import { SecurityPageName, ExternalPageName } from '@kbn/security-solution-navigation';
|
||||
import { ASSETS_PATH, CLOUD_DEFEND_PATH } from '../../../../../common/constants';
|
||||
import { ASSETS_PATH } from '../../../../../common/constants';
|
||||
import { SECURITY_FEATURE_ID } from '../../../../../common';
|
||||
import type { LinkItem } from '../../../../common/links/types';
|
||||
import type { SolutionNavLink } from '../../../../common/links';
|
||||
import { IconEcctlLazy, IconFleetLazy } from './lazy_icons';
|
||||
import { IconFleetLazy } from './lazy_icons';
|
||||
import * as i18n from './assets_translations';
|
||||
|
||||
// appLinks configures the Security Solution pages links
|
||||
|
@ -24,19 +24,6 @@ const assetsAppLink: LinkItem = {
|
|||
links: [], // endpoints and cloudDefend links are added in createAssetsLinkFromManage
|
||||
};
|
||||
|
||||
// TODO: define this Cloud Defend app link in security_solution plugin
|
||||
const assetsCloudDefendAppLink: LinkItem = {
|
||||
id: SecurityPageName.cloudDefend,
|
||||
title: i18n.CLOUD_DEFEND_TITLE,
|
||||
description: i18n.CLOUD_DEFEND_DESCRIPTION,
|
||||
path: CLOUD_DEFEND_PATH,
|
||||
capabilities: [`${SECURITY_FEATURE_ID}.show`],
|
||||
landingIcon: IconEcctlLazy,
|
||||
isBeta: true,
|
||||
hideTimeline: true,
|
||||
links: [],
|
||||
};
|
||||
|
||||
export const createAssetsLinkFromManage = (manageLink: LinkItem): LinkItem => {
|
||||
const assetsSubLinks = [];
|
||||
|
||||
|
@ -54,8 +41,6 @@ export const createAssetsLinkFromManage = (manageLink: LinkItem): LinkItem => {
|
|||
assetsSubLinks.push({ ...endpointsLink, links: endpointsSubLinks });
|
||||
}
|
||||
|
||||
assetsSubLinks.push(assetsCloudDefendAppLink);
|
||||
|
||||
return {
|
||||
...assetsAppLink,
|
||||
links: assetsSubLinks,
|
||||
|
|
|
@ -11,19 +11,6 @@ export const ASSETS_TITLE = i18n.translate('xpack.securitySolution.navLinks.asse
|
|||
defaultMessage: 'Assets',
|
||||
});
|
||||
|
||||
export const CLOUD_DEFEND_TITLE = i18n.translate(
|
||||
'xpack.securitySolution.navLinks.assets.cloud_defend.title',
|
||||
{
|
||||
defaultMessage: 'Cloud',
|
||||
}
|
||||
);
|
||||
export const CLOUD_DEFEND_DESCRIPTION = i18n.translate(
|
||||
'xpack.securitySolution.navLinks.assets.cloud_defend.description',
|
||||
{
|
||||
defaultMessage: 'Cloud hosts running Elastic Defend',
|
||||
}
|
||||
);
|
||||
|
||||
export const FLEET_TITLE = i18n.translate('xpack.securitySolution.navLinks.assets.fleet.title', {
|
||||
defaultMessage: 'Fleet',
|
||||
});
|
||||
|
|
|
@ -1,41 +0,0 @@
|
|||
/*
|
||||
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
||||
* or more contributor license agreements. Licensed under the Elastic License
|
||||
* 2.0; you may not use this file except in compliance with the Elastic License
|
||||
* 2.0.
|
||||
*/
|
||||
import type { SVGProps } from 'react';
|
||||
import React from 'react';
|
||||
export const IconEcctl: React.FC<SVGProps<SVGSVGElement>> = ({ ...props }) => (
|
||||
<svg
|
||||
width="32"
|
||||
height="32"
|
||||
viewBox="0 0 32 32"
|
||||
fill="none"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
{...props}
|
||||
>
|
||||
<path
|
||||
fillRule="evenodd"
|
||||
clipRule="evenodd"
|
||||
d="M1 1H24V13.0105H22V3H3V21H10V23H1V1Z"
|
||||
fill="#535766"
|
||||
/>
|
||||
<path
|
||||
fillRule="evenodd"
|
||||
clipRule="evenodd"
|
||||
d="M8.5858 9.00001L6.29291 6.70712L7.70712 5.29291L11.4142 9.00001L7.70712 12.7071L6.29291 11.2929L8.5858 9.00001Z"
|
||||
fill="#00BFB3"
|
||||
/>
|
||||
<path fillRule="evenodd" clipRule="evenodd" d="M16 16H10V14H16V16Z" fill="#00BFB3" />
|
||||
<path
|
||||
fillRule="evenodd"
|
||||
clipRule="evenodd"
|
||||
d="M18 20.9988C18 20.9992 18 20.9996 18 21L18.0025 21.9228L17.1099 22.0214C15.361 22.2147 14 23.6991 14 25.5C14 27.433 15.567 29 17.5 29H25.5C27.433 29 29 27.433 29 25.5C29 23.9758 28.0251 22.6767 26.6618 22.1972L25.9576 21.9495L25.9949 21.2039C25.9983 21.1364 26 21.0685 26 21C26 18.7909 24.2091 17 22 17C19.7913 17 18.0007 18.7902 18 20.9988ZM16.0539 20.1923C16.4484 17.2606 18.9602 15 22 15C25.177 15 27.7772 17.4692 27.9864 20.5931C29.7737 21.5005 31 23.356 31 25.5C31 28.5376 28.5376 31 25.5 31H17.5C14.4624 31 12 28.5376 12 25.5C12 22.9626 13.7176 20.8275 16.0539 20.1923Z"
|
||||
fill="#535766"
|
||||
/>
|
||||
</svg>
|
||||
);
|
||||
|
||||
// eslint-disable-next-line import/no-default-export
|
||||
export default IconEcctl;
|
|
@ -20,7 +20,6 @@ const withSuspenseIcon = <T extends object = {}>(Component: React.ComponentType<
|
|||
export const IconLensLazy = withSuspenseIcon(React.lazy(() => import('./icons/lens')));
|
||||
export const IconEndpointLazy = withSuspenseIcon(React.lazy(() => import('./icons/endpoint')));
|
||||
export const IconFleetLazy = withSuspenseIcon(React.lazy(() => import('./icons/fleet')));
|
||||
export const IconEcctlLazy = withSuspenseIcon(React.lazy(() => import('./icons/ecctl')));
|
||||
|
||||
export const IconTimelineLazy = withSuspenseIcon(React.lazy(() => import('./icons/timeline')));
|
||||
export const IconOsqueryLazy = withSuspenseIcon(React.lazy(() => import('./icons/osquery')));
|
||||
|
|
|
@ -6,12 +6,11 @@
|
|||
*/
|
||||
|
||||
import type { SecuritySubPlugin } from '../app/types';
|
||||
import { routes } from './routes';
|
||||
|
||||
export class CloudDefend {
|
||||
public setup() {}
|
||||
|
||||
public start(): SecuritySubPlugin {
|
||||
return { routes };
|
||||
return { routes: [] };
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,27 +0,0 @@
|
|||
/*
|
||||
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
||||
* or more contributor license agreements. Licensed under the Elastic License
|
||||
* 2.0; you may not use this file except in compliance with the Elastic License
|
||||
* 2.0.
|
||||
*/
|
||||
import { getSecuritySolutionLink } from '@kbn/cloud-defend-plugin/public';
|
||||
import { i18n } from '@kbn/i18n';
|
||||
import type { SecurityPageName } from '../../common/constants';
|
||||
import { SECURITY_FEATURE_ID } from '../../common/constants';
|
||||
import type { LinkItem } from '../common/links/types';
|
||||
import { IconCloudDefend } from '../common/icons/cloud_defend';
|
||||
|
||||
const commonLinkProperties: Partial<LinkItem> = {
|
||||
hideTimeline: true,
|
||||
capabilities: [`${SECURITY_FEATURE_ID}.show`],
|
||||
};
|
||||
|
||||
export const cloudDefendLink: LinkItem = {
|
||||
...getSecuritySolutionLink<SecurityPageName>('policies'),
|
||||
description: i18n.translate('xpack.securitySolution.appLinks.cloudDefendPoliciesDescription', {
|
||||
defaultMessage:
|
||||
'Secure container workloads in Kubernetes from attacks and drift through granular and flexible runtime policies.',
|
||||
}),
|
||||
landingIcon: IconCloudDefend,
|
||||
...commonLinkProperties,
|
||||
};
|
|
@ -1,51 +0,0 @@
|
|||
/*
|
||||
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
||||
* or more contributor license agreements. Licensed under the Elastic License
|
||||
* 2.0; you may not use this file except in compliance with the Elastic License
|
||||
* 2.0.
|
||||
*/
|
||||
|
||||
import React from 'react';
|
||||
import type {
|
||||
CloudDefendPageId,
|
||||
CloudDefendSecuritySolutionContext,
|
||||
} from '@kbn/cloud-defend-plugin/public';
|
||||
import { CLOUD_DEFEND_BASE_PATH } from '@kbn/cloud-defend-plugin/public';
|
||||
import type { SecurityPageName, SecuritySubPluginRoutes } from '../app/types';
|
||||
import { useKibana } from '../common/lib/kibana';
|
||||
import { SecuritySolutionPageWrapper } from '../common/components/page_wrapper';
|
||||
import { SpyRoute } from '../common/utils/route/spy_routes';
|
||||
import { FiltersGlobal } from '../common/components/filters_global';
|
||||
import { PluginTemplateWrapper } from '../common/components/plugin_template_wrapper';
|
||||
|
||||
// This exists only for the type signature cast
|
||||
const CloudDefendSpyRoute = ({ pageName, ...rest }: { pageName?: CloudDefendPageId }) => (
|
||||
<SpyRoute pageName={pageName as SecurityPageName | undefined} {...rest} />
|
||||
);
|
||||
|
||||
const cloudDefendSecuritySolutionContext: CloudDefendSecuritySolutionContext = {
|
||||
getFiltersGlobalComponent: () => FiltersGlobal,
|
||||
getSpyRouteComponent: () => CloudDefendSpyRoute,
|
||||
};
|
||||
|
||||
const CloudDefend = () => {
|
||||
const { cloudDefend } = useKibana().services;
|
||||
const CloudDefendRouter = cloudDefend.getCloudDefendRouter();
|
||||
|
||||
return (
|
||||
<PluginTemplateWrapper>
|
||||
<SecuritySolutionPageWrapper noPadding noTimeline>
|
||||
<CloudDefendRouter securitySolutionContext={cloudDefendSecuritySolutionContext} />
|
||||
</SecuritySolutionPageWrapper>
|
||||
</PluginTemplateWrapper>
|
||||
);
|
||||
};
|
||||
|
||||
CloudDefend.displayName = 'CloudDefend';
|
||||
|
||||
export const routes: SecuritySubPluginRoutes = [
|
||||
{
|
||||
path: CLOUD_DEFEND_BASE_PATH,
|
||||
component: CloudDefend,
|
||||
},
|
||||
];
|
|
@ -1,50 +0,0 @@
|
|||
/*
|
||||
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
||||
* or more contributor license agreements. Licensed under the Elastic License
|
||||
* 2.0; you may not use this file except in compliance with the Elastic License
|
||||
* 2.0.
|
||||
*/
|
||||
import type { SVGProps } from 'react';
|
||||
import React from 'react';
|
||||
export const IconCloudDefend: React.FC<SVGProps<SVGSVGElement>> = ({ ...props }) => (
|
||||
<svg
|
||||
width="32"
|
||||
height="32"
|
||||
viewBox="0 0 32 32"
|
||||
fill="none"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
{...props}
|
||||
>
|
||||
<g clipPath="url(#clip0_327_292367)">
|
||||
<path
|
||||
fillRule="evenodd"
|
||||
clipRule="evenodd"
|
||||
d="M4 22.3234L12.7273 26.7447V16.0586L4 11.6373V22.3234ZM2 22.9378C2 23.3147 2.21188 23.6595 2.54807 23.8299L13.2753 29.2644C13.9405 29.6014 14.7273 29.118 14.7273 28.3723V15.4442C14.7273 15.0673 14.5154 14.7225 14.1792 14.5521L3.45192 9.11761C2.78673 8.78062 2 9.26398 2 10.0097V22.9378Z"
|
||||
fill="#535766"
|
||||
/>
|
||||
<path
|
||||
fillRule="evenodd"
|
||||
clipRule="evenodd"
|
||||
d="M16 10.349L7.99871 6.29552L16 2.24201L24.0013 6.29552L16 10.349ZM15.5481 12.3621C15.8322 12.506 16.1678 12.506 16.4519 12.3621L26.666 7.18758C27.3967 6.81737 27.3967 5.77368 26.666 5.40347L16.4519 0.228946C16.1678 0.0850214 15.8322 0.0850209 15.5481 0.228945L5.33402 5.40347C4.60325 5.77368 4.60325 6.81737 5.33402 7.18758L15.5481 12.3621Z"
|
||||
fill="#535766"
|
||||
/>
|
||||
<path
|
||||
fillRule="evenodd"
|
||||
clipRule="evenodd"
|
||||
d="M19.2727 16.0586L28 11.6373V17.0039H30V10.0097C30 9.26398 29.2133 8.78062 28.5481 9.11761L17.8208 14.5521C17.4846 14.7225 17.2727 15.0673 17.2727 15.4442V28.3723C17.2727 29.118 18.0595 29.6014 18.7247 29.2644L19.2645 28.9909V17.0039H19.2727V16.0586Z"
|
||||
fill="#535766"
|
||||
/>
|
||||
<path
|
||||
fillRule="evenodd"
|
||||
clipRule="evenodd"
|
||||
d="M30 20.2857H22.5714V26.3067C22.5714 27.0092 22.94 27.6602 23.5424 28.0216L26.2857 29.6676L29.029 28.0216C29.6314 27.6602 30 27.0092 30 26.3067V20.2857ZM26.2857 32L22.5134 29.7366C21.3086 29.0137 20.5714 27.7117 20.5714 26.3067V18.2857H32V26.3067C32 27.7117 31.2628 29.0137 30.058 29.7366L26.2857 32Z"
|
||||
fill="#00BFB3"
|
||||
/>
|
||||
</g>
|
||||
<defs>
|
||||
<clipPath id="clip0_327_292367">
|
||||
<rect width="32" height="32" fill="white" />
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
||||
);
|
|
@ -42,7 +42,6 @@ import {
|
|||
import { licenseService } from '../common/hooks/use_license';
|
||||
import type { LinkItem } from '../common/links/types';
|
||||
import type { StartPlugins } from '../types';
|
||||
import { cloudDefendLink } from '../cloud_defend/links';
|
||||
import { links as notesLink } from '../notes/links';
|
||||
import { IconConsole } from '../common/icons/console';
|
||||
import { IconShield } from '../common/icons/shield';
|
||||
|
@ -216,7 +215,6 @@ export const links: LinkItem = {
|
|||
skipUrlState: true,
|
||||
hideTimeline: true,
|
||||
},
|
||||
cloudDefendLink,
|
||||
notesLink,
|
||||
],
|
||||
};
|
||||
|
|
|
@ -67,7 +67,6 @@ import {
|
|||
MACHINE_LEARNING_LANDING_URL,
|
||||
ASSETS_URL,
|
||||
FLEET_URL,
|
||||
CLOUD_DEFEND_URL,
|
||||
HOSTS_URL,
|
||||
} from '../../../urls/navigation';
|
||||
import { RULES_MANAGEMENT_URL } from '../../../urls/rules_management';
|
||||
|
@ -377,10 +376,6 @@ describe('Serverless side navigation links', { tags: '@serverless' }, () => {
|
|||
navigateFromHeaderTo(ServerlessHeaders.FLEET, true);
|
||||
cy.url().should('include', FLEET_URL);
|
||||
});
|
||||
it('navigates to the Cloud defend page', () => {
|
||||
navigateFromHeaderTo(ServerlessHeaders.CLOUD_DEFEND, true);
|
||||
cy.url().should('include', CLOUD_DEFEND_URL);
|
||||
});
|
||||
it('navigates to the Machine learning landing page', () => {
|
||||
navigateFromHeaderTo(ServerlessHeaders.MACHINE_LEARNING, true);
|
||||
cy.url().should('include', MACHINE_LEARNING_LANDING_URL);
|
||||
|
|
|
@ -65,7 +65,6 @@ export const HOSTS = '[data-test-subj="solutionSideNavPanelLink-hosts"]';
|
|||
|
||||
export const FLEET = '[data-test-subj="solutionSideNavPanelLink-fleet:"]';
|
||||
export const ENDPOINTS = '[data-test-subj="solutionSideNavPanelLink-endpoints"]';
|
||||
export const CLOUD_DEFEND = '[data-test-subj="solutionSideNavPanelLink-cloud_defend"]';
|
||||
|
||||
export const POLICIES = '[data-test-subj="solutionSideNavPanelLink-policy"]';
|
||||
|
||||
|
@ -122,8 +121,7 @@ export const openNavigationPanelFor = (pageName: string) => {
|
|||
break;
|
||||
}
|
||||
case FLEET:
|
||||
case ENDPOINTS:
|
||||
case CLOUD_DEFEND: {
|
||||
case ENDPOINTS: {
|
||||
panel = ASSETS_PANEL_BTN;
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -15,7 +15,6 @@ export const DASHBOARDS_URL = '/app/security/dashboards';
|
|||
|
||||
export const ASSETS_URL = '/app/security/assets';
|
||||
export const ENDPOINTS_URL = '/app/security/administration/endpoints';
|
||||
export const CLOUD_DEFEND_URL = '/app/security/cloud_defend';
|
||||
export const POLICIES_URL = '/app/security/administration/policy';
|
||||
export const TRUSTED_APPS_URL = '/app/security/administration/trusted_apps';
|
||||
export const EVENT_FILTERS_URL = '/app/security/administration/event_filters';
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue