-- Make the 'files' bucket public so existing getPublicUrl links resolve. -- The codebase already calls getPublicUrl() on this bucket and stores the URL -- in documents.file_url, so the bucket must be public for those links to load. UPDATE storage.buckets SET public = true WHERE id = 'files'; -- Ensure a public SELECT policy exists for this bucket. DO $$ BEGIN IF NOT EXISTS ( SELECT 1 FROM pg_policies WHERE schemaname = 'storage' AND tablename = 'objects' AND policyname = 'Files bucket public read' ) THEN CREATE POLICY "Files bucket public read" ON storage.objects FOR SELECT USING (bucket_id = 'files'); END IF; END $$;