Skip to main content
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 anon key and service_role key from Project Settings → API.

Configuration

Connection-Level Fields

Sync-Level Fields

Setup

1

Generate credentials in Supabase

Option A — Dedicated S3 keys (recommended):
  1. Open your project in the Supabase Dashboard.
  2. Go to Project Settings → Storage → S3 Access Keys.
  3. Click New access key, give it a name (e.g. mixpeek-sync) and copy the access_key_id + secret_access_key immediately — the secret is shown only once.
Option B — Session-token credentials:
  1. Go to Project Settings → API.
  2. Copy the anon key and the service_role key. Treat service_role like a password — it has full access to Storage.
Session-token mode is convenient when you don’t have permission to mint S3 keys, but the service_role JWT is a superuser credential. Prefer dedicated S3 keys scoped to the buckets you actually need.
2

Create the storage connection in Mixpeek

To use session-token mode instead, swap the credentials block:
3

Create a sync configuration on your bucket

4

Trigger your first sync

Mixpeek lists objects under your Supabase prefix, downloads each one, stores it in the Mixpeek-side S3 bucket, and creates a bucket object. Any collection that sources this bucket picks the new objects up on the next batch.

Advanced Configuration

File Filtering

Incremental Sync

Only sync files added or modified after a specific date:

Source Path Format

Sync Modes

Troubleshooting

  • 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_key and service_role_key are both JWTs from the same project and that project_ref matches the project they belong to.
  • Confirm region matches the region shown in the Supabase Dashboard.
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.
  • The source_path prefix is too narrow — widen it, or drop the trailing prefix.
  • include_patterns may exclude everything — remove them temporarily to see all files.
  • Check the sync run’s matched counter in the job log to confirm discovery.
Some Supabase projects rotate anon/service_role keys during upgrades. Refresh both JWTs from Project Settings → API and update the connection.