You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Users should be able to seamlessly extract their data, both for backup purposes, but also to facilitate in migrating between services.
Design Requirements
Versioned: this will facilitate in migration, but also allow users to restore back-ups from previous versions.
Complete: Everything the user can enter should be in the backup data
Secure: User data downloads should be encrypted in transit and at rest.
Easy to Use: Users with limited technical knowledge should be able to work with their user data (this may be accomplished by separate tooling downstream from user backup)
Easiest option:
Encrypted ZIP folder with table dump CSVs
Metadata JSON store for user options, versioning, backup date, etc.
Alternatively:
Store everything in a compressed MessagePack w/ a cryptographic signature
Add functionality to allow users to upload backups signed from other servers/themselves
Small, Fast, Lightweight
Not quite as secure
Alternatively-alternatively
Chuck everything in Gzipped JSON and make the restore function a massive POST request.
Still not encrypted at rest w/o additional considerations
Why This is Important
This forces the developer to guarantee users can access their data through version changes & potential service outages.
This allows the developer to create server-wide backups with a restore method other than just rolling back the database.
This gives users the freedom to migrate off of the NoScrum web application with minimal friction
This provides a necessary data control to users that all web applications should provide.
The text was updated successfully, but these errors were encountered:
Support for Backup
Users should be able to seamlessly extract their data, both for backup purposes, but also to facilitate in migrating between services.
Design Requirements
Easiest option:
Alternatively:
Alternatively-alternatively
Why This is Important
The text was updated successfully, but these errors were encountered: