{"action":"created","issue":{"url":"https://api.github.com/repos/mozilla/normandy/issues/323","repository_url":"https://api.github.com/repos/mozilla/normandy","labels_url":"https://api.github.com/repos/mozilla/normandy/issues/323/labels{/name}","comments_url":"https://api.github.com/repos/mozilla/normandy/issues/323/comments","events_url":"https://api.github.com/repos/mozilla/normandy/issues/323/events","html_url":"https://github.com/mozilla/normandy/issues/323","id":189232050,"number":323,"title":"Opt-Out Study Action","user":{"login":"Osmose","id":193106,"avatar_url":"https://avatars.githubusercontent.com/u/193106?v=3","gravatar_id":"","url":"https://api.github.com/users/Osmose","html_url":"https://github.com/Osmose","followers_url":"https://api.github.com/users/Osmose/followers","following_url":"https://api.github.com/users/Osmose/following{/other_user}","gists_url":"https://api.github.com/users/Osmose/gists{/gist_id}","starred_url":"https://api.github.com/users/Osmose/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Osmose/subscriptions","organizations_url":"https://api.github.com/users/Osmose/orgs","repos_url":"https://api.github.com/users/Osmose/repos","events_url":"https://api.github.com/users/Osmose/events{/privacy}","received_events_url":"https://api.github.com/users/Osmose/received_events","type":"User","site_admin":false},"labels":[{"id":473311789,"url":"https://api.github.com/repos/mozilla/normandy/labels/priority:%20P1","name":"priority: P1","color":"0e8a16","default":false},{"id":474627400,"url":"https://api.github.com/repos/mozilla/normandy/labels/status:%20needs%20approval","name":"status: needs approval","color":"c5def5","default":false},{"id":473311556,"url":"https://api.github.com/repos/mozilla/normandy/labels/status:%20needs%20spec","name":"status: needs spec","color":"c5def5","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2016-11-14T21:31:42Z","updated_at":"2016-12-21T22:32:55Z","closed_at":null,"body":"Opt-out studies are SHIELD studies that are automatically run on a small sample of users. Opt-out studies are only for low-risk studies that have gone through a thorough approval and review process.\r\n\r\n## Spec\r\nWe will add a new `opt-out-study` action. Upon running, the action will:\r\n\r\n1. Check if the current user has Unified Telemetry disabled, and if so, abort execution.\r\n2. Check if the current user is in the opt-out sample, and abort execution if they aren't.\r\n3. Check if the user has already participated in the study or is currently participating, and abort execution if they already have received the study add-on.\r\n3. Install the study add-on.\r\n\r\nThe action should take one argument:\r\n\r\n- A file upload input for admins to upload the add-on to install.\r\n\r\nUploaded add-ons will already be signed. It'd be nice (but not required) to validate that uploaded add-ons are signed properly.\r\n\r\nWe also want users to be able to opt-out of studies, both opt-out and opt-in. To increase transparency, we should add a new page (`about:shield`, maybe?) that lists all experiments that are active and that the user participated in in the past. From this page, users should be able to disable any active experiments, and opt-out of experiments completely.\r\n\r\n## Open questions\r\n\r\n- What should `about:shield` look like, and is `about:shield` the name we want?\r\n  - Will the add-on itself have all the metadata necessary for displaying it?\r\n  - How will we track which add-ons are studies and which ones aren't? \r\n- Will we need any extra technical approval measures for releasing opt-out studies?"},"comment":{"url":"https://api.github.com/repos/mozilla/normandy/issues/comments/268661103","html_url":"https://github.com/mozilla/normandy/issues/323#issuecomment-268661103","issue_url":"https://api.github.com/repos/mozilla/normandy/issues/323","id":268661103,"user":{"login":"gregglind","id":163983,"avatar_url":"https://avatars.githubusercontent.com/u/163983?v=3","gravatar_id":"","url":"https://api.github.com/users/gregglind","html_url":"https://github.com/gregglind","followers_url":"https://api.github.com/users/gregglind/followers","following_url":"https://api.github.com/users/gregglind/following{/other_user}","gists_url":"https://api.github.com/users/gregglind/gists{/gist_id}","starred_url":"https://api.github.com/users/gregglind/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gregglind/subscriptions","organizations_url":"https://api.github.com/users/gregglind/orgs","repos_url":"https://api.github.com/users/gregglind/repos","events_url":"https://api.github.com/users/gregglind/events{/privacy}","received_events_url":"https://api.github.com/users/gregglind/received_events","type":"User","site_admin":false},"created_at":"2016-12-21T22:32:55Z","updated_at":"2016-12-21T22:32:55Z","body":"Awesome.  Keep me in the loop."}}
{"actor":{"display_login":"gregglind"}}