User:Mconnor/Past/Notifications: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
Line 20: Line 20:


* Implement a server (using XMPP or similar) that can track clients and send messages meant for that user
* Implement a server (using XMPP or similar) that can track clients and send messages meant for that user
* Authentication will share credentials with existing Mozilla Services LDAP.
* Integrate this server software with existing Mozilla Services authentication store
* Offline messaging must be supported for cases where clients are not online
* Implement reliable offline messaging support
* Architecture must be capable of supporting iPhone push notifications as an output
* Create an interface capable of interacting with iOS push notification systems
* Service must be high-availability and scalable, or have a plan for how that can be achieved
* Build all pieces to be horizontally scalable to ensure high performance and availability

Revision as of 21:54, 1 December 2010

Overview

The Notifications project is intended to enable direct communication between websites and users via the browser, in as close to real time as possible, without requiring users to leave pages open.

One of the core principles of the original Weave project was to enable services like this in a privacy-first context. To that end, we will look to build this on top of strong crypto, so that messages are not readable in transit, even through the server.

Client

Client integration with Firefox (Desktop and Mobile) has the following initial requirements:

  • Create a content-exposed API for granting sites permission to notify users. This will return the information necessary to securely pass messages to the server.
  • Implement generation and syncing of keys to multiple devices (pub/priv? AES key per site?)
  • Integration of an XMPP (or similar) client with Firefox
  • Ensure that the XMPP client understands how to set "away" so that notifications are broadcast intelligently
  • Implement UI for displaying notifications received and decrypted

Server

Building a server for this project has the following initial requirements:

  • Implement a server (using XMPP or similar) that can track clients and send messages meant for that user
  • Integrate this server software with existing Mozilla Services authentication store
  • Implement reliable offline messaging support
  • Create an interface capable of interacting with iOS push notification systems
  • Build all pieces to be horizontally scalable to ensure high performance and availability