Why do I have to pay to store customers' data?

I’m in the final stages of developing a Custom UI Forge app for Jira when I stumbled upon a potential long term problem. My app generates audit data so users can keep track of certain activities in the app. This audit data is stored in Forge storage which means once my app passes the new free tier limit, I’ll have to start paying to continue to store that data. The natural inclination would be to simply not store the data but I can’t do that. I need to provide the audit information to the customer and the customer may be required to maintain that audit data for a certain number of years, based on regulations in their country. I’ve been thinking of ways to handle this issue such as requiring customers to periodically download this audit data and store it however they see fit. This would then allow me to periodically delete the data to manage my storage costs. The problem with this approach is what happens if a customer neglects to download this data and I delete it? I don’t want to get into any type of regulatory mess and the headaches that would bring. Another idea I had was to have the customer provide a url that I could use to periodically send the audit data to but that’s a non-starter because my app currently qualifies for the RoA (Runs on Atlassian) program which means my app can’t access any type of external service.

This brings me to the title of this post; why do I have to pay to store customers’ data? The argument can be made that data storage should be factored into the price that I charge for my app, but, as the amount of data stored increases am I allowed to increase the price for specific customers? I don’t now if that’s even possible.

As of now, I don’t see any good way to solve this problem, given the functionality that Forge currently provides. It doesn’t make sense to me for Atlassian to charge me to store data that doesn’t belong to me. Any data that my app generates and is stored on Atlassian’s servers belongs to the customer, not me. So why do I have to pay to store it? For now I think I’m just going to periodically delete the data and provide a way for the customer to download it manually before it’s deleted. If they don’t download it before it’s deleted, that’s their problem because I have no intention of paying Atlassian to store customers’ data long-term. This problem wouldn’t exist if Atlassian didn’t decide to start charging to run your app on Forge.

Maybe Forge can provide some type of Audit service that your app can send messages to store audit data? The data stored in the audit service wouldn’t count against the app and would be instead billed to the customer’s storage usage.

11 Likes

Another idea I had was to have the customer provide a url that I could use to periodically send the audit data to but that’s a non-starter because my app currently qualifies for the RoA (Runs on Atlassian) program which means my app can’t access any type of external service.

I think this one would help.

The customer should pay for their usage of the app and the amount of compute they consume. Anything else is just stupid.

Unfortunately we are running on the “just stupid” timeline. :man_facepalming:

9 Likes

Thanks @AdamAhmed. While not the most ideal solution, it provides at least one option to handle this issue. I’ll keep an eye on this.

Have you considered storing the data in Jira or Confluence as attachments automatically? That way its not within your app’s storage any more.

@MichaelCooper I don’t think attachments would be suited for use as a general purpose storage medium. In Jira, an attachment can only be attached to an issue (correct me if I’m wrong). What happens if the issue gets deleted by the customer?