Page MenuHomePhabricator

Security/Privacy Review For P&E Dashboard Integration with Campaign Registration System
Closed, ResolvedPublic

Description

Project Information

Name of tool/project: Campaigns Registration System
Project home page: https://meta.wikimedia.org/wiki/Campaigns/Foundation_Product_Team/Registration
Name of team requesting review: Campaigns
Primary contact: @ifried (also @ldelench_wmf @vyuen)
Target date for deployment: ~November 2022 for V1 (see feature explanation), January/February for V2
Link to code repository / patchset: N/A
Description of the tool/project: This is a follow-up review from T290248, so you can see that ticket for more general information about the project. This ticket is specifically about creating integration between the Programs and Events Dashboard and the event registration tool for the V1 release. See T302584 for the epic focused on this integration work.

Description of how the tool will be used at WMF:

Basic background on the Programs and Events Dashboard: The Programs and Events Dashboard is a tool which assists the management of wiki programs and events. It is maintained by Wiki Education, and its source code is hosted on github. You can find the tool at: https://outreachdashboard.wmflabs.org/ It is commonly used by many Wikimedia chapters, affiliates, and user groups for tracking contributions made by editors during events. Usernames are added to a Dashboard event (either by the organizer or participants themselves), and any contributions made by that user during the event period of time are counted as event contributions. A link to a Dashboard event is commonly displayed on event pages. For example, see this event page from Wikimedia NYC, which displays a link to their Dashboard event directly on the page.

For V1 of the event registration tool, the Campaigns team would like to create integration between the P&E Dashboard and the event registration tool. This way, organizers can save time and effort, since usernames of participants will be automatically added to the P&E Dashboard rather than needing to be manually added by the organizer or the participants themselves. This is how we propose it works:

Step 1: The organizer creates an event on the Dashboard. They do this via https://outreachdashboard.wmflabs.org/course_creator. The event can be public (i.e., viewable to everyone) or private (i.e., viewable to admins, facilitators -- who are the organizers of the event, and the participants of the event). You can see a screenshot example of the program creation process from the P&E Dashboard below:

Screen Shot 2022-10-12 at 10.36.49 AM.png (1×2 px, 316 KB)

Once the program has been created, it will have a URL and unique identifier. Here are some examples of public programs on the P&E Dashboard:

Step 2: Once the program has been created, the organizer can create a link between their event registration on the wiki and the Programs and Events Dashboard. To do this, they will insert either the full URL or the unique identifier (i.e., the part of the URL that is just, for example, "Wikimedia_Community_User_Group_Sudan/Sudan_Wiki_Challenge_-_October_(October)/home") in the event registration configuration process. You can see a screenshot example below. Note that this is an early prototype and we will be using different language than "Tracking tools":

Screen Shot 2022-10-12 at 10.34.04 AM.png (1×1 px, 121 KB)

The tool would then validate that the event is real and that the organizer (known as a 'facilitator') on the dashboard created it. If this was the case, integration would be established. Note that:

  • Requests to the dashboard would only be sent from the PHP side, and never from the client-side. At least, this means we’re not sending IPs and UAs, and we don’t need any special-purpose proxy for that.
  • The dependency on the dashboard is optional, and can be enabled/disabled by sysadmins via config.

Step 3: When a user chooses to register for an event that has the integration, they will be allowed to register publicly (i.e., their username will be displayed to everyone in the participant list) or privately (i.e., their username will only be displayed to organizers of the event. If they choose to register publicly, their username will be automatically pushed to the P&E Dashboard after registration. If they choose to register privately, their username will not be pushed to the P&E Dashboard after registration. When users first register, they will see this information and have the option to choose public or private registration before they complete event registration. The ticket to do this work is T319544. You can see a screenshot example from a prototype below:

Designs**

Public registration ONPublic registration OFF
Event privacy dialog - Public registration on.png (398×760 px, 54 KB)
Event privacy dialog - Public registration off.png (398×760 px, 56 KB)

Step 4: The participant makes their choice, and the Programs and Events Dashboard is updated with the newest participant list (i.e., any new public participants are added).

Dependencies

Security, legal, Wiki Education

Has this project been reviewed before?

The general project has, but the P&E Dashboard integration, specifically, has not.

Working test environment
https://meta.wikimedia.beta.wmflabs.org/wiki/Special:EnableEventRegistration

Post-deployment

Campaigns, @ifried

Event Timeline

ifried updated the task description. (Show Details)

Hello @ifried, Privacy Engineering will start looking into this as part of our current sprint. On a side note, I am aware that the previous features have been looked at by WMF-Legal. For this additional feature, are you having any conversation with Legal in parallel?

@sguebo_WMF Thank you for looking into this task as part of your current sprint! Yes, we have consulted with Legal about V1 of the event registration feature. I will share relevant documentation with you internally.

Hey @ifried, the Privacy Engineering review is complete. Could you take a look at our conclusions and address any potential misunderstanding there? https://docs.google.com/document/d/1lFeq7jtUCmXdwoKwIfqgO-74ccTU0kBtX7zkJkeMByw/edit#?

@ifried, the Security-Team hasn't gotten the chance to discuss the mitigating options surfaced in the Google Docs conversation. Meanwhile, I would like to keep the ticket open and update it once we've made some progress.

Hi @sguebo_WMF , would you prefer to keep this task open until Security has a chance to review the P&E Dashboard integration when it's ready for testing? If not, I'd like to close it and capture any followup tasks separately.

Hey @ldelench_wmf, I have no objections to closing this one, thanks.

ldelench_wmf claimed this task.

Super, thanks for all your guidance on this!