Terraform Provider
The Supabase Provider allows Terraform to manage resources hosted on the Supabase platform.
You can use this provider to:
- Version control your project settings in Git
- Set up CI/CD pipelines for automatically provisioning projects and branches
Resources and examples#
Quickstart#
This example imports an existing Supabase project and synchronises its API settings.
terraform { required_providers { supabase = { source = "supabase/supabase" version = "~> 1.0" } }}# Alternatively, you can set the env var for SUPABASE_ACCESS_TOKENprovider "supabase" { access_token = file("${path.module}/access-token")}# Define a linked project variable as user inputvariable "linked_project" { type = string}# Import the linked project resourceimport { to = supabase_project.production id = var.linked_project}resource "supabase_project" "production" { # organization_id is your organization's slug (it can be found in the Supabase Dashboard under Organization Settings > Organization Details > Organization slug) organization_id = "nknnyrtlhxudbsbuazsu" name = "tf-project" database_password = "tf-example" region = "ap-southeast-1"}# Configure api settings for the linked projectresource "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 })}