diff --git a/packages/kbn-doc-links/src/get_doc_links.ts b/packages/kbn-doc-links/src/get_doc_links.ts index 3c59a98498842e..9b38a716a714cc 100644 --- a/packages/kbn-doc-links/src/get_doc_links.ts +++ b/packages/kbn-doc-links/src/get_doc_links.ts @@ -488,8 +488,6 @@ export const getDocLinks = ({ kibanaBranch, buildFlavor }: GetDocLinkOptions): D ruleUiAdvancedParams: `${SECURITY_SOLUTION_DOCS}rules-ui-create.html#rule-ui-advanced-params`, entityAnalytics: { riskScorePrerequisites: `${SECURITY_SOLUTION_DOCS}ers-requirements.html`, - hostRiskScore: `${SECURITY_SOLUTION_DOCS}host-risk-score.html`, - userRiskScore: `${SECURITY_SOLUTION_DOCS}user-risk-score.html`, entityRiskScoring: `${SECURITY_SOLUTION_DOCS}entity-risk-scoring.html`, assetCriticality: `${SECURITY_SOLUTION_DOCS}asset-criticality.html`, }, diff --git a/packages/kbn-doc-links/src/types.ts b/packages/kbn-doc-links/src/types.ts index 5586f0f8f201fe..c6b1b753ce8839 100644 --- a/packages/kbn-doc-links/src/types.ts +++ b/packages/kbn-doc-links/src/types.ts @@ -360,8 +360,6 @@ export interface DocLinks { readonly ruleUiAdvancedParams: string; readonly entityAnalytics: { readonly riskScorePrerequisites: string; - readonly hostRiskScore: string; - readonly userRiskScore: string; readonly entityRiskScoring: string; readonly assetCriticality: string; }; diff --git a/x-pack/plugins/security_solution/public/common/components/event_details/cti_details/threat_summary_view.tsx b/x-pack/plugins/security_solution/public/common/components/event_details/cti_details/threat_summary_view.tsx index af878acd8b1040..3f32ba4fd5a009 100644 --- a/x-pack/plugins/security_solution/public/common/components/event_details/cti_details/threat_summary_view.tsx +++ b/x-pack/plugins/security_solution/public/common/components/event_details/cti_details/threat_summary_view.tsx @@ -18,7 +18,7 @@ import type { TimelineEventsDetailsItem, RiskSeverity, } from '../../../../../common/search_strategy'; -import { RiskSummary } from '../../../../entity_analytics/components/risk_summary'; +import { RiskSummaryPanel } from '../../../../entity_analytics/components/risk_summary_panel'; import { EnrichmentSummary } from './enrichment_summary'; import { RiskScoreEntity } from '../../../../../common/search_strategy'; import { useHasSecurityCapability } from '../../../../helper_hooks'; @@ -137,7 +137,7 @@ const ThreatSummaryViewComponent: React.FC<{ {hasEntityAnalyticsCapability && ( <> - - {text.body} {` `} - + } actions={ diff --git a/x-pack/plugins/security_solution/public/entity_analytics/components/entity_analytics_risk_score/translations.ts b/x-pack/plugins/security_solution/public/entity_analytics/components/entity_analytics_risk_score/translations.ts index 5816accea220aa..d87f0a8b899fc3 100644 --- a/x-pack/plugins/security_solution/public/entity_analytics/components/entity_analytics_risk_score/translations.ts +++ b/x-pack/plugins/security_solution/public/entity_analytics/components/entity_analytics_risk_score/translations.ts @@ -25,14 +25,6 @@ export const VIEW_ALL = i18n.translate( } ); -export const LEARN_MORE = (riskEntity?: RiskScoreEntity) => - i18n.translate('xpack.securitySolution.entityAnalytics.riskDashboard.learnMore', { - defaultMessage: 'Learn more about {riskEntity} risk', - values: { - riskEntity: getRiskEntityTranslation(riskEntity, true), - }, - }); - export const LAST_UPDATED = i18n.translate( 'xpack.securitySolution.entityAnalytics.riskDashboard.lastUpdatedTitle', { diff --git a/x-pack/plugins/security_solution/public/entity_analytics/components/risk_information/index.tsx b/x-pack/plugins/security_solution/public/entity_analytics/components/risk_information/index.tsx index 8596c7869edcb9..0b08c8976cf670 100644 --- a/x-pack/plugins/security_solution/public/entity_analytics/components/risk_information/index.tsx +++ b/x-pack/plugins/security_solution/public/entity_analytics/components/risk_information/index.tsx @@ -37,7 +37,7 @@ import { CriticalityLevels, CriticalityModifiers, } from '../../../../common/entity_analytics/asset_criticality'; -import { RiskScoreDocLink } from '../risk_score_onboarding/risk_score_doc_link'; +import { EntityAnalyticsLearnMoreLink } from '../risk_score_onboarding/entity_analytics_doc_link'; import { BETA } from '../risk_score_onboarding/translations'; import { AssetCriticalityBadge } from '../asset_criticality'; @@ -262,14 +262,7 @@ export const RiskInformationFlyout = ({ handleOnClose }: { handleOnClose: () => - - } - /> + diff --git a/x-pack/plugins/security_solution/public/entity_analytics/components/risk_score/translations.ts b/x-pack/plugins/security_solution/public/entity_analytics/components/risk_score/translations.ts index d072607544d4f2..4ad2314afb859d 100644 --- a/x-pack/plugins/security_solution/public/entity_analytics/components/risk_score/translations.ts +++ b/x-pack/plugins/security_solution/public/entity_analytics/components/risk_score/translations.ts @@ -40,6 +40,13 @@ export const RISK_SCORE_TITLE = (riskEntity: RiskScoreEntity) => }, }); +export const RISK_SCORING_TITLE = i18n.translate( + 'xpack.securitySolution.riskScore.overview.riskScoringTitle', + { + defaultMessage: 'Entity Risk Scoring', + } +); + export const ENTITY_RISK_LEVEL = (riskEntity: RiskScoreEntity) => i18n.translate('xpack.securitySolution.entityAnalytics.riskDashboard.riskLevelTitle', { defaultMessage: '{riskEntity} risk level', diff --git a/x-pack/plugins/security_solution/public/entity_analytics/components/risk_score_onboarding/entity_analytics_doc_link.tsx b/x-pack/plugins/security_solution/public/entity_analytics/components/risk_score_onboarding/entity_analytics_doc_link.tsx new file mode 100644 index 00000000000000..b0d421c7434119 --- /dev/null +++ b/x-pack/plugins/security_solution/public/entity_analytics/components/risk_score_onboarding/entity_analytics_doc_link.tsx @@ -0,0 +1,37 @@ +/* + * 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 { EuiLink } from '@elastic/eui'; +import { FormattedMessage } from '@kbn/i18n-react'; +import React from 'react'; +import { useKibana } from '../../../common/lib/kibana'; + +const EntityAnalyticsLearnMoreLinkComponent = ({ title }: { title?: string | React.ReactNode }) => { + const { docLinks } = useKibana().services; + const entityAnalyticsLinks = docLinks.links.securitySolution.entityAnalytics; + + return ( + + {title ? ( + title + ) : ( + + )} + + ); +}; + +export const EntityAnalyticsLearnMoreLink = React.memo(EntityAnalyticsLearnMoreLinkComponent); + +EntityAnalyticsLearnMoreLink.displayName = 'EntityAnalyticsLearnMoreLink'; diff --git a/x-pack/plugins/security_solution/public/entity_analytics/components/risk_score_onboarding/risk_score_doc_link.tsx b/x-pack/plugins/security_solution/public/entity_analytics/components/risk_score_onboarding/risk_score_doc_link.tsx deleted file mode 100644 index ca7b67134b29dc..00000000000000 --- a/x-pack/plugins/security_solution/public/entity_analytics/components/risk_score_onboarding/risk_score_doc_link.tsx +++ /dev/null @@ -1,46 +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 { EuiLink } from '@elastic/eui'; -import React, { useMemo } from 'react'; -import { RiskScoreEntity } from '../../../../common/search_strategy'; -import { useKibana } from '../../../common/lib/kibana'; -import { LEARN_MORE } from '../entity_analytics_risk_score/translations'; - -const useLearnMoreLinkForEntity = (riskScoreEntity?: RiskScoreEntity) => { - const { docLinks } = useKibana().services; - const entityAnalyticsLinks = docLinks.links.securitySolution.entityAnalytics; - return useMemo(() => { - if (!riskScoreEntity) { - return entityAnalyticsLinks.entityRiskScoring; - } - if (riskScoreEntity === RiskScoreEntity.user) { - return entityAnalyticsLinks.userRiskScore; - } - return entityAnalyticsLinks.hostRiskScore; - }, [riskScoreEntity, entityAnalyticsLinks]); -}; - -const RiskScoreDocLinkComponent = ({ - riskScoreEntity, - title, -}: { - riskScoreEntity?: RiskScoreEntity; - title?: string | React.ReactNode; -}) => { - const learnMoreLink = useLearnMoreLinkForEntity(riskScoreEntity); - - return ( - - {title ? title : LEARN_MORE(riskScoreEntity)} - - ); -}; - -export const RiskScoreDocLink = React.memo(RiskScoreDocLinkComponent); - -RiskScoreDocLink.displayName = 'RiskScoreDocLink'; diff --git a/x-pack/plugins/security_solution/public/entity_analytics/components/risk_score_onboarding/risk_score_enable_button.tsx b/x-pack/plugins/security_solution/public/entity_analytics/components/risk_score_onboarding/risk_score_enable_button.tsx index f75204ad5ffd20..6878f9aab05124 100644 --- a/x-pack/plugins/security_solution/public/entity_analytics/components/risk_score_onboarding/risk_score_enable_button.tsx +++ b/x-pack/plugins/security_solution/public/entity_analytics/components/risk_score_onboarding/risk_score_enable_button.tsx @@ -36,7 +36,7 @@ const RiskScoreEnableButtonComponent = ({ }) => { const spaceId = useSpaceId(); const { http, dashboard, ...startServices } = useKibana().services; - const { renderDocLink, renderDashboardLink } = useRiskScoreToastContent(riskScoreEntity); + const { renderDocLink, renderDashboardLink } = useRiskScoreToastContent(); const { fetch, isLoading } = useFetch(REQUEST_NAMES.ENABLE_RISK_SCORE, installRiskScoreModule); const isRiskEngineEnabled = useIsExperimentalFeatureEnabled('riskScoringRoutesEnabled'); diff --git a/x-pack/plugins/security_solution/public/entity_analytics/components/risk_score_onboarding/risk_score_restart_button.tsx b/x-pack/plugins/security_solution/public/entity_analytics/components/risk_score_onboarding/risk_score_restart_button.tsx index 70f28df4420f9c..87ef0df078c098 100644 --- a/x-pack/plugins/security_solution/public/entity_analytics/components/risk_score_onboarding/risk_score_restart_button.tsx +++ b/x-pack/plugins/security_solution/public/entity_analytics/components/risk_score_onboarding/risk_score_restart_button.tsx @@ -30,7 +30,7 @@ const RiskScoreRestartButtonComponent = ({ ); const spaceId = useSpaceId(); - const { renderDocLink } = useRiskScoreToastContent(riskScoreEntity); + const { renderDocLink } = useRiskScoreToastContent(); const { http, ...startServices } = useKibana().services; const onClick = useCallback(async () => { diff --git a/x-pack/plugins/security_solution/public/entity_analytics/components/risk_score_onboarding/use_risk_score_toast_content.tsx b/x-pack/plugins/security_solution/public/entity_analytics/components/risk_score_onboarding/use_risk_score_toast_content.tsx index 7df01d9f8bd86e..30fdc0f9204f27 100644 --- a/x-pack/plugins/security_solution/public/entity_analytics/components/risk_score_onboarding/use_risk_score_toast_content.tsx +++ b/x-pack/plugins/security_solution/public/entity_analytics/components/risk_score_onboarding/use_risk_score_toast_content.tsx @@ -10,21 +10,20 @@ import React, { useCallback, useMemo } from 'react'; import styled from 'styled-components'; import { FormattedMessage } from '@kbn/i18n-react'; -import type { RiskScoreEntity } from '../../../../common/search_strategy'; -import { RiskScoreDocLink } from './risk_score_doc_link'; +import { EntityAnalyticsLearnMoreLink } from './entity_analytics_doc_link'; const StyledButton = styled(EuiButton)` float: right; `; -export const useRiskScoreToastContent = (riskScoreEntity: RiskScoreEntity) => { +export const useRiskScoreToastContent = () => { const renderDocLink = useCallback( (message: string) => ( <> - {message} + {message} ), - [riskScoreEntity] + [] ); const renderDashboardLink = useCallback( (message: string, targetUrl: string) => ( diff --git a/x-pack/plugins/security_solution/public/entity_analytics/components/risk_summary_flyout/risk_summary.stories.tsx b/x-pack/plugins/security_solution/public/entity_analytics/components/risk_summary_flyout/risk_summary.stories.tsx index 2d0d8f95257135..76105e78a815be 100644 --- a/x-pack/plugins/security_solution/public/entity_analytics/components/risk_summary_flyout/risk_summary.stories.tsx +++ b/x-pack/plugins/security_solution/public/entity_analytics/components/risk_summary_flyout/risk_summary.stories.tsx @@ -10,11 +10,11 @@ import type { Story } from '@storybook/react'; import { TestProvider } from '@kbn/expandable-flyout/src/test/provider'; import { StorybookProviders } from '../../../common/mock/storybook_providers'; import { mockRiskScoreState } from '../../../timelines/components/side_panel/new_user_detail/__mocks__'; -import { RiskSummary } from './risk_summary'; +import { FlyoutRiskSummary } from './risk_summary'; export default { - component: RiskSummary, - title: 'Components/RiskSummary', + component: FlyoutRiskSummary, + title: 'Components/FlyoutRiskSummary', }; export const Default: Story = () => { @@ -22,7 +22,7 @@ export const Default: Story = () => {
- {}} riskScoreData={{ ...mockRiskScoreState, data: [] }} queryId={'testQuery'} @@ -39,7 +39,7 @@ export const PreviewMode: Story = () => {
- { }; }); -describe('RiskSummary', () => { +describe('FlyoutRiskSummary', () => { beforeEach(() => { mockVisualizationEmbeddable.mockClear(); }); @@ -45,7 +45,7 @@ describe('RiskSummary', () => { it('renders risk summary table with alerts only', () => { const { getByTestId, queryByTestId } = render( - {}} @@ -76,7 +76,7 @@ describe('RiskSummary', () => { const { getByTestId } = render( - {}} @@ -108,7 +108,7 @@ describe('RiskSummary', () => { it('renders risk summary table when riskScoreData is empty', () => { const { getByTestId } = render( - {}} @@ -122,7 +122,7 @@ describe('RiskSummary', () => { it('risk summary header does not render link when riskScoreData is loading', () => { const { queryByTestId } = render( - {}} @@ -137,7 +137,7 @@ describe('RiskSummary', () => { it('risk summary header does not render expand icon when in preview mode', () => { const { queryByTestId } = render( - {}} @@ -154,7 +154,7 @@ describe('RiskSummary', () => { it('renders visualization embeddable', () => { const { getByTestId } = render( - {}} @@ -169,7 +169,7 @@ describe('RiskSummary', () => { it('renders updated at', () => { const { getByTestId } = render( - {}} @@ -184,7 +184,7 @@ describe('RiskSummary', () => { it('builds lens attributes for host risk score', () => { render( - {}} @@ -211,7 +211,7 @@ describe('RiskSummary', () => { it('builds lens cases attachment metadata for host risk score', () => { render( - {}} @@ -233,7 +233,7 @@ describe('RiskSummary', () => { it('builds lens cases attachment metadata for user risk score', () => { render( - {}} @@ -255,7 +255,7 @@ describe('RiskSummary', () => { it('builds lens attributes for user risk score', () => { render( - {}} diff --git a/x-pack/plugins/security_solution/public/entity_analytics/components/risk_summary_flyout/risk_summary.tsx b/x-pack/plugins/security_solution/public/entity_analytics/components/risk_summary_flyout/risk_summary.tsx index ce70b5fb211e7f..8d0b00129057eb 100644 --- a/x-pack/plugins/security_solution/public/entity_analytics/components/risk_summary_flyout/risk_summary.tsx +++ b/x-pack/plugins/security_solution/public/entity_analytics/components/risk_summary_flyout/risk_summary.tsx @@ -55,7 +55,7 @@ export interface RiskSummaryProps { isPreviewMode?: boolean; } -const RiskSummaryComponent = ({ +const FlyoutRiskSummaryComponent = ({ riskScoreData, recalculatingScore, queryId, @@ -287,5 +287,5 @@ const RiskSummaryComponent = ({ ); }; -export const RiskSummary = React.memo(RiskSummaryComponent); -RiskSummary.displayName = 'RiskSummary'; +export const FlyoutRiskSummary = React.memo(FlyoutRiskSummaryComponent); +FlyoutRiskSummary.displayName = 'RiskSummary'; diff --git a/x-pack/plugins/security_solution/public/entity_analytics/components/risk_summary.test.tsx b/x-pack/plugins/security_solution/public/entity_analytics/components/risk_summary_panel.test.tsx similarity index 91% rename from x-pack/plugins/security_solution/public/entity_analytics/components/risk_summary.test.tsx rename to x-pack/plugins/security_solution/public/entity_analytics/components/risk_summary_panel.test.tsx index 75722d781bbc76..cfe1e4ec898c46 100644 --- a/x-pack/plugins/security_solution/public/entity_analytics/components/risk_summary.test.tsx +++ b/x-pack/plugins/security_solution/public/entity_analytics/components/risk_summary_panel.test.tsx @@ -9,9 +9,9 @@ import React from 'react'; import { render } from '@testing-library/react'; import { TestProviders } from '../../common/mock'; -import type { RiskEntity } from './risk_summary'; +import type { RiskEntity } from './risk_summary_panel'; import * as i18n from '../../common/components/event_details/cti_details/translations'; -import { RiskSummary } from './risk_summary'; +import { RiskSummaryPanel } from './risk_summary_panel'; import { RiskScoreEntity, RiskSeverity } from '../../../common/search_strategy'; import { getEmptyValue } from '../../common/components/empty_value'; @@ -46,7 +46,7 @@ describe.each([RiskScoreEntity.host, RiskScoreEntity.user])( const { getByText } = render( - + ); @@ -67,7 +67,7 @@ describe.each([RiskScoreEntity.host, RiskScoreEntity.user])( } as RiskEntity; const { getByTestId } = render( - + ); @@ -86,7 +86,7 @@ describe.each([RiskScoreEntity.host, RiskScoreEntity.user])( } as RiskEntity; const { getByText } = render( - + ); diff --git a/x-pack/plugins/security_solution/public/entity_analytics/components/risk_summary.tsx b/x-pack/plugins/security_solution/public/entity_analytics/components/risk_summary_panel.tsx similarity index 89% rename from x-pack/plugins/security_solution/public/entity_analytics/components/risk_summary.tsx rename to x-pack/plugins/security_solution/public/entity_analytics/components/risk_summary_panel.tsx index df3933ae50e5b7..80d0558f5cf558 100644 --- a/x-pack/plugins/security_solution/public/entity_analytics/components/risk_summary.tsx +++ b/x-pack/plugins/security_solution/public/entity_analytics/components/risk_summary_panel.tsx @@ -17,7 +17,7 @@ import { RiskScoreLevel } from './severity/common'; import type { RiskSeverity } from '../../../common/search_strategy'; import { RiskScoreEntity } from '../../../common/search_strategy'; import { getEmptyValue } from '../../common/components/empty_value'; -import { RiskScoreDocLink } from './risk_score_onboarding/risk_score_doc_link'; +import { EntityAnalyticsLearnMoreLink } from './risk_score_onboarding/entity_analytics_doc_link'; import { RiskScoreHeaderTitle } from './risk_score_onboarding/risk_score_header_title'; import type { HostRisk, UserRisk } from '../api/types'; @@ -35,7 +35,7 @@ interface UserRiskEntity { export type RiskEntity = HostRiskEntity | UserRiskEntity; -const RiskSummaryComponent: React.FC = ({ risk, riskEntity, originalRisk }) => { +const RiskSummaryPanelComponent: React.FC = ({ risk, riskEntity, originalRisk }) => { const currentRiskScore = riskEntity === RiskScoreEntity.host ? risk?.result?.[0]?.host?.risk?.calculated_level @@ -64,10 +64,7 @@ const RiskSummaryComponent: React.FC = ({ risk, riskEntity, original values={{ riskEntity, riskScoreDocumentationLink: ( - + ), }} /> @@ -103,4 +100,4 @@ const RiskSummaryComponent: React.FC = ({ risk, riskEntity, original ); }; -export const RiskSummary = React.memo(RiskSummaryComponent); +export const RiskSummaryPanel = React.memo(RiskSummaryPanelComponent); diff --git a/x-pack/plugins/security_solution/public/flyout/document_details/right/components/host_entity_overview.tsx b/x-pack/plugins/security_solution/public/flyout/document_details/right/components/host_entity_overview.tsx index 39772a9b61c36c..ddcb5a805cd46f 100644 --- a/x-pack/plugins/security_solution/public/flyout/document_details/right/components/host_entity_overview.tsx +++ b/x-pack/plugins/security_solution/public/flyout/document_details/right/components/host_entity_overview.tsx @@ -187,7 +187,7 @@ export const HostEntityOverview: React.FC = ({ hostName {HOST_RISK_LEVEL} - + ), diff --git a/x-pack/plugins/security_solution/public/flyout/document_details/right/components/user_entity_overview.tsx b/x-pack/plugins/security_solution/public/flyout/document_details/right/components/user_entity_overview.tsx index 300c31a7f6ba17..f8b9a49abc3060 100644 --- a/x-pack/plugins/security_solution/public/flyout/document_details/right/components/user_entity_overview.tsx +++ b/x-pack/plugins/security_solution/public/flyout/document_details/right/components/user_entity_overview.tsx @@ -187,7 +187,7 @@ export const UserEntityOverview: React.FC = ({ userName {USER_RISK_LEVEL} - + ), diff --git a/x-pack/plugins/security_solution/public/flyout/entity_details/host_right/content.tsx b/x-pack/plugins/security_solution/public/flyout/entity_details/host_right/content.tsx index 26dcb462a1609f..af3eae38fc1f8c 100644 --- a/x-pack/plugins/security_solution/public/flyout/entity_details/host_right/content.tsx +++ b/x-pack/plugins/security_solution/public/flyout/entity_details/host_right/content.tsx @@ -8,7 +8,7 @@ import React from 'react'; import { EuiHorizontalRule } from '@elastic/eui'; import { AssetCriticalityAccordion } from '../../../entity_analytics/components/asset_criticality/asset_criticality_selector'; -import { RiskSummary } from '../../../entity_analytics/components/risk_summary_flyout/risk_summary'; +import { FlyoutRiskSummary } from '../../../entity_analytics/components/risk_summary_flyout/risk_summary'; import type { RiskScoreState } from '../../../entity_analytics/api/hooks/use_risk_score'; import type { RiskScoreEntity, HostItem } from '../../../../common/search_strategy'; import { FlyoutBody } from '../../shared/components/flyout_body'; @@ -49,7 +49,7 @@ export const HostPanelContent = ({ {riskScoreState.isModuleEnabled && riskScoreState.data?.length !== 0 && ( <> - {riskScoreState.isModuleEnabled && riskScoreState.data?.length !== 0 && ( <> - = ({ toolTipContent, toolTipTitle, width = 270 }) => { + anchorPosition?: EuiPopover['props']['anchorPosition']; +}> = ({ toolTipContent, toolTipTitle, width = 270, anchorPosition = 'leftCenter' }) => { const [isPopoverOpen, setIsPopoverOpen] = useState(false); const onClick = useCallback(() => { @@ -30,7 +30,7 @@ export const RiskScoreInfoTooltip: React.FC<{ ( +export const RiskScoreDocTooltip = ({ + anchorPosition, +}: { + anchorPosition?: React.ComponentProps['anchorPosition']; +}) => ( } - width={200} // Magic number to match the width of the doc link + anchorPosition={anchorPosition} + toolTipContent={} /> ); diff --git a/x-pack/plugins/security_solution/public/overview/components/host_overview/index.tsx b/x-pack/plugins/security_solution/public/overview/components/host_overview/index.tsx index 6ac68b95227626..b25509c1b88f5c 100644 --- a/x-pack/plugins/security_solution/public/overview/components/host_overview/index.tsx +++ b/x-pack/plugins/security_solution/public/overview/components/host_overview/index.tsx @@ -158,7 +158,7 @@ export const HostOverview = React.memo( /> - + ), diff --git a/x-pack/plugins/security_solution/public/overview/components/user_overview/index.tsx b/x-pack/plugins/security_solution/public/overview/components/user_overview/index.tsx index 30e528509b9c1a..102e39cf1b740a 100644 --- a/x-pack/plugins/security_solution/public/overview/components/user_overview/index.tsx +++ b/x-pack/plugins/security_solution/public/overview/components/user_overview/index.tsx @@ -156,7 +156,7 @@ export const UserOverview = React.memo( /> - + ), diff --git a/x-pack/plugins/translations/translations/fr-FR.json b/x-pack/plugins/translations/translations/fr-FR.json index 5b97f97d5a5853..d696f1ad072083 100644 --- a/x-pack/plugins/translations/translations/fr-FR.json +++ b/x-pack/plugins/translations/translations/fr-FR.json @@ -32715,7 +32715,6 @@ "xpack.securitySolution.endpointResponseActions.actionError.errorMessage": "{ errorCount, plural, =1 {Erreur rencontrée} other {Erreurs rencontrées}} :", "xpack.securitySolution.enrichment.noInvestigationEnrichment": "Aucun renseignement supplémentaire sur les menaces n'a été détecté sur la période sélectionnée. Sélectionnez une autre plage temporelle ou {link} afin de collecter des renseignements sur les menaces pour les détecter et les comparer.", "xpack.securitySolution.entityAnalytics.anomalies.moduleNotCompatibleTitle": "{incompatibleJobCount} {incompatibleJobCount, plural, =1 {tâche est actuellement indisponible} other {tâches sont actuellement indisponibles}}", - "xpack.securitySolution.entityAnalytics.riskDashboard.learnMore": "Découvrez plus d'informations sur les risques {riskEntity}", "xpack.securitySolution.entityAnalytics.riskDashboard.nameTitle": "Nom de {riskEntity}", "xpack.securitySolution.entityAnalytics.riskDashboard.riskLevelTitle": "Score de risque de {riskEntity}", "xpack.securitySolution.entityAnalytics.riskEngine.missingClusterPrivilege": "Privilèges de cluster manquants : {privileges}.", @@ -37046,7 +37045,6 @@ "xpack.securitySolution.riskInformation.howOftenTitle": "À quelle fréquence le risque est-il calculé ?", "xpack.securitySolution.riskInformation.informationAriaLabel": "Informations", "xpack.securitySolution.riskInformation.introText": "L'analyse de risque des entités détecte les hôtes et les utilisateurs risqués à l'intérieur de votre environnement.", - "xpack.securitySolution.riskInformation.learnMore": "Découvrez plus d'informations sur les risques des entités", "xpack.securitySolution.riskInformation.levelHeader": "Niveau de risque", "xpack.securitySolution.riskInformation.riskCalculationStep1": "Uniquement les utilisateurs et les hôtes (entités) de scores associés aux alertes de détection non fermées.", "xpack.securitySolution.riskInformation.riskCalculationStep2": "Génère un score de catégorie \"Alerte\" en regroupant les alertes par identificateur d'entité, afin que les alertes ayant des scores de risque plus élevés contribuent davantage que les alertes dont les scores de risque sont moins élevés.", diff --git a/x-pack/plugins/translations/translations/ja-JP.json b/x-pack/plugins/translations/translations/ja-JP.json index 624ab8b984ad93..5ada4e124f4c76 100644 --- a/x-pack/plugins/translations/translations/ja-JP.json +++ b/x-pack/plugins/translations/translations/ja-JP.json @@ -32688,7 +32688,6 @@ "xpack.securitySolution.endpointResponseActions.actionError.errorMessage": "次の{ errorCount, plural, other {件のエラー}}が発生しました:", "xpack.securitySolution.enrichment.noInvestigationEnrichment": "選択した期間内に追加の脅威情報が見つかりませんでした。別の時間枠、または{link}を試して、脅威の検出と照合のための脅威インテリジェンスを収集します。", "xpack.securitySolution.entityAnalytics.anomalies.moduleNotCompatibleTitle": "{incompatibleJobCount} {incompatibleJobCount, plural, other {件のジョブ}}が現在使用できません", - "xpack.securitySolution.entityAnalytics.riskDashboard.learnMore": "{riskEntity}リスクの詳細", "xpack.securitySolution.entityAnalytics.riskDashboard.nameTitle": "{riskEntity}名", "xpack.securitySolution.entityAnalytics.riskDashboard.riskLevelTitle": "{riskEntity}リスクレベル", "xpack.securitySolution.entityAnalytics.riskEngine.missingClusterPrivilege": "クラスター権限が不足しています:{privileges}。", @@ -37021,7 +37020,6 @@ "xpack.securitySolution.riskInformation.howOftenTitle": "リスクを計算する頻度", "xpack.securitySolution.riskInformation.informationAriaLabel": "情報", "xpack.securitySolution.riskInformation.introText": "Entity Risk Analyticsは、環境内のリスクのあるホストとユーザーを明らかにします。", - "xpack.securitySolution.riskInformation.learnMore": "エンティティリスクの詳細", "xpack.securitySolution.riskInformation.levelHeader": "リスクレベル", "xpack.securitySolution.riskInformation.riskCalculationStep1": "クローズされていない検出アラートに関連付けられたユーザーとホスト(エンティティ)のみスコア付けします。", "xpack.securitySolution.riskInformation.riskCalculationStep2": "エンティティID別にアラートを集約することで、「アラート」カテゴリスコアを生成します。リスクスコアが高いアラートがリスクスコアが低いアラートよりも大きく寄与するように設定されます。", diff --git a/x-pack/plugins/translations/translations/zh-CN.json b/x-pack/plugins/translations/translations/zh-CN.json index e3f237c9ac0479..373b448116918b 100644 --- a/x-pack/plugins/translations/translations/zh-CN.json +++ b/x-pack/plugins/translations/translations/zh-CN.json @@ -32732,7 +32732,6 @@ "xpack.securitySolution.endpointResponseActions.actionError.errorMessage": "遇到以下{ errorCount, plural, other {错误}}:", "xpack.securitySolution.enrichment.noInvestigationEnrichment": "在选定时间范围内未发现其他威胁情报。请尝试不同时间范围,或 {link} 以收集威胁情报用于威胁检测和匹配。", "xpack.securitySolution.entityAnalytics.anomalies.moduleNotCompatibleTitle": "{incompatibleJobCount} 个{incompatibleJobCount, plural, other {作业}}当前不可用", - "xpack.securitySolution.entityAnalytics.riskDashboard.learnMore": "详细了解 {riskEntity} 风险", "xpack.securitySolution.entityAnalytics.riskDashboard.nameTitle": "{riskEntity}名称", "xpack.securitySolution.entityAnalytics.riskDashboard.riskLevelTitle": "{riskEntity} 风险级别", "xpack.securitySolution.entityAnalytics.riskEngine.missingClusterPrivilege": "缺少集群权限:{privileges}。", @@ -37064,7 +37063,6 @@ "xpack.securitySolution.riskInformation.howOftenTitle": "多久计算一次风险?", "xpack.securitySolution.riskInformation.informationAriaLabel": "信息", "xpack.securitySolution.riskInformation.introText": "实体风险分析将显示您的环境中存在的有风险主机和用户。", - "xpack.securitySolution.riskInformation.learnMore": "详细了解实体风险", "xpack.securitySolution.riskInformation.levelHeader": "风险级别", "xpack.securitySolution.riskInformation.riskCalculationStep1": "仅对与尚未关闭的检测告警关联的用户和主机(实体)评分。", "xpack.securitySolution.riskInformation.riskCalculationStep2": "通过按实体标识符聚合告警来生成“告警”类别分数,从而使风险分数高的告警贡献高于风险分数低的告警。",