A proposed way to detect add-on version upgrades

The Marketplace detects changes to the descriptor, and automatically creates a new version of the add-on. Installations of Jira Cloud then upgrade themselves to use the new add-on version over the next ten hours or so. Cool.

When a Jira Cloud instance upgrades itself, is it the case that both the /installed, and the /enabled life-cycle webhook calls are made to the add-on?

Our add-on needs to differentiate between host applications using the old descriptor, and those that have upgraded to the new descriptor. If the new descriptor includes a URL like this:

/enabled?version=2.0 

…then maybe that’s a way for the add-on to learn that a particular Jira instance has upgraded to version 2.0.

Can you give me a sanity check on this before I spend time implementing it?

1 Like

Hi David,

There might indeed a better solution but that’s what we have been doing so far. When we make changes that could break because the customer doesn’t have the new descriptor, we make sure to add a “&version=xyz” parameter to the module’s URL. This allow us to show/hide the feature until the new descriptor was installed in the customer’s instance. So far, this approach has worked for us.

1 Like

Do you add it to every URL, or just the /enabled URL? Do you happen to know if the /enabled endpoint is hit when the Jira Cloud instance upgrades to the new version?

It’s not the enabled but rather the module URL itself. So, we just update the modules impacted by the changes:

  "modules": {
    "webPanels": [
      {
        "url": "/modules/issue_webpanel?issueId={issue.id}&projectId={project.id}&issueTypeId={issuetype.id}&version=20170916",
        "location": "atl.jira.view.issue.right.context",
        "weight": 60,

And sorry, but I never looked if the enabled URL is hit during upgrade.

1 Like

I’ve now discovered that both the /installed end-point and the /enabled end-point are hit during automatic add-on upgrade; so there’s a convenient way to manage the introduction of new features.

1 Like

That’s good news! Do you get any information that would allow you to distinguish one update from another one?

Not automatically, but the /installed?version=x.x trick works.

1 Like