Spaces:
Running
Running
/* | |
# Create storage bucket and policies | |
1. Changes | |
- Create codette-files storage bucket if it doesn't exist | |
- Add RLS policies for authenticated users to: | |
- Read files | |
- Upload files | |
- Update files | |
- Delete files | |
- Add safety checks to prevent policy conflicts | |
*/ | |
-- Create the storage bucket | |
INSERT INTO storage.buckets (id, name) | |
VALUES ('codette-files', 'codette-files') | |
ON CONFLICT (id) DO NOTHING; | |
-- Set up RLS policies for the bucket with existence checks | |
DO $$ | |
BEGIN | |
IF NOT EXISTS ( | |
SELECT 1 FROM pg_policies | |
WHERE tablename = 'objects' | |
AND policyname = 'Allow authenticated users to read files' | |
) THEN | |
CREATE POLICY "Allow authenticated users to read files" | |
ON storage.objects FOR SELECT | |
TO authenticated | |
USING (bucket_id = 'codette-files'); | |
END IF; | |
IF NOT EXISTS ( | |
SELECT 1 FROM pg_policies | |
WHERE tablename = 'objects' | |
AND policyname = 'Allow authenticated users to upload files' | |
) THEN | |
CREATE POLICY "Allow authenticated users to upload files" | |
ON storage.objects FOR INSERT | |
TO authenticated | |
WITH CHECK (bucket_id = 'codette-files'); | |
END IF; | |
IF NOT EXISTS ( | |
SELECT 1 FROM pg_policies | |
WHERE tablename = 'objects' | |
AND policyname = 'Allow authenticated users to update files' | |
) THEN | |
CREATE POLICY "Allow authenticated users to update files" | |
ON storage.objects FOR UPDATE | |
TO authenticated | |
USING (bucket_id = 'codette-files') | |
WITH CHECK (bucket_id = 'codette-files'); | |
END IF; | |
IF NOT EXISTS ( | |
SELECT 1 FROM pg_policies | |
WHERE tablename = 'objects' | |
AND policyname = 'Allow authenticated users to delete files' | |
) THEN | |
CREATE POLICY "Allow authenticated users to delete files" | |
ON storage.objects FOR DELETE | |
TO authenticated | |
USING (bucket_id = 'codette-files'); | |
END IF; | |
END $$; |