How to access data of another Forge app?

Due to [FRGE-1193] - Ecosystem Jira we have decided to split our app in twain - a main app for Jira and the other for integration with JSM. However, the main app stores some configuration data via the Storage API that we need to access in the other app. Is there any way to do this?

EDIT: Sorry about double posting, I had seen my thread on the same level as “Announcements” on the main page and I thought I had posted in the wrong category. Only after deleting and re-posting did I realize the second column is for latest threads :smiley:

3 Likes

Short answer, no. I can see that our guide to Forge storage does not make this absolutely clear and I’ll try to edit the doc for clarity. It should probably read:

Forge’s hosted storage lets you store data partitioned by app, Atlassian product, and site.

An alternative takes inspiration from that same page:

Forge can also use product-specific APIs to store and retrieve data for Atlassian Cloud sites and workspaces. This data is accessible to all apps installed within the site (as well as users). See product REST APIs for more details.

Potentially, you could share configuration data via “entity properties”. Assuming you could find an appropriate entity. There isn’t “site” as a property for sharing. Furthermore, that also assumes the properties wouldn’t be secrets like API Tokens.

To my knowledge, we don’t have any documentation about how apps could safely and securely communicate with each other in a targeted way (eg, in contrast to the “broadcast” of entity properties). But I can imagine that your 2 apps could share a common “remote” and use the mechanisms of Forge Remote to share secrets or other sensitive configuration. There aren’t docs but I would be happy to work through it here in this thread to the extent I understand Forge Remote.

3 Likes

Hi, thanks for your response. I have seen the entity property APIs, but none of them seem suitable for storing a general configuration. App properties API looks like the thing we would need, but that’s Connect only.

I have considered remotes, but I think they would be overkill for the communication the apps need to do. Right now we have settled on using a Web trigger in the main app to serve as an API endpoint and showing its URL in the main app’s config screen so it can be copied to the secondary app. It looks like it will work for us, unless we run into a problem with permissions or something.

1 Like