{
  "id": "supabase",
  "title": "Use Supabase with RDI",
  "url": "https://redis.io/docs/latest/operate/rc/rdi/supabase/",
  "summary": "Connect a hosted Supabase database to RDI on Redis Cloud.",
  "tags": [
    "docs",
    "operate",
    "rc"
  ],
  "last_updated": "2026-08-03T16:20:47+02:00",
  "page_type": "content",
  "content_hash": "b3db2f22bada7389670580898e09a73cefdf35de6ba15f3e0bd889a9aee2a717",
  "sections": [
    {
      "id": "overview",
      "title": "Overview",
      "role": "overview",
      "text": "You can use a hosted [Supabase](https://supabase.com/) PostgreSQL database as\nthe source for an RDI pipeline on Redis Cloud. This page describes the\nRedis Cloud-specific networking, secrets, and source configuration.\n\nThe integration was validated with RDI 1.19.0 and hosted Supabase PostgreSQL\n17.6. See [RDI on Redis Cloud prerequisites](https://redis.io/docs/latest/operate/rc/rdi#prerequisites)\nfor supported source versions.\n\n\nSupabase AWS PrivateLink connectivity isn't supported. Supabase shares a\nResource Configuration through AWS Resource Access Manager and requires a\nResource-type VPC endpoint. This differs from the AWS PrivateLink\nendpoint-service connectivity supported by RDI on Redis Cloud.\n\nUse the Supabase public direct database endpoint."
    },
    {
      "id": "before-you-begin",
      "title": "Before you begin",
      "role": "content",
      "text": "You need:\n\n- A Redis Cloud RDI workspace and target database.\n- A hosted Supabase project.\n- A dedicated Supabase role with PostgreSQL replication and table-read\n  permissions.\n- The Supabase CA certificate.\n- An AWS Secrets Manager credentials secret and CA certificate secret shared\n  with Redis Cloud.\n\nFollow the steps in [Prepare Supabase for RDI](https://redis.io/docs/latest/integrate/redis-data-integration/data-pipelines/prepare-dbs/supabase)\nto create the database role, grant table access, account for Row Level\nSecurity, and create a publication."
    },
    {
      "id": "configure-public-connectivity",
      "title": "Configure public connectivity",
      "role": "configuration",
      "text": "Supabase logical replication requires the direct database endpoint. Don't use\na Supavisor transaction or session pooler endpoint.\n\nThe direct endpoint uses IPv6 by default, but RDI on Redis Cloud requires an\nIPv4 endpoint, so you must enable the Supabase\n[dedicated IPv4 add-on](https://supabase.com/docs/guides/platform/ipv4-address)\n(you need a paid Supabase plan to do this).\n\nWhen you create the RDI pipeline:\n\n1. Select **PostgreSQL** as the source type.\n1. Select **Public endpoint**.\n1. Copy every **Redis Cloud outbound IP address** displayed by the setup flow.\n1. In Supabase, open **Database settings** > **Network restrictions**.\n1. Add every Redis Cloud outbound address as a `/32` CIDR.\n\nIf you recreate the RDI workspace, its outbound addresses can change. Add the\nnew addresses to Supabase before starting the replacement pipeline, and remove\nthe old addresses after the new connection succeeds."
    },
    {
      "id": "configure-secrets",
      "title": "Configure secrets",
      "role": "configuration",
      "text": "Follow the steps in [Share source database credentials](https://redis.io/docs/latest/operate/rc/rdi/setup#share-source-database-credentials)\nto create and share:\n\n- A credentials secret containing the dedicated Supabase `username` and\n  `password`.\n- A plaintext CA certificate secret containing the certificate downloaded\n  from Supabase **Database settings** > **SSL configuration**.\n\nEncrypt both secrets with the customer-managed AWS KMS key configured for the\nRDI workspace. Use the AWS region that contains your Redis Cloud subscription.\n\nIn the pipeline's **Secrets** section:\n\n1. Enter the credentials secret ARN.\n1. Select **TLS** under **Transit security**.\n1. Enter the CA certificate secret ARN.\n1. Select **Validate**.\n\nRDI on Redis Cloud uses TLS and validates the Supabase CA certificate."
    },
    {
      "id": "configure-the-source",
      "title": "Configure the source",
      "role": "configuration",
      "text": "In the RDI pipeline setup flow, open the source configuration and enter the\nfollowing values:\n\n| Field | Value |\n|:--|:--|\n| Source IP address / Hostname | `db.<project-ref>.supabase.co` |\n| Port | `5432` |\n| Database | `postgres` |\n\nUnder **Collector properties**, set:\n\n| Property | Value |\n|:--|:--|\n| `plugin.name` | `pgoutput` |\n| `publication.name` | `rdi_publication` |\n| `publication.autocreate.mode` | `disabled` |\n| `slot.name` | A unique value, such as `rdi_supabase` |\n\nThe publication name must match the publication you created in Supabase. Use a\nunique replication slot name for each active pipeline connected to the\nproject.\n\nSelect **Test source**. After the test succeeds, select the schemas and tables\nto capture and deploy the pipeline."
    },
    {
      "id": "monitor-the-pipeline",
      "title": "Monitor the pipeline",
      "role": "content",
      "text": "After deployment:\n\n1. Confirm the initial snapshot reaches zero pending and rejected records.\n1. Insert, update, and delete test records in Supabase.\n1. Confirm the corresponding counters increase in the pipeline metrics.\n\nSupabase logical replication slots retain write-ahead log (WAL) while the\npipeline is stopped. Follow the steps in\n[Monitor replication slots](https://redis.io/docs/latest/integrate/redis-data-integration/data-pipelines/prepare-dbs/supabase#7-monitor-replication-slots)\nto monitor retained WAL and prepare for Supabase PostgreSQL upgrades."
    }
  ],
  "examples": []
}
