CloudServices/Roadmaps/SimplePush-Server
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 # -