Skip to content
Merged
121 changes: 61 additions & 60 deletions src/platform/packages/shared/kbn-doc-links/src/get_doc_links.ts
Original file line number Diff line number Diff line change
Expand Up @@ -416,16 +416,18 @@ export const getDocLinks = ({ kibanaBranch, buildFlavor }: GetDocLinkOptions): D
migrationGuide: `${ELASTICSEARCH_DOCS}breaking-changes.html`,
},
siem: {
guide: `${SECURITY_SOLUTION_DOCS}index.html`,
gettingStarted: `${SECURITY_SOLUTION_DOCS}index.html`,
privileges: `${SECURITY_SOLUTION_DOCS}sec-requirements.html`,
ml: `${SECURITY_SOLUTION_DOCS}machine-learning.html`,
ruleChangeLog: `${SECURITY_SOLUTION_DOCS}prebuilt-rules-downloadable-updates.html`,
detectionsReq: `${SECURITY_SOLUTION_DOCS}detections-permissions-section.html`,
networkMap: `${SECURITY_SOLUTION_DOCS}conf-map-ui.html`,
troubleshootGaps: `${SECURITY_SOLUTION_DOCS}alerts-ui-monitor.html#troubleshoot-gaps`,
ruleApiOverview: `${SECURITY_SOLUTION_DOCS}rule-api-overview.html`,
configureAlertSuppression: `${SECURITY_SOLUTION_DOCS}alert-suppression.html#_configure_alert_suppression`,
guide: `${ELASTIC_DOCS}solutions/security`,
gettingStarted: `${ELASTIC_DOCS}solutions/security`,
privileges: `${ELASTIC_DOCS}solutions/security/get-started/elastic-security-requirements`,
ml: `${ELASTIC_DOCS}solutions/security/advanced-entity-analytics/anomaly-detection`,
ruleChangeLog: `https://www.elastic.co/guide/en/security/current/prebuilt-rules-downloadable-updates.html`,
detectionsReq: `${ELASTIC_DOCS}solutions/security/detect-and-alert/detections-requirements`,
networkMap: `${ELASTIC_DOCS}solutions/security/explore/configure-network-map-data`,
troubleshootGaps: `${ELASTIC_DOCS}troubleshoot/security/detection-rules#troubleshoot-gaps`,
ruleApiOverview: isServerless
? `${KIBANA_APIS}group/endpoint-security-detections-api`
: `${KIBANA_SERVERLESS_APIS}group/endpoint-security-detections-api`,
configureAlertSuppression: `${ELASTIC_DOCS}solutions/security/detect-and-alert/suppress-detection-alerts#security-alert-suppression-configure-alert-suppression`,
},
server: {
protocol: `${KIBANA_DOCS}settings.html#server-protocol`,
Expand All @@ -434,49 +436,49 @@ export const getDocLinks = ({ kibanaBranch, buildFlavor }: GetDocLinkOptions): D
enableDeprecationHttpDebugLogs: `${KIBANA_DOCS}logging-settings.html#enable-http-debug-logs`,
},
securitySolution: {
artifactControl: `${SECURITY_SOLUTION_DOCS}artifact-control.html`,
avcResults: `${ELASTIC_WEBSITE_URL}blog/elastic-security-av-comparatives-business-test`,
bidirectionalIntegrations: `${SECURITY_SOLUTION_DOCS}third-party-actions.html`,
trustedApps: `${SECURITY_SOLUTION_DOCS}trusted-apps-ov.html`,
eventFilters: `${SECURITY_SOLUTION_DOCS}event-filters.html`,
blocklist: `${SECURITY_SOLUTION_DOCS}blocklist.html`,
threatIntelInt: `${SECURITY_SOLUTION_DOCS}es-threat-intel-integrations.html`,
endpointArtifacts: `${SECURITY_SOLUTION_DOCS}endpoint-artifacts.html`,
eventMerging: `${SECURITY_SOLUTION_DOCS}endpoint-data-volume.html`,
artifactControl: `${ELASTIC_DOCS}solutions/security/configure-elastic-defend/configure-updates-for-protection-artifacts`,
avcResults: `https://www.elastic.co/blog/elastic-security-av-comparatives-business-test`,
bidirectionalIntegrations: `${ELASTIC_DOCS}solutions/security/endpoint-response-actions/third-party-response-actions`,
trustedApps: `${ELASTIC_DOCS}solutions/security/manage-elastic-defend/trusted-applications`,
eventFilters: `${ELASTIC_DOCS}solutions/security/manage-elastic-defend/event-filters`,
blocklist: `${ELASTIC_DOCS}solutions/security/manage-elastic-defend/blocklist`,
threatIntelInt: `${ELASTIC_DOCS}solutions/security/get-started/enable-threat-intelligence-integrations`,
endpointArtifacts: `${ELASTIC_DOCS}solutions/security/manage-elastic-defend/optimize-elastic-defend`,
eventMerging: `${ELASTIC_DOCS}solutions/security/configure-elastic-defend/configure-data-volume-for-elastic-endpoint`,
policyResponseTroubleshooting: {
full_disk_access: `${SECURITY_SOLUTION_DOCS}deploy-elastic-endpoint.html#enable-fda-endpoint`,
macos_system_ext: `${SECURITY_SOLUTION_DOCS}deploy-elastic-endpoint.html#system-extension-endpoint`,
linux_deadlock: `${SECURITY_SOLUTION_DOCS}ts-management.html#linux-deadlock`,
full_disk_access: `${ELASTIC_DOCS}solutions/security/configure-elastic-defend/enable-access-for-macos-monterey#enable-fda-endpoint`,
macos_system_ext: `${ELASTIC_DOCS}solutions/security/configure-elastic-defend/enable-access-for-macos-monterey#system-extension-endpoint`,
linux_deadlock: `${ELASTIC_DOCS}troubleshoot/security/elastic-defend#linux-deadlock`,
},
packageActionTroubleshooting: {
es_connection: `${SECURITY_SOLUTION_DOCS}ts-management.html`,
es_connection: `${ELASTIC_DOCS}troubleshoot/security/elastic-defend`,
},
responseActions: `${SECURITY_SOLUTION_DOCS}response-actions.html`,
configureEndpointIntegrationPolicy: `${SECURITY_SOLUTION_DOCS}configure-endpoint-integration-policy.html`,
responseActions: `${ELASTIC_DOCS}solutions/security/endpoint-response-actions`,
configureEndpointIntegrationPolicy: `${ELASTIC_DOCS}solutions/security/configure-elastic-defend/configure-an-integration-policy-for-elastic-defend`,
exceptions: {
value_lists: `${SECURITY_SOLUTION_DOCS}value-lists-exceptions.html`,
value_lists: `${ELASTIC_DOCS}solutions/security/detect-and-alert/create-manage-value-lists`,
},
privileges: `${SECURITY_SOLUTION_DOCS}endpoint-management-req.html`,
manageDetectionRules: `${SECURITY_SOLUTION_DOCS}rules-ui-management.html`,
createDetectionRules: `${SECURITY_SOLUTION_DOCS}rules-ui-create.html`,
updatePrebuiltDetectionRules: isServerless
? `${SERVERLESS_DOCS}security-prebuilt-rules-management.html#update-prebuilt-rules`
: `${SECURITY_SOLUTION_DOCS}prebuilt-rules-management.html#update-prebuilt-rules`,
prebuiltRuleCustomizationPromoBlog: `${ELASTIC_WEBSITE_URL}blog/security-prebuilt-rules-editing`,
createEsqlRuleType: `${SECURITY_SOLUTION_DOCS}rules-ui-create.html#create-esql-rule`,
ruleUiAdvancedParams: `${SECURITY_SOLUTION_DOCS}rules-ui-create.html#rule-ui-advanced-params`,
privileges: `${ELASTIC_DOCS}solutions/security/configure-elastic-defend/elastic-defend-feature-privileges`,
manageDetectionRules: `${ELASTIC_DOCS}solutions/security/detect-and-alert/manage-detection-rules`,
createDetectionRules: `${ELASTIC_DOCS}solutions/security/detect-and-alert/create-detection-rule`,
updatePrebuiltDetectionRules: `${ELASTIC_DOCS}solutions/security/detect-and-alert/install-manage-elastic-prebuilt-rules#update-prebuilt-rules`,
prebuiltRuleCustomizationPromoBlog: isServerless
? '' // URL for Serverless to be added later, once the blog post is published. Issue: https://github.com/elastic/kibana/issues/209000
: `https://www.elastic.co/blog/security-prebuilt-rules-editing`,
createEsqlRuleType: `${ELASTIC_DOCS}solutions/security/detect-and-alert/create-detection-rule#create-esql-rule`,
ruleUiAdvancedParams: `${ELASTIC_DOCS}solutions/security/detect-and-alert/create-detection-rule#rule-ui-advanced-params`,
entityAnalytics: {
riskScorePrerequisites: `${SECURITY_SOLUTION_DOCS}ers-requirements.html`,
entityRiskScoring: `${SECURITY_SOLUTION_DOCS}entity-risk-scoring.html`,
assetCriticality: `${SECURITY_SOLUTION_DOCS}asset-criticality.html`,
riskScorePrerequisites: `${ELASTIC_DOCS}solutions/security/advanced-entity-analytics/entity-risk-scoring-requirements`,
entityRiskScoring: `${ELASTIC_DOCS}solutions/security/advanced-entity-analytics/entity-risk-scoring`,
assetCriticality: `${ELASTIC_DOCS}solutions/security/advanced-entity-analytics/asset-criticality`,
},
detectionEngineOverview: `${SECURITY_SOLUTION_DOCS}detection-engine-overview.html`,
aiAssistant: `${SECURITY_SOLUTION_DOCS}security-assistant.html`,
signalsMigrationApi: `${SECURITY_SOLUTION_DOCS}signals-migration-api.html`,
legacyEndpointManagementApiDeprecations: `${KIBANA_DOCS}breaking-changes-summary.html#breaking-199598`,
legacyRuleManagementBulkApiDeprecations: `${KIBANA_DOCS}breaking-changes-summary.html#breaking-207091`,
siemMigrations: `${SECURITY_SOLUTION_DOCS}siem-migration.html`,
llmPerformanceMatrix: `${SECURITY_SOLUTION_DOCS}llm-performance-matrix.html`,
detectionEngineOverview: `${ELASTIC_DOCS}solutions/security/detect-and-alert`,
aiAssistant: `${ELASTIC_DOCS}solutions/security/ai/ai-assistant`,
signalsMigrationApi: isServerless
? `${KIBANA_APIS}group/endpoint-security-detections-api`
: `${KIBANA_SERVERLESS_APIS}group/endpoint-security-detections-api`,
siemMigrations: `${ELASTIC_DOCS}solutions/security/get-started/automatic-migration`,
llmPerformanceMatrix: `${ELASTIC_DOCS}solutions/security/ai/large-language-model-performance-matrix`,
},
query: {
eql: `${ELASTICSEARCH_DOCS}eql.html`,
Expand Down Expand Up @@ -679,20 +681,19 @@ export const getDocLinks = ({ kibanaBranch, buildFlavor }: GetDocLinkOptions): D
browserSandboxDependencies: `${ELASTIC_DOCS}explore-analyze/report-and-share/reporting-troubleshooting-pdf#reporting-troubleshooting-sandbox-dependency`,
},
security: {
apiKeyServiceSettings: `${ELASTICSEARCH_DOCS}security-settings.html#api-key-service-settings`,
clusterPrivileges: `${ELASTICSEARCH_DOCS}security-privileges.html#privileges-list-cluster`,
definingRoles: `${ELASTICSEARCH_DOCS}defining-roles.html`,
elasticsearchSettings: `${ELASTICSEARCH_DOCS}security-settings.html`,
elasticsearchEnableSecurity: `${ELASTICSEARCH_DOCS}configuring-stack-security.html`,
elasticsearchEnableApiKeys: `${ELASTICSEARCH_DOCS}security-settings.html#api-key-service-settings`,
indicesPrivileges: `${ELASTICSEARCH_DOCS}security-privileges.html#privileges-list-indices`,
kibanaTLS: `${ELASTICSEARCH_DOCS}security-basic-setup.html#encrypt-internode-communication`,
kibanaPrivileges: `${KIBANA_DOCS}kibana-privileges.html`,
mappingRoles: `${ELASTICSEARCH_DOCS}mapping-roles.html`,
mappingRolesFieldRules: `${ELASTICSEARCH_DOCS}role-mapping-resources.html#mapping-roles-rule-field`,
runAsPrivilege: `${ELASTICSEARCH_DOCS}security-privileges.html#_run_as_privilege`,
deprecatedV1Endpoints: `${KIBANA_DOCS}breaking-changes-summary.html#breaking-199656`,
enableElasticSearchSecurityFeatures: `${ELASTICSEARCH_DOCS}security-minimal-setup.html#_enable_elasticsearch_security_features`,
apiKeyServiceSettings: `${ELASTIC_DOCS}reference/elasticsearch/configuration-reference/security-settings#api-key-service-settings`,
clusterPrivileges: `${ELASTIC_DOCS}reference/elasticsearch/security-privileges#privileges-list-cluster`,
definingRoles: `${ELASTIC_DOCS}deploy-manage/users-roles/cluster-or-deployment-auth/defining-roles`,
elasticsearchSettings: `${ELASTIC_DOCS}reference/elasticsearch/configuration-reference/security-settings`,
elasticsearchEnableSecurity: `${ELASTIC_DOCS}deploy-manage/deploy/self-managed/installing-elasticsearch`,
elasticsearchEnableApiKeys: `${ELASTIC_DOCS}reference/elasticsearch/configuration-reference/security-settings#api-key-service-settings`,
indicesPrivileges: `${ELASTIC_DOCS}reference/elasticsearch/security-privileges#privileges-list-indices`,
kibanaTLS: `${ELASTIC_DOCS}deploy-manage/security/set-up-basic-security#encrypt-internode-communication`,
kibanaPrivileges: `${ELASTIC_DOCS}deploy-manage/users-roles/cluster-or-deployment-auth/kibana-privileges`,
mappingRoles: `${ELASTIC_DOCS}deploy-manage/users-roles/cluster-or-deployment-auth/mapping-users-groups-to-roles`,
mappingRolesFieldRules: `${ELASTIC_DOCS}deploy-manage/users-roles/cluster-or-deployment-auth/role-mapping-resources#mapping-roles-rule-field`,
runAsPrivilege: `${ELASTIC_DOCS}reference/elasticsearch/security-privileges#_run_as_privilege`,
enableElasticSearchSecurityFeatures: `${ELASTIC_DOCS}deploy-manage/security/set-up-minimal-security#_enable_es_security_features`,
},
spaces: {
kibanaLegacyUrlAliases: `${KIBANA_DOCS}legacy-url-aliases.html`,
Expand Down Expand Up @@ -999,7 +1000,7 @@ export const getDocLinks = ({ kibanaBranch, buildFlavor }: GetDocLinkOptions): D
gettingStartedSearch: `${SERVERLESS_DOCS}elasticsearch-get-started.html`,
},
serverlessSecurity: {
apiKeyPrivileges: `${SERVERLESS_DOCS}api-keys.html#api-keys-restrict-privileges`,
apiKeyPrivileges: `${ELASTIC_DOCS}deploy-manage/api-keys/serverless-project-api-keys#api-keys-restrict-privileges`,
},
synthetics: {
featureRoles: isServerless
Expand Down
3 changes: 0 additions & 3 deletions src/platform/packages/shared/kbn-doc-links/src/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -325,8 +325,6 @@ export interface DocLinks {
};
readonly detectionEngineOverview: string;
readonly signalsMigrationApi: string;
readonly legacyEndpointManagementApiDeprecations: string;
readonly legacyRuleManagementBulkApiDeprecations: string;
readonly siemMigrations: string;
readonly llmPerformanceMatrix: string;
};
Expand Down Expand Up @@ -463,7 +461,6 @@ export interface DocLinks {
mappingRoles: string;
mappingRolesFieldRules: string;
runAsPrivilege: string;
deprecatedV1Endpoints: string;
enableElasticSearchSecurityFeatures: string;
}>;
readonly spaces: Readonly<{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -93,13 +93,9 @@ describe('AiAssistantSelectionPage', () => {

it('renders the documentation links correctly', () => {
renderComponent(testCapabilities);

expect(
screen.getByTestId('pluginsAiAssistantSelectionPageDocumentationLink')
).toHaveAttribute(
'href',
'https://www.elastic.co/guide/en/observability/current/obs-ai-assistant.html'
);
const docLink = screen.getByTestId('pluginsAiAssistantSelectionPageDocumentationLink');
expect(docLink).toBeInTheDocument();
expect(docLink.getAttribute('href')).toContain('obs-ai-assistant');
});
});
});
Expand Down Expand Up @@ -139,13 +135,9 @@ describe('AiAssistantSelectionPage', () => {

it('renders the documentation links correctly', () => {
renderComponent(testCapabilities);

expect(
screen.getByTestId('securityAiAssistantSelectionPageDocumentationLink')
).toHaveAttribute(
'href',
'https://www.elastic.co/guide/en/security/current/security-assistant.html'
);
const docLink = screen.getByTestId('securityAiAssistantSelectionPageDocumentationLink');
expect(docLink).toBeInTheDocument();
expect(docLink.getAttribute('href')).toContain('ai-assistant');
});
});
});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,14 @@
export interface FeatureElasticsearchPrivileges {
/**
* A set of Elasticsearch cluster privileges which are required for this feature to be enabled.
* See https://www.elastic.co/guide/en/elasticsearch/reference/current/security-privileges.html
* See https://www.elastic.co/docs/reference/elasticsearch/security-privileges
*
*/
requiredClusterPrivileges: string[];

/**
* A set of Elasticsearch index privileges which are required for this feature to be enabled, keyed on index name or pattern.
* See https://www.elastic.co/guide/en/elasticsearch/reference/current/security-privileges.html#privileges-list-indices
* See https://www.elastic.co/docs/reference/elasticsearch/security-privileges#privileges-list-indices
*
* @example
*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ describe('BidirectionalIntegrationsBanner', () => {
const docLink = renderResult.getByTestId('bidirectionalIntegrationDocLink');

expect(docLink).toBeInTheDocument();
expect(docLink.getAttribute('href')).toContain('third-party-actions.html');
expect(docLink.getAttribute('href')).toContain('third-party-response-actions');
});

it('should remove the callout when the dismiss button is clicked', async () => {
Expand Down

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
Expand Up @@ -189,7 +189,7 @@ describe('spacesManagementApp', () => {
class="css-qvyf25-redirectAppLinksStyles"
data-test-subj="kbnRedirectAppLink"
>
Spaces Edit Page: {"capabilities":{"catalogue":{},"management":{},"navLinks":{}},"serverBasePath":"","http":{"basePath":{"basePath":"","serverBasePath":"","assetsHrefBase":""},"anonymousPaths":{},"externalUrl":{},"staticAssets":{}},"overlays":{"banners":{}},"notifications":{"toasts":{}},"userProfile":{},"theme":{"theme$":{}},"i18n":{},"logger":{"context":[]},"spacesManager":{"onActiveSpaceChange$":{}},"spaceId":"some-space","history":{"action":"PUSH","length":1,"location":{"pathname":"/edit/some-space","search":"","hash":""}},"allowFeatureVisibility":true,"allowSolutionVisibility":true,"enableSecurityLink":"https://www.elastic.co/guide/en/elasticsearch/reference/mocked-test-branch/security-minimal-setup.html#_enable_elasticsearch_security_features"}
Spaces Edit Page: {"capabilities":{"catalogue":{},"management":{},"navLinks":{}},"serverBasePath":"","http":{"basePath":{"basePath":"","serverBasePath":"","assetsHrefBase":""},"anonymousPaths":{},"externalUrl":{},"staticAssets":{}},"overlays":{"banners":{}},"notifications":{"toasts":{}},"userProfile":{},"theme":{"theme$":{}},"i18n":{},"logger":{"context":[]},"spacesManager":{"onActiveSpaceChange$":{}},"spaceId":"some-space","history":{"action":"PUSH","length":1,"location":{"pathname":"/edit/some-space","search":"","hash":""}},"allowFeatureVisibility":true,"allowSolutionVisibility":true,"enableSecurityLink":"https://www.elastic.co/docs/deploy-manage/security/set-up-minimal-security#_enable_es_security_features"}
</div>
</div>
`);
Expand Down
Loading
Loading