> GET /account/devices
>
> {
> "<device-uuid>": {"name": "Ryan's Laptop", "version", "A.B.X"},
> "<device-uuid>": {"name": "Ryan's Phone", "version", "A.B.Y"},
> }
My conception of this is similar, but more focused on capability rather than
description:
{
"uuid": {"name": "Laptop", "capabilities": {"org.mozilla.sync.1": [1, 2]}}
}
That is, a device would advertise the services and service versions it
supported. A big change like Sync 1.1 to Sync.next, run in parallel, would be a
major switch; a storage version change would be a version switch, and so on
down the line for data formats.
(If this is what you meant by "version", then great; I just mean "don't require
a reverse lookup table in each client".)
This is a generalization of what I sketched out for
<https://bugzilla.mozilla.org/show_bug.cgi?id=825731>.
There is some fuzziness here (and, I think, in your proposal too) around
precisely which client decides on which service and version to use, and how to
tell other clients that a switch has occurred (meta/global?), and when to
reupload data etc. -- lots of opportunity for race conditions -- but I think
it's tractable.
> 4) TreeSync enabled devices check their peers through the device
> management api, and delay upgrading to TreeSync until they are
> all at some minimal version that's capable of supporting it.
That's exactly what I'd envisioned for Bug 825731, at a storage format level.
Note that there's some complexity -- what if you turn off an old device and
never remove it from the set? do we wait forever? need UI here, etc. -- but the
principle makes sense, and the mainstream case is simple enough.
> More generally: if this really is the only other
> absolutely-must-have-before-flag-day feature, then let's get it nailed
> down ASAP.
Not necessarily the *only* (need to consult MVP; there might be more to device
management that we need to underpin sooner rather than later) but the ability
to handle future upgrades through version negotiation like this has certainly
been something I've been harping on about for ages :D
_______________________________________________
Sync-dev mailing list
[email protected]
https://mail.mozilla.org/listinfo/sync-dev