supabase

package
v0.11.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 9, 2026 License: MIT Imports: 8 Imported by: 0

Documentation

Overview

Package supabase provides Supabase Platform integration for pgsquash. It handles auth.uid(), RLS policies, Storage bucket policies, and Realtime publications.

Index

Constants

View Source
const (
	AuthPatternSupabase        = "supabase_auth"    // Supabase auth.uid() patterns
	AuthPatternSupabaseRLS     = "supabase_rls"     // RLS policies with auth.uid()
	AuthPatternSupabaseStorage = "supabase_storage" // Storage bucket policies
)

Supabase-specific auth pattern identifiers

Variables

This section is empty.

Functions

This section is empty.

Types

type SupabaseConfig

type SupabaseConfig struct {
	Enabled            bool   `json:"enabled"`
	JWTSecret          string `json:"jwt_secret"`
	EnableRLS          bool   `json:"enable_rls"`
	StorageIntegration bool   `json:"storage_integration"`
}

SupabaseConfig holds Supabase-specific configuration

type SupabasePlugin

type SupabasePlugin struct {
	*plugins.BasePlugin
	// contains filtered or unexported fields
}

SupabasePlugin implements Supabase Platform integration

func NewSupabasePlugin

func NewSupabasePlugin() *SupabasePlugin

NewSupabasePlugin creates a new Supabase plugin instance

func (*SupabasePlugin) Detect

func (sp *SupabasePlugin) Detect(migrations []*types.Migration) bool

Detect checks if migrations contain Supabase patterns Detection patterns (in order of specificity):

  1. auth.uid() function calls (most specific to Supabase)
  2. auth.users table references
  3. storage.objects or storage.buckets tables
  4. supabase_realtime publication

func (*SupabasePlugin) DetectAuthPattern

func (sp *SupabasePlugin) DetectAuthPattern(stmt *types.Statement) string

DetectAuthPattern analyzes a statement for Supabase authentication patterns

func (*SupabasePlugin) DetectPatterns

func (sp *SupabasePlugin) DetectPatterns(sql string) []plugins.Pattern

DetectPatterns analyzes SQL for Supabase-specific patterns

func (*SupabasePlugin) EnrichStatement

func (sp *SupabasePlugin) EnrichStatement(ctx context.Context, stmt *types.Statement) error

EnrichStatement adds Supabase-specific metadata to parsed statements

func (*SupabasePlugin) FixFunctionVolatility

func (sp *SupabasePlugin) FixFunctionVolatility(ctx context.Context, functionSQL string) (string, error)

FixFunctionVolatility adds STABLE markers to Supabase auth functions Uses AST-based parsing for more accurate and maintainable transformations

func (*SupabasePlugin) GetConflictingPlugins

func (sp *SupabasePlugin) GetConflictingPlugins() []string

GetConflictingPlugins returns plugins that conflict with Supabase

func (*SupabasePlugin) GetConsolidationRules

func (sp *SupabasePlugin) GetConsolidationRules() []plugins.ConsolidationRule

GetConsolidationRules returns Supabase-specific consolidation rules

func (*SupabasePlugin) GetRequiredExtensions

func (sp *SupabasePlugin) GetRequiredExtensions() []string

GetRequiredExtensions returns PostgreSQL extensions required by Supabase

func (*SupabasePlugin) Initialize

func (sp *SupabasePlugin) Initialize(ctx context.Context, config any) error

Initialize configures the Supabase plugin with service-specific settings

func (*SupabasePlugin) InjectCompatibilityLayer

func (sp *SupabasePlugin) InjectCompatibilityLayer(ctx context.Context) string

InjectCompatibilityLayer returns SQL to mock Supabase authentication for validation This creates:

  • auth schema
  • auth.users table (stub for foreign key references)
  • Supabase roles (anon, authenticated, service_role)
  • Mock auth.uid() function
  • Mock auth.jwt() function
  • Supabase Realtime publication

func (*SupabasePlugin) ShouldPreserve

func (sp *SupabasePlugin) ShouldPreserve(stmt *types.Statement) bool

ShouldPreserve determines if a statement should never be consolidated

func (*SupabasePlugin) TransformSQL

func (sp *SupabasePlugin) TransformSQL(ctx context.Context, sql string) (string, error)

TransformSQL performs Supabase-specific SQL transformations Currently delegates to FixFunctionVolatility

func (*SupabasePlugin) ValidateSchema

func (sp *SupabasePlugin) ValidateSchema(ctx context.Context, db *sql.DB) error

ValidateSchema performs Supabase-specific schema validation

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL