24
edits
(Code updates and overall improvement) |
(Improve specifications) |
||
| Line 1: | Line 1: | ||
= Kinto Integration in Firefox = | = Kinto Integration in Firefox = | ||
[[http://www.kinto-storage.org Kinto]] is a simple JSON storage service. | [[http://www.kinto-storage.org Kinto]] is a simple JSON storage service that is used in Firefox for remote settings and the <code>storage.sync</code> API. | ||
= Key features = | = Key features = | ||
| Line 98: | Line 98: | ||
</pre> | </pre> | ||
== | == Servers == | ||
{|class="wikitable" | |||
! Server | |||
! API | |||
! Admin | |||
! Contact | |||
|- | |||
|Public development instance (flushed every day) with many plugins | |||
|https://kinto.dev.mozaws.net/v1/ | |||
|[https://kinto.dev.mozaws.net/v1/admin/ Admin UI] | |||
|[https://mail.mozilla.org/listinfo/kinto Kinto mailing-list] | |||
|- | |||
|Remote settings STAGE | |||
|https://kinto.stage.mozaws.net/v1/ (read-only) | |||
|[https://kinto-writer.stage.mozaws.net/v1/admin/ Admin UI] '''VPN only''' | |||
|OPS via Bugzilla | |||
|- | |||
|Remote settings PROD | |||
|https://firefox.settings.services.mozilla.com/v1/ (read-only) | |||
|[https://settings.prod.mozaws.net/v1/admin/ Admin UI] '''VPN only''' | |||
|OPS via Bugzilla | |||
|- | |||
|storage.sync | |||
|https://webextensions.settings.services.mozilla.com/v1/ | |||
|N/A | |||
|OPS via Bugzilla | |||
|} | |||
== How to add a new official dataset ? == | |||
The only persons allowed to create buckets/collections in stage/production is the OPs team, so you have to create a Bugzilla ticket and specify everything you need to be created. | The only persons allowed to create buckets/collections in stage/production is the OPs team, so you have to create a Bugzilla ticket and specify everything you need to be created. | ||
| Line 113: | Line 142: | ||
For use-cases where a lot of users write data (like storage.sync), the [https://kinto.readthedocs.io/en/latest/api/1.x/quotas.html quota plugin] may have to be configured. | For use-cases where a lot of users write data (like storage.sync), the [https://kinto.readthedocs.io/en/latest/api/1.x/quotas.html quota plugin] may have to be configured. | ||
| Line 123: | Line 151: | ||
== Blocklists == | == Blocklists == | ||
The goal is to replace the current system — based on a single XML file downloaded everyday — by several Kinto collections on the '''remote settings instance'''. | |||
{|class="wikitable" | |||
! List | |||
! Bucket | |||
! Collection | |||
|- | |||
|OneCRL | |||
|<code>blocklists</code> | |||
|<code>certificates</code> | |||
|- | |||
|Add-ons | |||
|<code>blocklists</code> | |||
|<code>addons</code> | |||
|- | |||
|Plugins | |||
|<code>blocklists</code> | |||
|<code>plugins</code> | |||
|- | |||
|Gfx | |||
|<code>blocklists</code> | |||
|<code>gfx</code> | |||
|- | |||
|HPKP | |||
|<code>pinnings</code> | |||
|<code>pings</code> | |||
|} | |||
See https://bugzilla.mozilla.org/show_bug.cgi?id=1197707 | See https://bugzilla.mozilla.org/show_bug.cgi?id=1197707 | ||
| Line 142: | Line 189: | ||
Using the same XPCOM notification callback, the new mechanism will [https://dxr.mozilla.org/mozilla-central/rev/fc15477ce628599519cb0055f52cc195d640dc94/toolkit/mozapps/extensions/nsBlocklistService.js#632-642 synchronize the local copy of each collection from the remote server]. | Using the same XPCOM notification callback, the new mechanism will [https://dxr.mozilla.org/mozilla-central/rev/fc15477ce628599519cb0055f52cc195d640dc94/toolkit/mozapps/extensions/nsBlocklistService.js#632-642 synchronize the local copy of each collection from the remote server]. | ||
* | If changes are available, the local copy of the data will be updated and content signature verified. | ||
* | |||
* | * '''phase 1: DONE''': Both mechanisms run in parallel but only the legacy one will be used. | ||
* '''phase 2: DONE''': The source of truth for blocklist is Kinto but produces the same XML as the legacy one. | |||
* '''phase 3''': Eventually, [https://bugzilla.mozilla.org/show_bug.cgi?id=1257565 blocking mechanism will rely on the data managed via JSON], and the old XML client will be decommissioned. | |||
== Fennec assets catalog == | == Fennec assets catalog == | ||
The goal is to remove the static assets (fonts, hyphenation dicts, etc.) from the distribution package and download them asynchronously using an online Kinto catalog. | The goal is to remove the static assets (fonts, hyphenation dicts, etc.) from the distribution package and download them asynchronously using an online Kinto catalog, on the '''remote settings instance'''. | ||
{|class="wikitable" | |||
! List | |||
! Bucket | |||
! Collection | |||
|- | |||
|Download catalog | |||
|<code>fennec</code> | |||
|<code>catalog</code> | |||
|} | |||
See https://bugzilla.mozilla.org/show_bug.cgi?id=1201059 | See https://bugzilla.mozilla.org/show_bug.cgi?id=1201059 | ||
== WebExtensions storage.sync == | |||
* Users are authenticated | |||
* Every users have their own bucket (using the ''default bucket plugin'') | |||
* The amount of data that users are allowed to store is limited | |||
* Data is encrypted using Firefox Accounts keys | |||
edits