[Workplace Search] Migrate sourceData from ent-search (#83459)

* Add types and missing routes

Salesforce Sandbox routes had been added since the routes were migrated.

* Migrate source_data

This is a direct port from `ent-search` with no changes other than linting.

* Adds i18n to strings in sourceData

Shared items were extracted to constants. Others were done inline

* Fix typo

* Another typo

* Rename ONE_DIVE

* Rename SERVICE_NOW

* Remove redundant variable

* Rename SHARE_POINT

* Update routes to remove hyphens
This commit is contained in:
Scotty Bollinger 2020-11-16 15:53:04 -06:00 committed by GitHub
parent 50efaecf70
commit 2286c50dc5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 954 additions and 9 deletions

View file

@ -54,4 +54,194 @@ export const SOURCE_STATUSES = {
ALWAYS_SYNCED: 'always_synced',
};
export const SOURCE_NAMES = {
CONFLUENCE: i18n.translate(
'xpack.enterpriseSearch.workplaceSearch.sources.sourceNames.confluence',
{ defaultMessage: 'Confluence' }
),
CONFLUENCE_SERVER: i18n.translate(
'xpack.enterpriseSearch.workplaceSearch.sources.sourceNames.confluenceServer',
{ defaultMessage: 'Confluence (Server)' }
),
DROPBOX: i18n.translate('xpack.enterpriseSearch.workplaceSearch.sources.sourceNames.dropbox', {
defaultMessage: 'Dropbox',
}),
GITHUB: i18n.translate('xpack.enterpriseSearch.workplaceSearch.sources.sourceNames.github', {
defaultMessage: 'GitHub',
}),
GITHUB_ENTERPRISE: i18n.translate(
'xpack.enterpriseSearch.workplaceSearch.sources.sourceNames.githubEnterprise',
{ defaultMessage: 'GitHub Enterprise Server' }
),
GMAIL: i18n.translate('xpack.enterpriseSearch.workplaceSearch.sources.sourceNames.gmail', {
defaultMessage: 'Gmail',
}),
GOOGLE_DRIVE: i18n.translate(
'xpack.enterpriseSearch.workplaceSearch.sources.sourceNames.googleDrive',
{ defaultMessage: 'Google Drive' }
),
JIRA: i18n.translate('xpack.enterpriseSearch.workplaceSearch.sources.sourceNames.jira', {
defaultMessage: 'Jira',
}),
JIRA_SERVER: i18n.translate(
'xpack.enterpriseSearch.workplaceSearch.sources.sourceNames.jiraServer',
{ defaultMessage: 'Jira (Server)' }
),
ONEDRIVE: i18n.translate('xpack.enterpriseSearch.workplaceSearch.sources.sourceNames.oneDrive', {
defaultMessage: 'OneDrive',
}),
SALESFORCE: i18n.translate(
'xpack.enterpriseSearch.workplaceSearch.sources.sourceNames.salesforce',
{ defaultMessage: 'Salesforce' }
),
SALESFORCE_SANDBOX: i18n.translate(
'xpack.enterpriseSearch.workplaceSearch.sources.sourceNames.salesforceSandbox',
{ defaultMessage: 'Salesforce Sandbox' }
),
SERVICENOW: i18n.translate(
'xpack.enterpriseSearch.workplaceSearch.sources.sourceNames.serviceNow',
{ defaultMessage: 'ServiceNow' }
),
SHAREPOINT: i18n.translate(
'xpack.enterpriseSearch.workplaceSearch.sources.sourceNames.sharePoint',
{ defaultMessage: 'SharePoint Online' }
),
SLACK: i18n.translate('xpack.enterpriseSearch.workplaceSearch.sources.sourceNames.slack', {
defaultMessage: 'Slack',
}),
ZENDESK: i18n.translate('xpack.enterpriseSearch.workplaceSearch.sources.sourceNames.zendesk', {
defaultMessage: 'Zendesk',
}),
CUSTOM: i18n.translate('xpack.enterpriseSearch.workplaceSearch.sources.sourceNames.custom', {
defaultMessage: 'Custom API Source',
}),
};
export const SOURCE_OBJ_TYPES = {
PAGES: i18n.translate('xpack.enterpriseSearch.workplaceSearch.sources.objTypes.pages', {
defaultMessage: 'Pages',
}),
ATTACHMENTS: i18n.translate(
'xpack.enterpriseSearch.workplaceSearch.sources.objTypes.attachments',
{ defaultMessage: 'Attachments' }
),
BLOG_POSTS: i18n.translate('xpack.enterpriseSearch.workplaceSearch.sources.objTypes.blogPosts', {
defaultMessage: 'Blog Posts',
}),
SITES: i18n.translate('xpack.enterpriseSearch.workplaceSearch.sources.objTypes.sites', {
defaultMessage: 'Sites',
}),
SPACES: i18n.translate('xpack.enterpriseSearch.workplaceSearch.sources.objTypes.spaces', {
defaultMessage: 'Spaces',
}),
ALL_FILES: i18n.translate('xpack.enterpriseSearch.workplaceSearch.sources.objTypes.allFiles', {
defaultMessage:
'All Files (including images, PDFs, spreadsheets, textual documents, presentations)',
}),
ALL_STORED_FILES: i18n.translate(
'xpack.enterpriseSearch.workplaceSearch.sources.objTypes.allStoredFiles',
{
defaultMessage:
'All Stored Files (including images, videos, PDFs, spreadsheets, textual documents, presentations)',
}
),
G_SUITE_FILES: i18n.translate(
'xpack.enterpriseSearch.workplaceSearch.sources.objTypes.gSuiteFiles',
{
defaultMessage: 'Google G Suite Documents (Docs, Sheets, Slides)',
}
),
EPICS: i18n.translate('xpack.enterpriseSearch.workplaceSearch.sources.objTypes.epics', {
defaultMessage: 'Epics',
}),
PROJECTS: i18n.translate('xpack.enterpriseSearch.workplaceSearch.sources.objTypes.projects', {
defaultMessage: 'Projects',
}),
TASKS: i18n.translate('xpack.enterpriseSearch.workplaceSearch.sources.objTypes.tasks', {
defaultMessage: 'Tasks',
}),
STORIES: i18n.translate('xpack.enterpriseSearch.workplaceSearch.sources.objTypes.stories', {
defaultMessage: 'Stories',
}),
BUGS: i18n.translate('xpack.enterpriseSearch.workplaceSearch.sources.objTypes.bugs', {
defaultMessage: 'Bugs',
}),
ISSUES: i18n.translate('xpack.enterpriseSearch.workplaceSearch.sources.objTypes.issues', {
defaultMessage: 'Issues',
}),
PULL_REQUESTS: i18n.translate(
'xpack.enterpriseSearch.workplaceSearch.sources.objTypes.pullRequests',
{
defaultMessage: 'Pull Requests',
}
),
REPOSITORY_LIST: i18n.translate(
'xpack.enterpriseSearch.workplaceSearch.sources.objTypes.repositoryList',
{
defaultMessage: 'Repository List',
}
),
EMAILS: i18n.translate('xpack.enterpriseSearch.workplaceSearch.sources.objTypes.emails', {
defaultMessage: 'Emails',
}),
CONTACTS: i18n.translate('xpack.enterpriseSearch.workplaceSearch.sources.objTypes.contacts', {
defaultMessage: 'Contacts',
}),
OPPORTUNITIES: i18n.translate(
'xpack.enterpriseSearch.workplaceSearch.sources.objTypes.opportunities',
{
defaultMessage: 'Opportunities',
}
),
LEADS: i18n.translate('xpack.enterpriseSearch.workplaceSearch.sources.objTypes.leads', {
defaultMessage: 'Leads',
}),
ACCOUNTS: i18n.translate('xpack.enterpriseSearch.workplaceSearch.sources.objTypes.accounts', {
defaultMessage: 'Accounts',
}),
CAMPAIGNS: i18n.translate('xpack.enterpriseSearch.workplaceSearch.sources.objTypes.campaigns', {
defaultMessage: 'Campaigns',
}),
USERS: i18n.translate('xpack.enterpriseSearch.workplaceSearch.sources.objTypes.users', {
defaultMessage: 'Users',
}),
INCIDENTS: i18n.translate('xpack.enterpriseSearch.workplaceSearch.sources.objTypes.incidents', {
defaultMessage: 'Incidents',
}),
ITEMS: i18n.translate('xpack.enterpriseSearch.workplaceSearch.sources.objTypes.items', {
defaultMessage: 'Items',
}),
ARTICLES: i18n.translate('xpack.enterpriseSearch.workplaceSearch.sources.objTypes.articles', {
defaultMessage: 'Articles',
}),
TICKETS: i18n.translate('xpack.enterpriseSearch.workplaceSearch.sources.objTypes.tickets', {
defaultMessage: 'Tickets',
}),
PUBLIC_MESSAGES: i18n.translate(
'xpack.enterpriseSearch.workplaceSearch.sources.objTypes.publicMessages',
{
defaultMessage: 'Public channel messages',
}
),
PRIVATE_MESSAGES: i18n.translate(
'xpack.enterpriseSearch.workplaceSearch.sources.objTypes.privateMessages',
{
defaultMessage: 'Private channel messages in which you are an active participant',
}
),
DIRECT_MESSAGES: i18n.translate(
'xpack.enterpriseSearch.workplaceSearch.sources.objTypes.directMessages',
{
defaultMessage: 'Direct messages',
}
),
};
export const GITHUB_LINK_TITLE = i18n.translate(
'xpack.enterpriseSearch.workplaceSearch.sources.applicationLinkTitles.github',
{
defaultMessage: 'GitHub Developer Portal',
}
);
export const CUSTOM_SERVICE_TYPE = 'custom';

View file

@ -30,10 +30,10 @@ export const GMAIL_DOCS_URL = `${DOCS_PREFIX}/workplace-search-gmail-connector.h
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 ONE_DRIVE_DOCS_URL = `${DOCS_PREFIX}/workplace-search-onedrive-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 SERVICE_NOW_DOCS_URL = `${DOCS_PREFIX}/workplace-search-servicenow-connector.html`;
export const SHARE_POINT_DOCS_URL = `${DOCS_PREFIX}/workplace-search-sharepoint-online-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`;
@ -68,10 +68,11 @@ export const ADD_GMAIL_PATH = `${SOURCES_PATH}/add/gmail`;
export const ADD_GOOGLE_DRIVE_PATH = `${SOURCES_PATH}/add/google-drive`;
export const ADD_JIRA_PATH = `${SOURCES_PATH}/add/jira-cloud`;
export const ADD_JIRA_SERVER_PATH = `${SOURCES_PATH}/add/jira-server`;
export const ADD_ONE_DRIVE_PATH = `${SOURCES_PATH}/add/one-drive`;
export const ADD_ONEDRIVE_PATH = `${SOURCES_PATH}/add/onedrive`;
export const ADD_SALESFORCE_PATH = `${SOURCES_PATH}/add/salesforce`;
export const ADD_SERVICE_NOW_PATH = `${SOURCES_PATH}/add/service-now`;
export const ADD_SHARE_POINT_PATH = `${SOURCES_PATH}/add/share-point`;
export const ADD_SALESFORCE_SANDBOX_PATH = `${SOURCES_PATH}/add/salesforce-sandbox`;
export const ADD_SERVICENOW_PATH = `${SOURCES_PATH}/add/servicenow`;
export const ADD_SHAREPOINT_PATH = `${SOURCES_PATH}/add/sharepoint`;
export const ADD_SLACK_PATH = `${SOURCES_PATH}/add/slack`;
export const ADD_ZENDESK_PATH = `${SOURCES_PATH}/add/zendesk`;
export const ADD_CUSTOM_PATH = `${SOURCES_PATH}/add/custom`;
@ -101,10 +102,11 @@ export const EDIT_GMAIL_PATH = `${ORG_SETTINGS_CONNECTORS_PATH}/gmail/edit`;
export const EDIT_GOOGLE_DRIVE_PATH = `${ORG_SETTINGS_CONNECTORS_PATH}/google-drive/edit`;
export const EDIT_JIRA_PATH = `${ORG_SETTINGS_CONNECTORS_PATH}/jira-cloud/edit`;
export const EDIT_JIRA_SERVER_PATH = `${ORG_SETTINGS_CONNECTORS_PATH}/jira-server/edit`;
export const EDIT_ONE_DRIVE_PATH = `${ORG_SETTINGS_CONNECTORS_PATH}/one-drive/edit`;
export const EDIT_ONEDRIVE_PATH = `${ORG_SETTINGS_CONNECTORS_PATH}/onedrive/edit`;
export const EDIT_SALESFORCE_PATH = `${ORG_SETTINGS_CONNECTORS_PATH}/salesforce/edit`;
export const EDIT_SERVICE_NOW_PATH = `${ORG_SETTINGS_CONNECTORS_PATH}/service-now/edit`;
export const EDIT_SHARE_POINT_PATH = `${ORG_SETTINGS_CONNECTORS_PATH}/share-point/edit`;
export const EDIT_SALESFORCE_SANDBOX_PATH = `${ORG_SETTINGS_CONNECTORS_PATH}/salesforce-sandbox/edit`;
export const EDIT_SERVICENOW_PATH = `${ORG_SETTINGS_CONNECTORS_PATH}/servicenow/edit`;
export const EDIT_SHAREPOINT_PATH = `${ORG_SETTINGS_CONNECTORS_PATH}/sharepoint/edit`;
export const EDIT_SLACK_PATH = `${ORG_SETTINGS_CONNECTORS_PATH}/slack/edit`;
export const EDIT_ZENDESK_PATH = `${ORG_SETTINGS_CONNECTORS_PATH}/zendesk/edit`;
export const EDIT_CUSTOM_PATH = `${ORG_SETTINGS_CONNECTORS_PATH}/custom/edit`;

View file

@ -57,3 +57,13 @@ export interface ContentSourceDetails extends ContentSource {
export interface SourcePriority {
[id: string]: number;
}
export enum FeatureIds {
SyncFrequency = 'SyncFrequency',
SyncedItems = 'SyncedItems',
SearchableContent = 'SearchableContent',
Remote = 'Remote',
Private = 'Private',
GlobalAccessPermissions = 'GlobalAccessPermissions',
DocumentLevelPermissions = 'DocumentLevelPermissions',
}

View file

@ -0,0 +1,743 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License;
* you may not use this file except in compliance with the Elastic License.
*/
import { i18n } from '@kbn/i18n';
import {
ADD_CONFLUENCE_PATH,
ADD_CONFLUENCE_SERVER_PATH,
ADD_DROPBOX_PATH,
ADD_GITHUB_ENTERPRISE_PATH,
ADD_GITHUB_PATH,
ADD_GMAIL_PATH,
ADD_GOOGLE_DRIVE_PATH,
ADD_JIRA_PATH,
ADD_JIRA_SERVER_PATH,
ADD_ONEDRIVE_PATH,
ADD_SALESFORCE_PATH,
ADD_SALESFORCE_SANDBOX_PATH,
ADD_SERVICENOW_PATH,
ADD_SHAREPOINT_PATH,
ADD_SLACK_PATH,
ADD_ZENDESK_PATH,
ADD_CUSTOM_PATH,
EDIT_CONFLUENCE_PATH,
EDIT_CONFLUENCE_SERVER_PATH,
EDIT_DROPBOX_PATH,
EDIT_GITHUB_ENTERPRISE_PATH,
EDIT_GITHUB_PATH,
EDIT_GMAIL_PATH,
EDIT_GOOGLE_DRIVE_PATH,
EDIT_JIRA_PATH,
EDIT_JIRA_SERVER_PATH,
EDIT_ONEDRIVE_PATH,
EDIT_SALESFORCE_PATH,
EDIT_SALESFORCE_SANDBOX_PATH,
EDIT_SERVICENOW_PATH,
EDIT_SHAREPOINT_PATH,
EDIT_SLACK_PATH,
EDIT_ZENDESK_PATH,
EDIT_CUSTOM_PATH,
CONFLUENCE_DOCS_URL,
CONFLUENCE_SERVER_DOCS_URL,
GITHUB_ENTERPRISE_DOCS_URL,
DROPBOX_DOCS_URL,
GITHUB_DOCS_URL,
GMAIL_DOCS_URL,
GOOGLE_DRIVE_DOCS_URL,
JIRA_DOCS_URL,
JIRA_SERVER_DOCS_URL,
ONEDRIVE_DOCS_URL,
SALESFORCE_DOCS_URL,
SERVICENOW_DOCS_URL,
SHAREPOINT_DOCS_URL,
SLACK_DOCS_URL,
ZENDESK_DOCS_URL,
CUSTOM_SOURCE_DOCS_URL,
} from '../../routes';
import { FeatureIds } from '../../types';
import { SOURCE_NAMES, SOURCE_OBJ_TYPES, GITHUB_LINK_TITLE } from '../../constants';
const connectStepDescription = {
attachments: i18n.translate(
'xpack.enterpriseSearch.workplaceSearch.sources.connectStepDescription.attachments',
{
defaultMessage:
'Content found within Attachments (PDFs, Microsoft Office Files, and other popular textual file formats) will be automatically indexed and searchable.',
}
),
files: i18n.translate(
'xpack.enterpriseSearch.workplaceSearch.sources.connectStepDescription.files',
{
defaultMessage:
'Content found within PDFs, Microsoft Office Files, and other popular textual file formats will be automatically indexed and searchable.',
}
),
empty: '',
};
export const staticSourceData = [
{
name: SOURCE_NAMES.CONFLUENCE,
serviceType: 'confluence_cloud',
addPath: ADD_CONFLUENCE_PATH,
editPath: EDIT_CONFLUENCE_PATH,
configuration: {
isPublicKey: false,
hasOauthRedirect: true,
needsBaseUrl: true,
documentationUrl: CONFLUENCE_DOCS_URL,
applicationPortalUrl: 'https://developer.atlassian.com/apps/',
},
sourceDescription: i18n.translate(
'xpack.enterpriseSearch.workplaceSearch.sources.sourceDescriptions.confluence',
{
defaultMessage:
'{sourceName} is a team workspace, where knowledge and collaboration meet. Often used as an organizational wiki and intranet, it usually houses valuable information for staff across multiple areas of your business.',
values: { sourceName: SOURCE_NAMES.CONFLUENCE },
}
),
connectStepDescription: connectStepDescription.attachments,
objTypes: [
SOURCE_OBJ_TYPES.PAGES,
SOURCE_OBJ_TYPES.ATTACHMENTS,
SOURCE_OBJ_TYPES.BLOG_POSTS,
SOURCE_OBJ_TYPES.SPACES,
],
features: {
basicOrgContext: [
FeatureIds.SyncFrequency,
FeatureIds.SyncedItems,
FeatureIds.GlobalAccessPermissions,
],
platinumOrgContext: [FeatureIds.SyncFrequency, FeatureIds.SyncedItems],
platinumPrivateContext: [
FeatureIds.Private,
FeatureIds.SyncFrequency,
FeatureIds.SyncedItems,
],
},
accountContextOnly: false,
},
{
name: SOURCE_NAMES.CONFLUENCE_SERVER,
serviceType: 'confluence_server',
addPath: ADD_CONFLUENCE_SERVER_PATH,
editPath: EDIT_CONFLUENCE_SERVER_PATH,
configuration: {
isPublicKey: true,
hasOauthRedirect: true,
needsBaseUrl: false,
documentationUrl: CONFLUENCE_SERVER_DOCS_URL,
},
sourceDescription: i18n.translate(
'xpack.enterpriseSearch.workplaceSearch.sources.sourceDescriptions.confluenceServer',
{
defaultMessage:
'{sourceName} is a team workspace, where knowledge and collaboration meet. Often used as an organizational wiki and intranet, it usually houses valuable information for staff across multiple areas of your business.',
values: { sourceName: SOURCE_NAMES.CONFLUENCE },
}
),
connectStepDescription: connectStepDescription.attachments,
objTypes: [
SOURCE_OBJ_TYPES.PAGES,
SOURCE_OBJ_TYPES.ATTACHMENTS,
SOURCE_OBJ_TYPES.BLOG_POSTS,
SOURCE_OBJ_TYPES.SPACES,
],
features: {
basicOrgContext: [
FeatureIds.SyncFrequency,
FeatureIds.SyncedItems,
FeatureIds.GlobalAccessPermissions,
],
platinumOrgContext: [FeatureIds.SyncFrequency, FeatureIds.SyncedItems],
platinumPrivateContext: [
FeatureIds.Private,
FeatureIds.SyncFrequency,
FeatureIds.SyncedItems,
],
},
accountContextOnly: false,
},
{
name: SOURCE_NAMES.DROPBOX,
serviceType: 'dropbox',
addPath: ADD_DROPBOX_PATH,
editPath: EDIT_DROPBOX_PATH,
configuration: {
isPublicKey: false,
hasOauthRedirect: true,
needsBaseUrl: false,
documentationUrl: DROPBOX_DOCS_URL,
applicationPortalUrl: 'https://www.dropbox.com/developers/apps',
},
sourceDescription: i18n.translate(
'xpack.enterpriseSearch.workplaceSearch.sources.sourceDescriptions.dropbox',
{
defaultMessage:
'{sourceName} is a cloud-based storage service for organizations of all sizes. Create, store, share and automatically synchronize documents across your desktop and web.',
values: { sourceName: SOURCE_NAMES.DROPBOX },
}
),
connectStepDescription: connectStepDescription.files,
objTypes: [SOURCE_OBJ_TYPES.ALL_FILES],
features: {
basicOrgContext: [
FeatureIds.SyncFrequency,
FeatureIds.SyncedItems,
FeatureIds.GlobalAccessPermissions,
],
platinumOrgContext: [FeatureIds.SyncFrequency, FeatureIds.SyncedItems],
platinumPrivateContext: [
FeatureIds.Private,
FeatureIds.SyncFrequency,
FeatureIds.SyncedItems,
],
},
accountContextOnly: false,
},
{
name: SOURCE_NAMES.GITHUB,
serviceType: 'github',
addPath: ADD_GITHUB_PATH,
editPath: EDIT_GITHUB_PATH,
configuration: {
isPublicKey: false,
hasOauthRedirect: true,
needsBaseUrl: false,
needsConfiguration: true,
documentationUrl: GITHUB_DOCS_URL,
applicationPortalUrl: 'https://github.com/settings/developers',
applicationLinkTitle: GITHUB_LINK_TITLE,
},
sourceDescription: i18n.translate(
'xpack.enterpriseSearch.workplaceSearch.sources.sourceDescriptions.github',
{
defaultMessage:
'{sourceName} is a development platform, version control and collaboration platform for teams of all sizes. From open source to business, you can host and review code, manage projects, and build software across departments and continents.',
values: { sourceName: SOURCE_NAMES.GITHUB },
}
),
connectStepDescription: connectStepDescription.empty,
objTypes: [
SOURCE_OBJ_TYPES.ISSUES,
SOURCE_OBJ_TYPES.PULL_REQUESTS,
SOURCE_OBJ_TYPES.REPOSITORY_LIST,
],
features: {
basicOrgContext: [
FeatureIds.SyncFrequency,
FeatureIds.SyncedItems,
FeatureIds.GlobalAccessPermissions,
],
platinumOrgContext: [FeatureIds.SyncFrequency, FeatureIds.SyncedItems],
platinumPrivateContext: [
FeatureIds.Private,
FeatureIds.SyncFrequency,
FeatureIds.SyncedItems,
],
},
accountContextOnly: false,
},
{
name: SOURCE_NAMES.GITHUB_ENTERPRISE,
serviceType: 'github_enterprise_server',
addPath: ADD_GITHUB_ENTERPRISE_PATH,
editPath: EDIT_GITHUB_ENTERPRISE_PATH,
configuration: {
isPublicKey: false,
hasOauthRedirect: true,
needsConfiguration: true,
needsBaseUrl: true,
baseUrlTitle: i18n.translate(
'xpack.enterpriseSearch.workplaceSearch.sources.baseUrlTitles.github',
{
defaultMessage: 'GitHub Enterprise URL',
}
),
documentationUrl: GITHUB_ENTERPRISE_DOCS_URL,
applicationPortalUrl: 'https://github.com/settings/developers',
applicationLinkTitle: GITHUB_LINK_TITLE,
},
sourceDescription: i18n.translate(
'xpack.enterpriseSearch.workplaceSearch.sources.sourceDescriptions.githubEnterprise',
{
defaultMessage:
'{sourceName} is a development platform, version control and collaboration platform for teams of all sizes. From open source to business, you can host and review code, manage projects, and build software across departments and continents.',
values: { sourceName: SOURCE_NAMES.GITHUB_ENTERPRISE },
}
),
connectStepDescription: connectStepDescription.empty,
objTypes: [
SOURCE_OBJ_TYPES.ISSUES,
SOURCE_OBJ_TYPES.PULL_REQUESTS,
SOURCE_OBJ_TYPES.REPOSITORY_LIST,
],
features: {
basicOrgContext: [
FeatureIds.SyncFrequency,
FeatureIds.SyncedItems,
FeatureIds.GlobalAccessPermissions,
],
platinumOrgContext: [FeatureIds.SyncFrequency, FeatureIds.SyncedItems],
platinumPrivateContext: [
FeatureIds.Private,
FeatureIds.SyncFrequency,
FeatureIds.SyncedItems,
],
},
accountContextOnly: false,
},
{
name: SOURCE_NAMES.GMAIL,
serviceType: 'gmail',
addPath: ADD_GMAIL_PATH,
editPath: EDIT_GMAIL_PATH,
configuration: {
isPublicKey: false,
hasOauthRedirect: true,
needsBaseUrl: false,
documentationUrl: GMAIL_DOCS_URL,
applicationPortalUrl: 'https://console.developers.google.com/',
},
sourceDescription: i18n.translate(
'xpack.enterpriseSearch.workplaceSearch.sources.sourceDescriptions.gmail',
{
defaultMessage:
'{sourceName} is a free email service developed by Google. It is fast, reliable, and trusted by millions of people and organizations around the world. Workplace Search brings all of your Gmail content into one relevant and ease-to-use search experience.',
values: { sourceName: SOURCE_NAMES.GMAIL },
}
),
connectStepDescription: connectStepDescription.empty,
objTypes: [SOURCE_OBJ_TYPES.EMAILS],
features: {
platinumPrivateContext: [FeatureIds.Remote, FeatureIds.Private, FeatureIds.SearchableContent],
},
accountContextOnly: true,
},
{
name: SOURCE_NAMES.GOOGLE_DRIVE,
serviceType: 'google_drive',
addPath: ADD_GOOGLE_DRIVE_PATH,
editPath: EDIT_GOOGLE_DRIVE_PATH,
configuration: {
isPublicKey: false,
hasOauthRedirect: true,
needsBaseUrl: false,
documentationUrl: GOOGLE_DRIVE_DOCS_URL,
applicationPortalUrl: 'https://console.developers.google.com/',
},
sourceDescription: i18n.translate(
'xpack.enterpriseSearch.workplaceSearch.sources.sourceDescriptions.googleDrive',
{
defaultMessage:
'{sourceName} is a cloud-based storage and collaboration service for organizations of all sizes, with a focus on G Suite document (Google Docs, Sheets, Slides, etc) storage and collaboration. Create, store, share and automatically synchronize documents across your desktop and web.',
values: { sourceName: SOURCE_NAMES.GOOGLE_DRIVE },
}
),
connectStepDescription: connectStepDescription.files,
objTypes: [SOURCE_OBJ_TYPES.G_SUITE_FILES, SOURCE_OBJ_TYPES.ALL_STORED_FILES],
features: {
basicOrgContext: [
FeatureIds.SyncFrequency,
FeatureIds.SyncedItems,
FeatureIds.GlobalAccessPermissions,
],
basicOrgContextExcludedFeatures: [FeatureIds.DocumentLevelPermissions],
platinumOrgContext: [FeatureIds.SyncFrequency, FeatureIds.SyncedItems],
platinumPrivateContext: [
FeatureIds.Private,
FeatureIds.SyncFrequency,
FeatureIds.SyncedItems,
],
},
accountContextOnly: false,
},
{
name: SOURCE_NAMES.JIRA,
serviceType: 'jira_cloud',
addPath: ADD_JIRA_PATH,
editPath: EDIT_JIRA_PATH,
configuration: {
isPublicKey: true,
hasOauthRedirect: true,
needsBaseUrl: false,
documentationUrl: JIRA_DOCS_URL,
applicationPortalUrl: '',
},
sourceDescription: i18n.translate(
'xpack.enterpriseSearch.workplaceSearch.sources.sourceDescriptions.jira',
{
defaultMessage:
'{sourceName} is an issue tracking product that provides bug tracking, workflow automation, and agile project management tools for teams of all sizes. ',
values: { sourceName: SOURCE_NAMES.JIRA },
}
),
connectStepDescription: connectStepDescription.files,
objTypes: [
SOURCE_OBJ_TYPES.EPICS,
SOURCE_OBJ_TYPES.PROJECTS,
SOURCE_OBJ_TYPES.TASKS,
SOURCE_OBJ_TYPES.STORIES,
SOURCE_OBJ_TYPES.BUGS,
SOURCE_OBJ_TYPES.ATTACHMENTS,
],
features: {
basicOrgContext: [
FeatureIds.SyncFrequency,
FeatureIds.SyncedItems,
FeatureIds.GlobalAccessPermissions,
],
platinumOrgContext: [FeatureIds.SyncFrequency, FeatureIds.SyncedItems],
platinumPrivateContext: [
FeatureIds.Private,
FeatureIds.SyncFrequency,
FeatureIds.SyncedItems,
],
},
accountContextOnly: false,
},
{
name: SOURCE_NAMES.JIRA_SERVER,
serviceType: 'jira_server',
addPath: ADD_JIRA_SERVER_PATH,
editPath: EDIT_JIRA_SERVER_PATH,
configuration: {
isPublicKey: true,
hasOauthRedirect: true,
needsBaseUrl: false,
documentationUrl: JIRA_SERVER_DOCS_URL,
applicationPortalUrl: '',
},
sourceDescription: i18n.translate(
'xpack.enterpriseSearch.workplaceSearch.sources.sourceDescriptions.jiraServer',
{
defaultMessage:
'{sourceName} is an issue tracking product that provides bug tracking, workflow automation, and agile project management tools for teams of all sizes. ',
values: { sourceName: SOURCE_NAMES.JIRA_SERVER },
}
),
connectStepDescription: connectStepDescription.files,
objTypes: [
SOURCE_OBJ_TYPES.EPICS,
SOURCE_OBJ_TYPES.PROJECTS,
SOURCE_OBJ_TYPES.TASKS,
SOURCE_OBJ_TYPES.STORIES,
SOURCE_OBJ_TYPES.BUGS,
SOURCE_OBJ_TYPES.ATTACHMENTS,
],
features: {
basicOrgContext: [
FeatureIds.SyncFrequency,
FeatureIds.SyncedItems,
FeatureIds.GlobalAccessPermissions,
],
platinumOrgContext: [FeatureIds.SyncFrequency, FeatureIds.SyncedItems],
platinumPrivateContext: [
FeatureIds.Private,
FeatureIds.SyncFrequency,
FeatureIds.SyncedItems,
],
},
accountContextOnly: false,
},
{
name: SOURCE_NAMES.ONEDRIVE,
serviceType: 'one_drive',
addPath: ADD_ONEDRIVE_PATH,
editPath: EDIT_ONEDRIVE_PATH,
configuration: {
isPublicKey: false,
hasOauthRedirect: true,
needsBaseUrl: false,
documentationUrl: ONEDRIVE_DOCS_URL,
applicationPortalUrl: 'https://portal.azure.com/',
},
sourceDescription: i18n.translate(
'xpack.enterpriseSearch.workplaceSearch.sources.sourceDescriptions.oneDrive',
{
defaultMessage:
'{sourceName} is a cloud-based storage service for organizations of all sizes, with a focus on Office 365 document storage and collaboration. Create, store, share and automatically synchronize documents across your organization.',
values: { sourceName: SOURCE_NAMES.ONEDRIVE },
}
),
connectStepDescription: connectStepDescription.files,
objTypes: [SOURCE_OBJ_TYPES.ALL_FILES],
features: {
basicOrgContext: [
FeatureIds.SyncFrequency,
FeatureIds.SyncedItems,
FeatureIds.GlobalAccessPermissions,
],
basicOrgContextExcludedFeatures: [FeatureIds.DocumentLevelPermissions],
platinumOrgContext: [FeatureIds.SyncFrequency, FeatureIds.SyncedItems],
platinumPrivateContext: [
FeatureIds.Private,
FeatureIds.SyncFrequency,
FeatureIds.SyncedItems,
],
},
accountContextOnly: false,
},
{
name: SOURCE_NAMES.SALESFORCE,
serviceType: 'salesforce',
addPath: ADD_SALESFORCE_PATH,
editPath: EDIT_SALESFORCE_PATH,
configuration: {
isPublicKey: false,
hasOauthRedirect: true,
needsBaseUrl: false,
documentationUrl: SALESFORCE_DOCS_URL,
applicationPortalUrl: 'https://salesforce.com/',
},
sourceDescription: i18n.translate(
'xpack.enterpriseSearch.workplaceSearch.sources.sourceDescriptions.salesforce',
{
defaultMessage:
'{sourceName} is a cloud-based customer relationship management (CRM) platform with a focus on customer service, marketing automation, analytics, and sales operation tooling.',
values: { sourceName: SOURCE_NAMES.SALESFORCE },
}
),
connectStepDescription: connectStepDescription.attachments,
objTypes: [
SOURCE_OBJ_TYPES.CONTACTS,
SOURCE_OBJ_TYPES.OPPORTUNITIES,
SOURCE_OBJ_TYPES.LEADS,
SOURCE_OBJ_TYPES.ACCOUNTS,
SOURCE_OBJ_TYPES.CAMPAIGNS,
],
features: {
basicOrgContext: [
FeatureIds.SyncFrequency,
FeatureIds.SyncedItems,
FeatureIds.GlobalAccessPermissions,
],
platinumOrgContext: [FeatureIds.SyncFrequency, FeatureIds.SyncedItems],
platinumPrivateContext: [
FeatureIds.Private,
FeatureIds.SyncFrequency,
FeatureIds.SyncedItems,
],
},
accountContextOnly: false,
},
{
name: SOURCE_NAMES.SALESFORCE_SANDBOX,
serviceType: 'salesforce_sandbox',
addPath: ADD_SALESFORCE_SANDBOX_PATH,
editPath: EDIT_SALESFORCE_SANDBOX_PATH,
configuration: {
isPublicKey: false,
hasOauthRedirect: true,
needsBaseUrl: false,
documentationUrl: SALESFORCE_DOCS_URL,
applicationPortalUrl: 'https://test.salesforce.com/',
},
sourceDescription: i18n.translate(
'xpack.enterpriseSearch.workplaceSearch.sources.sourceDescriptions.salesforceSandbox',
{
defaultMessage:
'{sourceName} is a cloud-based customer relationship management (CRM) platform with a focus on customer service, marketing automation, analytics, and sales operation tooling.',
values: { sourceName: SOURCE_NAMES.SALESFORCE_SANDBOX },
}
),
connectStepDescription: connectStepDescription.attachments,
objTypes: [
SOURCE_OBJ_TYPES.CONTACTS,
SOURCE_OBJ_TYPES.OPPORTUNITIES,
SOURCE_OBJ_TYPES.LEADS,
SOURCE_OBJ_TYPES.ACCOUNTS,
SOURCE_OBJ_TYPES.CAMPAIGNS,
],
features: {
basicOrgContext: [
FeatureIds.SyncFrequency,
FeatureIds.SyncedItems,
FeatureIds.GlobalAccessPermissions,
],
platinumOrgContext: [FeatureIds.SyncFrequency, FeatureIds.SyncedItems],
platinumPrivateContext: [
FeatureIds.Private,
FeatureIds.SyncFrequency,
FeatureIds.SyncedItems,
],
},
accountContextOnly: false,
},
{
name: SOURCE_NAMES.SERVICENOW,
serviceType: 'service_now',
addPath: ADD_SERVICENOW_PATH,
editPath: EDIT_SERVICENOW_PATH,
configuration: {
isPublicKey: false,
hasOauthRedirect: false,
needsBaseUrl: true,
documentationUrl: SERVICENOW_DOCS_URL,
applicationPortalUrl: 'https://www.servicenow.com/my-account/sign-in.html',
},
sourceDescription: i18n.translate(
'xpack.enterpriseSearch.workplaceSearch.sources.sourceDescriptions.serviceNow',
{
defaultMessage:
'{sourceName} is a cloud-based IT Service Management (ITSM) platform focusing on workflow automation and internal organizational support.',
values: { sourceName: SOURCE_NAMES.SERVICENOW },
}
),
connectStepDescription: connectStepDescription.empty,
objTypes: [
SOURCE_OBJ_TYPES.USERS,
SOURCE_OBJ_TYPES.INCIDENTS,
SOURCE_OBJ_TYPES.ITEMS,
SOURCE_OBJ_TYPES.ARTICLES,
],
features: {
basicOrgContext: [
FeatureIds.SyncFrequency,
FeatureIds.SyncedItems,
FeatureIds.GlobalAccessPermissions,
],
platinumOrgContext: [FeatureIds.SyncFrequency, FeatureIds.SyncedItems],
platinumPrivateContext: [
FeatureIds.Private,
FeatureIds.SyncFrequency,
FeatureIds.SyncedItems,
],
},
accountContextOnly: false,
},
{
name: SOURCE_NAMES.SHAREPOINT,
serviceType: 'share_point',
addPath: ADD_SHAREPOINT_PATH,
editPath: EDIT_SHAREPOINT_PATH,
configuration: {
isPublicKey: false,
hasOauthRedirect: true,
needsBaseUrl: false,
documentationUrl: SHAREPOINT_DOCS_URL,
applicationPortalUrl: 'https://portal.azure.com/',
},
sourceDescription: i18n.translate(
'xpack.enterpriseSearch.workplaceSearch.sources.sourceDescriptions.sharePoint',
{
defaultMessage:
'{sourceName} is a cloud-based collaboration, knowledge management and storage platform for organizations of all sizes. Often used as a centralized content management system (CMS), SharePoint Online stores a wealth of information across departments and teams.',
values: { sourceName: SOURCE_NAMES.SHAREPOINT },
}
),
connectStepDescription: connectStepDescription.files,
objTypes: [SOURCE_OBJ_TYPES.SITES, SOURCE_OBJ_TYPES.ALL_FILES],
features: {
basicOrgContext: [
FeatureIds.SyncFrequency,
FeatureIds.SyncedItems,
FeatureIds.GlobalAccessPermissions,
],
basicOrgContextExcludedFeatures: [FeatureIds.DocumentLevelPermissions],
platinumOrgContext: [FeatureIds.SyncFrequency, FeatureIds.SyncedItems],
platinumPrivateContext: [
FeatureIds.Private,
FeatureIds.SyncFrequency,
FeatureIds.SyncedItems,
],
},
accountContextOnly: false,
},
{
name: SOURCE_NAMES.SLACK,
serviceType: 'slack',
addPath: ADD_SLACK_PATH,
editPath: EDIT_SLACK_PATH,
configuration: {
isPublicKey: false,
hasOauthRedirect: true,
needsBaseUrl: false,
documentationUrl: SLACK_DOCS_URL,
applicationPortalUrl: 'https://api.slack.com/apps/',
},
sourceDescription: i18n.translate(
'xpack.enterpriseSearch.workplaceSearch.sources.sourceDescriptions.slack',
{
defaultMessage:
'{sourceName} is a communication tool that enables real-time collaboration and decision making. With {sourceName}, keep track of the work happening across teams, engage directly with your coworkers on ongoing projects and communicate with other organizations.',
values: { sourceName: SOURCE_NAMES.SLACK },
}
),
connectStepDescription: connectStepDescription.empty,
objTypes: [
SOURCE_OBJ_TYPES.PUBLIC_MESSAGES,
SOURCE_OBJ_TYPES.PRIVATE_MESSAGES,
SOURCE_OBJ_TYPES.DIRECT_MESSAGES,
],
features: {
platinumPrivateContext: [FeatureIds.Remote, FeatureIds.Private, FeatureIds.SearchableContent],
},
accountContextOnly: true,
},
{
name: SOURCE_NAMES.ZENDESK,
serviceType: 'zendesk',
addPath: ADD_ZENDESK_PATH,
editPath: EDIT_ZENDESK_PATH,
configuration: {
isPublicKey: false,
hasOauthRedirect: true,
needsBaseUrl: false,
needsSubdomain: true,
documentationUrl: ZENDESK_DOCS_URL,
applicationPortalUrl: 'https://www.zendesk.com/login/',
},
sourceDescription: i18n.translate(
'xpack.enterpriseSearch.workplaceSearch.sources.sourceDescriptions.zendesk',
{
defaultMessage:
'{sourceName} is cloud-based customer relationship management and customer support platform that provides tools for tracking, prioritizing, and solving customer support tickets.',
values: { sourceName: SOURCE_NAMES.ZENDESK },
}
),
connectStepDescription: connectStepDescription.empty,
objTypes: [SOURCE_OBJ_TYPES.TICKETS],
features: {
basicOrgContext: [
FeatureIds.SyncFrequency,
FeatureIds.SyncedItems,
FeatureIds.GlobalAccessPermissions,
],
platinumOrgContext: [FeatureIds.SyncFrequency, FeatureIds.SyncedItems],
platinumPrivateContext: [
FeatureIds.Private,
FeatureIds.SyncFrequency,
FeatureIds.SyncedItems,
],
},
accountContextOnly: false,
},
{
name: SOURCE_NAMES.CUSTOM,
serviceType: 'custom',
addPath: ADD_CUSTOM_PATH,
editPath: EDIT_CUSTOM_PATH,
configuration: {
isPublicKey: false,
hasOauthRedirect: false,
needsBaseUrl: false,
helpText: i18n.translate('xpack.enterpriseSearch.workplaceSearch.sources.helpText.custom', {
defaultMessage:
'To create a Custom API Source, provide a human-readable and descriptive name. The name will appear as-is in the various search experiences and management interfaces.',
}),
documentationUrl: CUSTOM_SOURCE_DOCS_URL,
applicationPortalUrl: '',
},
sourceDescription: '',
connectStepDescription: connectStepDescription.empty,
accountContextOnly: false,
},
];