Privacy/Reviews/PhonebookAPI: Difference between revisions

 
(15 intermediate revisions by 4 users not shown)
Line 8: Line 8:
|'''Product Champions:''' || Aakash Desai, Jishnu Menon, James Socol
|'''Product Champions:''' || Aakash Desai, Jishnu Menon, James Socol
|-
|-
|'''Privacy Champions:''' || (the privacy Friend you're working with)
|'''Privacy Champions:''' || David Dahl
|-
|-
|'''Security Contact:''' || Curtis Koenig
|'''Security Contact:''' || Curtis Koenig
|-
|-
|'''Document State:''' || <section begin='status'/>{{new|template created}}<section end='status'/>
|'''Document State:''' || <section begin='status'/>{{ok|Responses and Verification needed}}<section end='status'/>
|}
|}


Line 38: Line 38:


'''Design Documents''':  
'''Design Documents''':  
* {{bug|752997|Tracker Bug}}
* [http://www.flickr.com/photos/aakashhdesai/6894222294 Flow Diagram]
* [http://www.flickr.com/photos/aakashhdesai/6894222294 Flow Diagram]
* [https://github.com/mozilla/mozillians/blob/master/apps/users/api.py api.py]
* [https://github.com/mozilla/mozillians/blob/master/apps/users/api.py api.py]
Line 44: Line 45:
== Components  ==
== Components  ==


* Services Tab: Paid staff account will have a "Services" tab which offers an API Key Generator and instructions on how to use the API.
** API Key Generator: The API Key generator is paired with the Phonebook user's log-in e-mail address and allows them access to the API. Within the "Services" tab, they'll have a reset button which gives them a newly generated API key.
* TastyPie API: Offers Paid Staff to GET from the Mozillians' Phonebook API. Currently, we only allow users to get information for irc nickname and display name, but will also include e-mail address, groups and location (by country, state/province and/or city).
* TastyPie API: Offers Paid Staff to GET from the Mozillians' Phonebook API. Currently, we only allow users to get information for irc nickname and display name, but will also include e-mail address, groups and location (by country, state/province and/or city).




=== Component X  ===
=== Phonebook API ===
 
This component does A, B and C and interacts with component Y to do D.
 
The tables below simply summarize the data encountered by this component.


'''Stored Data:'''  
'''Stored Data:'''  
Line 62: Line 57:
! Where
! Where
|-
|-
| data type
| email
| where stored
| app database
|-
| display_name
| app database
|-
| ircname
| app database
|-
| website
| app database
|-
| groups
| app database
|-
| skills
| app database
|-
| country
| app database
|-
| region
| app database
|-
| city
| app database
|}
|}


'''Communication with Component Y'''  
'''Communication with Community Site/Tool (ex. Exact Target)'''  
 
* Vouched Mozillian Authorization
 
{| class="wikitable"
|-
! Direction
! Message
! Data
! Notes
|-
| ''In:''
| N/A
| query including e-mail address
|
|-
| ''Out:''
| N/A
| is_vouched status of e-mail address
|
|}
 
* Sharing of Mozillian E-mails


{| class="wikitable"
{| class="wikitable"
Line 77: Line 118:
| ''In:''  
| ''In:''  
| message 1
| message 1
| types of data received from component Y with the message
| query including specified group(s), skills or country/region/city
|  
|  
|-
|-
| ''Out:''  
| ''Out:''  
| message 2
| message 2
| types of data sent to component Y with the message
| Blob of e-mail addresses corresponding to message
|
|}
 
* Sharing Mozillian profile data
 
{| class="wikitable"
|-
! Direction
! Message
! Data
! Notes
|-
| ''In:''
| message 1
| query including specified e-mail address
|
|-
| ''Out:''
| message 2
| Blob of Mozillian profile data: display_name, ircname, country/region/city, groups, skills, website
|  
|  
|}
|}
Line 97: Line 158:


====Principle: Transparency / No Surprises====
====Principle: Transparency / No Surprises====
(How the feature addresses this)
Contributors give explicit consent by opting-in for profile sharing when they register for the service.  They need to be able to see how the data is being used.


''Recommendations'': (what can be improved)
''Recommendations'': It would also be helpful to show the user how their data is being shared/used via the api -- perhaps by sending them a message when a new site access the API (including a list of sites accessing their data through the api).


{{ResolutionBox|{{new|Provide way for users to see which sites are accessing their data through the api and perhaps also what is being accessed}}}}


====Principle: Real Choice====
====Principle: Real Choice====


''Recommendations'':
Users have an opportunity to opt-in at registration, but should have control if they change their minds later.


''Recommendations'': Expose an option in the user's "edit profile" screen to allow them control over whether their data is exposed via the API. 
{{ResolutionBox|{{new|Expose setting/checkbox to enable/disable sharing via this api}}}}


====Principle: Sensible Defaults====
====Principle: Sensible Defaults====
* the sensible default action will be no sharing of profile data, which is good.


''Recommendations'':
''Recommendations'':


* none


====Principle: Limited Data====
====Principle: Limited Data====
* As all users must be logged in and vouched by other Mozillians to view profile data that is more than beyond name.  This limits web/data scrapers from collecting these profiles.


''Recommendations'':
''Recommendations'':
* none


= Follow-up Tasks and tracking =
= Follow-up Tasks and tracking =
canmove, Confirmed users, Bureaucrats and Sysops emeriti
2,776

edits