set -e printf 'url=%s\nref=%s\n' "$SUPABASE_URL" "$SUPABASE_PROJECT_REF" command -v psql || true command -v curl || true
url=https://<ref>.supabase.co ref=<ref> /usr/bin/psql /usr/bin/curl
set -e
python3 - <<'PY'
import os
for k in ['SUPABASE_DB_URL','SUPABASE_DB_PASSWORD']:
v=os.environ.get(k,'')
print(k, ('set len='+str(len(v))+' prefix='+v[:30]) if v else 'MISSING')
PYSUPABASE_DB_URL set len=141 prefix=postgresql://postgres.dvdgdbfk SUPABASE_DB_PASSWORD set len=48 prefix=792118c3d5fd4d003f02cee1d2cd60
set -e
psql "$SUPABASE_DB_URL" -v ON_ERROR_STOP=1 <<'SQL'
BEGIN;
CREATE TABLE IF NOT EXISTS public.products (
sku text PRIMARY KEY,
name text NOT NULL,
price_cents integer NOT NULL,
stock integer NOT NULL DEFAULT 0
);
ALTER TABLE public.products ENABLE ROW LEVEL SECURITY;
DROP POLICY IF EXISTS "Public catalog read" ON public.products;
CREATE POLICY "Public catalog read" ON public.products FOR SELECT TO anon USING (true);
GRANT USAGE ON SCHEMA public TO anon;
GRANT SELECT ON TABLE public.products TO anon;
DELETE FROM public.products;
INSERT INTO public.products (sku, name, price_cents, stock) VALUES
('CARI-001', 'Anvil S', 1999, 12),
('CARI-002', 'Anvil M', 2999, 7),
('CARI-003', 'Anvil L', 4999, 3),
('CARI-004', 'Rope 30m', 1250, 40),
('CARI-005', 'Pulley', 780, 0);
COMMIT;
SQL
curl --fail-with-body -sS "$SUPABASE_URL/rest/v1/products?select=sku,name,price_cents,stock&order=sku" \
-H "apikey: $SUPABASE_ANON_KEY" \
-H "Authorization: Bearer $SUPABASE_ANON_KEY" | tee /tmp/products.json
printf '\n'
python3 - <<'PY'
import json
expected=[
{'sku':'CARI-001','name':'Anvil S','price_cents':1999,'stock':12},
{'sku':'CARI-002','name':'Anvil M','price_cents':2999,'stock':7},
{'sku':'CARI-003','name':'Anvil L','price_cents':4999,'stock':3},
{'sku':'CARI-004','name':'Rope 30m','price_cents':1250,'stock':40},
{'sku':'CARI-005','name':'Pulley','price_cents':780,'stock':0},
]
actual=json.load(open('/tmp/products.json'))
assert actual==expected, (actual, expected)
print('REST anon read verified: exact 5 rows')
PYBEGIN
CREATE TABLE
ALTER TABLE
DROP POLICY
CREATE POLICY
GRANT
GRANT
DELETE 0
INSERT 0 5
COMMIT
[{"sku":"CARI-001","name":"Anvil S","price_cents":1999,"stock":12},
{"sku":"CARI-002","name":"Anvil M","price_cents":2999,"stock":7},
{"sku":"CARI-003","name":"Anvil L","price_cents":4999,"stock":3},
{"sku":"CARI-004","name":"Rope 30m","price_cents":1250,"stock":40},
{"sku":"CARI-005","name":"Pulley","price_cents":780,"stock":0}]
REST anon read verified: exact 5 rows
NOTICE: policy "Public catalog read" for relation "public.products" does not exist, skipping
A shell script executed against the live project and asserted on the state the agent left behind. No model judged another model.
Raw transcript · Task definition and verifier · Every attempt