Storage APIs in the Ubuntu SDK

Registered by Pat McGowan on 2014-03-07

Review the various preferred APIs for local and remote data storage

Blueprint information

Status:
Not started
Approver:
Zoltan Balogh
Priority:
Undefined
Drafter:
Pat McGowan
Direction:
Needs approval
Assignee:
Christian Dywan
Definition:
Discussion
Series goal:
None
Implementation:
Unknown
Milestone target:
None

Whiteboard

Review the current status and use cases for each storage API
- QtQuick Local Storage
- U1DB
- App settings
- state saving

Topics
- server side implementation
- operator policies
- background syncing and app lifecycle
- should state saving behave differently on the desktop

== U1DB ==
 Sorting and transformation requirements

Sorting API discussion possibly generic QML solution:
https://docs.google.com/a/canonical.com/document/d/1B0yHmPr5yOHri3zZLtRba7eYhTR_K374zZAdED7xgy8/edit

Synching support
 * requires an approach for the test suite
 * presumed short bursts of sync no problem with app lifecycle
 * API design needs to be based on some use cases
 * app nees to be actively involved in the sync for conflict resolution
 * API for specifying revision of a document

== Settings API ==
Need to work on unit tests and mimic use by the app

== State saver ==
New functionality being provided
Update: StateSaver will not have the ability to save a property state permanently, Settings should be used for that purpose. However, there are plans to save an object by saving all its properties.

(?)

Work Items

Work items:
[mhall119] Collect feedback from developers using U1DB for Christian: TODO
[abreu-alexandre] javascript bindings for u1db: INPROGRESS
[kalikiana] Hook u1db-qt implementation to python test suite: TODO
[kalikiana] Create experimental components package for pre-release API testing: TODO
[kylen] Add an overview guide for storage apis : TODO

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.