diff --git a/packages/kbn-doc-links/src/get_doc_links.ts b/packages/kbn-doc-links/src/get_doc_links.ts index e15f797153b8..6beb073f2ae8 100644 --- a/packages/kbn-doc-links/src/get_doc_links.ts +++ b/packages/kbn-doc-links/src/get_doc_links.ts @@ -432,6 +432,7 @@ export const getDocLinks = ({ kibanaBranch }: GetDocLinkOptions): DocLinks => { configureAlertSuppression: `${SECURITY_SOLUTION_DOCS}alert-suppression.html#_configure_alert_suppression`, }, securitySolution: { + artifactControl: `${SECURITY_SOLUTION_DOCS}artifact-control.html`, trustedApps: `${SECURITY_SOLUTION_DOCS}trusted-apps-ov.html`, eventFilters: `${SECURITY_SOLUTION_DOCS}event-filters.html`, blocklist: `${SECURITY_SOLUTION_DOCS}blocklist.html`, diff --git a/packages/kbn-doc-links/src/types.ts b/packages/kbn-doc-links/src/types.ts index 0baccb89a584..39209b0675e9 100644 --- a/packages/kbn-doc-links/src/types.ts +++ b/packages/kbn-doc-links/src/types.ts @@ -323,6 +323,7 @@ export interface DocLinks { readonly configureAlertSuppression: string; }; readonly securitySolution: { + readonly artifactControl: string; readonly trustedApps: string; readonly eventFilters: string; readonly blocklist: string; diff --git a/x-pack/plugins/security_solution/public/management/pages/policy/view/protection_updates/protection_updates_layout.tsx b/x-pack/plugins/security_solution/public/management/pages/policy/view/protection_updates/protection_updates_layout.tsx index 110b504a2cb6..ed6d880da84d 100644 --- a/x-pack/plugins/security_solution/public/management/pages/policy/view/protection_updates/protection_updates_layout.tsx +++ b/x-pack/plugins/security_solution/public/management/pages/policy/view/protection_updates/protection_updates_layout.tsx @@ -13,6 +13,7 @@ import { EuiFlexItem, EuiHorizontalRule, EuiIconTip, + EuiLink, EuiPanel, EuiShowFor, EuiSpacer, @@ -25,15 +26,15 @@ import React, { useCallback, useContext, useEffect, useState } from 'react'; import { useDispatch } from 'react-redux'; import { ThemeContext } from 'styled-components'; import { i18n } from '@kbn/i18n'; -import { FormattedMessage } from '@kbn/i18n-react'; import type { Moment } from 'moment'; import moment from 'moment'; import { cloneDeep } from 'lodash'; +import { FormattedMessage } from '@kbn/i18n-react'; import { ProtectionUpdatesBottomBar } from './components/protection_updates_bottom_bar'; import { useCreateProtectionUpdatesNote } from './hooks/use_post_protection_updates_note'; import { useGetProtectionUpdatesNote } from './hooks/use_get_protection_updates_note'; import { useUserPrivileges } from '../../../../../common/components/user_privileges'; -import { useToasts } from '../../../../../common/lib/kibana'; +import { useKibana, useToasts } from '../../../../../common/lib/kibana'; import { useUpdateEndpointPolicy } from '../../../../hooks/policy/use_update_endpoint_policy'; import type { PolicyData, MaybeImmutable } from '../../../../../../common/endpoint/types'; import { ProtectionUpdatesWarningPanel } from './components/protection_updates_warning_panel'; @@ -62,6 +63,7 @@ export const ProtectionUpdatesLayout = React.memo( const dispatch = useDispatch(); const { isLoading: isUpdating, mutateAsync: sendPolicyUpdate } = useUpdateEndpointPolicy(); const { canWritePolicyManagement } = useUserPrivileges().endpointPrivileges; + const { docLinks } = useKibana().services; const paddingSize = useContext(ThemeContext).eui.euiPanelPaddingModifiers.paddingMedium; @@ -254,10 +256,25 @@ export const ProtectionUpdatesLayout = React.memo( } )} > - {i18n.translate('xpack.securitySolution.endpoint.protectionUpdates.manifestOutdated', { - defaultMessage: - 'Manifest is older than 30 days. Recommended to update the manifest or enable "Update manifest automatically".', - })} + + + + ), + break: , + }} + />