Data Residency : About when existing customer uninstall then install again

We are stuck at the below scenario/behavior for existing customers as follows.

Customer Location AWS Region Region to which a Jira sends the request for add-on data
Please consider the current status as below (Before our add-on supports the Data Residency)
Customer_XYZ Globle EU-XX Environment before the Data Residency
Customer has some connect-app data in the environment before the Data Residency
Now we start supporting a Data Residency
Let’s look at the current status as follows
Customer_XYZ Globle EU-XX Environment before the Data Residency
Now the customer uninstalls the add-on and installs it again
Let’s look at the current status as follows
Customer_XYZ Globle EU-XX EU-XX
Customer lost/can not find the data as Jira now sending the request to the EU-XX/different server

Now the question is How can we tell Jira that for Customer_XYZ please send the request to the Globle environment?

NOTE: Customer did not enable the Data Residency for Jira and Add-on applications as well till this moment.

Hi Piyush,

How can we tell Jira that for Customer_XYZ please send the request to the Globle environment?

At the moment, Connect treats each new installation as fresh installation. This means that when a customer reinstalls the app, they are routed to the region based upon where their associated product is pinned at the time of reinstallation.

I’d recommend exploring the data residency migration lifecycle events. This EAP includes a new realm migration service and associated APIs, which will enable you to start integration and testing to support migration of app data to match the parent product realm. This means customers can migrate their app between realms without having to uninstall/reinstall.

Hi @SeanBourke,
We know the lifecycle, but let’s consider a scenario,
One of our existing paid customers ( pinned / not pinned ) uninstalls and installs again, in this case, way Jira/Atlassian is not preserved the connect app’s older region/environment at least for a paid customer or at least for a customer whose license is not expired yet.

And one more point, why Jira is not sending the request to the global environment even if the customer is in the global scope?

Hey @Piyush,

Thanks for sharing the additional information about the circumstance you’re seeing. As @SushantBista has shared we are still exploring realm-persistence as a potential pathway to mitigate these circumstances.

And one more point, why Jira is not sending the request to the global environment even if the customer is in the global scope?

If the product isn’t pinned to a realm, Connect will look at where the product is provisioned, known as the ‘shard’, and will route traffic to the corresponding realm of that shard. However, if the app doesn’t support this realm, then Connect will route traffic to the global realm instead. Reference to documentation

Dear @SeanBourke,

Regarding realm persistence (through dataResidency ) in App Descriptor

I recently came across an article outlining a method for storing customer realm details even after app uninstallation. The proposed approach involves utilizing the following configuration within the app descriptor file:

"dataResidency": {
  "realmPersistence": true, //optional
  "realmPersistenceDays": 30 //optional
}

To implement this functionality, would adding this configuration to our app descriptor file suffice, or is it necessary to request Atlassian support to enable the dataResidency feature?

Thank you for your time and clarification on this matter.

Hi @Piyush

Thanks for getting in touch. You have perfect timing!

We’re just about to launch this feature in a closed EAP group for feedback and will be reaching out to partners who have expressed an interest in the next week to be added to the closed CDAC forum where we can collect your app IDs, discuss the product and inform you of any known limitations of the product.

As it sounds like you’re interested in joining this, I will reach out in the next couple of days for some information.

Cheers,
Daniel Reed

Hi @DanielReed,

Thanks for clarification.

I have couple of question

  1. Could you please explain the meaning of ‘closed’ in the context of ‘closed EAP (Early Access Program)’ and ‘closed CDAC’?
  2. Regarding realm persistence, I am curious about the availability of ‘dataResidency’ in app descriptor file. Can I utilize this feature presently as few of prospects are waiting, or if not, when can I expect it to be accessible?

Looking forward to your insights.

Thanks
Piyush Patel

Hey @Piyush

  1. A closed EAP means that we are limiting the number of participants of the EAP. By closed CDAC, I mean a private forum for those participating in the EAP

  2. Unfortunately, no. Realm Persistence will only be made available when we go to EAP.

Thanks,
Daniel.