CloudServices/Loop: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
(→‎APIs: Fix documentation for the /registration api)
(obsolete page)
 
(16 intermediate revisions by 7 users not shown)
Line 1: Line 1:
{{LastUpdated}}
{{blackboxwarning|
Firefox Hello (aka Loop) is being [https://support.mozilla.org/kb/hello-status shutdown from Firefox 49].<br />These pages serve as an archive and reference.
}}


{{Draft}}
<h1><i>Loop Project Checklist Page</i></h1>
==Overview==
*[http://people.mozilla.org/~sescalante/webRTC-allup/webRTC-allupGantt.html Draft Cross-functional Project Plan] Note: This plan is not a commitment to dates and is a work in progress.


=Overview=
* High level diagram:
[[File:Loop diagram.png]]


The loop project aims to provide a WebRTC application firefox users can use from within Firefox.
==Important Dates==
The server part handles registration of the clients, generation of temporary links and communication with the WebRTC infrastructure provider.
* <s>{{mok}} 2014-04-14 :: Review MVP User Stories</s>
* <s>{{mok}} 2014-04-25 :: Definition of user flows, architecture & API confirmed for how authentication will work
* Milestones <i>TBD</i></s>
* <s>{{mok}} Week of May 19th: Work Week in Paris with TEF</s>
* {{mok}} June 3 - 5 : Work week with TokBox focused on Product roadmap and Marketing
* [https://www.google.com/calendar/embed?src=bW96aWxsYS5jb21fNTY0NW1uMWpnamQ5aG8zaXNodHRodnQybHNAZ3JvdXAuY2FsZW5kYXIuZ29vZ2xlLmNvbQ Hello Cross-Team Planning Calendar]


=Definitions=
==Project Contacts==
* Complete cross-functional [https://wiki.mozilla.org/Services/Loop/DRIs 'DRI List']
* IRC channel: #media
* Loop Development Mailing List: [https://mail.mozilla.org/listinfo/loop-services-dev loop-services-dev]


* Simple Push URL: an URL the server can ping in order to wake up the client.
==Goals==
* FxA assertion: a Firefox Account assertion (read token) containing a way to identify the user on the server
<i>How will you know things are working?</i>
* Provider tokens: In order to initiate a call between two parties, the provider issues tokens, session ids and client need to have an API key.
<i>What problems does this solve?</i>
==Use Cases==
[https://docs.google.com/a/mozilla.com/spreadsheet/ccc?key=0AlJmiyFngeSwdGJEVnItQ2NVbGx6NXdjbVBUYmIxSGc&usp=drive_web#gid=0 Loop MVP User Stories]


=APIs=
===MVP Loop===
<onlyinclude>
<bugzilla>
{
    "blocks": "971986",
    "resolution": "---",
    "include_fields": "id, priority, summary, status, assigned_to",
    "order": "bug_id"
}
</bugzilla>


A "*" means this URI requires authentication (Ideally you should pass a valid BrowserID assertion, current implementation does that with a session cookie).
==Engineering Meeting Notes==
* Archived notes can be found on the [https://wiki.mozilla.org/CloudServices/Loop/WeeklyStandup weekly standup wiki page]


'''POST /registration'''
==Requirements==
Content-Type: 'application/json'
* <i>List of requirements</i>
Body: simple_push_url
==Get Involved==
Notes: Associates a Simple Push Endpoint (URL) with the authenticated user.
<i>Call to action for folks who want to help.</i>
=Design=
==Points of Contact==
* [https://wiki.mozilla.org/Loop/Contacts Contacts for Hello, webRTC, and cross-team partners]


'''POST /call-url'''
== UX/UI ==
Create the call url a callee can click on. (Requires "remote_id" and "valid_duration" parameters).
Please see the Cloud Services [https://wiki.mozilla.org/CloudServices/UX#Loop UX wiki] for more information.


==API Reference/Documentation==
see https://wiki.mozilla.org/CloudServices/Loop/Server


'''GET  /calls/{token}'''
==Platform Requirements==
Get the app (that's the url in question, which displays an app) (No parameter required.)
<i>What are the things this needs (OS, language, databases, etc.)?


==Libraries Required==
<i>List of external project dependencies. (Stuff that's not pulled in via the installation script)</i>


'''POST /calls/{token}'''
==Code Repository==
Add an incoming call (does a simple push notif and gets room tokens), return participant tokens. (No parameter required.)
<i>Links to the published code bases</i>
==Release Schedule==
<i>Predicted code delivery dates</i>
=QA=
==Points of Contact==
* Loop QA Lead: Anthony Hughes (IRC: ahughes, Email: [mailto:ahughes@mozilla.com ahughes@mozilla.com])


==Test Framework==
* For now, see the following sites:
** Loop-Server: https://wiki.mozilla.org/QA/Services/LoopTestEnvironments
** Loop-Server: https://wiki.mozilla.org/QA/Services/LoopServerLoadTesting
** Loop-Server: https://wiki.mozilla.org/Services/Loop/Try_Loop
** Loop QA (Client and Server, Desktop and Mobile): https://wiki.mozilla.org/Loop/QA
** Loop-Client Test Plan: https://docs.google.com/a/mozilla.com/document/d/1xYZijHnJ1JeJhONm2AYvxSnD2tWztC16WGFyD5U_d6g


'''GET  /calls/'''
=Security and Privacy=
Fill out the security & privacy bug template: https://bugzilla.mozilla.org/form.moz-project-review
(https://wiki.mozilla.org/Websites/Kick-Off_Form)


List incoming calls for the authenticated user. (No parameter required.)
For security reviews, there's:
https://wiki.mozilla.org/Security/ReviewProcess


=User Flow=
==Points of Contact==
==Questionnaire Answers==
===1.1 Goal of Feature ===
===2. Potential Threat Vectors and Mitigation Points===
==Review Status==
''Bugzilla Tracking #'' -
see https://wiki.mozilla.org/Security/Reviews
==Issues and Resolutions==


Let's say Bob wants to be called by Alice.
=Legal=
The workflow is as follows:
<!-- Please note. Do not add sensitive elements to this public page. Any project that involves Personal Identifying Information MUST contact legal. Be smart, don't get us sued. -->
==Points of Contact==


  1. Bob's client registers with SimplePush, he gets a simple push url back and listens to the WebSocket connection;
=Operations=
  2. Bob's client registers with the loop server
<!-- Get Operations involved as soon as it is feasible. They'll need to set up staging and production machines and can help suggest methods for project deployment, monitoring and tracking that will keep you from being woken up at 3AM. -->
  3. Bob asks the server to generate a call url for him;
  4. Bob gives this URL to Alice;
  5. Alice clicks on the link, server validates the URL and displays a WebApp with a message "do you want to call Bob"?
  6. Alice decides to call Bob, server validates the URL
  7. Server gets provider tokens; Server stores the callee token and session id in database;
  8. Server pings the Simple Push Server to wake up Bob's client;
  9. Server returns caller token, session id and API Key to Alice's client
  10. Bob client wakes up, go on the server to look at the list of incoming calls;
  11. Server returns the list of calls (containing provider information) to Bob's client.
  12. Connection can be done between Alice and Bob!


[[File:Loop-server-flow.png]]
==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==
==Documentation Internationalization==

Latest revision as of 15:51, 11 October 2016

Warning

Firefox Hello (aka Loop) is being shutdown from Firefox 49.
These pages serve as an archive and reference.

Warning

Loop Project Checklist Page

Overview

  • High level diagram:

Loop diagram.png

Important Dates

  • [ON TRACK] 2014-04-14 :: Review MVP User Stories
  • [ON TRACK] 2014-04-25 :: Definition of user flows, architecture & API confirmed for how authentication will work
  • Milestones TBD
  • [ON TRACK] Week of May 19th: Work Week in Paris with TEF
  • [ON TRACK] June 3 - 5 : Work week with TokBox focused on Product roadmap and Marketing
  • Hello Cross-Team Planning Calendar

Project Contacts

Goals

How will you know things are working? What problems does this solve?

Use Cases

Loop MVP User Stories

MVP Loop

Full Query
ID Priority Summary Status Assigned to
1078286 -- Lenovo X1 carbon 34xx default camera driver not working with WebRTC video REOPENED

1 Total; 1 Open (100%); 0 Resolved (0%); 0 Verified (0%);


Engineering Meeting Notes

Requirements

  • List of requirements

Get Involved

Call to action for folks who want to help.

Design

Points of Contact

UX/UI

Please see the Cloud Services UX wiki for more information.

API Reference/Documentation

see https://wiki.mozilla.org/CloudServices/Loop/Server

Platform Requirements

What are the things this needs (OS, language, databases, etc.)?

Libraries Required

List of external project dependencies. (Stuff that's not pulled in via the installation script)

Code Repository

Links to the published code bases

Release Schedule

Predicted code delivery dates

QA

Points of Contact

Test Framework

Security and Privacy

Fill out the security & privacy bug template: https://bugzilla.mozilla.org/form.moz-project-review (https://wiki.mozilla.org/Websites/Kick-Off_Form)

For security reviews, there's: https://wiki.mozilla.org/Security/ReviewProcess

Points of Contact

Questionnaire Answers

1.1 Goal of Feature

2. Potential Threat Vectors and Mitigation Points

Review Status

Bugzilla Tracking # - see https://wiki.mozilla.org/Security/Reviews

Issues and Resolutions

Legal

Points of Contact

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

Documentation Internationalization