diff --git a/x-pack/plugins/enterprise_search/public/applications/workplace_search/components/shared/assets/box.svg b/x-pack/plugins/enterprise_search/public/applications/workplace_search/components/shared/assets/box.svg
index 1e7324d9581a7..827f8cf0a55ec 100644
--- a/x-pack/plugins/enterprise_search/public/applications/workplace_search/components/shared/assets/box.svg
+++ b/x-pack/plugins/enterprise_search/public/applications/workplace_search/components/shared/assets/box.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
diff --git a/x-pack/plugins/enterprise_search/public/applications/workplace_search/constants.ts b/x-pack/plugins/enterprise_search/public/applications/workplace_search/constants.ts
index 4e093f472d562..1846115d73900 100644
--- a/x-pack/plugins/enterprise_search/public/applications/workplace_search/constants.ts
+++ b/x-pack/plugins/enterprise_search/public/applications/workplace_search/constants.ts
@@ -55,6 +55,9 @@ export const SOURCE_STATUSES = {
};
export const SOURCE_NAMES = {
+ BOX: i18n.translate('xpack.enterpriseSearch.workplaceSearch.sources.sourceNames.box', {
+ defaultMessage: 'Box',
+ }),
CONFLUENCE: i18n.translate(
'xpack.enterpriseSearch.workplaceSearch.sources.sourceNames.confluence',
{ defaultMessage: 'Confluence' }
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 6099a42e6d7cb..419ae1cbfbc07 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
@@ -21,6 +21,7 @@ export const PRIVATE_SOURCES_DOCS_URL = `${DOCUMENT_PERMISSIONS_DOCS_URL}#source
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`;
@@ -59,6 +60,7 @@ export const ORG_SOURCES_PATH = `${ORG_PATH}${SOURCES_PATH}`;
export const SOURCE_ADDED_PATH = `${SOURCES_PATH}/added`;
export const ADD_SOURCE_PATH = `${SOURCES_PATH}/add`;
+export const ADD_BOX_PATH = `${SOURCES_PATH}/add/box`;
export const ADD_CONFLUENCE_PATH = `${SOURCES_PATH}/add/confluence-cloud`;
export const ADD_CONFLUENCE_SERVER_PATH = `${SOURCES_PATH}/add/confluence-server`;
export const ADD_DROPBOX_PATH = `${SOURCES_PATH}/add/dropbox`;
@@ -93,6 +95,7 @@ export const ORG_SETTINGS_PATH = `${ORG_PATH}/settings`;
export const ORG_SETTINGS_CUSTOMIZE_PATH = `${ORG_SETTINGS_PATH}/customize`;
export const ORG_SETTINGS_CONNECTORS_PATH = `${ORG_SETTINGS_PATH}/connectors`;
export const ORG_SETTINGS_OAUTH_APPLICATION_PATH = `${ORG_SETTINGS_PATH}/oauth`;
+export const EDIT_BOX_PATH = `${ORG_SETTINGS_CONNECTORS_PATH}/box/edit`;
export const EDIT_CONFLUENCE_PATH = `${ORG_SETTINGS_CONNECTORS_PATH}/confluence-cloud/edit`;
export const EDIT_CONFLUENCE_SERVER_PATH = `${ORG_SETTINGS_CONNECTORS_PATH}/confluence-server/edit`;
export const EDIT_DROPBOX_PATH = `${ORG_SETTINGS_CONNECTORS_PATH}/dropbox/edit`;
diff --git a/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/source_data.tsx b/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/source_data.tsx
index dff9895dd84f9..882c3861922e7 100644
--- a/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/source_data.tsx
+++ b/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/content_sources/source_data.tsx
@@ -7,6 +7,7 @@
import { i18n } from '@kbn/i18n';
import {
+ ADD_BOX_PATH,
ADD_CONFLUENCE_PATH,
ADD_CONFLUENCE_SERVER_PATH,
ADD_DROPBOX_PATH,
@@ -24,6 +25,7 @@ import {
ADD_SLACK_PATH,
ADD_ZENDESK_PATH,
ADD_CUSTOM_PATH,
+ EDIT_BOX_PATH,
EDIT_CONFLUENCE_PATH,
EDIT_CONFLUENCE_SERVER_PATH,
EDIT_DROPBOX_PATH,
@@ -41,6 +43,7 @@ import {
EDIT_SLACK_PATH,
EDIT_ZENDESK_PATH,
EDIT_CUSTOM_PATH,
+ BOX_DOCS_URL,
CONFLUENCE_DOCS_URL,
CONFLUENCE_SERVER_DOCS_URL,
GITHUB_ENTERPRISE_DOCS_URL,
@@ -82,6 +85,44 @@ const connectStepDescription = {
};
export const staticSourceData = [
+ {
+ name: SOURCE_NAMES.BOX,
+ serviceType: 'box',
+ addPath: ADD_BOX_PATH,
+ editPath: EDIT_BOX_PATH,
+ configuration: {
+ isPublicKey: false,
+ hasOauthRedirect: true,
+ needsBaseUrl: false,
+ documentationUrl: BOX_DOCS_URL,
+ applicationPortalUrl: 'https://app.box.com/developers/console',
+ },
+ sourceDescription: i18n.translate(
+ 'xpack.enterpriseSearch.workplaceSearch.sources.sourceDescriptions.box',
+ {
+ 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.BOX },
+ }
+ ),
+ 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.CONFLUENCE,
serviceType: 'confluence_cloud',