Connecting Confluence Cloudedit

After 2021-11-01, Enterprise Search versions 7.15.0 and later are required to connect to Confluence Cloud. This is due to backwards incompatible API changes introduced by Atlassian, the developer of Confluence Cloud.

Instructions provided in this guide apply to Confluence Cloud only. Refer to Confluence Server guide for more information.

Confluence Cloud 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 businesses, large and small. The Confluence Cloud connector provided with Workplace Search automatically captures, syncs and indexes the following items:

Spaces

Including ID, Content, Type, and timestamps

Pages

Including ID, Content, Type, Comments, Project, Collaborators and timestamps

Blog Posts

Including ID, Content, Type, Comments, Project, Collaborators and timestamps

Attachments

Including ID, Size, Type, Comments, Project, Collaborators and timestamps

(If your deployment is not syncing as expected, see Known issues.)

Known issuesedit

  1. Confluence Cloud may require 48 hours to sync new and changed documents to your Workplace Search deployment.

    The issue affects Confluence Cloud accounts in particular timezones. Affected accounts do not expose changes to Workplace Search during more frequent syncs.

    The delay is caused by an issue in the Confluence Cloud API. Atlassian, the developer of Confluence Cloud, is aware of the issue.

Configuring the Confluence Cloud Connectoredit

Configuring the Confluence Cloud connector is the first step prior to connecting the Confluence Cloud service to Workplace Search, and requires that you create an OAuth App from the Confluence Cloud platform. To get started, first log in to Atlassian’s Developer Portal:


Step 1. Click Create app, then select OAuth 2.0 (3LO) integration:

Figure 12. Connecting Confluence

Step 2. Provide a name, agree to the terms, and click Create:

Figure 13. Connecting Confluence

Step 3. Click Settings in the sidebar, add a description and image, and Save changes.


Step 4. You can retrieve the application’s Client ID and Client Secret. Keep them handy, we’ll need these in just a few seconds.


Step 5. We must now create API access and set the right permission level. In the sidebar, click Authorization, locate OAuth 2.0 (3LO), and click Configure:

Figure 14. Connecting Confluence

Step 6. Use the Callback URL form to add one of the following callback URLs.

Among other factors, the callback URL is affected by which user interface you are using to manage Enterprise Search. Enterprise Search in Kibana and standalone Enterprise Search use different callback URLs. See user interfaces for details on each UI.

For standalone Enterprise Search, you will use one of the following two callback URLs, substituting <WS_BASE_URL> with the base URL at which Workplace Search is hosted (scheme + host, no path).

Connect as organizational content source for standalone Enterprise Search (Most commonly used)

<WS_BASE_URL>/ws/org/sources/confluence_cloud/create

Examples:

# Deployment using a custom domain name
https://www.example.com/ws/org/sources/confluence_cloud/create

# Deployment using a default Elastic Cloud domain name
https://c3397e558e404195a982cb68e84fbb42.ent-search.us-east-1.aws.found.io:443/ws/org/sources/confluence_cloud/create

# Unsecured local development environment
http://localhost:3002/ws/org/sources/confluence_cloud/create

Connect as private content source for standalone Enterprise Search

<WS_BASE_URL>/ws/sources/confluence_cloud/create

Examples:

# Deployment using a custom domain name
https://www.example.com/ws/sources/confluence_cloud/create

# Deployment using a default Elastic Cloud domain name
https://c3397e558e404195a982cb68e84fbb42.ent-search.us-east-1.aws.found.io:443/ws/sources/confluence_cloud/create

# Unsecured local development environment
http://localhost:3002/ws/sources/confluence_cloud/create

When using Enterprise Search in Kibana, use the following callback URL, substituting <KIBANA_BASE_URL> with the base URL of your Kibana instance. This should correspond with the value of kibana.external_url in your enterprise-search.yml:

Connect for Enterprise Search in Kibana

<KIBANA_BASE_URL>/app/enterprise_search/workplace_search/sources/added

Examples:

# Deployment using a custom domain name for Kibana
https://www.example.com/app/enterprise_search/workplace_search/sources/added

# Deployment using a default Elastic Cloud domain name for Kibana
https://c3397e558e404195a982cb68e84fbb42.kb.us-east-1.aws.found.io:443/app/enterprise_search/workplace_search/sources/added

# Unsecured local Kibana environment
http://localhost:5601/app/enterprise_search/workplace_search/sources/added
Figure 15. Connecting Confluence

Step 7. A prompt appears. Click the Add APIs hyperlink:

Figure 16. Connecting Confluence

Step 8. Click Permissions, find Confluence API and click Add, then Configure:

Figure 17. Connecting Confluence

Step 9. We must enable a series of permissions. Add the following and save:

  • Read Confluence space summary
  • Read Confluence content properties
  • Read Confluence detailed content
  • Read Confluence content summary
  • Search Confluence content and space summaries
  • Read user
  • Download attachment contents

Step 9. From the Workplace Search administrative dashboard’s Sources area, locate Confluence and provide both the Client ID and Client Secret, as well as your Confluence instance Base URL. Do not include a trailing slash:

https://example.atlassian.net

Voilà! The Confluence Cloud connector is now configured, and ready to be used to synchronize content. In order to capture data, you must now connect a Confluence Cloud instance with the adequate authentication credentials.

Connecting Confluence Cloud to Workplace Searchedit

Once the Confluence Cloud connector has been configured, you may connect a Confluence Cloud instance to your organization.


Step 1. Head to your organization’s Workplace Search administrative dashboard, and locate the Sources tab.


Step 2. Click Add a new source.


Step 3. Select Confluence Cloud in the Configured Sources list, and follow the Confluence Cloud authentication flow as presented.


Step 4. Upon the successful authentication flow, you will be redirected to Workplace Search.

Confluence Cloud content will now be captured and will be ready for search gradually as it is synced. Once successfully configured and connected, the Confluence Cloud synchronization automatically occurs every 2 hours.

(If your deployment is not syncing as expected, see Known issues.)

Document-level permissionsedit

You can synchronize document access permissions from Confluence Cloud to Workplace Search. This will ensure the right people see the right documents.

See Document-level permissions for Atlassian Cloud.

Synchronized fieldsedit

The following table lists the fields synchronized from the connected source to Workplace Search. The attributes in the table apply to the default search application, as follows:

  • Display name - The label used when displayed in the UI
  • Field name - The name of the underlying field attribute
  • Faceted filter - whether the field is a faceted filter by default, or can be enabled (see also: Customizing filters)
  • Automatic query refinement preceding phrases - The default list of phrases that must precede a value of this field in a search query in order to automatically trigger query refinement. If "None," a value from this field may trigger refinement regardless of where it is found in the query string. If '', a value from this field must be the first token(s) in the query string. If N.A., automatic query refinement is not available for this field by default. All fields that have a faceted filter (default or configurable) can also be configured for automatic query refinement; see also Update a content source, Get a content source’s automatic query refinement details and Customizing filters.
Display name Field name Faceted filter Automatic query refinement preceding phrases

Id

id

No

N.A.

URL

url

No

N.A.

Title

title

No

N.A.

Type

type

Default

None

Description

description

No

N.A.

Body

body

No

N.A.

Comments

comments

No

N.A.

Created by

created_by

Default

[creator is, created by, edited by, modified by]

Project

project

Default

N.A.

Created at

created_at

No

N.A.

Updated at

updated_at

No

N.A.

Last updated

last_updated

No

N.A.

Size

size

No

N.A.

Container

container

Configurable

N.A.

Media type

mime_type

Configurable

None

Extension

extension

Configurable

None