Mozilla Services Documentation, Release
What Changed Why
Authentication is now performed using a
BrowserID-based tokenserver flow and
HAWK Access Authentication.
This supports authentication via Firefox Accounts and allows us to
iterate the details of that flow without changing the sync protocol.
The structure of the endpoint URL is no
longer specified, and should be considered
an implementation detail.
This was unnecessary coupling and clients do not need to
change/configure components of the endpoint URL. URL handling
must change already to support TokenServer-based authentication.
The datatypes and defaults of BSO fields are
more precisely specified.
This reflects current server behavior, and seems prudent to specify
more explicitly.
The BSO fields “parentid” and
“predecessorid” have been removed along
with any related query parameters.
These were deprecated in version 1.1 and are not in active use in
current versions of Firefox.
The ‘application/whoisi’ output format has
been removed.
This is not used in any current versions of Firefox.
The previously-undocumented
X-Weave-Quota-Remaining header has been
documented.
This actually is used so we better document it.
The X-Confirm-Delete header has been
removed.
This is sent unconditionally by current client code, and is
therefore useless. Existing client code can safely continue to send
it, and it will be ignored by the server.
The X-Weave-Alert header has grown
additional semantics related to service
end-of-life announcements.
This is already implemented in current Firefox so we better
document it.
GET /storage/collection no longer accepts
‘index_above’ or ‘index_below’
These are not in active use in current versions of Firefox, and
impose additional requirements on the server that may limit
operational flexibility.
DELETE /storage/collection no longer
accepts query parameters other than ‘ids’
These are not in active use in current versions of Firefox, are not
all implemented correctly in the current server, and impose
additional requirements on the server that may limit operational
flexibility.
POST /storage/collection now accepts
‘application/newlines’ input in addition to
‘application/json’.
This matches nicely with ‘application/newlines’ as supported
already in response bodies, and may enable more efficient request
streaming in future. Existing client code doesn’t need to change.
The offset parameter is now an opaque
server-generated value, and clients must not
create their own values for it.
The parameter is not in active use in current versions of Firefox,
and its existing semantics are difficult to implement efficiently on
the server. This change allows for more efficient pagination of
results in future client code.
The X-Last-Modified header has been added. This has slightly different semantics to the X-Weave-Timestamp
header and may be used by future clients for better conflict
management. Existing client code doesn’t need to change.
The X-If-Modified-Since header has been
added and can be used on all GET requests.
Existing client code doesn’t need to change, but will allow future
client code to avoid transmission of redundant data.
The X-If-Unmodified-Since header can be
used on some GET request.
Existing client code doesn’t need to change, but will allow future
client code to detect changes during paginated fetching of results.
The server may reject concurrent write
attempts with a 409 Conflict.
This will be visible to existing client code, but can be handled like
a 503 error. It lets the server provide much stronger consistency
guarantees that will improve overall robustness of the service.
Batch uploads are supported that cross
several POST requests.
This is a backwards-compatible API extension that allows clients
to ensure consistency of their uploaded items.
Various server-specific size limits can be
read from a new /info/configuration
endpoint.
This is a backwards-compatible API extension that allows clients
to ensure interoperability with configurable server behaviour.
2.2. Storage Service 47