Firefox OS Cloud Backup Restore

From MozillaWiki
Jump to: navigation, search

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:

  1. do we need a unified interface that showcases data on the local disk vs. data on the cloud? I'd think so...
  2. do we need a restore option on the phone?
  3. do we restrict backups to device specific backups & request user permission to proceed if they choose the wrong device?