CloudServices/Sync: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
m (clean up hyperlinks in Report Bugs)
(23 intermediate revisions by 9 users not shown)
Line 1: Line 1:
__NOTOC__
=Summary=
==Summary==
Welcome to the developer home of Firefox Sync. For end-user (non-technical) information, please see [https://www.mozilla.org/firefox/sync/ the official Sync web site].
Welcome to the developer home of Firefox Sync. For end-user (non-technical) information, please see [https://www.mozilla.com/en-US/mobile/sync/ the official Sync web site].


Firefox Sync is a set of software components and specifications that synchronize data between multiple Mozilla product instances. The software is open source and the specifications are all public. This means that others are free to implement components or run the software on their own.
Firefox Sync is a set of software components and specifications that synchronize data between multiple Mozilla product instances. The software is open source and the specifications are all public. This means that others are free to implement components or run the software on their own.


===Products and Services===
==User Support==
 
We have some pages we use to help our "advanced" users get us diagnostic information
 
* [[CloudServices/Sync/File_a_desktop_bug|For desktop users.]]
* [[CloudServices/Sync/File_an_iOS_bug|For iOS users.]]
* [[CloudServices/Sync/File_an_Android_bug|For Android users.]]
 
We also have some [[CloudServices/Sync/Canned_bug_responses|canned responses]] for bugzilla bugs.
 
==Products and Services==
The Sync family consists of the following products and services:
The Sync family consists of the following products and services:


Client integrated in the Firefox and Firefox Mobile browsers
Sync client : integrated in the Firefox and Firefox Mobile browsers, this client coordinates the syncing of all selected syncable data via their engines.
; [[Services/Sync/Server|Server]] : Server component used for cross-client communication
; [[Services/Sync/Server|Server]] : Server component used for cross-client communication – this is where client-side encrypted data is stored for all clients to synchronize with.
; [https://www.mozilla.com/en-US/mobile/home/ Firefox Home] : An iOS application (iPhone, iPad) that allows you to view Sync data from these devices
; Server Instance : A Sync server operated by Mozilla available for use by anybody in the world, free of charge. This is where Firefox sends data by default, unless you specify a different server.
; Server Instance : A Sync server operated by Mozilla available for use by anybody in the world, free of charge. This is where Firefox sends data by default, unless you specify a different server.
; Send / Close Tabs : the Sync key is used to secure a Sent Tab (to encrypt the Send Tab key), so we generally include Sending and Closing remote tabs as part of Sync.


===Specifications===
 
Previous services:
 
; <s>[https://blog.mozilla.org/services/2012/08/31/retiring-firefox-home/ Firefox Home]</s> : <s>An iOS application (iPhone, iPad) that allows you to view Sync data from these devices</s>
 
 
==Specifications==
The [[Services/Sync/Specs|Specifications]] of Sync cover:
The [[Services/Sync/Specs|Specifications]] of Sync cover:


; HTTP API : Implemented by the Sync Server. Used by clients to exchange data
; HTTP API : Implemented by the Sync Server. Used by clients to exchange data.
; Cryptography Model : How encryption is used to securely store data in the Sync Server (the Sync Server can't even read important data)
; Cryptography Model : How encryption is used to securely store data in the Sync Server (the Sync Server can't even read user data).
; Data Storage Formats : How existing clients (like Firefox) format synchronized data
; Data Storage Formats : How existing clients (like Firefox) format synchronized data.
; Client APIs : These include the JavaScript API available in Firefox
; Client APIs : These include the JavaScript API available in Firefox.


==Get Involved==
=Get Involved=
===IRC===
==Matrix==
Shout out in the '''#sync''' channel on [[IRC|Mozilla's IRC]] server (''irc.mozilla.org'').
Shout out in the [https://matrix.to/#/#sync:mozilla.org #sync:mozilla.org] room on [[Matrix|Mozilla's Matrix]] server.


Most team members are geographically located in North America and Australia. If you don't hear a response, try asking again in a few hours.
Most team members are geographically located in North America and Australia. If you don't hear a response, try asking again in a few hours.


===Mailing List===
==Mailing List==
See [[Services/services-dev|services-dev]] for email contact info.
See [[Services/services-dev|services-dev]] for email contact info.


===Report Bugs===
==Report Bugs==
Sync bugs should be reported in the [https://bugzilla.mozilla.org/describecomponents.cgi?product=Cloud%20Services Cloud Services Component] of Bugzilla.
Sync bugs should be reported in Bugzilla, depending on the nature of the bug.
 
For general issues, each platform has its own component:
* [https://bugzilla.mozilla.org/enter_bug.cgi?product=Firefox&component=Sync File here for Desktop]
* [https://bugzilla.mozilla.org/enter_bug.cgi?product=Fenix&component=Accounts%20and%20Sync File here for Android]
* [https://bugzilla.mozilla.org/enter_bug.cgi?product=Firefox%20for%20iOS&component=Sync File here for iOS]
 
If you know that a more specific component is more appropriate, such as individual engines or the Sync-related UIs in Firefox:
* [https://bugzilla.mozilla.org/enter_bug.cgi?product=Application%20Services File here for shared Sync components in the Application Services library]
* [https://bugzilla.mozilla.org/enter_bug.cgi?product=Firefox&component=Firefox%20Accounts File here for Sync-/Account-related UIs in Firefox desktop]


===Source Code and Development===
 
==Source Code and Development==
Source code for all products and services is available and open source. Public contributions and feedback for product direction is encouraged and very welcome.
Source code for all products and services is available and open source. Public contributions and feedback for product direction is encouraged and very welcome.


General development information is available at [[Services/Sync/Getting_Started|Getting Started]]. Production-specific information can be found at the linked product page from the list of products above. There is also a trove of documentation at http://docs.services.mozilla.com/.
General development information is available at [[Services/Sync/Getting_Started|Getting Started]]. Production-specific information can be found at the linked product page from the list of products above. There is also a trove of documentation at [https://mozilla-services.readthedocs.io/ Mozilla Services Documentation].


==Team Docs==
=Team Docs=
 
==FAQ==
===FAQ===
* [https://wiki.mozilla.org/CloudServices/Sync/FAQ Low level sync FAQ]
* [https://wiki.mozilla.org/CloudServices/Sync/FAQ Low level sync FAQ]


* [https://vreplay.mozilla.com/replay/showRecordingExternal.html?key=t0hTbNyvO5uhObi Sync internals video] | [https://docs.google.com/presentation/d/1zDjuboT81BgKmixFqQkxyKIEy2DWUt6YTe_Gpara1Bg/edit#slide=id.p slides]
* [https://vreplay.mozilla.com/replay/showRecordingExternal.html?key=t0hTbNyvO5uhObi Sync internals video] | [https://docs.google.com/presentation/d/1zDjuboT81BgKmixFqQkxyKIEy2DWUt6YTe_Gpara1Bg/edit#slide=id.p slides]


===Working Docs===
==Telemetry==
* [[CloudServices/Sync/ReDash#Table_Described|Definitions of data available in Re:Dash under main Sync ping]]
* [[Firefox Sync extended logging]] for fetching successful sync event logfiles
 
==Working Docs==
* [https://wiki.mozilla.org/CloudServices/Sync/OKRs_2016Q3 Themes and Initiative OKRs]
* [https://wiki.mozilla.org/CloudServices/Sync/OKRs_2016Q3 Themes and Initiative OKRs]


Line 52: Line 80:
* [https://wiki.mozilla.org/CloudServices/Sync/Sprint_1 Current Work - Sprint 1]
* [https://wiki.mozilla.org/CloudServices/Sync/Sprint_1 Current Work - Sprint 1]


====Bug Queries====
==Bug Queries==
* [https://wiki.mozilla.org/Bugmasters/Process/Triage Bug process for sprints]
* [https://wiki.mozilla.org/Bugmasters/Process/Triage Bug process for sprints]
* [https://bugzilla.mozilla.org/buglist.cgi?cmdtype=dorem&remaction=run&namedcmd=Sync%20Backlog&sharer_id=458547&list_id=13152406 Backlog (all priorities)]
* [https://bugzilla.mozilla.org/buglist.cgi?cmdtype=dorem&remaction=run&namedcmd=Sync%20Backlog&sharer_id=458547&list_id=13152406 Backlog (all priorities)]
* [https://bugzilla.mozilla.org/buglist.cgi?cmdtype=dorem&remaction=run&namedcmd=Sync%20Triage&sharer_id=458547&list_id=13152407 Triage (unprioritized)]
* [https://bugzilla.mozilla.org/buglist.cgi?cmdtype=dorem&remaction=run&namedcmd=Sync%20Triage&sharer_id=458547&list_id=13152407 Triage (unprioritized)]
* [https://bugzilla.mozilla.org/buglist.cgi?cmdtype=dorem&remaction=run&namedcmd=Sync%20Team%20P1&sharer_id=465825&list_id=13152451 P1s Desktop]
* [https://wiki.mozilla.org/CloudServices/Sync/Status View Bugs by Feature]


* [https://bugzilla.mozilla.org/buglist.cgi?cmdtype=runnamed&namedcmd=Sync%20Team%20P1&list_id=13152408 P1s Desktop]
==iOS Triage==
 
====iOS Triage====
* [https://docs.google.com/document/d/10Ytw1kZjBHhlTkQGTW8usJ5CJLhko74dgFND9egjkI0/edit iOS issues doc]
* [https://docs.google.com/document/d/10Ytw1kZjBHhlTkQGTW8usJ5CJLhko74dgFND9egjkI0/edit iOS issues doc]


* [https://docs.google.com/document/d/189f1pCcc8nKZGl-y1KhD0JoXgct8BdjQEiYvyTunejs/edit Bi-Directional bookmarks reference doc]
* [https://docs.google.com/document/d/189f1pCcc8nKZGl-y1KhD0JoXgct8BdjQEiYvyTunejs/edit Bi-Directional bookmarks reference doc]


====Cross Team Projects====
==Cross Team Projects==
* Device Manager
===Device Manager===
** [https://accounts.firefox.com/signin?forceDeviceList=1 | FxA device list WIP]
* Problem
** Currently sync uses the 'clients' sync data collection as a list of active devices.  This list has no state and difficult to 'delete' an device off list.  Most client display a device if it's been active within the last two weeks.  This design creates a number of bugs visible to the user.
* Plan
** All devices, Desktop, Android, iOS register with FxA
** There should be events that removed devices from this list, such as uninstall, reinstall, or devices with the same name conflicts.
** FxA device manager endpoint provides real-time list of active devices to sync clients to display.
* [https://accounts.firefox.com/signin?forceDeviceList=1 FxA device manager *WIP*]
* [https://waffle.io/mozilla/fxa-features/cards/577dddd795b2701e003d7e1c Github Issue in Waffle board]
* [https://docs.google.com/document/d/1VrysJ4LFPZ20IeMMmRts5l_2GUHhm890rlQhD012U_g/edit# Feature Document]
 
* Current Status
** Pending device registration on iOS and fixing issues - [https://bugzilla.mozilla.org/show_bug.cgi?id=1250783 bug 1250783 - active WIP]
** Pending fixes to settings display
** Pending work to improve the accuracy of the device list controlled by user events.
** Pending management UI of devices.
 
===Send Tab===
* [https://docs.google.com/document/d/17OkChAAlavNnYKzX-z-ihKdg3CWk26R0mgxhNhDz7o8/edit PRD]
* Design
** [https://github.com/mozilla/fxa-auth-server/issues/1316 Architecture and discussion]
** [https://github.com/mozilla/fxa-auth-server/issues/1357 Implementation]
* [https://wiki.mozilla.org/CloudServices/Sync/Status Send Tab Tasks]


* Send Tab
Plan
* [https://wiki.mozilla.org/CloudServices/Sync/Send_Tab Send Tab Docs]
* Aug 9 - push send tab between desktop
* Next - send tab to fennec with push
** Android must have device registration
* Next2 - sent tab to iOS with push
** iOS must have device registration


* Atomic IO
===Atomic IO===
** [https://wiki.mozilla.org/CloudServices/Sync/Atomic_IO Atomic IO Docs]
* [https://wiki.mozilla.org/CloudServices/Sync/Atomic_IO Atomic IO]


==Other Info==
=Other Info=


If you are coming from Xmarks, see our [[/Xmarks|Xmarks quick reference]].
If you are coming from Xmarks, see our [[Services/Sync/Xmarks|Xmarks quick reference]].

Revision as of 19:36, 22 April 2026

Summary

Welcome to the developer home of Firefox Sync. For end-user (non-technical) information, please see the official Sync web site.

Firefox Sync is a set of software components and specifications that synchronize data between multiple Mozilla product instances. The software is open source and the specifications are all public. This means that others are free to implement components or run the software on their own.

User Support

We have some pages we use to help our "advanced" users get us diagnostic information

We also have some canned responses for bugzilla bugs.

Products and Services

The Sync family consists of the following products and services:

Sync client
integrated in the Firefox and Firefox Mobile browsers, this client coordinates the syncing of all selected syncable data via their engines.
Server
Server component used for cross-client communication – this is where client-side encrypted data is stored for all clients to synchronize with.
Server Instance
A Sync server operated by Mozilla available for use by anybody in the world, free of charge. This is where Firefox sends data by default, unless you specify a different server.
Send / Close Tabs
the Sync key is used to secure a Sent Tab (to encrypt the Send Tab key), so we generally include Sending and Closing remote tabs as part of Sync.


Previous services:

Firefox Home
An iOS application (iPhone, iPad) that allows you to view Sync data from these devices


Specifications

The Specifications of Sync cover:

HTTP API
Implemented by the Sync Server. Used by clients to exchange data.
Cryptography Model
How encryption is used to securely store data in the Sync Server (the Sync Server can't even read user data).
Data Storage Formats
How existing clients (like Firefox) format synchronized data.
Client APIs
These include the JavaScript API available in Firefox.

Get Involved

Matrix

Shout out in the #sync:mozilla.org room on Mozilla's Matrix server.

Most team members are geographically located in North America and Australia. If you don't hear a response, try asking again in a few hours.

Mailing List

See services-dev for email contact info.

Report Bugs

Sync bugs should be reported in Bugzilla, depending on the nature of the bug.

For general issues, each platform has its own component:

If you know that a more specific component is more appropriate, such as individual engines or the Sync-related UIs in Firefox:


Source Code and Development

Source code for all products and services is available and open source. Public contributions and feedback for product direction is encouraged and very welcome.

General development information is available at Getting Started. Production-specific information can be found at the linked product page from the list of products above. There is also a trove of documentation at Mozilla Services Documentation.

Team Docs

FAQ

Telemetry

Working Docs

Bug Queries

iOS Triage

Cross Team Projects

Device Manager

  • Problem
    • Currently sync uses the 'clients' sync data collection as a list of active devices. This list has no state and difficult to 'delete' an device off list. Most client display a device if it's been active within the last two weeks. This design creates a number of bugs visible to the user.
  • Plan
    • All devices, Desktop, Android, iOS register with FxA
    • There should be events that removed devices from this list, such as uninstall, reinstall, or devices with the same name conflicts.
    • FxA device manager endpoint provides real-time list of active devices to sync clients to display.
  • FxA device manager *WIP*
  • Github Issue in Waffle board
  • Feature Document
  • Current Status
    • Pending device registration on iOS and fixing issues - bug 1250783 - active WIP
    • Pending fixes to settings display
    • Pending work to improve the accuracy of the device list controlled by user events.
    • Pending management UI of devices.

Send Tab

Plan

  • Aug 9 - push send tab between desktop
  • Next - send tab to fennec with push
    • Android must have device registration
  • Next2 - sent tab to iOS with push
    • iOS must have device registration

Atomic IO

Other Info

If you are coming from Xmarks, see our Xmarks quick reference.