App storage (aka content of Storage API) not included in site backup?

Dear Atlassian,

I just stumbled across issue https://ecosystem.atlassian.net/browse/FRGE-540.
The author made a keen observation which I tried and have to concur with:
at the moment, content from the Forge Storage API is not backed up
(if you create a Jira Cloud site backup, for example, the stored values of a test app isn’t included in there)

Can you please elaborate how app storage can be backed up?
Is this feature missing because Storage API is beta or did we miss something?
Or is the idea here that Cloud sites are never backed up or content being moved to another site by the customer anyway and we just shouldn’t worry about it?

Cheers,
Jay

28 Likes

Hi @DoItWithASmile,

We have backups for the entire hosted storage for disaster recovery only, however, unfortunately nothing at the app level yet.

App level Backup/restore is in our future roadmap.

Cheers!

1 Like

I see. Thanks for the clarification! :+1:

Suggestion:
This should go into the Storage API documentation before some customer looses data and a vendor or Atlassian gets the heat & blame.

7 Likes

Please can you get this added to the Trello roadmap?

And to clarify, data stored using the Forge Storage APIs by an app is backed up for Disaster Recovery but those backups aren’t accessible from the app?

3 Likes

Please also update the docs to clearly indicate which Forge features are stable and which ones are experimental.
Right now it looks like everything is GA. In the case of Forge storage, the experimental notice is hidden in a sentence under recommendations.

3 Likes

What’s the eta on when this will be resolved?

As Atlassian is pushing this with statements such as “Now, developers can rely on Forge’s hosted infrastructure, storage, and function-as-a-service (FaaS) to build new cloud apps for themselves or for the Atlassian Marketplace.” (Forge for Atlassian Cloud - Work Life by Atlassian ) - this is wildly irresponsible for this not being backed up.

5 Likes

Anyone from Atlassian that can speak up about the current situation. Also - what should we be telling the customers when they ask?

3 Likes

Hi everyone. We apologise for the delay is responding on this thread. Answering your questions:

  • Storage API is transitioning officially to GA - and is no longer experimental. We will update the documentation and announce GA status soon.
  • For customers using Forge apps, data is backed up and preserved as part of disaster recovery, and can be restored. However, these backups are currently not accessible to partners and customers. We recommend using this language or pointing to security practices documentation if customers have questions.
  • We have commited to extend admin-initiated backup and restore capabilities to apps that store data within Forge to our longer-term roadmap. Our plan is to extend the new backup and restore service for Jira/Confluence (currently in-progress) to Forge. We are currently assessing when this capability will be available. We will provide an update when we know more.

For partners and developers building and operating Forge apps, we hope this update provides some clarity on this topic, both in terms of current capabilities and future plans. We will ensure this topic is revisited consistently in future roadmaps and documentation.

@SushantBista can you please clarify this statement?

Does this mean:

  1. customers can request a per-app disaster recovery for Forge data?
  2. customers can request a Forge Storage API disaster recovery for all forge apps related to their instance
  3. customers can request a disaster recovery for the entire site, incl. Forge apps
1 Like

For customers using Forge apps, data is backed up and preserved as part of disaster recovery, and can be restored. However, these backups are currently not accessible to partners and customers. We recommend using this language or pointing to security practices documentation if customers have questions.

@SushantBista Unfortunatley this doesn’t help at all - what does it mean for the customer? If I gave that to the customer they would just look at me and walk away. Can we get clear definition of what it means for the Apps using Forge storage.

If an App ends up corrupting data or delete data - is it recoverable? If a customer deletes a project in Jira, they can recover it - however if we listen to the delete project event - that data is gone - correct?

2 Likes

+1 on what @danielwester says. As vendors, with our own storage solutions, we are capable to create 1-hour backups of data and control retention per customer. For our Connect apps, this means that we have multiple restore points. If data was corrupted, or if it was accidentally deleted, we can simply restore it from X hours/days ago.

We haven’t implemented it yet, but technically we could even allow customers self-service data restore within our app. That is not at all comparable to a tedious disaster recovery process that needs to be requested with Atlassian.

1 Like

Thanks everyone for your feedback.

We are able to restore for the scenarios outlined above. But please note, this is currently a manual process to extract tenant/app specific data from the wider platform backup. We are looking into making this process more efficient.

We understand your frustrations around lack of clarity on this issue. Please know that we are commited to addressing this. We are working on updated guidelines around app data recovery for our Forge partners and customers. We will update you all once we have firmed-up when this will be available.

In the interim, we would love to better understand how you are currently dealing with app data backup/restore for your Connect apps. Your feedback will help provide confidence in our future admin-driven Forge app backup/restore solution. Please feel free to reach out to me via DM or sbista@atlassian.com, and I can help organise a call. Thank you.

https://developer.atlassian.com/platform/forge/changelog/#CHANGE-670

The Forge Storage API is now fully supported and suitable for production use.

So, app data recovery was addressed? How?