How to build backup system for mobile app for our end users?

We are building a mobile app, similar to whatsapp & signal. We want to give end users an option to backup their entire profile & chat history & media files to Storj from the App itself. We are looking for best way to implement this.

  1. Let users create Storj account themselves and provide necessary credentials within our mobile app, so that the app can backup daily. We can just develop integration between our App & Storj.

OR

  1. We create Storj account for each end user (in the backend via storj API, as a multi-tenant model) and use the same App login of end user for pushing backups to Storj. Maybe my sentence is not clear. Basically, provide backup option to end users by integrating our App with Storj & providing backup feature as part of our App itself.

Please suggest and share if there is similar implementation already done.

1 Like

I think best would be to let the User choice, for advanced ones they provide the credentials by themself (and also take over the responsibility) and one which everything is handled by you for not so techy advanced users.

I’d go for option 2, make it seamless.

The question then still is: do you store the encryption key or seed phrase, or do you expect the user to take care of it? If you app is privacy-focused, maybe let the user chose between those 2?

See functions Access.OverrideEncryptionKey and DeriveEncryptionKey

@Erikvv
Yes, our app is privacy-focused and we want to give full control to the end user. The whole User’s data will only be on the user’s device, hence the reason we want to provide backup option to Users. End-Users should controls their data and be responsible for having their own encryption key (via passcode phrase).
Quick question here, when the end-user is using a passcode to encrypt & store the backup on Storj, if the User forgets the passcode, is there a way to retrieve data still or will a new passcode be useful to get the data for restoring or viewing purpose again?
BTW, appreciate you replying.

@Arkina , that’s true. We are thinking the same, to let the user choose.

No there’s no way to decrypt data without the passphrase, so long as good enough not to get guessed or brute-forced. That’s intentional. The user (or your company) will have to store or remember it.

@Erikvv , got it. Yea, we just have to let each user have their own passphrase (passcode) and keep every user’s data completely isolated & controlled by the users themselves. That way we don’t have to worry about maintaining passcodes on our side. If the user loses the passcode, lose the existing backup.
Sounds about right?

2 Likes