CloudServices/Roadmaps/SimplePush-Server

From MozillaWiki
Jump to navigation Jump to search

SimplePush - Server

Overview

A server for the SimplePush Notification alert system. See https://wiki.mozilla.org/WebAPI/SimplePush for a brief introduction.

Project Contacts

  • Principal Point of Contact - Doug Turner dougt@mozilla
  • IRC - #push
  • Group Email - TBD

Goals

SimplePush is based off of Thialfi. This system manages version numbers for assigned channels. In short: A client checks to see if it's version matches what's on the push server. If so, do nothing, if not, go fetch from the app server.

This system provides a low cost, scalable, system to manage these version lookups.

Use Cases

How will this be used?

https://wiki.mozilla.org/WebAPI/SimplePush

http://www.michaelpiatek.com/papers/thialfi-sosp11.pdf

Requirements

  • List of requirements

Get Involved

Call to action for folks who want to help.

Please drop on to irc.mozilla.org #push, or email:dougt@mozilla.com

Design

Points of Contact

Engineer - JR Conlin jrconlin@mozilla

API Reference/Documentation

See API documentation

Platform Requirements

The system has been designed and tested for Linux using both Ubuntu Precise and AWS flavors.

Libraries Required

The system currently is based on Go. It is strongly recommended at this time to use the latest Go Tip source, or at the very least Go 1.1.

The mod_test module testing unit uses python 2.7 and requires VirtualEnv to be properly installed.

All other dependencies are brought in by the respective installers.

Code Repository

https://github.com/jrconlin/pushgo

Release Schedule

The Code Release schedule has not yet been finalized and is thus "ad hoc"

QA

Points of Contact

Engineer - Tony Chung tchung@mozilla.com

Test Framework

A simple module test framework is provided in the ./mod_test directory. This tests the active server by

  • connecting as a websocket,
  • issuing a "hello" as UAID "test",
  • registering a "test1" ChannelID,
  • Sending a PUT request to the returned endpoint URL
  • Monitoring the websocket for an update for the "test1" ChannelID
  • Unregistering the "test1" ChannelID
  • Tearing down the websocket connection

A module test approach was preferred since unit tests would require too much mock work to provide meaningful tests.

This framework should be extended to include negative tests.

Security and Privacy

Refer to https://wiki.mozilla.org/Services/Roadmaps/SimplePush-Server/SecurityReview

Points of Contact

Doug Turner <dougt@mozilla.com>

Questionnaire Answers

1.1 Goal of Feature

To provide an internet scale, easy to use, notification system.

2. Potential Threat Vectors and Mitigation Points

Review Status

Bugzilla Tracking # - https://bugzilla.mozilla.org/show_bug.cgi?id=831816

see https://wiki.mozilla.org/Security/Reviews

Issues and Resolutions

Operations

Points of Contact

Deployment Architecture

Bugzilla Tracking # -

Escalation Paths

Lifespan Support Plans

Logging and Metrics

Points of Contact

Tracking Element Definitions

Data Retention Plans

Dashboard URL

Customer Support

Points of Contact

Sumo Tags

Review Meeting