Page MenuHomePhabricator

[Request for Comment] Campaigns Geolocation API proposal
Open, Needs TriagePublic



  • The Campaigns team is building an on-wiki event registration tool.
  • Our MVP (target release October 2022) requirements include:
    • If in-person event, there should be space for the organizer to share address/location details.
    • Participants should be able to quickly see the in-person event location, so they can determine whether they can and/or want to attend.
  • Our engineers have aligned on Pelias as the best-available geolocation API provider to help us meet these requirements
    • Associated spike task: T305705
    • Security preview request: T309410


  • Our engineers have recommended that we set up a proxy to Pelias’ web service to avoid sending users’ personal data to a third party, and we would appreciate a review of this proposal from SRE to help us surface risks & have a clearer understanding of requirements.

Primary Contacts on Campaigns team


Event Timeline

I'm adding @Vgutierrez to the ticket as he is on clinic duty this week and he could route to the right person/team.

AIUI what we want to do is having MediaWiki make a request to an external service.

This is already possible as MediaWiki will use our url-downloader service that is the only proxy authorized to make requests outside of production.

I would see the necessity of creating a separate service only if:

  • We want to use geolocation services from more places than just MediaWiki
  • We want an api that is vendor-independent so that we only implement a vendor-independent interface in mediawiki

More importantly, it seems that pelias can be installed locally - which means that we have the option of a local installation for the future that would eliminate all the PII concerns - which are rather unclear to me anyways.

Fundamentally, I'd advise to just call the service from the MediaWiki API if the rate of requests we expect is not huge, or eventually to consider installing a local service to expose directly to our clients.