Jira Plugin development doubts EDITED

Hello Team,

I have few questions regarding app development for Cloud Jira version:-

  1. if we use Forge platform to develop plugins and if we also have our own custom REST service, how will this be managed? As in, App will be hosted by Atlassian but how about the REST services? will this be taken care by Atlassian as well? or we should take care of hosting the REST API? please advise

  2. In the last Atlassian developer event, we noticed quite a lot of improvement towards Forge, is this an indication that some day Connect will be grounded?

  3. What’s the best way to store custom data? what’s the best practice? We could use database for storing custom data but what about hosting it in production environment for Forge and Connect?

  4. Is it possible that we can debug apps in our local environment via Connect without NgRok?

  5. For hosting Forge apps on Atlassian, do we get charged for that?

Any help is much appreciated.

Thanks

:wave: Welcome! Quite a lot of questions here :sweat_smile:.

I’ll do my best to answer some but a few of them require a bit more nuance about context of what you want to build.

A big “it depends.” Do you need the REST service to be available to clients other than your app? If so, the only option with Forge is to expose the app via a webtrigger: https://developer.atlassian.com/platform/forge/manifest-reference/modules/web-trigger/. But might not be the best path depending on what you want to do. If your app is the only client, then you might not need a REST API and can get away with using Forge’s function module to effectively reproduce a REST-like interfact: https://developer.atlassian.com/platform/forge/manifest-reference/modules/function/.

We had someone ask this question recently during Developer Day and @tpettersen shared this answer that I think applies:

We are continuing to improve Forge’s feature set with respect to interacting with remote services (more on this later in the keynote) and we are committed to providing effective parity between Forge and Atlassian Connect. This should make it easier to migrate to or choose Forge over Atlassian Connect in the future. But this doesn’t mean we’ll be deprecating Connect any time soon.

However we do plan to deprecate some technologies that often lead to security issues in Atlassian Connect apps today, like remote iframes and JWT auth. That said, we realise how important Atlassian Connect is to our Marketplace Partners (and our mutual customers!) so any deprecations will come with plenty of time and support to make the requisite changes in their current Atlassian Connect apps.

This is one of the “it depends” questions. And it depends on the platform you’re using. Both Forge and Connect provide some types of storage - Storing data with entity properties and Storage. What type of data do you want to store? If neither of these options make sense for you, then you may want to also explore storing data yourself.

This is a good question for someone with more experience building on Connect than me, but thhe example code on this doc leads me to believe that you could use localhost directly while building your app on Connect: Security for Connect apps

Per https://developer.atlassian.com/platform/forge/platform-quotas-and-limits/, you are not charged but there are limits in place. These guidelines apply until the end of December 2023.

Again, a lot of complex questions here that require more nuance and context. My advice would be, try building a proof of concept on Forge. Does it do all of the things you want it to do? If so, keep giving it a go. If not, try doing the same on Connect.

You’ll need to have the descriptor to be available on the public internet (so that you can be installed). Once you’ve done that - you’ll need to serve the pages etc on the same host… So in theory you could avoid using ngrok by having some other public proxy (or having your dev machine directly on the public internet) - but ngrok will make it a lot easier.

1 Like

It is also required to support TLS (https). You can implement letsencrypt, but ngrok is much easier to resolve all these requirements

1 Like