How should we construct URLs to navigate to project administration pages?

navigation
jira-new-experience

#1

In our app ProForma we need links to pages we add to the project administration tab panel in Jira Cloud (using jiraProjectAdminTabPanels). So, for example, the button to close our form builder links to our forms list page.

Previously it was pretty easy for us to generate those links in our code because the format was simple, ie they looked something like this:

/plugins/servlet/ac/com.thinktilt.proforma.add-on/project-forms?project.key=SERVICE&project.id=11215

However recently with the new Jira experience they’ve become more complex, for example:

/plugins/servlet/ac/com.thinktilt.proforma.add-on/project-forms?user.key=admin&project.key=SERVICE&project.id=11215&servicedesk.serviceDeskId=35&user.id=admin

We tried generating URLs in that format, but it failed on our first attempt. It turns out that there is a specific order to the query parameters that Jira is expecting. So, for example, if you have the query parameters in the order shown above the navigation works:

…however if you have exactly the same query parameters but in a different order then the navigation doesn’t load at all:

It seems to be undocumented which parameters are expected, and what order they’re supposed to be in. Not only that, but each project type seems to have different formats — business, software, service desk, nextgen, ops all have slightly different URLs. It is becoming increasingly difficult to generate the links ourselves.

So my questions are:

  • How are we meant to find out the URL of a page in the project administration section?
  • Can Jira generate or tell us the correct URL to use?

Note that there is a AP.navigator.go which sounds like it should do this, but it doesn’t work. For example, if we call this:

AP.navigator.go("projectadmintabpanel", {
  addonKey: 'com.thinktilt.proforma.add-on',
  adminPageKey: 'project-forms',
  projectKey: 'SERVICE',
  projectId: '11215'
});

It will take us to the page, but the navigation will be broken like in my screenshot above. It generates those older, simpler URLs so it seems like it hasn’t been updated to work with the new Jira experience.

Anyone have suggestions about how to find out the URL to use?