From 1d9f76bc562c4e586feb52cf74971394c9c3b35d Mon Sep 17 00:00:00 2001 From: Sander Philipse <94373878+sphilipse@users.noreply.github.com> Date: Thu, 10 Aug 2023 17:06:10 +0200 Subject: [PATCH] [Search] Add Slack and Gmail connectors (#163321) ## Summary This adds Slack and Gmail as Tech Preview connectors. --- .../common/connectors/connectors.ts | 22 ++++++ .../search_index/connector/constants.ts | 13 ++++ .../shared/icons/connector_icons.ts | 4 ++ .../enterprise_search/server/integrations.ts | 68 ++++++++++++------- .../translations/translations/fr-FR.json | 4 -- .../translations/translations/ja-JP.json | 4 -- .../translations/translations/zh-CN.json | 4 -- 7 files changed, 81 insertions(+), 38 deletions(-) diff --git a/x-pack/plugins/enterprise_search/common/connectors/connectors.ts b/x-pack/plugins/enterprise_search/common/connectors/connectors.ts index 1c5a3f30dcc4ab..a1d5b87d9f9657 100644 --- a/x-pack/plugins/enterprise_search/common/connectors/connectors.ts +++ b/x-pack/plugins/enterprise_search/common/connectors/connectors.ts @@ -150,6 +150,17 @@ export const CONNECTOR_DEFINITIONS: ConnectorServerSideDefinition[] = [ }), serviceType: 'dropbox', }, + { + iconPath: 'gmail.svg', + isBeta: false, + isNative: false, + isTechPreview: true, + keywords: ['google', 'gmail', 'connector', 'mail'], + name: i18n.translate('xpack.enterpriseSearch.content.nativeConnectors.gmail.name', { + defaultMessage: 'Gmail', + }), + serviceType: 'gmail', + }, { iconPath: 'oracle.svg', isBeta: true, @@ -181,6 +192,17 @@ export const CONNECTOR_DEFINITIONS: ConnectorServerSideDefinition[] = [ }), serviceType: 'servicenow', }, + { + iconPath: 'slack.svg', + isBeta: false, + isNative: false, + isTechPreview: true, + keywords: ['slack', 'connector'], + name: i18n.translate('xpack.enterpriseSearch.content.nativeConnectors.slack.name', { + defaultMessage: 'Slack', + }), + serviceType: 'slack', + }, { iconPath: 'sharepoint_server.svg', isBeta: true, diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/constants.ts b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/constants.ts index 24b9d342f52d47..bea446bf528c00 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/constants.ts +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/search_index/connector/constants.ts @@ -37,6 +37,12 @@ export const CONNECTORS_DICT: Record = { externalDocsUrl: '', icon: CONNECTOR_ICONS.dropbox, }, + gmail: { + docsUrl: '', // TODO + externalAuthDocsUrl: '', + externalDocsUrl: '', + icon: CONNECTOR_ICONS.gmail, + }, google_cloud_storage: { docsUrl: docLinks.connectorsGoogleCloudStorage, externalAuthDocsUrl: 'https://cloud.google.com/storage/docs/authentication', @@ -118,6 +124,13 @@ export const CONNECTORS_DICT: Record = { icon: CONNECTOR_ICONS.sharepoint_online, platinumOnly: true, }, + slack: { + docsUrl: '', // TODO + externalAuthDocsUrl: '', + externalDocsUrl: '', + icon: CONNECTOR_ICONS.slack, + platinumOnly: true, + }, }; export const CONNECTORS = CONNECTOR_DEFINITIONS.map((connector) => ({ diff --git a/x-pack/plugins/enterprise_search/public/applications/shared/icons/connector_icons.ts b/x-pack/plugins/enterprise_search/public/applications/shared/icons/connector_icons.ts index 5533e6e5d3d3c9..0f412540939849 100644 --- a/x-pack/plugins/enterprise_search/public/applications/shared/icons/connector_icons.ts +++ b/x-pack/plugins/enterprise_search/public/applications/shared/icons/connector_icons.ts @@ -10,6 +10,7 @@ import confluence_cloud from '../../../assets/source_icons/confluence_cloud.svg' import custom from '../../../assets/source_icons/custom.svg'; import dropbox from '../../../assets/source_icons/dropbox.svg'; import github from '../../../assets/source_icons/github.svg'; +import gmail from '../../../assets/source_icons/gmail.svg'; import google_cloud_storage from '../../../assets/source_icons/google_cloud_storage.svg'; import google_drive from '../../../assets/source_icons/google_drive.svg'; import jira_cloud from '../../../assets/source_icons/jira_cloud.svg'; @@ -23,6 +24,7 @@ import amazon_s3 from '../../../assets/source_icons/s3.svg'; import servicenow from '../../../assets/source_icons/servicenow.svg'; import sharepoint from '../../../assets/source_icons/sharepoint.svg'; import sharepoint_online from '../../../assets/source_icons/sharepoint_online.svg'; +import slack from '../../../assets/source_icons/slack.svg'; export const CONNECTOR_ICONS = { amazon_s3, @@ -31,6 +33,7 @@ export const CONNECTOR_ICONS = { custom, dropbox, github, + gmail, google_cloud_storage, google_drive, jira_cloud, @@ -43,4 +46,5 @@ export const CONNECTOR_ICONS = { servicenow, sharepoint, sharepoint_online, + slack, }; diff --git a/x-pack/plugins/enterprise_search/server/integrations.ts b/x-pack/plugins/enterprise_search/server/integrations.ts index 8e60b6b73ff40d..6d2e67d6025484 100644 --- a/x-pack/plugins/enterprise_search/server/integrations.ts +++ b/x-pack/plugins/enterprise_search/server/integrations.ts @@ -34,19 +34,6 @@ const workplaceSearchIntegrations: WorkplaceSearchIntegration[] = [ ), categories: ['enterprise_search', 'workplace_search_content_source'], }, - { - id: 'gmail', - title: i18n.translate('xpack.enterpriseSearch.workplaceSearch.integrations.gmailName', { - defaultMessage: 'Gmail', - }), - description: i18n.translate( - 'xpack.enterpriseSearch.workplaceSearch.integrations.gmailDescription', - { - defaultMessage: 'Search over your emails managed by Gmail with Workplace Search.', - } - ), - categories: ['enterprise_search', 'google_cloud', 'workplace_search_content_source'], - }, { id: 'onedrive', title: i18n.translate('xpack.enterpriseSearch.workplaceSearch.integrations.onedriveName', { @@ -77,19 +64,6 @@ const workplaceSearchIntegrations: WorkplaceSearchIntegration[] = [ ), categories: ['enterprise_search', 'workplace_search_content_source'], }, - { - id: 'slack', - title: i18n.translate('xpack.enterpriseSearch.workplaceSearch.integrations.slackName', { - defaultMessage: 'Slack', - }), - description: i18n.translate( - 'xpack.enterpriseSearch.workplaceSearch.integrations.slackDescription', - { - defaultMessage: 'Search over your messages on Slack with Workplace Search.', - } - ), - categories: ['enterprise_search', 'workplace_search_content_source'], - }, { id: 'zendesk', title: i18n.translate('xpack.enterpriseSearch.workplaceSearch.integrations.zendeskName', { @@ -303,6 +277,27 @@ export const registerEnterpriseSearchIntegrations = ( isBeta: false, }); + customIntegrations.registerCustomIntegration({ + id: 'gmail', + title: i18n.translate('xpack.enterpriseSearch.content.integrations.gmail', { + defaultMessage: 'Gmail', + }), + description: i18n.translate('xpack.enterpriseSearch.content.integrations.gmailDescription', { + defaultMessage: 'Search over your content on Gmail.', + }), + categories: ['enterprise_search', 'elastic_stack', 'connector', 'connector_client'], + uiInternalPath: + '/app/enterprise_search/content/search_indices/new_index/connector?service_type=gmail', + icons: [ + { + type: 'svg', + src: http.basePath.prepend('/plugins/enterpriseSearch/assets/source_icons/gmail.svg'), + }, + ], + shipper: 'enterprise_search', + isBeta: false, + }); + customIntegrations.registerCustomIntegration({ id: 'mongodb', title: i18n.translate('xpack.enterpriseSearch.workplaceSearch.integrations.mongoDBName', { @@ -547,6 +542,27 @@ export const registerEnterpriseSearchIntegrations = ( isBeta: false, }); + customIntegrations.registerCustomIntegration({ + id: 'slack', + title: i18n.translate('xpack.enterpriseSearch.content.integrations.slack', { + defaultMessage: 'Slack', + }), + description: i18n.translate('xpack.enterpriseSearch.content.integrations.slackDescription', { + defaultMessage: 'Search over your content on Slack.', + }), + categories: ['enterprise_search', 'elastic_stack', 'connector', 'connector_client'], + uiInternalPath: + '/app/enterprise_search/content/search_indices/new_index/connector?service_type=slack', + icons: [ + { + type: 'svg', + src: http.basePath.prepend('/plugins/enterpriseSearch/assets/source_icons/slack.svg'), + }, + ], + shipper: 'enterprise_search', + isBeta: false, + }); + customIntegrations.registerCustomIntegration({ id: 'oracle', title: i18n.translate('xpack.enterpriseSearch.workplaceSearch.integrations.oracleName', { diff --git a/x-pack/plugins/translations/translations/fr-FR.json b/x-pack/plugins/translations/translations/fr-FR.json index 05b6128ced4267..dcd9d175820be4 100644 --- a/x-pack/plugins/translations/translations/fr-FR.json +++ b/x-pack/plugins/translations/translations/fr-FR.json @@ -14873,8 +14873,6 @@ "xpack.enterpriseSearch.workplaceSearch.integrations.azureBlobDescription": "Effectuez des recherches sur votre contenu sur Stockage Blob Azure avec Enterprise Search.", "xpack.enterpriseSearch.workplaceSearch.integrations.boxDescription": "Effectuez des recherches dans vos fichiers et dossiers stockés sur Box avec Workplace Search.", "xpack.enterpriseSearch.workplaceSearch.integrations.boxName": "Box", - "xpack.enterpriseSearch.workplaceSearch.integrations.gmailDescription": "Effectuez des recherches dans vos e-mails gérés par Gmail avec Workplace Search.", - "xpack.enterpriseSearch.workplaceSearch.integrations.gmailName": "Gmail", "xpack.enterpriseSearch.workplaceSearch.integrations.googleCloud": "Google Cloud Storage", "xpack.enterpriseSearch.workplaceSearch.integrations.googleCloudDescription": "Effectuez des recherches sur votre contenu sur Google Cloud Storage avec Enterprise Search.", "xpack.enterpriseSearch.workplaceSearch.integrations.googleDriveDescription": "Effectuez des recherches dans vos documents sur Google Drive avec Workplace Search.", @@ -14900,8 +14898,6 @@ "xpack.enterpriseSearch.workplaceSearch.integrations.sharepointOnlineName": "SharePoint Online", "xpack.enterpriseSearch.workplaceSearch.integrations.sharepointServerDescription": "Effectuez des recherches dans vos fichiers stockés sur le serveur Microsoft SharePoint avec Workplace Search.", "xpack.enterpriseSearch.workplaceSearch.integrations.sharepointServerName": "Serveur SharePoint", - "xpack.enterpriseSearch.workplaceSearch.integrations.slackDescription": "Effectuez des recherches dans vos messages sur Slack avec Workplace Search.", - "xpack.enterpriseSearch.workplaceSearch.integrations.slackName": "Slack", "xpack.enterpriseSearch.workplaceSearch.integrations.zendeskDescription": "Effectuez des recherches dans vos tickets sur Zendesk avec Workplace Search.", "xpack.enterpriseSearch.workplaceSearch.integrations.zendeskName": "Zendesk", "xpack.enterpriseSearch.workplaceSearch.keepEditing.button": "Continuer la modification", diff --git a/x-pack/plugins/translations/translations/ja-JP.json b/x-pack/plugins/translations/translations/ja-JP.json index 9a50ace7956fdc..f49042924be5dd 100644 --- a/x-pack/plugins/translations/translations/ja-JP.json +++ b/x-pack/plugins/translations/translations/ja-JP.json @@ -14887,8 +14887,6 @@ "xpack.enterpriseSearch.workplaceSearch.integrations.azureBlobDescription": "エンタープライズ サーチでAzure Blob Storageのコンテンツを検索します。", "xpack.enterpriseSearch.workplaceSearch.integrations.boxDescription": "Workplace Searchを使用して、Boxに保存されたファイルとフォルダーを検索します。", "xpack.enterpriseSearch.workplaceSearch.integrations.boxName": "Box", - "xpack.enterpriseSearch.workplaceSearch.integrations.gmailDescription": "Workplace Searchを使用して、Gmailで管理された電子メールを検索します。", - "xpack.enterpriseSearch.workplaceSearch.integrations.gmailName": "Gmail", "xpack.enterpriseSearch.workplaceSearch.integrations.googleCloud": "Google Cloud Storage", "xpack.enterpriseSearch.workplaceSearch.integrations.googleCloudDescription": "エンタープライズ サーチでGoogle Cloud Storageのコンテンツを検索します。", "xpack.enterpriseSearch.workplaceSearch.integrations.googleDriveDescription": "Workplace Searchを使用して、Google Driveのドキュメントを検索します。", @@ -14914,8 +14912,6 @@ "xpack.enterpriseSearch.workplaceSearch.integrations.sharepointOnlineName": "SharePoint Online", "xpack.enterpriseSearch.workplaceSearch.integrations.sharepointServerDescription": "Workplace Searchを使用して、Microsoft SharePoint Serverに保存されたファイルを検索します。", "xpack.enterpriseSearch.workplaceSearch.integrations.sharepointServerName": "SharePoint Server", - "xpack.enterpriseSearch.workplaceSearch.integrations.slackDescription": "Workplace Searchを使用して、Slackのメッセージを検索します。", - "xpack.enterpriseSearch.workplaceSearch.integrations.slackName": "Slack", "xpack.enterpriseSearch.workplaceSearch.integrations.zendeskDescription": "Workplace Searchを使用して、Zendeskのチケットを検索します。", "xpack.enterpriseSearch.workplaceSearch.integrations.zendeskName": "Zendesk", "xpack.enterpriseSearch.workplaceSearch.keepEditing.button": "編集を続行", diff --git a/x-pack/plugins/translations/translations/zh-CN.json b/x-pack/plugins/translations/translations/zh-CN.json index b4ba29347e08f5..1556ea23a7cc36 100644 --- a/x-pack/plugins/translations/translations/zh-CN.json +++ b/x-pack/plugins/translations/translations/zh-CN.json @@ -14887,8 +14887,6 @@ "xpack.enterpriseSearch.workplaceSearch.integrations.azureBlobDescription": "使用 Enterprise Search 在 Azure Blob 存储上搜索您的内容。", "xpack.enterpriseSearch.workplaceSearch.integrations.boxDescription": "通过 Workplace Search 搜索存储在 Box 上的文件和文件夹。", "xpack.enterpriseSearch.workplaceSearch.integrations.boxName": "Box", - "xpack.enterpriseSearch.workplaceSearch.integrations.gmailDescription": "通过 Workplace Search 搜索由 Gmail 管理的电子邮件。", - "xpack.enterpriseSearch.workplaceSearch.integrations.gmailName": "Gmail", "xpack.enterpriseSearch.workplaceSearch.integrations.googleCloud": "Google Cloud Storage", "xpack.enterpriseSearch.workplaceSearch.integrations.googleCloudDescription": "使用 Enterprise Search 在 Google Cloud Storage 上搜索您的内容。", "xpack.enterpriseSearch.workplaceSearch.integrations.googleDriveDescription": "通过 Workplace Search 搜索 Google 云端硬盘上的文档。", @@ -14914,8 +14912,6 @@ "xpack.enterpriseSearch.workplaceSearch.integrations.sharepointOnlineName": "Sharepoint", "xpack.enterpriseSearch.workplaceSearch.integrations.sharepointServerDescription": "通过 Workplace Search 搜索存储在 Microsoft SharePoint Server 上的文件。", "xpack.enterpriseSearch.workplaceSearch.integrations.sharepointServerName": "SharePoint Server", - "xpack.enterpriseSearch.workplaceSearch.integrations.slackDescription": "通过 Workplace Search 搜索 Slack 上的消息。", - "xpack.enterpriseSearch.workplaceSearch.integrations.slackName": "Slack", "xpack.enterpriseSearch.workplaceSearch.integrations.zendeskDescription": "通过 Workplace Search 搜索 Zendesk 上的工单。", "xpack.enterpriseSearch.workplaceSearch.integrations.zendeskName": "Zendesk", "xpack.enterpriseSearch.workplaceSearch.keepEditing.button": "继续编辑",