Glossary
Glossary
The words you’ll meet in reports and these docs, in plain English. Engineers will know most of them; founders shouldn’t have to.
A
- Anonymous visitor (anon)
- Someone using your app without signing in. In the lab, the identity that uses only your public anon key. If it can read personal data, so can anyone on the internet.
- Anon key
- Supabase’s public API key. It is built into your frontend, so treat it as known to everyone. It’s meant to be public; your policies are what keep data private.
- app_metadata
- Per-user data in Supabase Auth that only a server with the service role key can change. The right place for a role. Compare user_metadata. Guide.
- API key (PatchLabs)
- A
pl_live_…key for one workspace, used by CI, scripts and the MCP server. Shown once, stored as a hash, revocable. More. - App
- A repo you monitor in a workspace. Verified once, then re-checked on a schedule. More.
- Approve
- A decision that says “this is a real leak; we’re applying the fix”.
B
- Badge
- A small dated image for your README showing your app’s latest result. Off until you turn it on. More.
- Business question
- A plain-English question in a report that only the owner can answer, such as whether sellers’ emails should be public. Comes with a recommended answer. More.
C
- Check
- One run of the lab against your repo: rebuild, probe, fix, prove, plus the key scan. Ends with a report and a receipt.
- Client label
- A short name on an app, such as the client it belongs to. Shown in the dashboard and every alert.
- Code (PatchLabs Code)
- The product line that reads your repo without running it: keys in code and history, Edge Functions, webhooks, CORS, admin checks, raw HTML, Firebase rules and dependencies. Its findings carry a file and line, and are not lab-proven. More.
- Coming
- A finding ID with a published page that PatchLabs does not test for yet (currently
PL-012toPL-016). It won’t appear in a report until it ships.
D
- Decision
- A recorded approve or reject on a finished check, with who, when and why. Included in the signed receipt.
- Default branch
- The branch GitHub shows first, usually
main. Verification and every check read this branch. - Diff
- What changed between an app’s last two checks: new leaks, fixed, still leaking, and marked as intended.
- Dependency finding
PL-023: a package version in your lockfile that matches a published advisory in the OSV database. Its severity comes from the advisory.
E
- Ed25519
- A widely used digital signature scheme. We sign receipts with it so anyone can check them against our published public key.
- Edge Function
- Server-side code in a Supabase project (Deno), in
supabase/functions. The right home for secret keys, as long as it checks who is calling. Guide.
F
- Finding
- One problem in a report, in a fixed shape: ID, line, severity, object, file and line, evidence, whether it was proven, and the fix. The fields.
- Finding ID
- A stable code for a kind of problem, from
PL-001(anyone with the public key can read personal data) toPL-026(any website can call a signed-in function). Lab IDs arePL-001toPL-008; Code IDs arePL-009toPL-011andPL-017toPL-026;PL-012toPL-016are coming. IDs never change meaning. The index. - Fix
- A SQL migration (plus any code change it notes) that closes a leak. Called a proven fix once it passes the lab proof.
- Fix (PatchLabs Fix)
- The product line that writes the migration, proves it in a fresh lab, asks your business questions and waits for your engineer to approve. More.
K
- Key scan
- The part of a check that looks for exposed AI, payment and database keys in your code and its full git history.
L
- Lab
- A disposable local Postgres that copies Supabase’s roles, auth functions and default grants. We rebuild your database in it from your migrations, test it, and throw it away. It never touches your live app. PatchLabs Lab is the product line built on it; its findings are proven by real queries.
- Lab proof
- The three tests a fix must pass: anonymous visitor denied, signed-in stranger denied, owner still reads their own rows.
- Leak
- Personal data that the wrong people can read: an anonymous visitor, or a signed-in user who doesn’t own it.
M
- MCP
- Model Context Protocol: a standard way for AI coding agents to use outside tools. PatchLabs runs a remote MCP server. More.
- Migration
- A SQL file in
supabase/migrations/that changes your database’s structure or rules. Migrations run in filename order, which is why fix files start with a timestamp.
N
- Needs review
- A check status meaning leaks were found but no fix passed the proof on its own, so a person reviews it before you apply anything.
O
- Owner (in the lab)
- The test user who owns a seeded row. After a fix they must still read their own data, or the proof fails.
- Owner (in a workspace)
- The role that manages a workspace: invites, roles, webhook and name. The other role is member. More.
- OSV
- An open database of published vulnerabilities (osv.dev), keyed by package and version. The dependency check sends package names and versions to it, nothing else.
P
- Personal data
- Information about a person, such as an email address, phone number, home address or date of birth. These are the columns a check looks for.
- Policy
- A row level security rule in Postgres that says who may read or change which rows, for example “users can read their own profile”.
- Proven fix
- A fix that has passed the lab proof. A scanner gives you a finding; a proven fix is one you’ve seen work.
- Proven (finding)
- A finding the Lab reproduced with a real query against the rebuilt database. Code findings are read from the code and are not marked proven.
R
- Re-check
- Another check of the same app, on a schedule, from Run now, CI or MCP. The quickest way to confirm a fix is live.
- Receipt
- A signed record of a finished check: result, tables, whether the proof passed, the fix’s hash, and every decision and answer. More.
- Reject
- A decision that says “these tables are meant to be readable”. Creates a suppression.
- RLS (row level security)
- The Postgres feature Supabase uses to decide which rows each user can see. When it’s off, or a policy is too broad, data leaks.
S
- Seeded rows
- Fake rows we put in the lab database so there is something to read. Never real data.
- SECURITY DEFINER
- A Postgres function that runs with its creator’s rights instead of the caller’s. Useful, but risky if anyone can call it or its
search_pathisn’t fixed. - Service role key
- Supabase’s secret key that bypasses every policy. It must never appear in frontend code or a repo; the key scan looks for it.
- Signed-in stranger
- In the lab, a freshly signed-up user who owns nothing. If they can read other people’s rows, anyone who signs up can.
- Suppression
- A table your team marked as intended for one app. Later checks list it as “marked as intended” and don’t alert on it. More.
U
- user_metadata
- Per-user data in Supabase Auth that users can change themselves, at sign-up and with
updateUser. Fine for a display name; never for roles (PL-019). Guide.
V
- Verification file
patchlabs-verify.txt, committed with a one-time code to prove you control the repo. More.
W
- Webhook
- A URL we POST to when a check finishes. Works with Slack and Discord incoming webhooks. More.
- Watch (PatchLabs Watch)
- The product line that re-checks on a schedule, shows diffs, sends alerts and signs every result. More.
- Workspace
- Where apps, members, API keys, the webhook and the plan live. You can belong to several. More.