Remove profanity check for playlab project sources#65397
Merged
Conversation
…hat is checked here
bencodeorg
approved these changes
Apr 21, 2025
bencodeorg
left a comment
Contributor
There was a problem hiding this comment.
Looks reasonable to me!
This can be a follow-up, but noting there looks like there's a bunch of unused code after this change (eg, the privacy-profanity endpoint, among others). Thanks for doing this!
mikeharv
approved these changes
Apr 21, 2025
Contributor
Author
Good call! Created a follow-up jira ticket: https://codedotorg.atlassian.net/browse/SL-1219 |
8 tasks
8 tasks
8 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Currently, only 'playlab' projects are checked for profanity via WebPurify. Because block ids are included in the source code, there have been a disruptive number of false positives being reported by ZenDesk users (example ticket) causing non-abusive projects to be blocked from sharing - Slack thread discussion.
I removed this profanity check which is a request to
/v3/channels/<channel_id>/privacy-profanitywhich calls onchannel_policy_violationwhich usesShareFiltering.This safety layer via WebPurify is performed for only 'playlab' project's source code. WebPurify is also used for libraries, and we have received a handful of reports about false positives from users trying to share libraries in App Lab. But the frequency of reports of false positives have seemed to increase recently for 'playlab' projects.
Before update
Screen.Recording.2025-04-21.at.2.19.07.PM.mov
After update
Screen.Recording.2025-04-21.at.2.19.37.PM.mov
Noting that this is the same behavior for other labs including Sprite Lab which is geared for elementary students. Example Sprite Lab project - confirmed that the update to Play Lab to match what happens in Sprite Lab is okay with product.
Screencast of current behavior of Sprite Lab project which includes a word that would be blocked by WebPurify:
Screen.Recording.2025-04-21.at.3.19.44.PM.mov
A follow-up is to remove block IDs before passing project source code to WebPurify: https://codedotorg.atlassian.net/browse/SL-1214.
Warning!!
The AP CSP Create Performance Task is in progress. The most critical dates are from April 3 - April 30, 2025. Please consider any risk introduced by this PR that could affect our students taking AP CSP. Code.org students taking AP CSP primarily use App Lab for their Create Task, however a small percent use Game Lab. Carefully consider whether your change has any risk of alterering, changing, or breaking anything in these two labs. Even small changes, such as a different button color, are considered significant during this time period. Reach out to the Student Learning team or Curriculum team for more details.
Links
Testing story
Checked locally on 'playlab' projects and added a word blocked by WebPurify ('poop') - can still share project.
Deployment strategy
Follow-up work
Privacy
Security
Caching
PR Checklist: