Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[FEATURE] Support backup/restore functionality at the per-user level #35

Open
trafficone opened this issue Mar 25, 2022 · 0 comments
Open
Labels
enhancement New feature or request

Comments

@trafficone
Copy link
Owner

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

  • 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.
@trafficone trafficone added the enhancement New feature or request label Mar 26, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant