**Project Information **
* Name of tool/project: IP info (current working name)
* Project home page: [[ https://meta.wikimedia.org/wiki/IP_Editing:_Privacy_Enhancement_and_Abuse_Mitigation/IP_Info_feature | Page on meta ]]
* Name of team requesting review: #anti-harassment
* Primary contact: @Tchanders
* Target date for deployment: January - March 2021
* Link to code repository / patchset: TBChttps://github.com/wikimedia/mediawiki-extensions-IPInfo
**Description of the tool/project: **
A new extension for providing information about an IP address without (1) the need for the user to use an external service themselves and (2) exposing the IP address itself to the user. (Actually hiding the IP addresses is beyond the scope of this project.) This provides the user with information they could have retrieved from knowing the IP address. This information could be displayed in various ways (popup on hover/click, special page, etc.). Initially, this information would only be displayed on a select few pages (or as a beta feature to a select group of users).//Basic description//
Based on our investigation in T259726, the data our users are looking for is not accessible from freely licensed datasetsA new extension for providing information about an IP address without (1) the need for the user to use an external service themselves and (2) exposing the IP address itself to the user. Therefore, we will be look(Actually hiding to purchase a license to a proprietary dataset or datasets (or using one we've already purchased).he IP addresses is beyond the scope of this project.)
We plan on building an API endpoint T260603 that takes an edit id or log id and returns data about the IP addresses used for that action, if that action was performed by an anonymous userThis provides the user with information they could have retrieved from knowing the IP address. We will initially assume that our API endpoint needs to query the external service(s) each time a user asks for the data.This information could be displayed in various ways (popup on hover/click, We expect it to perform queries via a proxyspecial page, e.g. `$wmfLocalServices['urldownloader']`etc.).
How our API endpoint could get the data would depend on the terms of the licences with the external services,//Data//
Based on our investigation in T259726, the data our users are looking for is not accessible from freely licensed datasets alone. Ideally IPInfo would combine several datasets, but this depends on agreeing licences with different providers, and will only be considered in future iterations.
The first iteration of IPInfo will use only MaxMind's GeoIP2 library, which we already have licences for, and which are already available on our servers: T263263#6534392. so we are initially going to make minimal assumptions about what the licenses will allow.A PHP package providing an API for these databases is undergoing a security readiness review: T262963.
For third parties who do not have access to the proprietary datasets, For exampleIPInfo will use MaxMind's free GeoLite2 databases.
//API//
IPInfo provides two API endpoints, we'll assume that the licences don't let us store data in our own table that users can query about any IP (our existing license with MaxMind doesn't allow us to do this,taking an edit id or a log id. according to @aezell).If the edit or log was performed by an anonymous user (or the log target is an anonymous user), Depending on the licenses,the API returns data about the relevant IP address(es).
//Client-side UI//
Currently IPInfo adds a button next to IP addresses on Special:Log and history pages. we may in future be able to explore options that involve storThe data are retrieved on clicking data about the IP addresses;this button, however,and displayed in a popup. storing this PII could introduce privacy concernsThis design may change.
**Description of how the tool will be used at WMF:**
//Deployment//
We expect the feature to be deployed to all wikis, and be available on certain pages that show IP addresses. We will start with Special:Investigate and gradually expand to other pages (such as Special:RecentChanges) based on user research and testing.It will initially be available only to checkusers.
//Preventing abuse//
We expect the feature to be available only to CheckUsers initially,Sending an edit/log ID rather than the IP address will allow the IP address to remain hidden (once they become hidden in the future), and is intended to prevent IPInfo from being used as an API for getting information about arbitrary IP addresses.
Only users with the 'ipinfo' right can see the information. At first this right will only be given to checkusers. In the future when IP addresses are no longer visible, more users may need to access this information, e.g. and later to other trusted user groupsfor patrolling to fight vandalism. This will depend on user research and testing.
Users will sign an agreement when first using this tool, and a record will be kept of which users have access. Access may be taken away from a user, There is also a possibility of there being a new user group for users whoand a record will have access tobe kept of this informationtoo: T264150.
**Dependencies**
* Third party IP information services, e.g. some of those mentioned in T259726 (including figuring out licences for these - @aezell has more information)
* Proxy server for routing requests to third partiesGeoIP2 library: T262963
* OOUI for UI components
**Has this project been reviewed before?**
No, but we are also requesting a performance review - T260821
**Working test environment**
NotIPInfo is available yet - we'll initially make the feature available on beta or our test environment (T260607).to logged-in users on our test environment: https://thegoodplace.wmcloud.org/index.php?title=Special:Log
**Post-deployment**
#anti-harassment will be responsible for this post-deployment:
* Engineers: @Tchanders @dbarratt
* Engineering manager: @aezell
* Product manager: @Niharika