Skip to content

SOLIDUI: Add backup functionality to the Avatar menu #378

Description

@tonypioneer

Description

Add a Backup option to the Avatar menu. Clicking this option should open a dialog similar to the existing TodoPod Backup feature, allowing users to back up and export all contents of the current app's data folder in the POD, as well as import data previously backed up from either the same POD or a different POD.

Requirements

  1. Single backup file

    • Export all data as a single backup file.
    • A custom file format may be used.
  2. Application identifier

    • Store the current application's full URL in the file header.
    • This will be used during import to verify that the backup was created from the same application, regardless of whether it originated from the same POD or another POD.
  3. Security key verification

    • Store a verification fingerprint of the security key used during export in the file header.
    • The fingerprint must not allow reconstruction of the original security key, but must uniquely verify whether a user-provided security key matches the one used for encryption.
  4. Compressed and encrypted backup

    • The backup data must remain encrypted.
    • The exported backup file must also be compressed.
  5. Import validation

    • Before importing, verify whether the backup was created by the same application.

    • If the backup originates from a different application, reject the import.

    • If it originates from the same application, prompt the user to provide:

      • the original security key used when creating the backup, and
      • the current security key for the destination POD.
    • This is necessary because different applications may use different security keys, and users may have changed the original security key after the backup was created.

  6. Import process

    • The import workflow should perform the following steps:

      1. Decompress the backup file.
      2. Decrypt the backup data using the original security key.
      3. Re-encrypt the data using the current (destination) security key.
      4. Upload the re-encrypted data to the destination POD, overwriting the existing contents of the app's data folder.

Closing Criteria

Checklist for closing the issue:

  • No errors from make prep
  • All tests pass make qtest
  • Users can backup all the data on the POD.
  • Users can import backup data to the POD.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions