It signs up with a throwaway test account
Your pipeline signs up to your app with details made fresh for this check, then uses it like a person would. No real user is involved.
Every day Decoy signs up to your app with a throwaway test account, follows every detail that leaves it, and shows your users who got it. If a privacy promise breaks, GitLab Duo fixes it for you.
Decoy runs on its own after you set it up. Scroll to follow one check from start to finish.
Your pipeline signs up to your app with details made fresh for this check, then uses it like a person would. No real user is involved.
Every request from the browser and your servers is recorded. The test details exist nowhere else, so each one found is proof of where it went.
Your users get a public page showing who got their data. If a promise breaks, GitLab Duo writes the fix and it merges once checks pass.
Jotter is a notes app that runs Decoy every day. Walk through what that looks like in four steps.
Answer two questions about your app. You get your promises in plain words, the file Decoy checks against, and how to switch it on.
Paid after users' email addresses and therapy history were used for Facebook ad targeting.
FTC order, 2023Penalty for sending people's health data to Facebook and Google without telling them.
FTC action, 2023Appointment details sent to Meta by a tracking pixel on the hospitals' own websites.
The Markup, 2022None of these were hacks. They were ordinary changes nobody checked against the promise
No. It only follows its own test account, made up fresh for each check. It never reads your users' traffic, logs or database, and your users are never asked to do anything.
Decoy also looks for encoded, compressed and hashed copies, the way ad pixels send them. A hashed email is still your email.
Leaks are planted on purpose and the real check runs against each one. It caught every planted leak with no false alarms, and the few it cannot see are written down in the answer key.
When the daily check fails, a GitLab Duo flow reads what broke, finds the cause, opens an incident, writes the smallest honest fix, checks it with the same test account and opens a merge request. The fix merges once every check passes.
No. It is told never to weaken a promise, the privacy page or a test, and only fixes that close an incident are merged.
No. Decoy reports where data went against the promises you wrote. Whether something is lawful is a question for a lawyer.
Not yet. It checks web apps: everything the browser sends and every outside call from a Node server.