Local app is automatically reinstalled as Marketplace app

I just discovered that

  • when I install in my development Confluence Cloud a local app with a descriptor URL from my ngrok tunnel
  • and if the "version" in my descriptor (which we still have in our descriptor, as previously it was mentioned in the documentation) is less than the automatically generated Marketplace app version
  • then Manage apps shows that the update is available
  • and Confluence automatically re-installs it within a day from the Marketplace.

After that, it is not possible to revert it due to Change notice - Changes to installation of a local app on Atlassian Cloud products and my development instance is unusable for further development needs.

I suspect that this is a recent change as I have noticed it just recently on my development instances.
Probably the cause is that we still have the "version" attribute in our app descriptor?

Can anybody from Atlassian confirm that this is how it works currently that local apps can be automatically reinstalled from Marketplace? I would expect that local apps are never automatically re-installed from the Marketplace.

Kind regards,
Raimonds

2 Likes

Hi @raimonds.simanovskis,

I have reached out to our team regarding this and will reply back soon.

Thanks.

I have confirmed with our team and this is the intended behavior. Earlier, as mentioned in the change notice, modifying app key is one way to go around a recent change in local app installation.

Since your app is requesting a special scope which is enabled only for your production app key, you can work around it by modifying version in descriptor without changing the app key. You can create some kind of dev version that has not been seen by the marketplace. For example, "version" : "1.0.0-dev". Then everything should work fine.

Let us know if you are still facing issues.

Cheers.

I do not agree that this is a good intended behavior to automatically reinstall a local app from the Marketplace. I believe that no app vendor would like to have such behavior.

The purpose of the version in the descriptor is also unclear as it is not documented anymore in https://developer.atlassian.com/cloud/confluence/app-descriptor/. I removed it and installed the local app in a new Confluence Cloud dev environment and Manage apps shows that I have version 1.0 now. And probably as we do not have the 1.0 version on the Marketplace it has not been reinstalled in the last days.

Kind regards,
Raimonds

3 Likes

As quoted in Upgrading and versioning of cloud apps,

We poll and update your app so that you can easily release fixes and new features, without having to manually create new version entries on Marketplace. We want to ensure that customers get the latest version of your app with as little delay as possible — Connect apps should seem like web services, not versioned software.

You can read more about how these automatic updates take place.

Because of the above, the vendor-supplied version in the descriptor has no purpose. Marketplace provides version, which then UPM uses, which is further used to do upgrades, handle scope changes etc.