Remote Settings

Remote Settings is a Mozilla service that makes it easy to manage evergreen settings data in Firefox.

As of Firefox 68, Normandy uses Remote Settings to serve/update its recipes. This allows us to:

  • Unify the way we obtain fresh data from our services in Firefox

  • Get rid of the specific data channel of Normandy

  • Get rid of the specific content signature integration

  • Get rid of specific client code that fetches recipes from the server

  • Unify the way we track uptake telemetry, network errors

  • Speed up uptake

  • Benefit from Remote Settings push notifications (live update)

  • Reduce bandwidth using diff-based updates

Server to Server Integration

When a recipe is enabled, it is published and becomes visible on the Remote Settings server:

curl ${SERVER}/buckets/main/collections/normandy-recipes/records

When a recipe is disabled, its related record gets deleted.

Manual Synchronization

A command allows to synchronize the enabled recipes with the records on the Remote Settings server.

python manage.py sync_remote_settings

Use --dry-run to only print out the result of the synchronization.

Client side

The Normandy client integration was added in Firefox 66 (Bug 1506175), refined through Firefox 67 and 68 (Bug 1538248) and turned on by default in Firefox 68 (bug 1513854).