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 — 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.
