The leak path is your prompt box, not your database.
Lovable's definition of customer content includes "configurations". Replit's
includes "commands". Both include attachments. Anything you paste to get unstuck is
inside the clause, which makes prompt hygiene an engineering practice rather than a
manners lecture. Five rules, in the order they pay off.
One: debug against the schema, not the rows. Almost every "why is
this query wrong" question needs table shapes, not real records. Take a
structure-only dump and work from that:
supabase db dump --schema-only -f schema.sql
pg_dump --schema-only --no-owner --no-privileges "$DATABASE_URL" > schema.sql
Two: when you genuinely need realistic data, generate it. Build a
small masked sample once, keep it in a seed schema, and paste from that forever
after. Dropping precision matters more than hashing, because a hashed name plus an
exact timestamp plus a suburb is still a person:
create schema if not exists seed;
create table seed.customers as
select
row_number() over (order by id) as id,
'user' || row_number() over (order by id) || '@example.test' as email,
'Customer ' || row_number() over (order by id) as full_name,
date_trunc('month', created_at) as created_at,
country,
round(order_total::numeric, -2) as order_total
from public.customers
limit 200;
Three: secrets belong in the platform's secret store. Every builder
has one, whether it is Lovable's build secrets, Supabase's project secrets or
environment variables on the host, and none of them is the chat window. If a key,
connection string or service-role token has ever appeared in a prompt, treat it as
leaked and rotate it, following the
exposed API key runbook. Rotation is cheap;
an unrotated key in a training corpus is a permanent unknown.
Four: attachments and screenshots count. A cropped screenshot of
one row is a debugging aid. A full-screen capture of your admin table is a personal
information transfer with no record, no purpose and no legal basis. Crop, redact, or
reproduce the problem against the seed data from rule two.
Five: understand that opting out is forward-looking. Lovable's own
wording is that opting out later excludes your data "from training going forward".
There is no retraction button anywhere in this market. So the response to a bad
paste is the same as the response to any disclosure: rotate what can be rotated,
record what was exposed and when, and assess whether anyone needs to be told. If
personal information was involved, our
POPIA guide covers the notification
test. Keeping the agent's blast radius small in the first place is the
guardrails guide.