Firefox OS Cloud Backup Restore
The purpose of this is to outline detailed requirements for the backup/restore functionality for a FirefoxOS Smartphone. Note: This is still a draft with our Engineering teams & UEX teams using this as a reference to - 1. discuss engineering architecture to support these features 2. discuss design proposals from UEX.
You're welcome to follow/join the discussion on mozilla.dev.fxos.sync.
|Category||User Stories||More Details||Priority||Validations||User Acceptance Criteria|
|Setup||When I boot my phone for the first time, I would like the option to configure my backup/restore options. <Note: see other user stories below for details>||Options would be around 1. Automatic/Manual - If Manual, will only need #4, #6. if automatic, need all. 1. Day 2. Time 3. Connectivity settings (wifi/3G) 4. collections to backup: Mail, Calendar, Contacts etc. 5. frequency of backups (weekly/monthly/quarterly) 6. where to back it up|
|Settings||The settings app should have a way for me to configure my backup & restore options||Options would be around 1. Automatic/Manual - If Manual, will only need #4, #6. if automatic, need all. 1. Day 2. Time 3. Connectivity settings (wifi/3G) 4. collections to backup: Mail, Calendar, Contacts etc. 5. frequency of backups (weekly/monthly/quarterly) 6. where to back it up|
|Settings||As a user who'd like to backup my phone, I would like options around specific data collections to be included within the backup. options: TBD||Options would be around 1. Automatic/Manual - If Manual, will only need #4. if automatic, need all. 1. Day 2. Time 3. Connectivity settings (wifi/3G) 4. collections to backup: Mail, Calendar, Contacts etc. 5. frequency of backups (weekly/monthly/quarterly)|
|Settings||As a user who has chosen to move forward with the option to manually backup as needed, I should have a way to start my backup process as needed.||the system should notify me that the backup process will begin shortly & to ensure that I am connected to wifi/power source. threshold: tbd|
|Notification||As a user who has selected the option to automatically backup my phone, it'd immensely help if the system gave me a reminder that my phone will be backed up so I ensure that my phone is plugged in during the process||reminder: <x> hrs/minutes before the backup begins|
|Automatic Backup||As a user who has selected the option to automatically backup my phone, I should have a way to specify how frequently my phone needs to be backed up||weekly/monthly/quarterly Phase 1: just offering monthly should be a good start|
|Automatic Backup||As a user who has selected the option to automatically backup my phone, I should be given a choice around the time of the day/days when I'd typically prefer my backups be performed||future phase: smart algo to automatically detect low usage times|
|Automatic Backup||As a user who has selected the option to automatically backup my phone, I should have a way to indicate connectivity preferences.||first use wifi. if not available use 3G|
|Automatic Backup||As a user who has selected the option to automatically backup my phone, in the rare occasion that I am using my phone during the time that the backup may be initiated, the system must request my permission to proceed.||how can we detect usage? touch/swipe actions?. The user must have a CTA to proceed w/ backup i.e. swipe to start or click yes to start and potentially get a password confirmation?|
|Automatic Backup||As a user who has selected the option to automatically backup my phone, the system should ensure that it will not back up data unless there is a certain threshold of battery life left and connectivity & should notify me accordingly||threshold tbd|
|Backup Destination||as a user who'd like to backup my data, I must be given a choice around where to save my data - local (owned by me) vs. cloud (owned by mozilla or other vendors)||3rd party choices TBD|
|Local Backup||as a user who may wish to save my backup on my local disk, I should be given a choice to configure how much data I'd be willing to store on my local storage option||options 1. free flowing text box 2. until disk space full|
|Authorization||if I have chosen to backup on my local disk, I should be able to authorize this app to access & store my data on the designated folder on my disk/desktop|
|Authorization||once I authorize for backing up my data, I shouldn't be prompted for repeated authorizations unless in the event of an exception.||what are the exceptions?|
|Local Backup||as as user who has chosen to backup my data on to my local disk, the system should automatically create a help.txt or similar to outline instructions to restore from this location.|
|Notification||every time a backup is completed, I must be notified.||how am I notified? use the notifications tray|
|Notification||if a backup failed, I must be notified|
|Backup -Fail||if the backup failed due to a loss of connectivity, i must be notified and prompted to continue once connectivity is restored outside of my desired backup times.||the user may be provided with an option to hit continue or restart failed backup.|
|Backup - Versions||The system should allow up to 3 versions of backups available to me.||should this be a choice?||Example||Example||Example|
|Backup - Security||backup must be 100% encrypted|
|Restore||i must be able to restore from any of the three available backed up versions against my device||should we restrict the device they choose|
|Restore||as a user who had chosen to backup my phone to my local disk, i should have a way to restore it from the available back ups.|
|Restore||as a user who'd like to restore my data from my cloud backup onto my phone, I should have a way to access my backup versions from the web||need a web interface to view the backup versions by device.|
|Restore||The system should notify me to plug into a power source & stay connected to wifi as a reminder during the restoration process||how long would restore take?|
|Restore||when I select a particular version from which I would like to restore, the system should quickly provide a list of step by step instructions on what to do next||example: plug your phone to your device, drag/drop or double click etc.|
|Restore||my phone should automatically restart following the restoration process||would it require a restart?|
|Restore||I must be notified if the restoration process failed.||depends on the type of failure and whether the user can be notified.|
|Restore||after a successful restore, my phone should show me my home screen from where I will proceed with the normal functionalities.|
Questions that still need to be answered:
- do we need a unified interface that showcases data on the local disk vs. data on the cloud? I'd think so...
- do we need a restore option on the phone?
- do we restrict backups to device specific backups & request user permission to proceed if they choose the wrong device?