Forums

Articles
Create
cancel
Showing results for 
Search instead for 
Did you mean: 

Creating an app for jira data center and jira cloud

Atul Purohit August 1, 2024

 

Hi folks, I'm working on creating an app that can be installed by an admin on a Jira instance and made available in the marketplace.

Initially, I built the app using Forge, which I successfully deployed in my cloud instance. The app included an Express.js server and several webhooks. However, I found out that the same app cannot be ported to Jira Data Center.

To address this, I recreated the app using `atlassian-connect.json` and installed it on the cloud, where it worked perfectly. I used the "Upload App" functionality in the UI and provided the path to `atlassian-connect.json`. Next,

I installed a Data Center instance on my local machine and attempted to install the app using the same `atlassian-connect.json` and "Upload App" functionality. How do I create an app for Data Center? Is the only option to use a P2 plugin?

Given that the original app was built in Express.js, will I need to recreate the entire app in Java for it to be used on Data Center, while maintaining the Forge/Atlas Connect app for the cloud? It feels like a huge wasted effort. How do teams create apps that can be used in both places?

I must be missing something obvious. Please help me identify where I'm going wrong. Thanks.

2 answers

1 accepted

2 votes
Answer accepted
Aron Gombas _Midori_
Community Champion
August 2, 2024

Yes. P2 is the only option for Data Center.

Note that there are developers who build a P2 app that:

  1. Runs Node.js as part of their app, and they implement the app as much as possible in JS/TS.
  2. The JS/TS code make calls to the standard Jira Data Center REST API.

With this technique, you can reach a high grade of code reuse between Cloud and DC. On Cloud, your app is still JS/TS and you call the Jira Cloud REST API instead of the Jira Data Center REST API.

There are variants of this technique.

Another variant could be implementing the core of the app in Java. It is "native" in P2. On Cloud, you would deploy it to AWS Lambda functions and make calls from the front-end to the lambdas.

Atul Purohit August 5, 2024

Yeah this sounds reasonable. For me, most of the stuff is receiving a webhook response form jira so nodejs wont really help. But good suggestion. 

1 vote
Shawn Doyle - ReleaseTEAM
Community Champion
August 1, 2024

I've always done this in reverse, I would build an app for server/data center then port it to the cloud.  I'm not a heavy app developer, more a one-off depending on client needs. 

The docs to follow for datacenter apps are here:  

https://developer.atlassian.com/platform/marketplace/developing-apps-for-atlassian-data-center-products/

 

 

 

Atul Purohit August 1, 2024

Ok. Thanks for the insights. p2 plugins are the only way to create apps for data centers? Its mostly written in Java, and porting them over for cloud apps will essentially mean the cloud apps will also have java core (as long as we dont want to duplicate code). Is my understanding correct?

Suggest an answer

Log in or Sign up to answer
DEPLOYMENT TYPE
SERVER
PRODUCT PLAN
STANDARD
TAGS
AUG Leaders

Atlassian Community Events