Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Pull request Compare This branch is 1036 commits behind LockerProject:master.

Fetching latest commit…

Cannot retrieve the latest commit at this time

..
Failed to load latest commit information.
ServiceTypeDefinitions
README.md
index.html
notes.txt
query.jison

README.md

Developer Quickstart

  • Every runnable thing within the locker is it's own web service (written in node, python, and ruby to start)
  • There is a core web service that coordinates stuff and handles startup, scheduling, etc
  • The types of services are generally: connectors, collections, and apps
  • Any service once it's "installed" is assigned it's own local directory for storing anything
  • Connectors are probably the best way to add value fast to the platform, the more places we enable getting data from the better

Connectors

  • Fundamental goal: mirror/sync data from somewhere else
  • Store that data in JSON in as identical-to-the-source structure as possible
  • Structure the data in a simple archival way, take the long-view
  • Serve it back up via as simple of a RESTful API as possible, just make it accessible in bulk upon request
  • Be OK with being turned off anytime (graceful start)
  • Identify your data to the locker via simple service types (below)
  • Generate event notifications when data changes

Collections

  • General common data-types, one Collection per type (places, contacts, links, messages, music, photos, etc)
  • Need to know how to speak service-types specific to the diverse set of connectors, understand the raw data formats
  • Embody the intelligence to merge and dedup from many sources, and handle local meta-data around each datum.
  • Register for event notifications to stay up to date efficiently
  • Many will consume-from / feed-to other Collections
  • Preserve and convey the context of where the data came from ("via")
  • Be able to cold start from scratch by "crawling" existing data as well as subsequent updating from pushed events

Apps

  • Can talk to Connectors or Collections, whatever data they need
  • For now, primary interface is just via web browser
  • Should contain all resources needed locally
  • Do something awesome for the person with their data :)

Service Types

A "service types" system, mimic mime types for collections/connectors, connectors list what they require and produce, apps can list what types they need to work

A connector advertises which type it produces (page/safari-bookmark), and that type has a spec of common attributes expected within the data for the first part (page), the second part should describe the native format from the source of the data (safari-bookmark)

place/facebook
place/foursquare
photo/flickr
contact/addressbook
page/safari-bookmark
page/safari-history
Something went wrong with that request. Please try again.