We’re trying to update our Connect app to support data residency, and encountered a major blocker, so I’d like to ask if anyone else experienced the same, and maybe found a solution?
We have a project based on Atlassian Connect Spring Boot, and would like to have a single frontend (compute region) for the app, which handles storing data to multiple regions, based on where the app was pinned by the customer.
So far, I’ve asked Atlassian if there’s any REST API to get the current region, and they said that the only way to get that is to have a different domain name for every region of your app, so I’ve created multiple domain names pointing to the same hosted frontend, not ideal, but so far so good.
However, when the ACSB library tries to validate the JWT tokens sent by Atlassian, it always reads the baseUrl from the atlassian-connect.json file, and doesn’t accept any of the other urls that are listed in the regionBaseUrls.
And it’s not just validating the JWT that causes issues, the whole project seems to use the baseUrl as the one and only canonical url of the app, which causes further problems down the line: even the logic that determines whether the current request is an install request or not, fails to do so, because the url doesn’t match.
My question for everyone reading this:
Did anyone try to handle data residency with a single frontend?
If so, did you encounter this issue? How did you solve it?
Did I miss something in the documentation, or is this really so hard to implement with the current tooling?
I see that the Atlassian Connect Express library has an allowedBaseUrls configuration, which accepts a list, so it might help with this scenario, but it doesn’t seem to exist in the Spring Boot version, and rewriting is not feasible for us.
Any and all feedback or help would be appreciated.