CloudServices/Storage

From MozillaWiki
Jump to: navigation, search

Overview

The goal of the Storage project is to provide a cloud storage service for web app developers.

Problems Solved

Web application developers are used to storing data and user state in cookies, indexDb, or the former Google Gears. This is bound to a single screen and focused on offline solutions. We want to enable multi-screen web experiences can run cross platform and across devices. We want to make it easy for front end developers to have an easy way to store data in the cloud. The web needs a light weight API and authentication system to rapidly develop cloud applications.

Vision

This is a:

  • model of data ownership and rights that are solely the users. The data is stored in a user controlled location possible hosted by Mozilla/OwnCloud/any server. This is a key difference compared to personal data hosted on corporate servers.
  • library that works with all browsers and possibly mobile applications (not browser API initially)
  • metaphor for extending local storage to cloud storage
  • user controlled data store with strong encryption
    • with data that can move where the user chooses to store it
    • user eventually may choose which service to authenticate against.
  • MVP or PoC for FxHello, FxA Contacts, FxA Profile data, eventually a platform for all developers
  • a generic kv store that is flexible and foundational to used for many applications


What this is NOT:

  • not another cloud based kv store
  • not just a Firefox only feature
  • not just a FxAccts feature (in the long term)

Examples

  • FxAccts contacts could be stored here and edited/deleted or taken to another storage solution
  • FxOS/Desktop calendar app could use cloud storage and sync data online/offline
  • a simple game like minesweeper which could save state in cloud storage, where you could move game play from desktop to phone
  • a web photo editor can store edits to a photo in cloud storage to edit on another computer, this data is stored in your personal fxa storage locker, not in a third party server where you have full control.

Some consumers

Timeframe

  • Q4 2014: Exploration + proof of concept
  • Q1 2015:
    • Server API specs are ready;
    • First version / MVP, with a demo app using it.
  • Q2 2015
    • Add validation to the mix
    • Change the form builder to use the CloudStorage backend
    • Handle permissions to share some data

Minimum Viable Product

  • Login with FxA;
  • Store / Get data over HTTP;
  • No validation;
  • Cache handling;

Areas to explore

  • Do the encryption on the client side and sync it wherever it makes sense (Drive, Dropbox, etc)
  • See if we can integrate with already existing projects (remote storage)
  • How do we want to deal with sharing ?
  • How should we handle synchro ?

Related services