canmove, Confirmed users
1,537
edits
Line 44: | Line 44: | ||
'''NOTE: All Location data mentioned in this section may pertain to the user's location data (retrieved by another function), or to any arbitrary location data''' | '''NOTE: All Location data mentioned in this section may pertain to the user's location data (retrieved by another function), or to any arbitrary location data''' | ||
===Page Holding Location Request=== | |||
A web page requests help from our API to convert a location to a civic address. This request is sent to our Geolocation API, which brokers communication with a third party geocoder and then returns the resulting civic address to this page. | |||
'''Stored Data:''' | |||
None relevant. | |||
'''Communication with Geolocation API:''' | |||
{| class="wikitable" | |||
|- | |||
! Direction | |||
! Message | |||
! Data | |||
! Notes | |||
|- | |||
| ''In:'' | |||
| (callback function name) | |||
| Location Data | |||
| | |||
|- | |||
| ''Out:'' | |||
| (request for location -- function name) | |||
| types of data sent to Geolocation API with the message | |||
| | |||
|} | |||
===Mozilla Geolocation API=== | |||
This is a browser component in privileged code that brokers communication between the page requesting the location information and the third party location services. This component begins to handle the request by asking the user for permission to use geolocation. | |||
* Not sure if we should be asking for permission if website is not requesting the user's location (ie. just converting an arbitrary location into a civic address) | |||
* | |||
''Sid: Yes, we should ask if the user has not beem prompted for that site. Do we allow third party content (iframes on the page, for instance) to invoke this API?'' | |||
''TODO: verify that we ask permission if the user has not currently authorized other geolocation activity on the page.''' | |||
If permission is given, this request is processed, and the location's lat/long is then sent to the platform's reverse geocoding API (if available). If not, the request is not performed, and the interaction stops here. | |||
''' | '''Stored Data:''' | ||
{| class="wikitable" | |||
|- | |||
! What | |||
! Where | |||
|- | |||
| location data | |||
| (where stored) | |||
|- | |||
| civic addresses | |||
| (where stored) | |||
|} | |||
''TODO: describe "location data" more technically" and identify where the data is stored for entries in the above table.''' | |||
''Note:'' The civic addresses stored in this component are those retrieved from the third party geocoding API. The location data stored in this component are provided by the page holding location request and may or may not have been obtained through the other geolocation API. | |||
'''Communication with page requesting location data:''' | |||
(See "Page Holding Location Request" component for communications with that component.) | |||
'''Communication with 3rd Party Geocoding API:''' | |||
{| class="wikitable" | |||
|- | |||
! Direction | |||
! Message | |||
! Data | |||
! Notes | |||
|- | |||
| ''In:'' | |||
| apiEndpoint return | |||
| specific types of data received from Geocoding API with this API call | |||
| | |||
|- | |||
| ''Out:'' | |||
| apiEndpointCall | |||
| specific types of data sent to Geocoding API with this API call | |||
| | |||
|} | |||
''TODO: document the API here -- what are the third party request API call names? What data (specifically) do we send them and what do they return?''' | |||
===Platform Reverse Geocoding API (3rd-Party)=== | |||
On request, the 3rd party reverse geocoding API reverse geocodes lat/long into a civic address and passes it back to the Mozilla Geolocation API. | |||
''NOTE:'' 3rd party API should be from a trusted source to ensure that IF we are actually using the user's location data, then it is not compromised | |||
'''Stored Data:''' | |||
Unknown -- this third party is out of Mozilla's control. Potentially they could store any data we send them via the Mozilla Geolocation API. | |||
'''Communication with Mozilla Geolocation API:''' | |||
(See "Mozilla Geolocation API" component for communications with this component.) | |||
= User Data Risk Minimization = | = User Data Risk Minimization = |