diff --git a/docs/development/core/public/kibana-plugin-core-public.doclinksstart.links.md b/docs/development/core/public/kibana-plugin-core-public.doclinksstart.links.md
index 5c2c1d5317543..7669b9b644916 100644
--- a/docs/development/core/public/kibana-plugin-core-public.doclinksstart.links.md
+++ b/docs/development/core/public/kibana-plugin-core-public.doclinksstart.links.md
@@ -24,6 +24,9 @@ readonly links: {
readonly canvas: {
readonly guide: string;
};
+ readonly cloud: {
+ readonly indexManagement: string;
+ };
readonly dashboard: {
readonly guide: string;
readonly drilldowns: string;
@@ -55,10 +58,64 @@ readonly links: {
readonly install: string;
readonly start: string;
};
+ readonly appSearch: {
+ readonly apiRef: string;
+ readonly apiClients: string;
+ readonly apiKeys: string;
+ readonly authentication: string;
+ readonly crawlRules: string;
+ readonly curations: string;
+ readonly duplicateDocuments: string;
+ readonly entryPoints: string;
+ readonly guide: string;
+ readonly indexingDocuments: string;
+ readonly indexingDocumentsSchema: string;
+ readonly logSettings: string;
+ readonly metaEngines: string;
+ readonly nativeAuth: string;
+ readonly precisionTuning: string;
+ readonly relevanceTuning: string;
+ readonly resultSettings: string;
+ readonly searchUI: string;
+ readonly security: string;
+ readonly standardAuth: string;
+ readonly synonyms: string;
+ readonly webCrawler: string;
+ readonly webCrawlerEventLogs: string;
+ };
readonly enterpriseSearch: {
- readonly base: string;
- readonly appSearchBase: string;
- readonly workplaceSearchBase: string;
+ readonly configuration: string;
+ readonly licenseManagement: string;
+ readonly mailService: string;
+ readonly usersAccess: string;
+ };
+ readonly workplaceSearch: {
+ readonly box: string;
+ readonly confluenceCloud: string;
+ readonly confluenceServer: string;
+ readonly customSources: string;
+ readonly customSourcePermissions: string;
+ readonly documentPermissions: string;
+ readonly dropbox: string;
+ readonly externalIdentities: string;
+ readonly gitHub: string;
+ readonly gettingStarted: string;
+ readonly gmail: string;
+ readonly googleDrive: string;
+ readonly indexingSchedule: string;
+ readonly jiraCloud: string;
+ readonly jiraServer: string;
+ readonly nativeAuth: string;
+ readonly oneDrive: string;
+ readonly permissions: string;
+ readonly salesforce: string;
+ readonly security: string;
+ readonly serviceNow: string;
+ readonly sharePoint: string;
+ readonly slack: string;
+ readonly standardAuth: string;
+ readonly synch: string;
+ readonly zendesk: string;
};
readonly heartbeat: {
readonly base: string;
diff --git a/docs/development/core/public/kibana-plugin-core-public.doclinksstart.md b/docs/development/core/public/kibana-plugin-core-public.doclinksstart.md
index cbfe53d3eaea0..6aa528d4f04d1 100644
--- a/docs/development/core/public/kibana-plugin-core-public.doclinksstart.md
+++ b/docs/development/core/public/kibana-plugin-core-public.doclinksstart.md
@@ -17,5 +17,5 @@ export interface DocLinksStart
| --- | --- | --- |
| [DOC\_LINK\_VERSION](./kibana-plugin-core-public.doclinksstart.doc_link_version.md) | string | |
| [ELASTIC\_WEBSITE\_URL](./kibana-plugin-core-public.doclinksstart.elastic_website_url.md) | string | |
-| [links](./kibana-plugin-core-public.doclinksstart.links.md) | { readonly settings: string; readonly elasticStackGetStarted: string; readonly upgrade: { readonly upgradingElasticStack: string; }; readonly apm: { readonly kibanaSettings: string; readonly supportedServiceMaps: string; readonly customLinks: string; readonly droppedTransactionSpans: string; readonly upgrading: string; readonly metaData: string; }; readonly canvas: { readonly guide: string; }; readonly dashboard: { readonly guide: string; readonly drilldowns: string; readonly drilldownsTriggerPicker: string; readonly urlDrilldownTemplateSyntax: string; readonly urlDrilldownVariables: string; }; readonly discover: Record<string, string>; readonly filebeat: { readonly base: string; readonly installation: string; readonly configuration: string; readonly elasticsearchOutput: string; readonly elasticsearchModule: string; readonly startup: string; readonly exportedFields: string; readonly suricataModule: string; readonly zeekModule: string; }; readonly auditbeat: { readonly base: string; readonly auditdModule: string; readonly systemModule: string; }; readonly metricbeat: { readonly base: string; readonly configure: string; readonly httpEndpoint: string; readonly install: string; readonly start: string; }; readonly enterpriseSearch: { readonly base: string; readonly appSearchBase: string; readonly workplaceSearchBase: string; }; readonly heartbeat: { readonly base: string; }; readonly libbeat: { readonly getStarted: string; }; readonly logstash: { readonly base: string; }; readonly functionbeat: { readonly base: string; }; readonly winlogbeat: { readonly base: string; }; readonly aggs: { readonly composite: string; readonly composite\_missing\_bucket: string; readonly date\_histogram: string; readonly date\_range: string; readonly date\_format\_pattern: string; readonly filter: string; readonly filters: string; readonly geohash\_grid: string; readonly histogram: string; readonly ip\_range: string; readonly range: string; readonly significant\_terms: string; readonly terms: string; readonly terms\_doc\_count\_error: string; readonly avg: string; readonly avg\_bucket: string; readonly max\_bucket: string; readonly min\_bucket: string; readonly sum\_bucket: string; readonly cardinality: string; readonly count: string; readonly cumulative\_sum: string; readonly derivative: string; readonly geo\_bounds: string; readonly geo\_centroid: string; readonly max: string; readonly median: string; readonly min: string; readonly moving\_avg: string; readonly percentile\_ranks: string; readonly serial\_diff: string; readonly std\_dev: string; readonly sum: string; readonly top\_hits: string; }; readonly runtimeFields: { readonly overview: string; readonly mapping: string; }; readonly scriptedFields: { readonly scriptFields: string; readonly scriptAggs: string; readonly painless: string; readonly painlessApi: string; readonly painlessLangSpec: string; readonly painlessSyntax: string; readonly painlessWalkthrough: string; readonly luceneExpressions: string; }; readonly search: { readonly sessions: string; readonly sessionLimits: string; }; readonly indexPatterns: { readonly introduction: string; readonly fieldFormattersNumber: string; readonly fieldFormattersString: string; readonly runtimeFields: string; }; readonly addData: string; readonly kibana: string; readonly upgradeAssistant: { readonly overview: string; readonly batchReindex: string; readonly remoteReindex: string; }; readonly rollupJobs: string; readonly elasticsearch: Record<string, string>; readonly siem: { readonly privileges: string; readonly guide: string; readonly gettingStarted: string; readonly ml: string; readonly ruleChangeLog: string; readonly detectionsReq: string; readonly networkMap: string; readonly troubleshootGaps: string; }; readonly securitySolution: { readonly trustedApps: string; }; readonly query: { readonly eql: string; readonly kueryQuerySyntax: string; readonly luceneQuerySyntax: string; readonly percolate: string; readonly queryDsl: string; }; readonly date: { readonly dateMath: string; readonly dateMathIndexNames: string; }; readonly management: Record<string, string>; readonly ml: Record<string, string>; readonly transforms: Record<string, string>; readonly visualize: Record<string, string>; readonly apis: Readonly<{ bulkIndexAlias: string; byteSizeUnits: string; createAutoFollowPattern: string; createFollower: string; createIndex: string; createSnapshotLifecyclePolicy: string; createRoleMapping: string; createRoleMappingTemplates: string; createRollupJobsRequest: string; createApiKey: string; createPipeline: string; createTransformRequest: string; cronExpressions: string; executeWatchActionModes: string; indexExists: string; openIndex: string; putComponentTemplate: string; painlessExecute: string; painlessExecuteAPIContexts: string; putComponentTemplateMetadata: string; putSnapshotLifecyclePolicy: string; putIndexTemplateV1: string; putWatch: string; simulatePipeline: string; timeUnits: string; updateTransform: string; }>; readonly observability: Readonly<{ guide: string; infrastructureThreshold: string; logsThreshold: string; metricsThreshold: string; monitorStatus: string; monitorUptime: string; tlsCertificate: string; uptimeDurationAnomaly: string; }>; readonly alerting: Record<string, string>; readonly maps: Readonly<{ guide: string; importGeospatialPrivileges: string; gdalTutorial: string; }>; readonly monitoring: Record<string, string>; readonly security: Readonly<{ apiKeyServiceSettings: string; clusterPrivileges: string; elasticsearchSettings: string; elasticsearchEnableSecurity: string; elasticsearchEnableApiKeys: string; indicesPrivileges: string; kibanaTLS: string; kibanaPrivileges: string; mappingRoles: string; mappingRolesFieldRules: string; runAsPrivilege: string; }>; readonly spaces: Readonly<{ kibanaLegacyUrlAliases: string; kibanaDisableLegacyUrlAliasesApi: string; }>; readonly watcher: Record<string, string>; readonly ccs: Record<string, string>; readonly plugins: Record<string, string>; readonly snapshotRestore: Record<string, string>; readonly ingest: Record<string, string>; readonly fleet: Readonly<{ beatsAgentComparison: string; guide: string; fleetServer: string; fleetServerAddFleetServer: string; settings: string; settingsFleetServerHostSettings: string; settingsFleetServerProxySettings: string; troubleshooting: string; elasticAgent: string; datastreams: string; datastreamsNamingScheme: string; installElasticAgent: string; installElasticAgentStandalone: string; upgradeElasticAgent: string; upgradeElasticAgent712lower: string; learnMoreBlog: string; apiKeysLearnMore: string; onPremRegistry: string; }>; readonly ecs: { readonly guide: string; }; readonly clients: { readonly guide: string; readonly goOverview: string; readonly javaIndex: string; readonly jsIntro: string; readonly netGuide: string; readonly perlGuide: string; readonly phpGuide: string; readonly pythonGuide: string; readonly rubyOverview: string; readonly rustGuide: string; }; readonly endpoints: { readonly troubleshooting: string; }; } | |
+| [links](./kibana-plugin-core-public.doclinksstart.links.md) | { readonly settings: string; readonly elasticStackGetStarted: string; readonly upgrade: { readonly upgradingElasticStack: string; }; readonly apm: { readonly kibanaSettings: string; readonly supportedServiceMaps: string; readonly customLinks: string; readonly droppedTransactionSpans: string; readonly upgrading: string; readonly metaData: string; }; readonly canvas: { readonly guide: string; }; readonly cloud: { readonly indexManagement: string; }; readonly dashboard: { readonly guide: string; readonly drilldowns: string; readonly drilldownsTriggerPicker: string; readonly urlDrilldownTemplateSyntax: string; readonly urlDrilldownVariables: string; }; readonly discover: Record<string, string>; readonly filebeat: { readonly base: string; readonly installation: string; readonly configuration: string; readonly elasticsearchOutput: string; readonly elasticsearchModule: string; readonly startup: string; readonly exportedFields: string; readonly suricataModule: string; readonly zeekModule: string; }; readonly auditbeat: { readonly base: string; readonly auditdModule: string; readonly systemModule: string; }; readonly metricbeat: { readonly base: string; readonly configure: string; readonly httpEndpoint: string; readonly install: string; readonly start: string; }; readonly appSearch: { readonly apiRef: string; readonly apiClients: string; readonly apiKeys: string; readonly authentication: string; readonly crawlRules: string; readonly curations: string; readonly duplicateDocuments: string; readonly entryPoints: string; readonly guide: string; readonly indexingDocuments: string; readonly indexingDocumentsSchema: string; readonly logSettings: string; readonly metaEngines: string; readonly nativeAuth: string; readonly precisionTuning: string; readonly relevanceTuning: string; readonly resultSettings: string; readonly searchUI: string; readonly security: string; readonly standardAuth: string; readonly synonyms: string; readonly webCrawler: string; readonly webCrawlerEventLogs: string; }; readonly enterpriseSearch: { readonly configuration: string; readonly licenseManagement: string; readonly mailService: string; readonly usersAccess: string; }; readonly workplaceSearch: { readonly box: string; readonly confluenceCloud: string; readonly confluenceServer: string; readonly customSources: string; readonly customSourcePermissions: string; readonly documentPermissions: string; readonly dropbox: string; readonly externalIdentities: string; readonly gitHub: string; readonly gettingStarted: string; readonly gmail: string; readonly googleDrive: string; readonly indexingSchedule: string; readonly jiraCloud: string; readonly jiraServer: string; readonly nativeAuth: string; readonly oneDrive: string; readonly permissions: string; readonly salesforce: string; readonly security: string; readonly serviceNow: string; readonly sharePoint: string; readonly slack: string; readonly standardAuth: string; readonly synch: string; readonly zendesk: string; }; readonly heartbeat: { readonly base: string; }; readonly libbeat: { readonly getStarted: string; }; readonly logstash: { readonly base: string; }; readonly functionbeat: { readonly base: string; }; readonly winlogbeat: { readonly base: string; }; readonly aggs: { readonly composite: string; readonly composite\_missing\_bucket: string; readonly date\_histogram: string; readonly date\_range: string; readonly date\_format\_pattern: string; readonly filter: string; readonly filters: string; readonly geohash\_grid: string; readonly histogram: string; readonly ip\_range: string; readonly range: string; readonly significant\_terms: string; readonly terms: string; readonly terms\_doc\_count\_error: string; readonly avg: string; readonly avg\_bucket: string; readonly max\_bucket: string; readonly min\_bucket: string; readonly sum\_bucket: string; readonly cardinality: string; readonly count: string; readonly cumulative\_sum: string; readonly derivative: string; readonly geo\_bounds: string; readonly geo\_centroid: string; readonly max: string; readonly median: string; readonly min: string; readonly moving\_avg: string; readonly percentile\_ranks: string; readonly serial\_diff: string; readonly std\_dev: string; readonly sum: string; readonly top\_hits: string; }; readonly runtimeFields: { readonly overview: string; readonly mapping: string; }; readonly scriptedFields: { readonly scriptFields: string; readonly scriptAggs: string; readonly painless: string; readonly painlessApi: string; readonly painlessLangSpec: string; readonly painlessSyntax: string; readonly painlessWalkthrough: string; readonly luceneExpressions: string; }; readonly search: { readonly sessions: string; readonly sessionLimits: string; }; readonly indexPatterns: { readonly introduction: string; readonly fieldFormattersNumber: string; readonly fieldFormattersString: string; readonly runtimeFields: string; }; readonly addData: string; readonly kibana: string; readonly upgradeAssistant: { readonly overview: string; readonly batchReindex: string; readonly remoteReindex: string; }; readonly rollupJobs: string; readonly elasticsearch: Record<string, string>; readonly siem: { readonly privileges: string; readonly guide: string; readonly gettingStarted: string; readonly ml: string; readonly ruleChangeLog: string; readonly detectionsReq: string; readonly networkMap: string; readonly troubleshootGaps: string; }; readonly securitySolution: { readonly trustedApps: string; }; readonly query: { readonly eql: string; readonly kueryQuerySyntax: string; readonly luceneQuerySyntax: string; readonly percolate: string; readonly queryDsl: string; }; readonly date: { readonly dateMath: string; readonly dateMathIndexNames: string; }; readonly management: Record<string, string>; readonly ml: Record<string, string>; readonly transforms: Record<string, string>; readonly visualize: Record<string, string>; readonly apis: Readonly<{ bulkIndexAlias: string; byteSizeUnits: string; createAutoFollowPattern: string; createFollower: string; createIndex: string; createSnapshotLifecyclePolicy: string; createRoleMapping: string; createRoleMappingTemplates: string; createRollupJobsRequest: string; createApiKey: string; createPipeline: string; createTransformRequest: string; cronExpressions: string; executeWatchActionModes: string; indexExists: string; openIndex: string; putComponentTemplate: string; painlessExecute: string; painlessExecuteAPIContexts: string; putComponentTemplateMetadata: string; putSnapshotLifecyclePolicy: string; putIndexTemplateV1: string; putWatch: string; simulatePipeline: string; timeUnits: string; updateTransform: string; }>; readonly observability: Readonly<{ guide: string; infrastructureThreshold: string; logsThreshold: string; metricsThreshold: string; monitorStatus: string; monitorUptime: string; tlsCertificate: string; uptimeDurationAnomaly: string; }>; readonly alerting: Record<string, string>; readonly maps: Readonly<{ guide: string; importGeospatialPrivileges: string; gdalTutorial: string; }>; readonly monitoring: Record<string, string>; readonly security: Readonly<{ apiKeyServiceSettings: string; clusterPrivileges: string; elasticsearchSettings: string; elasticsearchEnableSecurity: string; elasticsearchEnableApiKeys: string; indicesPrivileges: string; kibanaTLS: string; kibanaPrivileges: string; mappingRoles: string; mappingRolesFieldRules: string; runAsPrivilege: string; }>; readonly spaces: Readonly<{ kibanaLegacyUrlAliases: string; kibanaDisableLegacyUrlAliasesApi: string; }>; readonly watcher: Record<string, string>; readonly ccs: Record<string, string>; readonly plugins: Record<string, string>; readonly snapshotRestore: Record<string, string>; readonly ingest: Record<string, string>; readonly fleet: Readonly<{ beatsAgentComparison: string; guide: string; fleetServer: string; fleetServerAddFleetServer: string; settings: string; settingsFleetServerHostSettings: string; settingsFleetServerProxySettings: string; troubleshooting: string; elasticAgent: string; datastreams: string; datastreamsNamingScheme: string; installElasticAgent: string; installElasticAgentStandalone: string; upgradeElasticAgent: string; upgradeElasticAgent712lower: string; learnMoreBlog: string; apiKeysLearnMore: string; onPremRegistry: string; }>; readonly ecs: { readonly guide: string; }; readonly clients: { readonly guide: string; readonly goOverview: string; readonly javaIndex: string; readonly jsIntro: string; readonly netGuide: string; readonly perlGuide: string; readonly phpGuide: string; readonly pythonGuide: string; readonly rubyOverview: string; readonly rustGuide: string; }; readonly endpoints: { readonly troubleshooting: string; }; } | |
diff --git a/src/core/public/doc_links/doc_links_service.ts b/src/core/public/doc_links/doc_links_service.ts
index 92b4c815f2249..5bc7691d6a40f 100644
--- a/src/core/public/doc_links/doc_links_service.ts
+++ b/src/core/public/doc_links/doc_links_service.ts
@@ -30,6 +30,9 @@ export class DocLinksService {
const APM_DOCS = `${ELASTIC_WEBSITE_URL}guide/en/apm/`;
const SECURITY_SOLUTION_DOCS = `${ELASTIC_WEBSITE_URL}guide/en/security/${DOC_LINK_VERSION}/`;
const STACK_GETTING_STARTED = `${ELASTIC_WEBSITE_URL}guide/en/elastic-stack-get-started/${DOC_LINK_VERSION}/`;
+ const APP_SEARCH_DOCS = `${ELASTIC_WEBSITE_URL}guide/en/app-search/${DOC_LINK_VERSION}/`;
+ const ENTERPRISE_SEARCH_DOCS = `${ELASTIC_WEBSITE_URL}guide/en/enterprise-search/${DOC_LINK_VERSION}/`;
+ const WORKPLACE_SEARCH_DOCS = `${ELASTIC_WEBSITE_URL}guide/en/workplace-search/${DOC_LINK_VERSION}/`;
return deepFreeze({
DOC_LINK_VERSION,
@@ -51,6 +54,9 @@ export class DocLinksService {
canvas: {
guide: `${KIBANA_DOCS}canvas.html`,
},
+ cloud: {
+ indexManagement: `${ELASTIC_WEBSITE_URL}/guide/en/cloud/current/ec-configure-index-management.html`,
+ },
dashboard: {
guide: `${KIBANA_DOCS}dashboard.html`,
drilldowns: `${KIBANA_DOCS}drilldowns.html`,
@@ -77,10 +83,64 @@ export class DocLinksService {
auditdModule: `${ELASTIC_WEBSITE_URL}guide/en/beats/auditbeat/${DOC_LINK_VERSION}/auditbeat-module-auditd.html`,
systemModule: `${ELASTIC_WEBSITE_URL}guide/en/beats/auditbeat/${DOC_LINK_VERSION}/auditbeat-module-system.html`,
},
+ appSearch: {
+ apiRef: `${APP_SEARCH_DOCS}api-reference.html`,
+ apiClients: `${APP_SEARCH_DOCS}api-clients.html`,
+ apiKeys: `${APP_SEARCH_DOCS}authentication.html#authentication-api-keys`,
+ authentication: `${APP_SEARCH_DOCS}authentication.html`,
+ crawlRules: `${APP_SEARCH_DOCS}crawl-web-content.html#crawl-web-content-manage-crawl-rules`,
+ curations: `${APP_SEARCH_DOCS}curations-guide.html`,
+ duplicateDocuments: `${APP_SEARCH_DOCS}web-crawler-reference.html#web-crawler-reference-content-deduplication`,
+ entryPoints: `${APP_SEARCH_DOCS}crawl-web-content.html#crawl-web-content-manage-entry-points`,
+ guide: `${APP_SEARCH_DOCS}index.html`,
+ indexingDocuments: `${APP_SEARCH_DOCS}indexing-documents-guide.html`,
+ indexingDocumentsSchema: `${APP_SEARCH_DOCS}indexing-documents-guide.html#indexing-documents-guide-schema`,
+ logSettings: `${APP_SEARCH_DOCS}logs.html`,
+ metaEngines: `${APP_SEARCH_DOCS}meta-engines-guide.html`,
+ nativeAuth: `${APP_SEARCH_DOCS}security-and-users.html#app-search-self-managed-security-and-user-management-elasticsearch-native-realm`,
+ precisionTuning: `${APP_SEARCH_DOCS}precision-tuning.html`,
+ relevanceTuning: `${APP_SEARCH_DOCS}relevance-tuning-guide.html`,
+ resultSettings: `${APP_SEARCH_DOCS}result-settings-guide.html`,
+ searchUI: `${APP_SEARCH_DOCS}reference-ui-guide.html`,
+ security: `${APP_SEARCH_DOCS}security-and-users.html`,
+ standardAuth: `${APP_SEARCH_DOCS}security-and-users.html#app-search-self-managed-security-and-user-management-standard`,
+ synonyms: `${APP_SEARCH_DOCS}synonyms-guide.html`,
+ webCrawler: `${APP_SEARCH_DOCS}web-crawler.html`,
+ webCrawlerEventLogs: `${APP_SEARCH_DOCS}view-web-crawler-events-logs.html`,
+ },
enterpriseSearch: {
- base: `${ELASTIC_WEBSITE_URL}guide/en/enterprise-search/${DOC_LINK_VERSION}`,
- appSearchBase: `${ELASTIC_WEBSITE_URL}guide/en/app-search/${DOC_LINK_VERSION}`,
- workplaceSearchBase: `${ELASTIC_WEBSITE_URL}guide/en/workplace-search/${DOC_LINK_VERSION}`,
+ configuration: `${ENTERPRISE_SEARCH_DOCS}configuration.html`,
+ licenseManagement: `${ENTERPRISE_SEARCH_DOCS}license-management.html`,
+ mailService: `${ENTERPRISE_SEARCH_DOCS}mailer-configuration.html`,
+ usersAccess: `${ENTERPRISE_SEARCH_DOCS}users-access.html`,
+ },
+ workplaceSearch: {
+ box: `${WORKPLACE_SEARCH_DOCS}workplace-search-box-connector.html`,
+ confluenceCloud: `${WORKPLACE_SEARCH_DOCS}workplace-search-confluence-cloud-connector.html`,
+ confluenceServer: `${WORKPLACE_SEARCH_DOCS}workplace-search-confluence-server-connector.html`,
+ customSources: `${WORKPLACE_SEARCH_DOCS}workplace-search-custom-api-sources.html`,
+ customSourcePermissions: `${WORKPLACE_SEARCH_DOCS}workplace-search-custom-api-sources.html#custom-api-source-document-level-access-control`,
+ documentPermissions: `${WORKPLACE_SEARCH_DOCS}workplace-search-sources-document-permissions.html`,
+ dropbox: `${WORKPLACE_SEARCH_DOCS}workplace-search-dropbox-connector.html`,
+ externalIdentities: `${WORKPLACE_SEARCH_DOCS}workplace-search-external-identities-api.html`,
+ gettingStarted: `${WORKPLACE_SEARCH_DOCS}workplace-search-getting-started.html`,
+ gitHub: `${WORKPLACE_SEARCH_DOCS}workplace-search-github-connector.html`,
+ gmail: `${WORKPLACE_SEARCH_DOCS}workplace-search-gmail-connector.html`,
+ googleDrive: `${WORKPLACE_SEARCH_DOCS}workplace-search-google-drive-connector.html`,
+ indexingSchedule: `${WORKPLACE_SEARCH_DOCS}workplace-search-customizing-indexing-rules.html#_indexing_schedule`,
+ jiraCloud: `${WORKPLACE_SEARCH_DOCS}workplace-search-jira-cloud-connector.html`,
+ jiraServer: `${WORKPLACE_SEARCH_DOCS}workplace-search-jira-server-connector.html`,
+ nativeAuth: `${WORKPLACE_SEARCH_DOCS}workplace-search-security.html#elasticsearch-native-realm`,
+ oneDrive: `${WORKPLACE_SEARCH_DOCS}workplace-search-onedrive-connector.html`,
+ permissions: `${WORKPLACE_SEARCH_DOCS}workplace-search-permissions.html#organizational-sources-private-sources`,
+ salesforce: `${WORKPLACE_SEARCH_DOCS}workplace-search-salesforce-connector.html`,
+ security: `${WORKPLACE_SEARCH_DOCS}workplace-search-security.html`,
+ serviceNow: `${WORKPLACE_SEARCH_DOCS}workplace-search-servicenow-connector.html`,
+ sharePoint: `${WORKPLACE_SEARCH_DOCS}workplace-search-sharepoint-online-connector.html`,
+ slack: `${WORKPLACE_SEARCH_DOCS}workplace-search-slack-connector.html`,
+ standardAuth: `${WORKPLACE_SEARCH_DOCS}workplace-search-security.html#standard`,
+ synch: `${WORKPLACE_SEARCH_DOCS}workplace-search-customizing-indexing-rules.html`,
+ zendesk: `${WORKPLACE_SEARCH_DOCS}workplace-search-zendesk-connector.html`,
},
metricbeat: {
base: `${ELASTIC_WEBSITE_URL}guide/en/beats/metricbeat/${DOC_LINK_VERSION}`,
@@ -550,6 +610,9 @@ export interface DocLinksStart {
readonly canvas: {
readonly guide: string;
};
+ readonly cloud: {
+ readonly indexManagement: string;
+ };
readonly dashboard: {
readonly guide: string;
readonly drilldowns: string;
@@ -581,10 +644,64 @@ export interface DocLinksStart {
readonly install: string;
readonly start: string;
};
+ readonly appSearch: {
+ readonly apiRef: string;
+ readonly apiClients: string;
+ readonly apiKeys: string;
+ readonly authentication: string;
+ readonly crawlRules: string;
+ readonly curations: string;
+ readonly duplicateDocuments: string;
+ readonly entryPoints: string;
+ readonly guide: string;
+ readonly indexingDocuments: string;
+ readonly indexingDocumentsSchema: string;
+ readonly logSettings: string;
+ readonly metaEngines: string;
+ readonly nativeAuth: string;
+ readonly precisionTuning: string;
+ readonly relevanceTuning: string;
+ readonly resultSettings: string;
+ readonly searchUI: string;
+ readonly security: string;
+ readonly standardAuth: string;
+ readonly synonyms: string;
+ readonly webCrawler: string;
+ readonly webCrawlerEventLogs: string;
+ };
readonly enterpriseSearch: {
- readonly base: string;
- readonly appSearchBase: string;
- readonly workplaceSearchBase: string;
+ readonly configuration: string;
+ readonly licenseManagement: string;
+ readonly mailService: string;
+ readonly usersAccess: string;
+ };
+ readonly workplaceSearch: {
+ readonly box: string;
+ readonly confluenceCloud: string;
+ readonly confluenceServer: string;
+ readonly customSources: string;
+ readonly customSourcePermissions: string;
+ readonly documentPermissions: string;
+ readonly dropbox: string;
+ readonly externalIdentities: string;
+ readonly gitHub: string;
+ readonly gettingStarted: string;
+ readonly gmail: string;
+ readonly googleDrive: string;
+ readonly indexingSchedule: string;
+ readonly jiraCloud: string;
+ readonly jiraServer: string;
+ readonly nativeAuth: string;
+ readonly oneDrive: string;
+ readonly permissions: string;
+ readonly salesforce: string;
+ readonly security: string;
+ readonly serviceNow: string;
+ readonly sharePoint: string;
+ readonly slack: string;
+ readonly standardAuth: string;
+ readonly synch: string;
+ readonly zendesk: string;
};
readonly heartbeat: {
readonly base: string;
diff --git a/src/core/public/public.api.md b/src/core/public/public.api.md
index 772faa5321d98..cec80af843c4c 100644
--- a/src/core/public/public.api.md
+++ b/src/core/public/public.api.md
@@ -506,6 +506,9 @@ export interface DocLinksStart {
readonly canvas: {
readonly guide: string;
};
+ readonly cloud: {
+ readonly indexManagement: string;
+ };
readonly dashboard: {
readonly guide: string;
readonly drilldowns: string;
@@ -537,10 +540,64 @@ export interface DocLinksStart {
readonly install: string;
readonly start: string;
};
+ readonly appSearch: {
+ readonly apiRef: string;
+ readonly apiClients: string;
+ readonly apiKeys: string;
+ readonly authentication: string;
+ readonly crawlRules: string;
+ readonly curations: string;
+ readonly duplicateDocuments: string;
+ readonly entryPoints: string;
+ readonly guide: string;
+ readonly indexingDocuments: string;
+ readonly indexingDocumentsSchema: string;
+ readonly logSettings: string;
+ readonly metaEngines: string;
+ readonly nativeAuth: string;
+ readonly precisionTuning: string;
+ readonly relevanceTuning: string;
+ readonly resultSettings: string;
+ readonly searchUI: string;
+ readonly security: string;
+ readonly standardAuth: string;
+ readonly synonyms: string;
+ readonly webCrawler: string;
+ readonly webCrawlerEventLogs: string;
+ };
readonly enterpriseSearch: {
- readonly base: string;
- readonly appSearchBase: string;
- readonly workplaceSearchBase: string;
+ readonly configuration: string;
+ readonly licenseManagement: string;
+ readonly mailService: string;
+ readonly usersAccess: string;
+ };
+ readonly workplaceSearch: {
+ readonly box: string;
+ readonly confluenceCloud: string;
+ readonly confluenceServer: string;
+ readonly customSources: string;
+ readonly customSourcePermissions: string;
+ readonly documentPermissions: string;
+ readonly dropbox: string;
+ readonly externalIdentities: string;
+ readonly gitHub: string;
+ readonly gettingStarted: string;
+ readonly gmail: string;
+ readonly googleDrive: string;
+ readonly indexingSchedule: string;
+ readonly jiraCloud: string;
+ readonly jiraServer: string;
+ readonly nativeAuth: string;
+ readonly oneDrive: string;
+ readonly permissions: string;
+ readonly salesforce: string;
+ readonly security: string;
+ readonly serviceNow: string;
+ readonly sharePoint: string;
+ readonly slack: string;
+ readonly standardAuth: string;
+ readonly synch: string;
+ readonly zendesk: string;
};
readonly heartbeat: {
readonly base: string;
diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/components/empty_state.test.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/components/empty_state.test.tsx
index 19f45ced5dc5d..cb1c34a19c018 100644
--- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/components/empty_state.test.tsx
+++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/components/empty_state.test.tsx
@@ -11,6 +11,8 @@ import { shallow } from 'enzyme';
import { EuiEmptyPrompt, EuiButton } from '@elastic/eui';
+import { docLinks } from '../../../../shared/doc_links';
+
import { EmptyState } from './';
describe('EmptyState', () => {
@@ -21,7 +23,7 @@ describe('EmptyState', () => {
expect(wrapper.find('h2').text()).toEqual('No API events in the last 24 hours');
expect(wrapper.find(EuiButton).prop('href')).toEqual(
- expect.stringContaining('/api-reference.html')
+ expect.stringContaining(docLinks.appSearchApis)
);
});
});
diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/components/empty_state.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/components/empty_state.tsx
index 76bd0cba1731f..c78bf3e918737 100644
--- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/components/empty_state.tsx
+++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/api_logs/components/empty_state.tsx
@@ -8,9 +8,10 @@
import React from 'react';
import { EuiButton, EuiEmptyPrompt } from '@elastic/eui';
+
import { i18n } from '@kbn/i18n';
-import { DOCS_PREFIX } from '../../../routes';
+import { API_DOCS_URL } from '../../../routes';
export const EmptyState: React.FC = () => (
(
}
actions={
-
+
{i18n.translate('xpack.enterpriseSearch.appSearch.engine.apiLogs.empty.buttonLabel', {
defaultMessage: 'View the API reference',
})}
diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_rules_table.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_rules_table.tsx
index d447db60fb25b..bef8ed4462fdc 100644
--- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_rules_table.tsx
+++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_rules_table.tsx
@@ -27,7 +27,7 @@ import { clearFlashMessages, flashSuccessToast } from '../../../../shared/flash_
import { GenericEndpointInlineEditableTable } from '../../../../shared/tables/generic_endpoint_inline_editable_table';
import { InlineEditableTableColumn } from '../../../../shared/tables/inline_editable_table/types';
import { ItemWithAnID } from '../../../../shared/tables/types';
-import { DOCS_PREFIX } from '../../../routes';
+import { CRAWL_RULES_DOCS_URL } from '../../../routes';
import { CrawlerSingleDomainLogic } from '../crawler_single_domain_logic';
import {
CrawlerPolicies,
@@ -53,11 +53,7 @@ const DEFAULT_DESCRIPTION = (
defaultMessage="Create a crawl rule to include or exclude pages whose URL matches the rule. Rules run in sequential order, and each URL is evaluated according to the first match. {link}"
values={{
link: (
-
+
{i18n.translate(
'xpack.enterpriseSearch.appSearch.crawler.crawlRulesTable.descriptionLinkText',
{ defaultMessage: 'Learn more about crawl rules' }
diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/deduplication_panel/deduplication_panel.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/deduplication_panel/deduplication_panel.tsx
index ea894e2b00acf..26794d0421353 100644
--- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/deduplication_panel/deduplication_panel.tsx
+++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/deduplication_panel/deduplication_panel.tsx
@@ -27,7 +27,7 @@ import { EuiSelectableLIOption } from '@elastic/eui/src/components/selectable/se
import { i18n } from '@kbn/i18n';
import { FormattedMessage } from '@kbn/i18n-react';
-import { DOCS_PREFIX } from '../../../../routes';
+import { DUPLICATE_DOCS_URL } from '../../../../routes';
import { DataPanel } from '../../../data_panel';
import { CrawlerSingleDomainLogic } from '../../crawler_single_domain_logic';
@@ -84,11 +84,7 @@ export const DeduplicationPanel: React.FC = () => {
documents on this domain. {documentationLink}."
values={{
documentationLink: (
-
+
{i18n.translate(
'xpack.enterpriseSearch.appSearch.crawler.deduplicationPanel.learnMoreMessage',
{
diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/entry_points_table.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/entry_points_table.tsx
index aaf3cc4516067..4fc7a0569ba0e 100644
--- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/entry_points_table.tsx
+++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/entry_points_table.tsx
@@ -17,7 +17,7 @@ import { FormattedMessage } from '@kbn/i18n-react';
import { GenericEndpointInlineEditableTable } from '../../../../shared/tables/generic_endpoint_inline_editable_table';
import { InlineEditableTableColumn } from '../../../../shared/tables/inline_editable_table/types';
import { ItemWithAnID } from '../../../../shared/tables/types';
-import { DOCS_PREFIX } from '../../../routes';
+import { ENTRY_POINTS_DOCS_URL } from '../../../routes';
import { CrawlerDomain, EntryPoint } from '../types';
import { EntryPointsTableLogic } from './entry_points_table_logic';
@@ -80,11 +80,7 @@ export const EntryPointsTable: React.FC = ({
defaultMessage:
'Include the most important URLs for your website here. Entry point URLs will be the first pages to be indexed and processed for links to other pages.',
})}{' '}
-
+
{i18n.translate(
'xpack.enterpriseSearch.appSearch.crawler.entryPointsTable.learnMoreLinkText',
{ defaultMessage: 'Learn more about entry points.' }
diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/manage_crawls_popover/automatic_crawl_scheduler.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/manage_crawls_popover/automatic_crawl_scheduler.tsx
index 5f7200cb826df..128dcdcb778cf 100644
--- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/manage_crawls_popover/automatic_crawl_scheduler.tsx
+++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/manage_crawls_popover/automatic_crawl_scheduler.tsx
@@ -37,7 +37,7 @@ import {
} from '../../../../..//shared/constants/units';
import { CANCEL_BUTTON_LABEL, SAVE_BUTTON_LABEL } from '../../../../../shared/constants';
-import { DOCS_PREFIX } from '../../../../routes';
+import { WEB_CRAWLER_DOCS_URL } from '../../../../routes';
import { CrawlUnits } from '../../types';
import { AutomaticCrawlSchedulerLogic } from './automatic_crawl_scheduler_logic';
@@ -81,7 +81,7 @@ export const AutomaticCrawlScheduler: React.FC = () => {
defaultMessage="Don't worry about it, we'll start a crawl for you. {readMoreMessage}."
values={{
readMoreMessage: (
-
+
{i18n.translate(
'xpack.enterpriseSearch.appSearch.crawler.automaticCrawlSchedule.readMoreLink',
{
diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/crawler_overview.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/crawler_overview.tsx
index 6c3cb51111ae1..c84deb3cb0c99 100644
--- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/crawler_overview.tsx
+++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/crawler_overview.tsx
@@ -13,7 +13,7 @@ import { EuiFlexGroup, EuiFlexItem, EuiLink, EuiSpacer, EuiText, EuiTitle } from
import { i18n } from '@kbn/i18n';
-import { DOCS_PREFIX } from '../../routes';
+import { WEB_CRAWLER_DOCS_URL, WEB_CRAWLER_LOG_DOCS_URL } from '../../routes';
import { getEngineBreadcrumbs } from '../engine';
import { AppSearchPageTemplate } from '../layout';
@@ -77,7 +77,7 @@ export const CrawlerOverview: React.FC = () => {
defaultMessage:
"Easily index your website's content. To get started, enter your domain name, provide optional entry points and crawl rules, and we will handle the rest.",
})}{' '}
-
+
{i18n.translate(
'xpack.enterpriseSearch.appSearch.crawler.empty.crawlerDocumentationLinkDescription',
{
@@ -114,11 +114,7 @@ export const CrawlerOverview: React.FC = () => {
defaultMessage:
"Recent crawl requests are logged here. Using the request ID of each crawl, you can track progress and examine crawl events in Kibana's Discover or Logs user interfaces.",
})}{' '}
-
+
{i18n.translate(
'xpack.enterpriseSearch.appSearch.crawler.configurationDocumentationLinkDescription',
{
diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/credentials/constants.ts b/x-pack/plugins/enterprise_search/public/applications/app_search/components/credentials/constants.ts
index 6a5f3df0e86f6..315b4d864b3f2 100644
--- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/credentials/constants.ts
+++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/credentials/constants.ts
@@ -7,7 +7,7 @@
import { i18n } from '@kbn/i18n';
-import { DOCS_PREFIX } from '../../routes';
+import { AUTHENTICATION_DOCS_URL } from '../../routes';
export const CREDENTIALS_TITLE = i18n.translate(
'xpack.enterpriseSearch.appSearch.credentials.title',
@@ -109,4 +109,4 @@ export const TOKEN_TYPE_INFO = [
export const FLYOUT_ARIA_LABEL_ID = 'credentialsFlyoutTitle';
-export const DOCS_HREF = `${DOCS_PREFIX}/authentication.html`;
+export const DOCS_HREF = AUTHENTICATION_DOCS_URL;
diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/credentials/credentials_list/credentials_list.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/credentials/credentials_list/credentials_list.tsx
index 040f313b12205..3ea2c022ec489 100644
--- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/credentials/credentials_list/credentials_list.tsx
+++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/credentials/credentials_list/credentials_list.tsx
@@ -21,7 +21,7 @@ import { i18n } from '@kbn/i18n';
import { EDIT_BUTTON_LABEL, DELETE_BUTTON_LABEL } from '../../../../shared/constants';
import { HiddenText } from '../../../../shared/hidden_text';
import { convertMetaToPagination, handlePageChange } from '../../../../shared/table_pagination';
-import { DOCS_PREFIX } from '../../../routes';
+import { API_KEYS_DOCS_URL } from '../../../routes';
import { TOKEN_TYPE_DISPLAY_NAMES } from '../constants';
import { CredentialsLogic } from '../credentials_logic';
import { ApiToken } from '../types';
@@ -141,12 +141,7 @@ export const CredentialsList: React.FC = () => {
defaultMessage: 'Allow applications to access Elastic App Search on your behalf.',
})}
actions={
-
+
{i18n.translate('xpack.enterpriseSearch.appSearch.credentials.empty.buttonLabel', {
defaultMessage: 'Learn about API keys',
})}
diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/curations/components/empty_state.test.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/curations/components/empty_state.test.tsx
index 60ae386bea58e..69c2cc4b987b1 100644
--- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/curations/components/empty_state.test.tsx
+++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/curations/components/empty_state.test.tsx
@@ -11,6 +11,8 @@ import { shallow } from 'enzyme';
import { EuiEmptyPrompt, EuiButton } from '@elastic/eui';
+import { docLinks } from '../../../../shared/doc_links';
+
import { EmptyState } from './';
describe('EmptyState', () => {
@@ -21,7 +23,7 @@ describe('EmptyState', () => {
expect(wrapper.find('h2').text()).toEqual('Create your first curation');
expect(wrapper.find(EuiButton).prop('href')).toEqual(
- expect.stringContaining('/curations-guide.html')
+ expect.stringContaining(docLinks.appSearchCurations)
);
});
});
diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/curations/components/empty_state.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/curations/components/empty_state.tsx
index 872a7282136e3..10d81f1623959 100644
--- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/curations/components/empty_state.tsx
+++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/curations/components/empty_state.tsx
@@ -10,7 +10,7 @@ import React from 'react';
import { EuiButton, EuiEmptyPrompt } from '@elastic/eui';
import { i18n } from '@kbn/i18n';
-import { DOCS_PREFIX } from '../../../routes';
+import { CURATIONS_DOCS_URL } from '../../../routes';
export const EmptyState: React.FC = () => (
(
}
actions={
-
+
{i18n.translate('xpack.enterpriseSearch.appSearch.engine.curations.empty.buttonLabel', {
defaultMessage: 'Read the curations guide',
})}
diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/curations/views/curations_settings/curations_settings.test.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/curations/views/curations_settings/curations_settings.test.tsx
index 4b4e11c31d4b8..b95ae0bca5bf6 100644
--- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/curations/views/curations_settings/curations_settings.test.tsx
+++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/curations/views/curations_settings/curations_settings.test.tsx
@@ -19,6 +19,8 @@ import { EuiButtonEmpty, EuiCallOut, EuiSwitch } from '@elastic/eui';
import { mountWithIntl } from '@kbn/test/jest';
+import { docLinks } from '../../../../../shared/doc_links';
+
import { Loading } from '../../../../../shared/loading';
import { EuiButtonTo } from '../../../../../shared/react_router_helpers';
import { DataPanel } from '../../../data_panel';
@@ -227,7 +229,7 @@ describe('CurationsSettings', () => {
const wrapper = shallow();
expect(wrapper.is(DataPanel)).toBe(true);
expect(wrapper.prop('action').props.to).toEqual('/app/management/stack/license_management');
- expect(wrapper.find(EuiButtonEmpty).prop('href')).toEqual('/license-management.html');
+ expect(wrapper.find(EuiButtonEmpty).prop('href')).toEqual(docLinks.licenseManagement);
});
});
});
diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/curations/views/curations_settings/curations_settings.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/curations/views/curations_settings/curations_settings.tsx
index d78ca852ee7d1..ffefea96d3a22 100644
--- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/curations/views/curations_settings/curations_settings.tsx
+++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/curations/views/curations_settings/curations_settings.tsx
@@ -110,11 +110,7 @@ export const CurationsSettings: React.FC = () => {
}
>
-
+
{i18n.translate('xpack.enterpriseSearch.curations.settings.licenseUpgradeLink', {
defaultMessage: 'Learn more about license upgrades',
})}
diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/document_creation/creation_mode_components/api_code_example.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/document_creation/creation_mode_components/api_code_example.tsx
index 793c6250d859c..e86b06b423a9d 100644
--- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/document_creation/creation_mode_components/api_code_example.tsx
+++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/document_creation/creation_mode_components/api_code_example.tsx
@@ -30,7 +30,7 @@ import { FormattedMessage } from '@kbn/i18n-react';
import { CANCEL_BUTTON_LABEL } from '../../../../shared/constants';
import { getEnterpriseSearchUrl } from '../../../../shared/enterprise_search_url';
-import { DOCS_PREFIX } from '../../../routes';
+import { API_CLIENTS_DOCS_URL, INDEXING_DOCS_URL } from '../../../routes';
import { EngineLogic } from '../../engine';
import { EngineDetails } from '../../engine/types';
@@ -74,12 +74,12 @@ export const FlyoutBody: React.FC = () => {
defaultMessage="The {documentsApiLink} can be used to add new documents to your engine, update documents, retrieve documents by id, and delete documents. There are a variety of {clientLibrariesLink} to help you get started."
values={{
documentsApiLink: (
-
+
documents API
),
clientLibrariesLink: (
-
+
client libraries
),
diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/document_creation/document_creation_buttons.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/document_creation/document_creation_buttons.tsx
index 5366c00c0e7fc..a8179f297644f 100644
--- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/document_creation/document_creation_buttons.tsx
+++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/document_creation/document_creation_buttons.tsx
@@ -27,7 +27,7 @@ import { FormattedMessage } from '@kbn/i18n-react';
import { parseQueryParams } from '../../../shared/query_params';
import { EuiCardTo } from '../../../shared/react_router_helpers';
-import { DOCS_PREFIX, ENGINE_CRAWLER_PATH } from '../../routes';
+import { INDEXING_DOCS_URL, ENGINE_CRAWLER_PATH } from '../../routes';
import { generateEnginePath } from '../engine';
import { DocumentCreationLogic } from './';
@@ -66,7 +66,7 @@ export const DocumentCreationButtons: React.FC = ({ disabled = false }) =
jsonCode: .json,
postCode: POST,
documentsApiLink: (
-
+
documents API
),
diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/documents/components/empty_state.test.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/documents/components/empty_state.test.tsx
index 907dcf8c9c208..b8bb26fa9ad63 100644
--- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/documents/components/empty_state.test.tsx
+++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/documents/components/empty_state.test.tsx
@@ -11,6 +11,8 @@ import { shallow } from 'enzyme';
import { EuiEmptyPrompt, EuiButton } from '@elastic/eui';
+import { docLinks } from '../../../../shared/doc_links';
+
import { EmptyState } from './';
describe('EmptyState', () => {
@@ -21,7 +23,7 @@ describe('EmptyState', () => {
expect(wrapper.find('h2').text()).toEqual('Add your first documents');
expect(wrapper.find(EuiButton).prop('href')).toEqual(
- expect.stringContaining('/indexing-documents-guide.html')
+ expect.stringContaining(docLinks.appSearchIndexingDocs)
);
});
});
diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/documents/components/empty_state.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/documents/components/empty_state.tsx
index 39fe02a84854c..85e834b320751 100644
--- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/documents/components/empty_state.tsx
+++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/documents/components/empty_state.tsx
@@ -10,7 +10,7 @@ import React from 'react';
import { EuiButton, EuiEmptyPrompt } from '@elastic/eui';
import { i18n } from '@kbn/i18n';
-import { DOCS_PREFIX } from '../../../routes';
+import { INDEXING_DOCS_URL } from '../../../routes';
export const EmptyState = () => (
(
}
actions={
-
+
{i18n.translate('xpack.enterpriseSearch.appSearch.engine.documents.empty.buttonLabel', {
defaultMessage: 'Read the documents guide',
})}
diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/engine_overview/engine_overview_empty.test.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/engine_overview/engine_overview_empty.test.tsx
index 6750ebf1140e0..54bc7fb26e9d0 100644
--- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/engine_overview/engine_overview_empty.test.tsx
+++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/engine_overview/engine_overview_empty.test.tsx
@@ -33,7 +33,7 @@ describe('EmptyEngineOverview', () => {
it('renders a documentation link', () => {
expect(getPageHeaderActions(wrapper).find(EuiButton).prop('href')).toEqual(
- `${docLinks.appSearchBase}/index.html`
+ docLinks.appSearchGuide
);
});
diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/engine_overview/engine_overview_empty.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/engine_overview/engine_overview_empty.tsx
index 6f8332e1e332e..ada2df654d52b 100644
--- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/engine_overview/engine_overview_empty.tsx
+++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/engine_overview/engine_overview_empty.tsx
@@ -10,7 +10,7 @@ import React from 'react';
import { EuiButton } from '@elastic/eui';
import { i18n } from '@kbn/i18n';
-import { DOCS_PREFIX } from '../../routes';
+import { DOCS_URL } from '../../routes';
import { DocumentCreationButtons, DocumentCreationFlyout } from '../document_creation';
import { getEngineBreadcrumbs } from '../engine';
@@ -26,7 +26,7 @@ export const EmptyEngineOverview: React.FC = () => {
{ defaultMessage: 'Engine setup' }
),
rightSideItems: [
-
+
{i18n.translate(
'xpack.enterpriseSearch.appSearch.engine.overview.empty.headingAction',
{ defaultMessage: 'View documentation' }
diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/engines/components/empty_meta_engines_state.test.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/engines/components/empty_meta_engines_state.test.tsx
index 8b4f5a69b8141..350412825b996 100644
--- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/engines/components/empty_meta_engines_state.test.tsx
+++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/engines/components/empty_meta_engines_state.test.tsx
@@ -11,6 +11,8 @@ import { shallow } from 'enzyme';
import { EuiEmptyPrompt, EuiButton } from '@elastic/eui';
+import { docLinks } from '../../../../shared/doc_links';
+
import { EmptyMetaEnginesState } from './';
describe('EmptyMetaEnginesState', () => {
@@ -21,7 +23,7 @@ describe('EmptyMetaEnginesState', () => {
expect(wrapper.find('h3').text()).toEqual('Create your first meta engine');
expect(wrapper.find(EuiButton).prop('href')).toEqual(
- expect.stringContaining('/meta-engines-guide.html')
+ expect.stringContaining(docLinks.appSearchMetaEngines)
);
});
});
diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/engines/components/empty_meta_engines_state.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/engines/components/empty_meta_engines_state.tsx
index ad96f21022f2b..3cf461e3f7d45 100644
--- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/engines/components/empty_meta_engines_state.tsx
+++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/engines/components/empty_meta_engines_state.tsx
@@ -10,7 +10,7 @@ import React from 'react';
import { EuiEmptyPrompt, EuiButton } from '@elastic/eui';
import { i18n } from '@kbn/i18n';
-import { DOCS_PREFIX } from '../../../routes';
+import { META_ENGINES_DOCS_URL } from '../../../routes';
export const EmptyMetaEnginesState: React.FC = () => (
(
}
actions={
-
+
{i18n.translate(
'xpack.enterpriseSearch.appSearch.engines.metaEngines.emptyPromptButtonLabel',
{ defaultMessage: 'Learn more about meta engines' }
diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/engines/constants.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/engines/constants.tsx
index 8fbbf406cf5d3..bf2a122ead42b 100644
--- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/engines/constants.tsx
+++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/engines/constants.tsx
@@ -11,7 +11,7 @@ import { EuiLink } from '@elastic/eui';
import { i18n } from '@kbn/i18n';
import { FormattedMessage } from '@kbn/i18n-react';
-import { DOCS_PREFIX } from '../../routes';
+import { META_ENGINES_DOCS_URL } from '../../routes';
import {
META_ENGINE_CREATION_FORM_META_ENGINE_DESCRIPTION,
META_ENGINE_CREATION_FORM_DOCUMENTATION_LINK,
@@ -40,7 +40,7 @@ export const META_ENGINES_DESCRIPTION = (
defaultMessage="{readDocumentationLink} for more information or upgrade to a Platinum license to get started."
values={{
readDocumentationLink: (
-
+
{META_ENGINE_CREATION_FORM_DOCUMENTATION_LINK}
),
diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/meta_engine_creation/constants.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/meta_engine_creation/constants.tsx
index af7b6f3201b3e..e41809054e123 100644
--- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/meta_engine_creation/constants.tsx
+++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/meta_engine_creation/constants.tsx
@@ -11,7 +11,7 @@ import { EuiLink } from '@elastic/eui';
import { i18n } from '@kbn/i18n';
import { FormattedMessage } from '@kbn/i18n-react';
-import { DOCS_PREFIX } from '../../routes';
+import { META_ENGINES_DOCS_URL } from '../../routes';
export const DEFAULT_LANGUAGE = 'Universal';
@@ -57,7 +57,7 @@ export const META_ENGINE_CREATION_FORM_DOCUMENTATION_DESCRIPTION = (
defaultMessage="{documentationLink} for information about how to get started."
values={{
documentationLink: (
-
+
{META_ENGINE_CREATION_FORM_DOCUMENTATION_LINK}
),
diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/relevance_tuning/components/empty_state.test.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/relevance_tuning/components/empty_state.test.tsx
index a60f68c19f6dc..454437a203bc2 100644
--- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/relevance_tuning/components/empty_state.test.tsx
+++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/relevance_tuning/components/empty_state.test.tsx
@@ -11,6 +11,8 @@ import { shallow } from 'enzyme';
import { EuiEmptyPrompt, EuiButton } from '@elastic/eui';
+import { docLinks } from '../../../../shared/doc_links';
+
import { EmptyState } from './';
describe('EmptyState', () => {
@@ -21,7 +23,7 @@ describe('EmptyState', () => {
expect(wrapper.find('h2').text()).toEqual('Add documents to tune relevance');
expect(wrapper.find(EuiButton).prop('href')).toEqual(
- expect.stringContaining('/relevance-tuning-guide.html')
+ expect.stringContaining(docLinks.appSearchRelevance)
);
});
});
diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/relevance_tuning/components/empty_state.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/relevance_tuning/components/empty_state.tsx
index df29010bd682f..f17f7a582efdf 100644
--- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/relevance_tuning/components/empty_state.tsx
+++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/relevance_tuning/components/empty_state.tsx
@@ -10,7 +10,7 @@ import React from 'react';
import { EuiButton, EuiEmptyPrompt } from '@elastic/eui';
import { i18n } from '@kbn/i18n';
-import { DOCS_PREFIX } from '../../../routes';
+import { RELEVANCE_DOCS_URL } from '../../../routes';
export const EmptyState: React.FC = () => (
(
}
)}
actions={
-
+
{i18n.translate(
'xpack.enterpriseSearch.appSearch.engine.relevanceTuning.empty.buttonLabel',
{ defaultMessage: 'Read the relevance tuning guide' }
diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/relevance_tuning/components/precision_slider/precision_slider.test.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/relevance_tuning/components/precision_slider/precision_slider.test.tsx
index 3be30b77bc2e4..0554b31c88356 100644
--- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/relevance_tuning/components/precision_slider/precision_slider.test.tsx
+++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/relevance_tuning/components/precision_slider/precision_slider.test.tsx
@@ -11,6 +11,8 @@ import React from 'react';
import { shallow, ShallowWrapper } from 'enzyme';
+import { docLinks } from '../../../../../shared/doc_links';
+
import { rerender } from '../../../../../test_helpers';
import { STEP_DESCRIPTIONS } from './constants';
@@ -82,7 +84,7 @@ describe('PrecisionSlider', () => {
it('contains a documentation link', () => {
const documentationLink = wrapper.find('[data-test-subj="documentationLink"]');
- expect(documentationLink.prop('href')).toContain('/precision-tuning.html');
+ expect(documentationLink.prop('href')).toContain(docLinks.appSearchPrecision);
expect(documentationLink.prop('target')).toEqual('_blank');
});
});
diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/relevance_tuning/components/precision_slider/precision_slider.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/relevance_tuning/components/precision_slider/precision_slider.tsx
index 8e7a59c290ce2..e4b2027aa3d6d 100644
--- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/relevance_tuning/components/precision_slider/precision_slider.tsx
+++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/relevance_tuning/components/precision_slider/precision_slider.tsx
@@ -21,7 +21,7 @@ import {
} from '@elastic/eui';
import { i18n } from '@kbn/i18n';
-import { DOCS_PREFIX } from '../../../../routes';
+import { PRECISION_DOCS_URL } from '../../../../routes';
import { RelevanceTuningLogic } from '../../relevance_tuning_logic';
import { STEP_DESCRIPTIONS } from './constants';
@@ -57,11 +57,7 @@ export const PrecisionSlider: React.FC = () => {
defaultMessage: 'Fine tune the precision vs. recall settings on your engine.',
}
)}{' '}
-
+
{i18n.translate(
'xpack.enterpriseSearch.appSearch.engine.relevanceTuning.precisionSlider.learnMore.link',
{
diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/relevance_tuning/relevance_tuning_callouts.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/relevance_tuning/relevance_tuning_callouts.tsx
index d8963b33b8ab2..463c61fb60c99 100644
--- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/relevance_tuning/relevance_tuning_callouts.tsx
+++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/relevance_tuning/relevance_tuning_callouts.tsx
@@ -14,7 +14,7 @@ import { i18n } from '@kbn/i18n';
import { FormattedMessage } from '@kbn/i18n-react';
import { EuiLinkTo } from '../../../shared/react_router_helpers';
-import { DOCS_PREFIX, ENGINE_SCHEMA_PATH } from '../../routes';
+import { META_ENGINES_DOCS_URL, ENGINE_SCHEMA_PATH } from '../../routes';
import { EngineLogic, generateEnginePath } from '../engine';
import { RelevanceTuningLogic } from '.';
@@ -98,7 +98,7 @@ export const RelevanceTuningCallouts: React.FC = () => {
values={{
schemaFieldsWithConflictsCount,
link: (
-
+
{i18n.translate(
'xpack.enterpriseSearch.appSearch.engine.relevanceTuning.whatsThisLinkLabel',
{
diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/result_settings/components/empty_state.test.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/result_settings/components/empty_state.test.tsx
index 537fd9ec6a0d4..8798c1a4bc529 100644
--- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/result_settings/components/empty_state.test.tsx
+++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/result_settings/components/empty_state.test.tsx
@@ -11,6 +11,8 @@ import { shallow } from 'enzyme';
import { EuiEmptyPrompt, EuiButton } from '@elastic/eui';
+import { docLinks } from '../../../../shared/doc_links';
+
import { EmptyState } from './';
describe('EmptyState', () => {
@@ -21,7 +23,7 @@ describe('EmptyState', () => {
expect(wrapper.find('h2').text()).toEqual('Add documents to adjust settings');
expect(wrapper.find(EuiButton).prop('href')).toEqual(
- expect.stringContaining('/result-settings-guide.html')
+ expect.stringContaining(docLinks.appSearchResultSettings)
);
});
});
diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/result_settings/components/empty_state.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/result_settings/components/empty_state.tsx
index dae8390a35fd7..7f91447b910b6 100644
--- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/result_settings/components/empty_state.tsx
+++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/result_settings/components/empty_state.tsx
@@ -10,7 +10,7 @@ import React from 'react';
import { EuiButton, EuiEmptyPrompt } from '@elastic/eui';
import { i18n } from '@kbn/i18n';
-import { DOCS_PREFIX } from '../../../routes';
+import { RESULT_SETTINGS_DOCS_URL } from '../../../routes';
export const EmptyState: React.FC = () => (
(
}
)}
actions={
-
+
{i18n.translate(
'xpack.enterpriseSearch.appSearch.engine.resultSettings.empty.buttonLabel',
{ defaultMessage: 'Read the result settings guide' }
diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/role_mappings/role_mappings.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/role_mappings/role_mappings.tsx
index 3e692aa48623e..e2021ac582d0c 100644
--- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/role_mappings/role_mappings.tsx
+++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/role_mappings/role_mappings.tsx
@@ -22,7 +22,7 @@ import {
} from '../../../shared/role_mapping';
import { ROLE_MAPPINGS_TITLE } from '../../../shared/role_mapping/constants';
-import { DOCS_PREFIX } from '../../routes';
+import { SECURITY_DOCS_URL } from '../../routes';
import { AppSearchPageTemplate } from '../layout';
import { ROLE_MAPPINGS_ENGINE_ACCESS_HEADING } from './constants';
@@ -30,8 +30,6 @@ import { RoleMapping } from './role_mapping';
import { RoleMappingsLogic } from './role_mappings_logic';
import { User } from './user';
-const ROLES_DOCS_LINK = `${DOCS_PREFIX}/security-and-users.html`;
-
export const RoleMappings: React.FC = () => {
const {
enableRoleBasedAccess,
@@ -60,7 +58,7 @@ export const RoleMappings: React.FC = () => {
const rolesEmptyState = (
);
@@ -69,7 +67,7 @@ export const RoleMappings: React.FC = () => {
initializeRoleMapping()}
/>
{
expect(wrapper.find('h2').text()).toEqual('Create a schema');
expect(wrapper.find(EuiButton).prop('href')).toEqual(
- expect.stringContaining('#indexing-documents-guide-schema')
+ expect.stringContaining(docLinks.appSearchIndexingDocsSchema)
);
});
diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/schema/components/empty_state.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/schema/components/empty_state.tsx
index ad9285c7b8fef..3c2d5fc4df66a 100644
--- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/schema/components/empty_state.tsx
+++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/schema/components/empty_state.tsx
@@ -13,7 +13,7 @@ import { EuiEmptyPrompt, EuiButton } from '@elastic/eui';
import { i18n } from '@kbn/i18n';
import { SchemaAddFieldModal } from '../../../../shared/schema';
-import { DOCS_PREFIX } from '../../../routes';
+import { INDEXING_SCHEMA_DOCS_URL } from '../../../routes';
import { SchemaLogic } from '../schema_logic';
export const EmptyState: React.FC = () => {
@@ -40,12 +40,7 @@ export const EmptyState: React.FC = () => {
}
actions={
-
+
{i18n.translate('xpack.enterpriseSearch.appSearch.engine.schema.empty.buttonLabel', {
defaultMessage: 'Read the indexing schema guide',
})}
diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/search_ui/components/empty_state.test.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/search_ui/components/empty_state.test.tsx
index 39f0cb376b325..3466542c09739 100644
--- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/search_ui/components/empty_state.test.tsx
+++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/search_ui/components/empty_state.test.tsx
@@ -11,6 +11,8 @@ import { shallow } from 'enzyme';
import { EuiEmptyPrompt, EuiButton } from '@elastic/eui';
+import { docLinks } from '../../../../shared/doc_links';
+
import { EmptyState } from './empty_state';
describe('EmptyState', () => {
@@ -21,7 +23,7 @@ describe('EmptyState', () => {
expect(wrapper.find('h2').text()).toEqual('Add documents to generate a Search UI');
expect(wrapper.find(EuiButton).prop('href')).toEqual(
- expect.stringContaining('/reference-ui-guide.html')
+ expect.stringContaining(docLinks.appSearchSearchUI)
);
});
});
diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/search_ui/components/empty_state.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/search_ui/components/empty_state.tsx
index b7665a58de300..9a663e1372211 100644
--- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/search_ui/components/empty_state.tsx
+++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/search_ui/components/empty_state.tsx
@@ -10,7 +10,7 @@ import React from 'react';
import { EuiButton, EuiEmptyPrompt } from '@elastic/eui';
import { i18n } from '@kbn/i18n';
-import { DOCS_PREFIX } from '../../../routes';
+import { SEARCH_UI_DOCS_URL } from '../../../routes';
export const EmptyState: React.FC = () => (
(
}
actions={
-
+
{i18n.translate('xpack.enterpriseSearch.appSearch.engine.searchUI.empty.buttonLabel', {
defaultMessage: 'Read the Search UI guide',
})}
diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/search_ui/search_ui.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/search_ui/search_ui.tsx
index 2b210bd07ab4b..43ea60fa84617 100644
--- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/search_ui/search_ui.tsx
+++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/search_ui/search_ui.tsx
@@ -12,7 +12,7 @@ import { useActions, useValues } from 'kea';
import { EuiText, EuiFlexItem, EuiFlexGroup, EuiSpacer, EuiLink } from '@elastic/eui';
import { FormattedMessage } from '@kbn/i18n-react';
-import { DOCS_PREFIX } from '../../routes';
+import { SEARCH_UI_DOCS_URL } from '../../routes';
import { EngineLogic, getEngineBreadcrumbs } from '../engine';
import { AppSearchPageTemplate } from '../layout';
@@ -62,7 +62,7 @@ export const SearchUI: React.FC = () => {
defaultMessage="Use the fields below to generate a sample search experience built with Search UI. Use the sample to preview search results, or build upon it to create your own custom search experience. {link}."
values={{
link: (
-
+
{
defaultMessage: 'Log retention is determined by the ILM policies for your deployment.',
})}
-
+
{i18n.translate('xpack.enterpriseSearch.appSearch.settings.logRetention.learnMore', {
defaultMessage: 'Learn more about log retention for Enterprise Search.',
})}
diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/setup_guide/setup_guide.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/setup_guide/setup_guide.tsx
index d460132dddbb1..f1d9beaca5136 100644
--- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/setup_guide/setup_guide.tsx
+++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/setup_guide/setup_guide.tsx
@@ -15,7 +15,7 @@ import { APP_SEARCH_PLUGIN } from '../../../../../common/constants';
import { SetAppSearchChrome as SetPageChrome } from '../../../shared/kibana_chrome';
import { SetupGuideLayout, SETUP_GUIDE_TITLE } from '../../../shared/setup_guide';
import { SendAppSearchTelemetry as SendTelemetry } from '../../../shared/telemetry';
-import { DOCS_PREFIX } from '../../routes';
+import { NATIVE_AUTH_DOCS_URL, STANDARD_AUTH_DOCS_URL } from '../../routes';
import GettingStarted from './assets/getting_started.png';
@@ -23,8 +23,8 @@ export const SetupGuide: React.FC = () => (
diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/synonyms/components/empty_state.test.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/synonyms/components/empty_state.test.tsx
index a43f170e5822f..cdfdbadf6759c 100644
--- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/synonyms/components/empty_state.test.tsx
+++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/synonyms/components/empty_state.test.tsx
@@ -11,6 +11,8 @@ import { shallow } from 'enzyme';
import { EuiEmptyPrompt, EuiButton } from '@elastic/eui';
+import { docLinks } from '../../../../shared/doc_links';
+
import { EmptyState, SynonymModal } from './';
describe('EmptyState', () => {
@@ -21,7 +23,7 @@ describe('EmptyState', () => {
expect(wrapper.find('h2').text()).toEqual('Create your first synonym set');
expect(wrapper.find(EuiButton).prop('href')).toEqual(
- expect.stringContaining('/synonyms-guide.html')
+ expect.stringContaining(docLinks.appSearchSynonyms)
);
});
diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/synonyms/components/empty_state.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/synonyms/components/empty_state.tsx
index f856a5c035f81..ac8383ccea9ee 100644
--- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/synonyms/components/empty_state.tsx
+++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/synonyms/components/empty_state.tsx
@@ -10,7 +10,7 @@ import React from 'react';
import { EuiEmptyPrompt, EuiButton } from '@elastic/eui';
import { i18n } from '@kbn/i18n';
-import { DOCS_PREFIX } from '../../../routes';
+import { SYNONYMS_DOCS_URL } from '../../../routes';
import { SynonymModal, SynonymIcon } from './';
@@ -35,12 +35,7 @@ export const EmptyState: React.FC = () => {
}
actions={
-
+
{i18n.translate('xpack.enterpriseSearch.appSearch.engine.synonyms.empty.buttonLabel', {
defaultMessage: 'Read the synonyms guide',
})}
diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/routes.ts b/x-pack/plugins/enterprise_search/public/applications/app_search/routes.ts
index 97a9b407b3cd6..1f2e7c883e1cb 100644
--- a/x-pack/plugins/enterprise_search/public/applications/app_search/routes.ts
+++ b/x-pack/plugins/enterprise_search/public/applications/app_search/routes.ts
@@ -7,7 +7,29 @@
import { docLinks } from '../shared/doc_links';
-export const DOCS_PREFIX = docLinks.appSearchBase;
+export const API_DOCS_URL = docLinks.appSearchApis;
+export const API_CLIENTS_DOCS_URL = docLinks.appSearchApiClients;
+export const API_KEYS_DOCS_URL = docLinks.appSearchApiKeys;
+export const AUTHENTICATION_DOCS_URL = docLinks.appSearchAuthentication;
+export const CRAWL_RULES_DOCS_URL = docLinks.appSearchCrawlRules;
+export const CURATIONS_DOCS_URL = docLinks.appSearchCurations;
+export const DOCS_URL = docLinks.appSearchGuide;
+export const DUPLICATE_DOCS_URL = docLinks.appSearchDuplicateDocuments;
+export const ENTRY_POINTS_DOCS_URL = docLinks.appSearchEntryPoints;
+export const INDEXING_DOCS_URL = docLinks.appSearchIndexingDocs;
+export const INDEXING_SCHEMA_DOCS_URL = docLinks.appSearchIndexingDocsSchema;
+export const LOG_SETTINGS_DOCS_URL = docLinks.appSearchLogSettings;
+export const META_ENGINES_DOCS_URL = docLinks.appSearchMetaEngines;
+export const NATIVE_AUTH_DOCS_URL = docLinks.appSearchNativeAuth;
+export const PRECISION_DOCS_URL = docLinks.appSearchPrecision;
+export const RELEVANCE_DOCS_URL = docLinks.appSearchRelevance;
+export const RESULT_SETTINGS_DOCS_URL = docLinks.appSearchResultSettings;
+export const SEARCH_UI_DOCS_URL = docLinks.appSearchSearchUI;
+export const SECURITY_DOCS_URL = docLinks.appSearchSecurity;
+export const STANDARD_AUTH_DOCS_URL = docLinks.appSearchStandardAuth;
+export const SYNONYMS_DOCS_URL = docLinks.appSearchSynonyms;
+export const WEB_CRAWLER_DOCS_URL = docLinks.appSearchWebCrawler;
+export const WEB_CRAWLER_LOG_DOCS_URL = docLinks.appSearchWebCrawlerEventLogs;
export const ROOT_PATH = '/';
export const SETUP_GUIDE_PATH = '/setup_guide';
diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search/components/setup_guide/setup_guide.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search/components/setup_guide/setup_guide.tsx
index e82dbcaa41135..c7c85fdd49359 100644
--- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search/components/setup_guide/setup_guide.tsx
+++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search/components/setup_guide/setup_guide.tsx
@@ -12,7 +12,7 @@ import { i18n } from '@kbn/i18n';
import { FormattedMessage } from '@kbn/i18n-react';
import { ENTERPRISE_SEARCH_PLUGIN } from '../../../../../common/constants';
-import { DOCS_PREFIX } from '../../../app_search/routes';
+import { NATIVE_AUTH_DOCS_URL, STANDARD_AUTH_DOCS_URL } from '../../../app_search/routes';
import { SetEnterpriseSearchChrome as SetPageChrome } from '../../../shared/kibana_chrome';
import { SetupGuideLayout, SETUP_GUIDE_TITLE } from '../../../shared/setup_guide';
import { SendEnterpriseSearchTelemetry as SendTelemetry } from '../../../shared/telemetry';
@@ -23,8 +23,8 @@ export const SetupGuide: React.FC = () => (
diff --git a/x-pack/plugins/enterprise_search/public/applications/shared/doc_links/doc_links.test.ts b/x-pack/plugins/enterprise_search/public/applications/shared/doc_links/doc_links.test.ts
index cbd7a1c6107b1..b14af1c69795a 100644
--- a/x-pack/plugins/enterprise_search/public/applications/shared/doc_links/doc_links.test.ts
+++ b/x-pack/plugins/enterprise_search/public/applications/shared/doc_links/doc_links.test.ts
@@ -5,27 +5,23 @@
* 2.0.
*/
+import { docLinksServiceMock } from '../../../../../../../src/core/public/mocks';
+
import { docLinks } from './';
describe('DocLinks', () => {
it('setDocLinks', () => {
const links = {
- DOC_LINK_VERSION: '',
- ELASTIC_WEBSITE_URL: 'https://elastic.co/',
- links: {
- enterpriseSearch: {
- base: 'http://elastic.enterprise.search',
- appSearchBase: 'http://elastic.app.search',
- workplaceSearchBase: 'http://elastic.workplace.search',
- },
- },
+ DOC_LINK_VERSION: docLinksServiceMock.createStartContract().DOC_LINK_VERSION,
+ ELASTIC_WEBSITE_URL: docLinksServiceMock.createStartContract().ELASTIC_WEBSITE_URL,
+ links: docLinksServiceMock.createStartContract().links,
};
docLinks.setDocLinks(links as any);
- expect(docLinks.enterpriseSearchBase).toEqual('http://elastic.enterprise.search');
- expect(docLinks.appSearchBase).toEqual('http://elastic.app.search');
- expect(docLinks.workplaceSearchBase).toEqual('http://elastic.workplace.search');
- expect(docLinks.cloudBase).toEqual('https://elastic.co/guide/en/cloud/current');
+ expect(docLinks.appSearchApis).toEqual(links.links.appSearch.apiRef);
+ expect(docLinks.cloudIndexManagement).toEqual(links.links.cloud.indexManagement);
+ expect(docLinks.enterpriseSearchConfig).toEqual(links.links.enterpriseSearch.configuration);
+ expect(docLinks.workplaceSearchZendesk).toEqual(links.links.workplaceSearch.zendesk);
});
});
diff --git a/x-pack/plugins/enterprise_search/public/applications/shared/doc_links/doc_links.ts b/x-pack/plugins/enterprise_search/public/applications/shared/doc_links/doc_links.ts
index 6034846fac4f1..93bead4d31f4c 100644
--- a/x-pack/plugins/enterprise_search/public/applications/shared/doc_links/doc_links.ts
+++ b/x-pack/plugins/enterprise_search/public/applications/shared/doc_links/doc_links.ts
@@ -8,23 +8,174 @@
import { DocLinksStart } from 'kibana/public';
class DocLinks {
- public enterpriseSearchBase: string;
- public appSearchBase: string;
- public workplaceSearchBase: string;
- public cloudBase: string;
+ public appSearchApis: string;
+ public appSearchApiClients: string;
+ public appSearchApiKeys: string;
+ public appSearchAuthentication: string;
+ public appSearchCrawlRules: string;
+ public appSearchCurations: string;
+ public appSearchDuplicateDocuments: string;
+ public appSearchEntryPoints: string;
+ public appSearchGuide: string;
+ public appSearchIndexingDocs: string;
+ public appSearchIndexingDocsSchema: string;
+ public appSearchLogSettings: string;
+ public appSearchMetaEngines: string;
+ public appSearchNativeAuth: string;
+ public appSearchPrecision: string;
+ public appSearchRelevance: string;
+ public appSearchResultSettings: string;
+ public appSearchSearchUI: string;
+ public appSearchSecurity: string;
+ public appSearchStandardAuth: string;
+ public appSearchSynonyms: string;
+ public appSearchWebCrawler: string;
+ public appSearchWebCrawlerEventLogs: string;
+ public cloudIndexManagement: string;
+ public enterpriseSearchConfig: string;
+ public enterpriseSearchMailService: string;
+ public enterpriseSearchUsersAccess: string;
+ public licenseManagement: string;
+ public workplaceSearchBox: string;
+ public workplaceSearchConfluenceCloud: string;
+ public workplaceSearchConfluenceServer: string;
+ public workplaceSearchCustomSources: string;
+ public workplaceSearchCustomSourcePermissions: string;
+ public workplaceSearchDocumentPermissions: string;
+ public workplaceSearchDropbox: string;
+ public workplaceSearchExternalIdentities: string;
+ public workplaceSearchGettingStarted: string;
+ public workplaceSearchGitHub: string;
+ public workplaceSearchGmail: string;
+ public workplaceSearchGoogleDrive: string;
+ public workplaceSearchIndexingSchedule: string;
+ public workplaceSearchJiraCloud: string;
+ public workplaceSearchJiraServer: string;
+ public workplaceSearchNativeAuth: string;
+ public workplaceSearchOneDrive: string;
+ public workplaceSearchPermissions: string;
+ public workplaceSearchSalesforce: string;
+ public workplaceSearchSecurity: string;
+ public workplaceSearchServiceNow: string;
+ public workplaceSearchSharePoint: string;
+ public workplaceSearchSlack: string;
+ public workplaceSearchStandardAuth: string;
+ public workplaceSearchSynch: string;
+ public workplaceSearchZendesk: string;
constructor() {
- this.enterpriseSearchBase = '';
- this.appSearchBase = '';
- this.workplaceSearchBase = '';
- this.cloudBase = '';
+ this.appSearchApis = '';
+ this.appSearchApiClients = '';
+ this.appSearchApiKeys = '';
+ this.appSearchAuthentication = '';
+ this.appSearchCrawlRules = '';
+ this.appSearchCurations = '';
+ this.appSearchDuplicateDocuments = '';
+ this.appSearchEntryPoints = '';
+ this.appSearchGuide = '';
+ this.appSearchIndexingDocs = '';
+ this.appSearchIndexingDocsSchema = '';
+ this.appSearchLogSettings = '';
+ this.appSearchMetaEngines = '';
+ this.appSearchNativeAuth = '';
+ this.appSearchPrecision = '';
+ this.appSearchRelevance = '';
+ this.appSearchResultSettings = '';
+ this.appSearchSearchUI = '';
+ this.appSearchSecurity = '';
+ this.appSearchStandardAuth = '';
+ this.appSearchSynonyms = '';
+ this.appSearchWebCrawler = '';
+ this.appSearchWebCrawlerEventLogs = '';
+ this.cloudIndexManagement = '';
+ this.enterpriseSearchConfig = '';
+ this.enterpriseSearchMailService = '';
+ this.enterpriseSearchUsersAccess = '';
+ this.licenseManagement = '';
+ this.workplaceSearchBox = '';
+ this.workplaceSearchConfluenceCloud = '';
+ this.workplaceSearchConfluenceServer = '';
+ this.workplaceSearchCustomSources = '';
+ this.workplaceSearchCustomSourcePermissions = '';
+ this.workplaceSearchDocumentPermissions = '';
+ this.workplaceSearchDropbox = '';
+ this.workplaceSearchExternalIdentities = '';
+ this.workplaceSearchGettingStarted = '';
+ this.workplaceSearchGitHub = '';
+ this.workplaceSearchGmail = '';
+ this.workplaceSearchGoogleDrive = '';
+ this.workplaceSearchIndexingSchedule = '';
+ this.workplaceSearchJiraCloud = '';
+ this.workplaceSearchJiraServer = '';
+ this.workplaceSearchNativeAuth = '';
+ this.workplaceSearchOneDrive = '';
+ this.workplaceSearchPermissions = '';
+ this.workplaceSearchSalesforce = '';
+ this.workplaceSearchSecurity = '';
+ this.workplaceSearchServiceNow = '';
+ this.workplaceSearchSharePoint = '';
+ this.workplaceSearchSlack = '';
+ this.workplaceSearchStandardAuth = '';
+ this.workplaceSearchSynch = '';
+ this.workplaceSearchZendesk = '';
}
public setDocLinks(docLinks: DocLinksStart): void {
- this.enterpriseSearchBase = docLinks.links.enterpriseSearch.base;
- this.appSearchBase = docLinks.links.enterpriseSearch.appSearchBase;
- this.workplaceSearchBase = docLinks.links.enterpriseSearch.workplaceSearchBase;
- this.cloudBase = `${docLinks.ELASTIC_WEBSITE_URL}guide/en/cloud/current`;
+ this.appSearchApis = docLinks.links.appSearch.apiRef;
+ this.appSearchApiClients = docLinks.links.appSearch.apiClients;
+ this.appSearchApiKeys = docLinks.links.appSearch.apiKeys;
+ this.appSearchAuthentication = docLinks.links.appSearch.authentication;
+ this.appSearchCrawlRules = docLinks.links.appSearch.crawlRules;
+ this.appSearchCurations = docLinks.links.appSearch.curations;
+ this.appSearchDuplicateDocuments = docLinks.links.appSearch.duplicateDocuments;
+ this.appSearchEntryPoints = docLinks.links.appSearch.entryPoints;
+ this.appSearchGuide = docLinks.links.appSearch.guide;
+ this.appSearchIndexingDocs = docLinks.links.appSearch.indexingDocuments;
+ this.appSearchIndexingDocsSchema = docLinks.links.appSearch.indexingDocumentsSchema;
+ this.appSearchLogSettings = docLinks.links.appSearch.logSettings;
+ this.appSearchMetaEngines = docLinks.links.appSearch.metaEngines;
+ this.appSearchNativeAuth = docLinks.links.appSearch.nativeAuth;
+ this.appSearchPrecision = docLinks.links.appSearch.precisionTuning;
+ this.appSearchRelevance = docLinks.links.appSearch.relevanceTuning;
+ this.appSearchResultSettings = docLinks.links.appSearch.resultSettings;
+ this.appSearchSearchUI = docLinks.links.appSearch.searchUI;
+ this.appSearchSecurity = docLinks.links.appSearch.security;
+ this.appSearchStandardAuth = docLinks.links.appSearch.standardAuth;
+ this.appSearchSynonyms = docLinks.links.appSearch.synonyms;
+ this.appSearchWebCrawler = docLinks.links.appSearch.webCrawler;
+ this.appSearchWebCrawlerEventLogs = docLinks.links.appSearch.webCrawlerEventLogs;
+ this.cloudIndexManagement = docLinks.links.cloud.indexManagement;
+ this.enterpriseSearchConfig = docLinks.links.enterpriseSearch.configuration;
+ this.enterpriseSearchMailService = docLinks.links.enterpriseSearch.mailService;
+ this.enterpriseSearchUsersAccess = docLinks.links.enterpriseSearch.usersAccess;
+ this.licenseManagement = docLinks.links.enterpriseSearch.licenseManagement;
+ this.workplaceSearchBox = docLinks.links.workplaceSearch.box;
+ this.workplaceSearchConfluenceCloud = docLinks.links.workplaceSearch.confluenceCloud;
+ this.workplaceSearchConfluenceServer = docLinks.links.workplaceSearch.confluenceServer;
+ this.workplaceSearchCustomSources = docLinks.links.workplaceSearch.customSources;
+ this.workplaceSearchCustomSourcePermissions =
+ docLinks.links.workplaceSearch.customSourcePermissions;
+ this.workplaceSearchDocumentPermissions = docLinks.links.workplaceSearch.documentPermissions;
+ this.workplaceSearchDropbox = docLinks.links.workplaceSearch.dropbox;
+ this.workplaceSearchExternalIdentities = docLinks.links.workplaceSearch.externalIdentities;
+ this.workplaceSearchGettingStarted = docLinks.links.workplaceSearch.gettingStarted;
+ this.workplaceSearchGitHub = docLinks.links.workplaceSearch.gitHub;
+ this.workplaceSearchGmail = docLinks.links.workplaceSearch.gmail;
+ this.workplaceSearchGoogleDrive = docLinks.links.workplaceSearch.googleDrive;
+ this.workplaceSearchIndexingSchedule = docLinks.links.workplaceSearch.indexingSchedule;
+ this.workplaceSearchJiraCloud = docLinks.links.workplaceSearch.jiraCloud;
+ this.workplaceSearchJiraServer = docLinks.links.workplaceSearch.jiraServer;
+ this.workplaceSearchNativeAuth = docLinks.links.workplaceSearch.nativeAuth;
+ this.workplaceSearchOneDrive = docLinks.links.workplaceSearch.oneDrive;
+ this.workplaceSearchPermissions = docLinks.links.workplaceSearch.permissions;
+ this.workplaceSearchSalesforce = docLinks.links.workplaceSearch.salesforce;
+ this.workplaceSearchSecurity = docLinks.links.workplaceSearch.security;
+ this.workplaceSearchServiceNow = docLinks.links.workplaceSearch.serviceNow;
+ this.workplaceSearchSharePoint = docLinks.links.workplaceSearch.sharePoint;
+ this.workplaceSearchSlack = docLinks.links.workplaceSearch.slack;
+ this.workplaceSearchStandardAuth = docLinks.links.workplaceSearch.standardAuth;
+ this.workplaceSearchSynch = docLinks.links.workplaceSearch.synch;
+ this.workplaceSearchZendesk = docLinks.links.workplaceSearch.zendesk;
}
}
diff --git a/x-pack/plugins/enterprise_search/public/applications/shared/licensing/manage_license_button.test.tsx b/x-pack/plugins/enterprise_search/public/applications/shared/licensing/manage_license_button.test.tsx
index 1877a4cbd0e42..07c71def01bed 100644
--- a/x-pack/plugins/enterprise_search/public/applications/shared/licensing/manage_license_button.test.tsx
+++ b/x-pack/plugins/enterprise_search/public/applications/shared/licensing/manage_license_button.test.tsx
@@ -13,6 +13,8 @@ import { shallow } from 'enzyme';
import { EuiButton } from '@elastic/eui';
+import { docLinks } from '../../shared/doc_links';
+
import { EuiButtonTo } from '../react_router_helpers';
import { ManageLicenseButton } from './';
@@ -35,7 +37,7 @@ describe('ManageLicenseButton', () => {
const wrapper = shallow();
expect(wrapper.find(EuiButton).prop('href')).toEqual(
- expect.stringContaining('/license-management.html')
+ expect.stringContaining(docLinks.licenseManagement)
);
});
});
diff --git a/x-pack/plugins/enterprise_search/public/applications/shared/licensing/manage_license_button.tsx b/x-pack/plugins/enterprise_search/public/applications/shared/licensing/manage_license_button.tsx
index af3b33e3d7a3d..d0fe98a7c1393 100644
--- a/x-pack/plugins/enterprise_search/public/applications/shared/licensing/manage_license_button.tsx
+++ b/x-pack/plugins/enterprise_search/public/applications/shared/licensing/manage_license_button.tsx
@@ -27,12 +27,7 @@ export const ManageLicenseButton: React.FC = (props) => {
})}
) : (
-
+
{i18n.translate('xpack.enterpriseSearch.licenseDocumentationLink', {
defaultMessage: 'Learn more about license features',
})}
diff --git a/x-pack/plugins/enterprise_search/public/applications/shared/role_mapping/role_mappings_table.tsx b/x-pack/plugins/enterprise_search/public/applications/shared/role_mapping/role_mappings_table.tsx
index 6e213edf457b1..667980d5f0492 100644
--- a/x-pack/plugins/enterprise_search/public/applications/shared/role_mapping/role_mappings_table.tsx
+++ b/x-pack/plugins/enterprise_search/public/applications/shared/role_mapping/role_mappings_table.tsx
@@ -18,7 +18,7 @@ import { RoleRules } from '../types';
import './role_mappings_table.scss';
-const AUTH_PROVIDER_DOCUMENTATION_URL = `${docLinks.enterpriseSearchBase}/users-access.html`;
+const AUTH_PROVIDER_DOCUMENTATION_URL = `${docLinks.enterpriseSearchUsersAccess}`;
import {
ANY_AUTH_PROVIDER,
diff --git a/x-pack/plugins/enterprise_search/public/applications/shared/role_mapping/user_selector.tsx b/x-pack/plugins/enterprise_search/public/applications/shared/role_mapping/user_selector.tsx
index 25aff5077c680..077ef44c66b2f 100644
--- a/x-pack/plugins/enterprise_search/public/applications/shared/role_mapping/user_selector.tsx
+++ b/x-pack/plugins/enterprise_search/public/applications/shared/role_mapping/user_selector.tsx
@@ -24,7 +24,7 @@ import { Role as WSRole } from '../../workplace_search/types';
import { USERNAME_LABEL, EMAIL_LABEL } from '../constants';
import { docLinks } from '../doc_links';
-const SMTP_URL = `${docLinks.enterpriseSearchBase}/mailer-configuration.html`;
+const SMTP_URL = `${docLinks.enterpriseSearchMailService}`;
import {
NEW_USER_LABEL,
diff --git a/x-pack/plugins/enterprise_search/public/applications/shared/role_mapping/users_empty_prompt.tsx b/x-pack/plugins/enterprise_search/public/applications/shared/role_mapping/users_empty_prompt.tsx
index 42bf690c388c4..56e0a325aafd0 100644
--- a/x-pack/plugins/enterprise_search/public/applications/shared/role_mapping/users_empty_prompt.tsx
+++ b/x-pack/plugins/enterprise_search/public/applications/shared/role_mapping/users_empty_prompt.tsx
@@ -20,7 +20,7 @@ import { docLinks } from '../doc_links';
import { NO_USERS_TITLE, NO_USERS_DESCRIPTION, ENABLE_USERS_LINK } from './constants';
-const USERS_DOCS_URL = `${docLinks.enterpriseSearchBase}/users-access.html`;
+const USERS_DOCS_URL = `${docLinks.enterpriseSearchUsersAccess}`;
export const UsersEmptyPrompt: React.FC = () => (
diff --git a/x-pack/plugins/enterprise_search/public/applications/shared/setup_guide/cloud/instructions.tsx b/x-pack/plugins/enterprise_search/public/applications/shared/setup_guide/cloud/instructions.tsx
index 4845d682b8771..8d41e221a2cc7 100644
--- a/x-pack/plugins/enterprise_search/public/applications/shared/setup_guide/cloud/instructions.tsx
+++ b/x-pack/plugins/enterprise_search/public/applications/shared/setup_guide/cloud/instructions.tsx
@@ -80,10 +80,7 @@ export const CloudSetupInstructions: React.FC = ({ productName, cloudDepl
defaultMessage="After enabling Enterprise Search for your instance you can customize the instance, including fault tolerance, RAM, and other {optionsLink}."
values={{
optionsLink: (
-
+
{i18n.translate(
'xpack.enterpriseSearch.setupGuide.cloud.step3.instruction1LinkText',
{ defaultMessage: 'configurable options' }
@@ -125,10 +122,7 @@ export const CloudSetupInstructions: React.FC = ({ productName, cloudDepl
values={{
productName,
configurePolicyLink: (
-
+
{i18n.translate(
'xpack.enterpriseSearch.setupGuide.cloud.step5.instruction1LinkText',
{ defaultMessage: 'configure an index lifecycle policy' }
diff --git a/x-pack/plugins/enterprise_search/public/applications/workplace_search/routes.ts b/x-pack/plugins/enterprise_search/public/applications/workplace_search/routes.ts
index 1be152ad5ca0b..b28343f37ea25 100644
--- a/x-pack/plugins/enterprise_search/public/applications/workplace_search/routes.ts
+++ b/x-pack/plugins/enterprise_search/public/applications/workplace_search/routes.ts
@@ -17,37 +17,36 @@ export const LOGOUT_ROUTE = '/logout';
export const LEAVE_FEEDBACK_EMAIL = 'support@elastic.co';
export const LEAVE_FEEDBACK_URL = `mailto:${LEAVE_FEEDBACK_EMAIL}?Subject=Elastic%20Workplace%20Search%20Feedback`;
-export const DOCS_PREFIX = docLinks.workplaceSearchBase;
-export const PERMISSIONS_DOCS_URL = `${DOCS_PREFIX}/workplace-search-permissions.html`;
-export const DOCUMENT_PERMISSIONS_DOCS_URL = `${DOCS_PREFIX}/workplace-search-sources-document-permissions.html`;
-export const DOCUMENT_PERMISSIONS_SYNC_DOCS_URL = `${DOCUMENT_PERMISSIONS_DOCS_URL}#sources-permissions-synchronizing`;
-export const PRIVATE_SOURCES_DOCS_URL = `${PERMISSIONS_DOCS_URL}#organizational-sources-private-sources`;
-export const EXTERNAL_IDENTITIES_DOCS_URL = `${DOCS_PREFIX}/workplace-search-external-identities-api.html`;
-export const SECURITY_DOCS_URL = `${DOCS_PREFIX}/workplace-search-security.html`;
-export const SMTP_DOCS_URL = `${DOCS_PREFIX}/workplace-search-smtp-mailer.html`;
-export const BOX_DOCS_URL = `${DOCS_PREFIX}/workplace-search-box-connector.html`;
-export const CONFLUENCE_DOCS_URL = `${DOCS_PREFIX}/workplace-search-confluence-cloud-connector.html`;
-export const CONFLUENCE_SERVER_DOCS_URL = `${DOCS_PREFIX}/workplace-search-confluence-server-connector.html`;
-export const DROPBOX_DOCS_URL = `${DOCS_PREFIX}/workplace-search-dropbox-connector.html`;
-export const GITHUB_DOCS_URL = `${DOCS_PREFIX}/workplace-search-github-connector.html`;
-export const GITHUB_ENTERPRISE_DOCS_URL = `${DOCS_PREFIX}/workplace-search-github-connector.html`;
-export const GMAIL_DOCS_URL = `${DOCS_PREFIX}/workplace-search-gmail-connector.html`;
-export const GOOGLE_DRIVE_DOCS_URL = `${DOCS_PREFIX}/workplace-search-google-drive-connector.html`;
-export const JIRA_DOCS_URL = `${DOCS_PREFIX}/workplace-search-jira-cloud-connector.html`;
-export const JIRA_SERVER_DOCS_URL = `${DOCS_PREFIX}/workplace-search-jira-server-connector.html`;
-export const ONEDRIVE_DOCS_URL = `${DOCS_PREFIX}/workplace-search-onedrive-connector.html`;
-export const SALESFORCE_DOCS_URL = `${DOCS_PREFIX}/workplace-search-salesforce-connector.html`;
-export const SERVICENOW_DOCS_URL = `${DOCS_PREFIX}/workplace-search-servicenow-connector.html`;
-export const SHAREPOINT_DOCS_URL = `${DOCS_PREFIX}/workplace-search-sharepoint-online-connector.html`;
-export const SLACK_DOCS_URL = `${DOCS_PREFIX}/workplace-search-slack-connector.html`;
-export const ZENDESK_DOCS_URL = `${DOCS_PREFIX}/workplace-search-zendesk-connector.html`;
-export const CUSTOM_SOURCE_DOCS_URL = `${DOCS_PREFIX}/workplace-search-custom-api-sources.html`;
-export const CUSTOM_API_DOCS_URL = `${DOCS_PREFIX}/workplace-search-custom-sources-api.html`;
-export const CUSTOM_API_DOCUMENT_PERMISSIONS_DOCS_URL = `${CUSTOM_SOURCE_DOCS_URL}#custom-api-source-document-level-access-control`;
-export const ENT_SEARCH_LICENSE_MANAGEMENT = `${docLinks.enterpriseSearchBase}/license-management.html`;
-export const SYNCHRONIZATION_DOCS_URL = `${DOCS_PREFIX}}/workplace-search-customizing-indexing-rules.html#workplace-search-customizing-indexing-rules`;
-export const DIFFERENT_SYNC_TYPES_DOCS_URL = `${DOCS_PREFIX}}/workplace-search-customizing-indexing-rules.html#_indexing_schedule`;
-export const OBJECTS_AND_ASSETS_DOCS_URL = `${DOCS_PREFIX}}/workplace-search-customizing-indexing-rules.html#workplace-search-customizing-indexing-rules`;
+export const BOX_DOCS_URL = docLinks.workplaceSearchBox;
+export const CONFLUENCE_DOCS_URL = docLinks.workplaceSearchConfluenceCloud;
+export const CONFLUENCE_SERVER_DOCS_URL = docLinks.workplaceSearchConfluenceServer;
+export const CUSTOM_SOURCE_DOCS_URL = docLinks.workplaceSearchCustomSources;
+export const CUSTOM_API_DOCUMENT_PERMISSIONS_DOCS_URL =
+ docLinks.workplaceSearchCustomSourcePermissions;
+export const DIFFERENT_SYNC_TYPES_DOCS_URL = docLinks.workplaceSearchIndexingSchedule;
+export const DOCUMENT_PERMISSIONS_DOCS_URL = docLinks.workplaceSearchDocumentPermissions;
+export const DROPBOX_DOCS_URL = docLinks.workplaceSearchDropbox;
+export const ENT_SEARCH_LICENSE_MANAGEMENT = docLinks.licenseManagement;
+export const EXTERNAL_IDENTITIES_DOCS_URL = docLinks.workplaceSearchExternalIdentities;
+export const GETTING_STARTED_DOCS_URL = docLinks.workplaceSearchGettingStarted;
+export const GITHUB_DOCS_URL = docLinks.workplaceSearchGitHub;
+export const GITHUB_ENTERPRISE_DOCS_URL = docLinks.workplaceSearchGitHub;
+export const GMAIL_DOCS_URL = docLinks.workplaceSearchGmail;
+export const GOOGLE_DRIVE_DOCS_URL = docLinks.workplaceSearchGoogleDrive;
+export const JIRA_DOCS_URL = docLinks.workplaceSearchJiraCloud;
+export const JIRA_SERVER_DOCS_URL = docLinks.workplaceSearchJiraServer;
+export const NATIVE_AUTH_DOCS_URL = docLinks.workplaceSearchNativeAuth;
+export const OBJECTS_AND_ASSETS_DOCS_URL = docLinks.workplaceSearchSynch;
+export const ONEDRIVE_DOCS_URL = docLinks.workplaceSearchOneDrive;
+export const PRIVATE_SOURCES_DOCS_URL = docLinks.workplaceSearchPermissions;
+export const SALESFORCE_DOCS_URL = docLinks.workplaceSearchSalesforce;
+export const SECURITY_DOCS_URL = docLinks.workplaceSearchSecurity;
+export const SERVICENOW_DOCS_URL = docLinks.workplaceSearchServiceNow;
+export const SHAREPOINT_DOCS_URL = docLinks.workplaceSearchSharePoint;
+export const SLACK_DOCS_URL = docLinks.workplaceSearchSlack;
+export const STANDARD_AUTH_DOCS_URL = docLinks.workplaceSearchStandardAuth;
+export const SYNCHRONIZATION_DOCS_URL = docLinks.workplaceSearchSynch;
+export const ZENDESK_DOCS_URL = docLinks.workplaceSearchZendesk;
export const PERSONAL_PATH = '/p';
diff --git a/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/settings/components/oauth_application.test.tsx b/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/settings/components/oauth_application.test.tsx
index 4d329ff357b89..a992cf49f75fb 100644
--- a/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/settings/components/oauth_application.test.tsx
+++ b/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/settings/components/oauth_application.test.tsx
@@ -124,9 +124,9 @@ describe('OauthApplication', () => {
`);
});
+ /* This href test should ultimately use the docLinkServiceMock */
it('renders description', () => {
const wrapper = shallow();
-
expect(wrapper.prop('pageHeader').description).toMatchInlineSnapshot(`
{
Explore Platinum features
diff --git a/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/setup_guide/setup_guide.tsx b/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/setup_guide/setup_guide.tsx
index 905ba20e4f660..e52a174850c4c 100644
--- a/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/setup_guide/setup_guide.tsx
+++ b/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/setup_guide/setup_guide.tsx
@@ -15,19 +15,23 @@ import { WORKPLACE_SEARCH_PLUGIN } from '../../../../../common/constants';
import { SetWorkplaceSearchChrome as SetPageChrome } from '../../../shared/kibana_chrome';
import { SetupGuideLayout, SETUP_GUIDE_TITLE } from '../../../shared/setup_guide';
import { SendWorkplaceSearchTelemetry as SendTelemetry } from '../../../shared/telemetry';
-import { DOCS_PREFIX } from '../../routes';
+import {
+ GETTING_STARTED_DOCS_URL,
+ NATIVE_AUTH_DOCS_URL,
+ STANDARD_AUTH_DOCS_URL,
+} from '../../routes';
import GettingStarted from './assets/getting_started.png';
-const GETTING_STARTED_LINK_URL = `${DOCS_PREFIX}/workplace-search-getting-started.html`;
+const GETTING_STARTED_LINK_URL = GETTING_STARTED_DOCS_URL;
export const SetupGuide: React.FC = () => {
return (