Developing apps for Jira cloud

Hi,

I am trying to create an app for Jira cloud but I have only managed to create the hello world app and gotten it connected from this simple tutorial:
https://developer.atlassian.com/cloud/jira/platform/getting-started-with-connect/

I also tried to do this tutorial:
https://developer.atlassian.com/cloud/jira/software/adding-a-board-configuration-page/

But I got stuck as I ended up getting an ssl error.
Is there any good tutorial that goes into using anything more than one html page for an app and goes into what runs in the jira cloud app environment?

Welcome to the Atlassian developer community @steinikr1996,

Thanks for trying out Atlassian Connect. I’m not aware of any tutorials that are more comprehensive. However, there are a lot of videos that explain Connect for more use cases than “one html page for an app” on the Atlassian Developer YouTube channel.

As short answer to:

You will probably have a web application (often built on the Atlassian flavors of Express/Node/JavaScript or Spring Boot/Java). The web application will have access to Jira REST APIs and can receive webhooks. Connect Apps are usually (but not always) stateful for security so have a database back-end. When you front-end code gets to be more than just a static page, you may also have a range of web assets to manage and deploy (images, CSS, front-end JavaScript). In the end, Atlassian Connect is pretty much “you built it, you run it”.

On the YouTube channel, uou’ll also notice many of the newer videos focused on Forge. From the docs, one of the key things to love about Forge is:

  • Build apps, not infrastructure: Write an app in minutes while the platform takes care of security, compute, and storage.

Since Atlassian runs the infrastructure, it is simpler to enumerate the architectural elements which can either be found in the manifest or the runtime.

Maybe the community could better point you in the right direction if we knew a little more about what you are trying to do. What kind of app do you have in mind?

1 Like

Thank you very much for your reply @ibuchanan , it was very informative!

I also noticed after more research here on this community that there are more ways than one to create an app for Jira. There is Connect, ACE and Forge. I am not sure about which to choose for building my app.

I am building an app for Jira that creates information pages that shows information processed from information on projects and issues in Jira as well as from calling an outside API from microsoft 365.
The app would eventually be sold on the marketplace so it needs to be possible to post it on there and sell it there.

Summarized:

  • Read information about tickets and projects in Jira
  • Call outside API
  • Process information and create pages
  • Be able to interact with the pages
  • Be able to put on the marketplace in Jira

Which of the three ways would be best for the use in this project?

@steinikr1996,

Great summary!

ACE stands for Atlassian Connect Express (based on Node.js and Express). And ACSB stands for Atlassian Connect Spring Boot (based on Java Spring Boot). Both are libraries/frameworks for implementing the Atlassian Connect “protocols”. If you go the Connect route, I recommend either ACE or ACSB because some aspects of Connect are poorly documented and quite unique to Atlassian. We have had people here try to implement Connect in PHP and ASP.NET, but I think they struggle with the QSH and Connect Lifecycle management.

Regardless of Connect or Forge, these are going to require the use of REST APIs. There is a set of common REST APIs called Jira Platform and there are product-specific APIs for Jira Software and Jira Service Management. Platform has issues and projects. If your app were only calling Jira, Forge is probably easier.

Connect is already “outside” in a sense. In your own web application layer, you can call anything you want. I recommend Connect as stronger for external interactions because it gets in your way less often.

Forge is more restrictive. Calling any HTTP endpoint requires registered remotes. There is a module for external auth that manages OAuth 2 authorization code flow. And you can call out using basic auth.

Both are possible with both. With Connect, the “compute” (aka process information) is your own, so you can take as long as you like and process however you like. If the processing is complicated, like ML/AI, Connect is your best bet.

If you can live with some quotas and limits, Forge has the advantage that Atlassian runs those parts.

I’ll come back to “create pages” on your next question.

Both Connect and Forge share some clever “bridging” that lets UI in your app know about the application context, like which user, issue, and project. With Connect, your app’s UI runs in an iframe with access to a JavaScript library. Otherwise, you can make quite rich interactions in the space given.

With Forge, like with outside APIs is a bit more constrained. Again, the app runs on Atlassian infrastructure; hence, more compute limits. But also, both the UI Kit and Custom UI have been characterized by other app developers as more limiting than Connect. UI Kit is intentionally so for the sake of faster development.

You can list almost anything on Marketplace, including simple REST API apps. However, if you want to sell through Marketplace, you must use either Connect or Forge. At this time, licensing is limited to a “per Jira user” basis.

My “day job” is to work with external ISVs like AWS, Moogsoft, and CircleCI to build integration. Even though we are excited for Forge, we are still recommending Connect for those scenarios. So, with the importance of calling an outside API from Microsoft 365, my overall recommendation is Connect, using ACE or ACSB, depending on your language/runtime strengths.

1 Like

Thank you very much for the fast and detailed feedback @ibuchanan !

I think I now have enough information to choose what to use, which will most likely be Connect ACE/ACSB.

Do you know if there is any difference in using ACE and ACSB? For example the documentation and community and ease of developing for the Jira Connect?

@steinikr1996,

No technical difference. You’ll find both maintained by Atlassian and both used and supported in the community. Maybe slight advantage to ACE because we choose JavaScript to use in getting started and examples.

1 Like

Okey thank you very much for that @ibuchanan .
I think that has then answered all of my questions.

1 Like