Services/Sync/Protocol 2.0 changes

From MozillaWiki
Jump to: navigation, search

Proposed changes to migrate to 2

Change name of protocol, including URL prefix

browserid support

  • token server and metadata tokens
  • remove username from urls?

max individual request size

  • right now we limit (not implemented in python!) wbo size, but not total size. Restrict post body size to 1M? Do this at Zeus level? What is the spec for return values. Overall post body size, including chunked overhead?

drop parentid

drop predecessorid

return milliseconds since epoch

  • figure out how to get the timestamp into integer precision for internal storage

405 for wrong method

  • Cornice probably buys us this directly

304 not modified when X-If-Unmodified-Since < current

  • Saves processing the request body
  • Remove Weave name from all headers

drop whoisi as a return format

generate better docs for how to implement backoff on client

Incorporate metlog logging

  • talk to atoll about what we need to reimplement, to match zeus logging

Proposed changes to migrate to 2.1

delete /storage takes multiple collections

  • Will give us the ability to delete "everything except keys" without using a loop

sync sesssions with server-generated token - helps avoid races

  • generated on write without auth token if none exists on server side
  • can't write if there's a token in place without it. Can't read? (may be inconsistent)
  • need a way to have client expire token and length after which it autoexpires
  • make it part of auth protocol

way to let the server know that there's a data problem

  • have a flag that says "this account reported corrupted" to handle HMAC mismatches, etc
  • Maybe in metaglobal?
  • is this a storage problem? or particular to sync