Forge -> Connect on Forge

We are developing a new purely Forge app. On the future feature list are features that may require Connect only functionality. Is it possible to go from a Forge app to a Connect on Forge or should we start with Connect on Forge just in case we need it

Thanks

We have built a bridge that was designed to get Connect apps to Forge, but it does not work the other way around. Unfortunately, this means that what you are looking to do is not possible on our platform.

However, that said, what feature in Connect are you interested in going to Connect to access? Maybe it might be possible in another way, or be on our roadmap?

There is a limit on file size when we try to upload files from the front end. We can get around this by bouncing it off a connect app and then through to the Forge backend. We don’t need it now but probably will in the future

1 Like

Hi Paul, are you aware of Forge Remote? That might server your purposes. See this guide and these reference apps.

Yes, Forge Remote was what we would use to bounce the file off our connect instance.

Ok, it sounds like our best option is to go Connect on Forge at the start (but not use Connect for anything). We can then start to use the Connect part when we need it later on. If Forge fixes the issue we have then we can drop the connect part at a later date

Hmm, there may be a misunderstanding here. What do you mean by “go Connect on Forge”?

You can add Forge remote to your Forge app whenever you like; that’s not tied to “Connect on Forge”.

What you can’t do once you have a Forge app is “enable Connect features”, meaning Connect web panels, web hooks, JWT API authentication and the like.

Also, the Connect Frameworks speak “Forge Remote” now, so you can have the one server (indeed, the one process) that looks like Forge Remote to a Forge app while continuing to also serve Connect traffic for a Connect app.

1 Like

Maybe I’m getting my language mixed up.

By “Go Connect on Forge” I mean to create a Connect app with Forge also added

We would then use Forge Remote to call from Forge to Connect passing a file. Connect would then call the Forge backend passing that same file through. So Connect is simply being used as a pass-through.

I assume we can’t use Forge Remote to call from the Forge front end to the Forge backend?

Does that make sense?

Can you please help us by specifying, as well, which particular API you are using and if you are using it from UI Kit or Custom UI?

Forge Remote does let you call from the frontend, to a remote service and even call back to the product APIs from that remote service. This is why I’m asking about the specific APIs you are trying to use.

Screenshot 2024-05-09 at 1.19.43 pm

Source: https://developer.atlassian.com/platform/forge/remote/#forge-remote

The app will use Custom UI and the API is the add attachments API.

We tried to upload a file from the Forge frontend to the Forge backend using a resolver but that has a limit on the maximum size of a file. So to get around that we are using Connect on Forge. This uses Forge Remote to send the file to our Connect server which then sends it straight back to the Forge backend.

Our understanding is that we can’t use Forge Remote to call from Forge frontend to Forge backend without going through another party

You can use the Forge remote APIs / protocols to make a direct request from the product front-end to a server you own, over the internet, and then to call back into api.atlassian.com REST APIs (such as add attachment) from that server using an access token that’s delivered in a header along with that request from the front-end.

An app that does all that is still considered just a Forge app, so you can add this feature later with no problem.

Ok, thanks

By the way I assume you need to do something with the file on the backend before attaching it, hence not using the API directly from the frontend.

We need to call the REST API with asApp because the user may not have permissions

This topic was automatically closed after 30 days. New replies are no longer allowed.