Connect to Forge Migrations Questions

I’ve started migrating 15 or so apps to Forge and I’ve run into a couple of questions:

  1. I’ve performed the manifest creation step from the documentation for a simple Confluence macro and then deployed and installed the development version to my test site but I can’t actually tell if my Forge app is now being used on my test page. I can see from my server logs that the connect app is being invoked, but the Forge Developer Console shows no invocations of my Forge app and I get no logs when I run forge tunnel. In Confluence Admin I can see that the version is version 2 which is not the version from my Connect app but it seems weird that there are no invocations in the logs. How can I confirm that it is my Forge app that is being used and not my Connect app directly as it was before?
  2. Assuming the Forge app is being invoked and is working the same as the Connect one, once I’ve published the app to the Production environment and updated the Marketplace listing, is there anything else I need to do to avoid being affected by the Connect deprecations? From what I’ve seen, there’s no mention of deprecating Forge invoking Connect apps so this should continue to work beyond the deprecation timelines right? (Obviously I know the app won’t be eligible for Runs on Atlassian but it never was before so this doesn’t bother me) Given the consternation about Connect deprecation it seems odd that it is this easy (one command) to avoid being affected by the deprecations. (Though my test app is a very simple one)

Thanks for any insight anyone has into these topics,
Matt

Hi Matthew! I think we should make sure that we mean the same thing when we say Connect App or Forge app. According to the notice:

For example, an app that has a Forge manifest and a mix of Connect and Forge modules will be considered a Connect app until all Connect modules are removed.

In other words, in your Forge Manifest, do you still have a connectModules section?

That aside, I’m very happy to hear that the first step was so easy. That is how it should be and incremental adoption of Forge components was out goal and I think my team did a good job of making the first step so easy. I’ll pass this feedback to them!

Update: You can keep your remote backend btw, Forge Remote is still Forge and it has long term support. If you happen to be using atlassian-connect-spring-boot or atlassian-connect-express both support Forge Remote in their latest versions.

Hi @matthew.grover – Something that might be helpful to clarify: In the context of moving from Connect to Forge, you can think of three different categories of apps rather than two:

  1. Connect Apps – Registered with atlassian-connect.json and uses Connect modules
  2. Forge Apps – Registered with manifest.yml and uses Forge modules
  3. Hybrid Apps (i.e., “Connect on Forge”) – Registered with manifest.yml, but uses at least one Connect module (and might or might not have Forge modules).

You’ve started the migration process, but your app is a hybrid app because it still uses its Connect module(s). There’s likely more work to do. (See below)

With that in mind, here are some answers to your questions:

To confirm whether your app is successfully registering via Forge (manifest.yml) instead of Connect (atlassian-connect.json), check the app listing in your test site. It sounds like it is working correctly from your description of the version number. But to be certain, look for the app’s environment name after the app name in the listing:
<App Name> - <Environment Name>

For example, instead of seeing “My Custom App”, you should see “My Custom App - DEVELOPMENT” or “My Custom App - STAGING”.

This is a dev app in my test site:
image

This is expected because your app only consists of Connect modules. Your app is registered via Forge (probably, see above), but the module you are invoking/testing is still a Connect module. Therefore, it is still invoked on your Connect server instead of in Forge.

Yes, you should migrate each of your Connect modules to Forge modules. Depending on the functionality in your Connect modules, this can range from extremely easy to impossible. Probably, your test app will be extremely easy to migrate. The difficulty of your other ~15 apps will vary based on their maturity and functionality.

Yes and no. Atlassian hasn’t announced a kill date, and so it’s possible that your apps can run as hybrid apps indefinitely. However, Atlassian has announced an end-of-support date for Connect modules (as linked by @rmassaioli). So there’s a high probability that eventually something in Connect will break or become incompatible with the platform, and then you’re app will be broken to some degree.

Atlassian is describing this as “use at your own risk”.

You were right to be suspicious. As you can now see, the consternation comes from various problems/challenges associated with the module-level migrations. (Incomplete feature parity, etc.)

I hope this was helpful. Good luck!

2 Likes

Thanks very much both for the thorough and clear answers. I do still have some connectModules so more work to be done there but now I know what has to be done,

thanks again,

Matt

1 Like