Supabase Storage exposes an S3-compatible API that Mixpeek talks to directly. You can authenticate with dedicated S3 access keys (recommended) or with a project’s
anon + service_role JWTs in session-token mode.Overview
The Supabase integration lets Mixpeek pull objects from any Supabase Storage bucket into your Mixpeek buckets for processing. Each file becomes a Mixpeek bucket object, automatically batched into the collections that source the bucket. Mixpeek derives the endpoint from your project reference, which is the short URL hash in your project’s Dashboard URL (https://<ref>.supabase.co). You do not need to manage endpoints by hand.
Prerequisites
- A Supabase project with at least one Storage bucket.
- Either:
- S3 access keys (recommended): a dedicated key pair generated in Project Settings → Storage → S3 Access Keys, or
- Session-token credentials: the project’s
anonkey andservice_rolekey from Project Settings → API.
Configuration
Connection-Level Fields
Sync-Level Fields
Setup
1
Generate credentials in Supabase
Option A: Dedicated S3 keys (recommended)
- Open your project in the Supabase Dashboard.
- Go to Project Settings → Storage → S3 Access Keys.
- Click New access key, give it a name (e.g.
mixpeek-sync) and copy theaccess_key_id+secret_access_keyimmediately. The secret is shown only once.
- Go to Project Settings → API.
- Copy the
anonkey and theservice_rolekey. Treatservice_rolelike a password. It has full access to Storage.
2
Create the storage connection in Mixpeek
credentials block:3
Create a sync configuration on your bucket
4
Trigger your first sync
Advanced Configuration
File Filtering
Incremental Sync
Only sync files added or modified after a specific date:Source Path Format
Sync Modes
Troubleshooting
Connection test returns 403 / SignatureDoesNotMatch
Connection test returns 403 / SignatureDoesNotMatch
- With access_key mode: the keys must come from Project Settings → Storage → S3 Access Keys, not the general Supabase API keys.
- With session_token mode: verify
anon_keyandservice_role_keyare both JWTs from the same project and thatproject_refmatches the project they belong to. - Confirm
regionmatches the region shown in the Supabase Dashboard.
NoSuchBucket when triggering sync
NoSuchBucket when triggering sync
The Supabase bucket in
source_path does not exist or your credentials cannot see it:- Double-check the bucket name (case-sensitive).
- For access keys with bucket scope, confirm the key grants access to the bucket you’re syncing.
No files synced from a populated bucket
No files synced from a populated bucket
- The
source_pathprefix is too narrow. Widen it, or drop the trailing prefix. include_patternsmay exclude everything. Remove them temporarily to see all files.- Check the sync run’s
matchedcounter in the job log to confirm discovery.
Session-token auth works locally but fails in Mixpeek
Session-token auth works locally but fails in Mixpeek
Some Supabase projects rotate
anon/service_role keys during upgrades. Refresh both JWTs from Project Settings → API and update the connection.
