Implement SupabaseBucketDownloader, a component analogous to the existing S3Downloader that fetches files from Supabase Storage buckets and returns them as ByteStream objects for use in indexing pipelines.
Detailed design
from haystack_integrations.components.fetchers.supabase import SupabaseBucketDownloader
downloader = SupabaseBucketDownloader(
supabase_url="https://<project>.supabase.co",
supabase_key=Secret.from_env_var("SUPABASE_SERVICE_KEY"),
bucket_name="my-documents",
)
Implementation notes
- Primary dependency:
supabase-py
- Auth via
supabase_url and supabase_key (using Secret for secure handling)
- Output: list of
ByteStream objects compatible with Haystack file converters (e.g. PyPDFToDocument, HTMLToDocument)
- Take
S3Downloader as the reference implementation for interface design
- Support listing and filtering files within a bucket (e.g. by prefix or file extension)
- Integration lives in
integrations/supabase/
Checklist
Implement
SupabaseBucketDownloader, a component analogous to the existingS3Downloaderthat fetches files from Supabase Storage buckets and returns them asByteStreamobjects for use in indexing pipelines.Detailed design
Implementation notes
supabase-pysupabase_urlandsupabase_key(usingSecretfor secure handling)ByteStreamobjects compatible with Haystack file converters (e.g.PyPDFToDocument,HTMLToDocument)S3Downloaderas the reference implementation for interface designintegrations/supabase/Checklist