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