Services/Sync/Protocol 2.0 changes: Difference between revisions

From MozillaWiki
< Services‎ | Sync
Jump to navigation Jump to search
 
(12 intermediate revisions by 3 users not shown)
Line 1: Line 1:
==Proposed changes to migrate to 2.0==
==Proposed changes to migrate to 2==
 
Change name of protocol, including URL prefix


browserid support
browserid support
* need to cache auth tokens to prevent external roundtrip on each req.
* token server and metadata tokens
 
* remove username from urls?
digestauth support


max individual request size
max individual request size
* right now we limit (not implemented in python!) wbo size, but not total size. Restrict post body size to 3M? Need to see what sort of body size is causing timeouts
* 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 parentid
Line 13: Line 14:
drop predecessorid
drop predecessorid


send integers rather than decimals - milliseconds
return milliseconds since epoch
* figure out how to get the timestamp into integer precision - either cut down to deciseconds or use last significant digits.
* figure out how to get the timestamp into integer precision for internal storage


405 for wrong method
405 for wrong method
* Cornice probably buys us this directly
* Cornice probably buys us this directly


304 not modified when X-Weave-Timestamp < current
304 not modified when X-If-Unmodified-Since < current
* Saves processing the request body
* Saves processing the request body
* Remove Weave name from all headers


drop whoisi as a return format
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
delete /storage takes multiple collections
* Will give us the ability to delete "everything except keys" without using a loop
* Will give us the ability to delete "everything except keys" without using a loop
generate better docs for how to implement backoff on client


sync sesssions with server-generated token - helps avoid races
sync sesssions with server-generated token - helps avoid races

Latest revision as of 18:39, 19 January 2012

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