G’day all.
Hoping someone (maybe from Atlassian, maybe just someone with experience navigating the ecosystem) can give me a hand here.
The company I work for develops software which customers host themselves on their own domain. We’ve had a number of potential customers interested in using Atlassian products (primarily Confluence and Jira) with our software, and would like to be able to support this. In my testing, I’ve found Forge quite suitable for our purposes - responding to page events, updating content, etc. We’ve got a working proof-of-concept app that functions well, and would like to start demos for customers.
Unfortunately, because our customers each use their own servers, it is not possible for us to declare the egress URLs in the app manifest ahead of time - they’re outside of our control. In a perfect world, we’d have a text field in our Forge app settings page that points to the customer’s server and the backend can just fetch() from whatever is configured there. This obviously won’t work with Forge’s security controls (fair enough! arbitrary egress is generally bad). The workaround I’ve come up with is to have custom versions of our app built for each customer, setting different egress URLs and app IDs in each copy’s manifest. This is far from ideal, since it means any updates to the core code have to be replicated across each individual copy, which will become increasingly laborious the more customers we have using Atlassian products. I can also foresee an awful mess of versioning problems depending on how RFC-106 goes. Unless I’m missing something though, there’s no way to set a blanket “accept” for external fetch() URLs in the manifest by design, so we’re a little bit stuck with that as our best option.
My questions are:
-
Is there a better way to do this that I’m not seeing?
-
How would we go about distributing this? I’m guessing based on the Forge guide that distribution via the console is the best approach, but confirmation from someone who knows what they’re doing would be good.
-
If we do distribute this as described, will we be breaking any Atlassian T&Cs? We do not intend to monetise the Forge app, since it’s only useful in combination with our software.