Can a cloud-hosted JIRA instance import an Add-On that is served from a private, on-premise web server?

Joshua Gough June 14, 2016

This question is in reference to Atlassian Documentation: Add-ons and plugins

If I have a Cloud instance of JIRA, can I import a connect add-on that resides on a private network? I don't want to have to have an entry in the Marketplace for all the private instances of the target system.

3 answers

3 votes
Petar Petrov (Appfire)
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
June 14, 2016

The only possibility to install an add-on which is not listed on the Marketplace is to enable development mode - see the documentation on how to do this. Your add-on still needs to be publicly visible - if hosted on a private network, you'll need a tunneling solution like ngrok.io.

Joshua Gough June 15, 2016

Thank you, Petar..

The situation we have is that we have a product that our customers purchase which is only on-premise. But, many JIRA customers that want to use it are using JIRA Cloud. So, we want them to be able to display iframes inside of a JIRA ticket that are served from the on-premise product.

So, just to confirm what you're saying: in order for a Cloud customer to do that, they would have to enable development mode to point at something that is not itself listed in the Marketplace. Doing this would avoid the error message when trying to import the connect JSON file?

Petar Petrov (Appfire)
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
June 15, 2016

Yes, that's correct - when you enable development mode you can install any connect add-on, provided that JIRA can reach it over the internet.

Robert Massaioli (Atlassian)
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
June 15, 2016

I still say it would be better to use a private listing in the Atlassian marketplace. In the future "Enable development mode" might enable more than just the ability to install add-ons from other places. It could enable other development mode only features too.

Petar Petrov (Appfire)
Rising Star
Rising Star
Rising Stars are recognized for providing high-quality answers to other users. Rising Stars receive a certificate of achievement and are on the path to becoming Community Leaders.
June 15, 2016

Hi Robert smile,

I agree with you - private listing is the better approach, but the question specifically included the condition of not listing on the marketplace.

Joshua, as Robert points above, you need only one listing per add-on, not per JIRA instance. If that works for you - yes, it's better to enable private listings, rather than development mode.

Joshua Gough June 16, 2016

Thanks guys,

Not being "in the Marketplace" is not a requirement in and of itself.

However, we are under the impression that something in the marketplace can have a single baseUrl in the JSON file. As such, we would have to figure out a way to divert traffic that comes into that entry point to our own product that is running on an individual customer's on-prem network. 

Does that make sense? One way we thought to do that would be to have a Configure step page that lets us save the JIRA cloud instance's instanceName.atlassian.net address to our middle-man server. When subsequent requests come in against our baseUrl/someRoute, then we could again read that instanceName and render the IFRAME panel by redirecting to the customer's on-prem servers that run our product.

But, maybe we're missing something? Are there other ways to go about this situation?

Denise Architetto
I'm New Here
I'm New Here
Those new to the Atlassian Community have posted less than three times. Give them a warm welcome!
June 16, 2016

I work with Joshua, here is what we need phrased slightly differently.

We would like to host the plugin in multiple on premise instances of our product. The roadblock we face has to do with the baseURL needing to be static, and since we will have many instances of the plugin, we need the base URL to be more dynamic. It would be ideal if we could use a variable within the baseURL, and get the value of that varaible from the configuration page. For example

"baseUrl": "https://<instanceName>.com/",

Variables for URL obtained from the configuration page:
<instanceName> = Instance1234

Is something like this possible? If not, we are considering creating a private plugin for every instance of our plugin. Is there a limit to the amount of private plugins one can have in the marketplace?

stratejos [stratejos.ai] June 16, 2016

An idea:

  1. Use the private marketplace approach
  2. Setup something at the baseUrl that is really just dumb/static. It doesn't do anything, just responds to the Add-On Descriptor call and anything else required to maintain a marketplace plugin. Don't worry about this really.
  3. Have a configuration screen built into the plugin where you can set the "Instance URL". This points to your instance.

 

 

1 vote
stratejos [stratejos.ai] June 15, 2016

If you are serving multiple OnDemand instances with your plugin (even if its not going to be public) you are probably better off with a private marketplace listing. There is quite a bit that gets taken care of behind the scenes. It is easy to add new instances and, as Robert points out, you avoid putting a production instance into development mode which could have hidden consequences.

0 votes
Robert Massaioli (Atlassian)
Atlassian Team
Atlassian Team members are employees working across the company in a wide variety of roles.
June 14, 2016

You should only need to create one private Atlassian Marketplace listing for each Atlassian Connect add-on and then you can install it in as many cloud instances (with private installs allowed) as you like.

Does that not work for you?

Suggest an answer

Log in or Sign up to answer