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
-
Single backup file
- Export all data as a single backup file.
- A custom file format may be used.
-
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.
-
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.
-
Compressed and encrypted backup
- The backup data must remain encrypted.
- The exported backup file must also be compressed.
-
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.
-
Import process
Closing Criteria
Checklist for closing the issue:
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
Single backup file
Application identifier
Security key verification
Compressed and encrypted backup
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:
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.
Import process
The import workflow should perform the following steps:
Closing Criteria
Checklist for closing the issue:
make prepmake qtest