Access control in the language you already use
A policy is a SQL-style expression over the caller and the object path, so keeping every user inside their own folder takes one line. The rules go in volcano-config.yaml and get reviewed with the code, rather than living in a console someone changed last quarter.
- SELECT, INSERT, UPDATE and DELETE per bucket
- (storage.foldername(name))[1] = auth.uid()::text
- storage.extension(name) to restrict file types
own-folder-read SELECT foldername[1] = auth.uid()own-folder-write INSERT foldername[1] = auth.uid()images-only INSERT extension in (png, jpg, webp)own-folder-delete DELETE foldername[1] = auth.uid()# nothing else in this bucket is reachable
