Storing data is often integral to an apps functionality. With Forge, there are a range of different storage options to suit every applications needs.
With Forge hosted storage apps can store, retrieve and delete data in the Atlassian cloud. Data is stored against each installation of the app, and each installation of the app is subject to the Storage API’s quotas and limits.
Data is encrypted and stored, so these storage types are optimised for durability and persistence, rather than performance. There are three types of long term storage available:
Forge SQL
Forge SQL will let you use an SQL database for your app. With this capability, Forge will provision and host your app’s database (and, by extension, host your customer’s app data) on Atlassian infrastructure. Each instance of the database will be associated to a specific installation of your app. As a result, each app installation will have its own dedicated database instance; this instance will store only data specific to its corresponding installation. For example, an app might store data relating to cars, but also, their replacement parts. This more complex data would require a relational database to track as it would be more difficult to implement and use within custom entities.
Understanding the storage lifecycle stages helps you effectively plan your app's behavior and ensures it meets data handling requirements.
Stage | Data status |
---|---|
Creation / Deployment | When a developer creates or deploys an app, no storage is set up at these stages. The system defines the app and makes it ready for use, but it does not create or store any data until a customer installs it on a site. |
Installation | When a customer installs the app, the system provisions storage in the site's product partition to manage the app's data for that specific site. |
Upgrade | If new features require storage, the system provisions additional storage in the site’s product partition during an app upgrade to meet new storage needs without affecting existing site data. |
Uninstallation | When a customer uninstalls the app, the system soft deletes the data, meaning it can be recovered for up to 30 days. |
Deletion | To delete an app, customers or Atlassian support must first uninstall all installations. The system then deletes data, following the same uninstallation retention period as described above. |
See Data lifecycle for Forge-hosted storage to learn more.
Data residency support is available for apps that use persistent hosted storage.
Forge will take care of the hosting, pinning, and migration of hosted data between supported locations, so partners can focus on building a high quality app for their customers.
This solution is designed to work harmoniously with product data residency and consequently is based on similar concepts and terminology.
See Forge data residency to learn more.
Storage capacity is the total amount of storage provisioned per seat for each installation of your application.
For key value storage and custom entity storage, the quota is based on how the app is distributed, whether it is free or paid and the number of seats.
There are also limits in place on the number of storage operations, and the size of keys and objects.
To learn more about quotas and limits for key value and custom entity storage see Platform quotas and limits.
For Forge SQL the install limits are determined a little differently and are based on whether the app is in production, staging or development.
You can learn about the quotas and limits for Forge SQL at Forge SQL
Entity properties enable apps to add key-value stores within the product, however there are some limitations to this kind of storage.
Entity properties enable apps to add key-value stores to Jira entities, such as issues or projects, comments and even users.
Entity properties are accessed via the product REST API - see Storing data against an entity with REST to learn more
There are some important limitations that you should be aware of. See Limitations of entity properties.
Entity properties enable apps to add key-value stores to Confluence entities, such as pages, blogs, spaces and even users.
Entity properties are accessed via the product REST API - see Storing data against an entity with REST to learn more
There are some important limitations that you should be aware of. See Limitations of entity properties.
The final option for storage is remote storage. Using remote storage you can integrate your app with services hosted on other platforms - allowing Forge apps to store data remotely on self-hosted databases or third-party storage services.
However, there are some disadvantages to using remote storage. Apps using Forge Remote may not be eligible for Runs on Atlassian - and in addition, you will need to manage many storage tasks yourself, such as data residency, deleting data, disaster recovery and data security to name a few.
Learn more about Forge Remote
Continue to review Essential Knowledge
Rate this page: