Home

Terraform Provider


The Supabase Provider allows Terraform to manage resources hosted on Supabase platform.

You may use this provider to version control your project settings or setup CI/CD pipelines for automatically provisioning projects and branches.

Using the provider

This simple example imports an existing Supabase project and synchronises its API settings.

terraform {
required_providers {
supabase = {
source = "supabase/supabase"
version = "~> 1.0"
}
}
}

provider "supabase" {
access_token = file("${path.module}/access-token")
}

# Define a linked project variable as user input
variable "linked_project" {
type = string
}

# Import the linked project resource
import {
to = supabase_project.production
id = var.linked_project
}

resource "supabase_project" "production" {
organization_id = "nknnyrtlhxudbsbuazsu"
name = "tf-project"
database_password = "tf-example"
region = "ap-southeast-1"

lifecycle {
ignore_changes = [database_password]
}
}

# Configure api settings for the linked project
resource "supabase_settings" "production" {
project_ref = var.linked_project

api = jsonencode({
db_schema = "public,storage,graphql_public"
db_extra_search_path = "public,extensions"
max_rows = 1000
})
}