Major new app revision with base URL change

The docs about the app descriptor have this to say about the apiVersion field:

The intention behind the API version is to allow vendors the ability to beta test a major revision to their Connect app as a private version, and have a seamless transition for those beta customers (and existing customers) once the major revision is launched.
Vendors can accomplish this by listing a new private version of their app, with a new descriptor hosted at a new URL.
They use the Atlassian Marketplace’s access token facilities to share this version with customers (or for internal use). When this version is ready to be taken live, it can be transitioned from private to public, and all customers will be seamlessly updated.
It’s important to note that this approach allows vendors to create new versions manually, despite the fact that in the common case, the versions are automatically created. This has a few benefits-- for example, it gives vendors the ability to change their descriptor URL if they need to (the descriptor URL will be immutable for existing versions)

This sounds much like what we want to do.

There is one potential catch, however. Not only is our descriptor URL different, the base URL of the new revision is, too. And further up on that documentation page it says:

Once the app is installed in a product, the app’s baseUrl cannot be changed without first uninstalling the app. This is important; choose your baseUrl wisely before making your app public.

My questions:

  1. Is uninstalling the app necessary, even in the scenario outlined above (new descriptor URL, incremented API version, admin approval, …)?
  2. If uninstalling the app is necessary, how will the Confluence instances handle this? (Is there a message in UPM? Will the update just not show? Will it fail silently?)
1 Like

Not sure about the API version, but we switch the base URL between releases.
For example: app-server-1.mydomain.com for the current release, and next release might be app-server2.mydomain.com.

We can host the next release of the app whoever app-server2 is, put the new version in the marketplace as private, and share that with customers (for private beta) as needed.
Then, during release, we mark it public, and since it represents a new version, the private beta clients simply use the new version already, and everyone else gets upgraded to the new descriptor at the new url.

As far as we can tell, no uninstall necessary, and unless there is a scope change, no admin intervention necessary either.

2 Likes

Is anyone from Atlassian able to confirm that no uninstall is required when changing the baseUrl of the descriptor?

Example: lets say we have https://example.com/atlassian-connect.json as our descriptor URL and we manually create a new version of the app in marketplace and specify a new baseUrl https://example-new.com/atlassian-connect.json and that is the only change (no scope changes etc).
Will customers be required to uninstall and reinstall? Will customers be upgraded automatically or do they have to take a manual step?

1 Like

Also looking forward to confirmation from ATL, and (if needed) updated documentation.

I think that the documentation should be changed to provide more clarity on this point.

We have since gone through with the update that occasioned me to ask this question, and, in our case at least, the customers did not have to uninstall the app. The update was completely seamless.

@nmansilla, @rwhitbeck are you able to find out about this for us?

1 Like

We changed the baseURL on both our Confluence and Jira plugins, that’s over 20k combined installs, it worked fine.

What it might be is if you are stored some authenication state on a server, that becomes invalid, but our plugin is stateless, so we couldn’t confirm that.