Ecosystem support for custom domains

Reading Time: 2 minutes

Atlassian will soon add support for Custom Domains to our cloud products (see https://jira.atlassian.com/browse/CLOUD-6999).

The custom domains feature allows a customer to configure their Atlassian Cloud products (Jira Software, Jira Service Desk’s customer portal and Confluence) to be accessible via a custom domain that they own. The custom domain is configured on a per-product basis.

For example customers can:

  • Enable Confluence at foo.atlassian.net/wiki to be accessible via docs.foo.com.
  • Enable Jira at foo.atlassian.net to be accessible via issues.foo.com.
  • And finally, enable JSD’s customer portal to be accessible via support.foo.com. (JSD’s agent portal will remain on Jira’s domain).

In preparation for this feature we will be adding two new fields to the Connect installed lifecycle event payload soon:

  • displayUrl – a field indicating the name of any custom domain associated with an instance
  • displayUrlServicedeskHelpCenter – the URL of the Jira ServiceDesk Help Centre

These fields may or may not be present on any particular installed payload. For Confluence instances, only the displayURL field will be present. For the most part we do not expect apps to require this information. It is provided for cases where apps perform server-side rendering of user visible links so links are in the user’s expected domain.

Examples

Confluence Example:

{
	"key": "installed-addon-key",
	"clientKey": "unique-client-identifier",
	"sharedSecret": "a-secret-key-not-to-be-lost",
	"serverVersion": "server-version",
	"pluginsVersion": "version-of-connect",
	"baseUrl": "https://example.atlassian.net",
	"displayUrl": "https://docs.example.com", <-----------
	"productType": "confluence",
	"description": "Atlassian Confluence at https://example.atlassian.net",
	"serviceEntitlementNumber": "SEN-number",
	"eventType": "installed"
}

Example for Jira (with ServiceDesk):

{
	"key": "installed-addon-key",
	"clientKey": "unique-client-identifier",
	"sharedSecret": "a-secret-key-not-to-be-lost",
	"serverVersion": "server-version",
	"pluginsVersion": "version-of-connect",
	"baseUrl": "https://example.atlassian.net",
	"displayUrl": "https://issues.example.com", <-----------
	"displayUrlServicedeskHelpCenter": "https://support.example.com", <-----------
	"productType": "jira",
	"description": "Atlassian Jira at https://example.atlassian.net",
	"serviceEntitlementNumber": "SEN-number",
	"eventType": "installed"
}

Initially these fields, when present, will be based on the current baseUrl field. You will only begin to see these containing distinct values as we roll out custom domain support.

We have also recently presented a detailed talk on custom domains at Atlas Camp in Vienna (our developer conference). The video recording and presentation slides are available via this link here.

If you have any questions about supporting custom domains in your apps, please post them on the Developer Community forums.