Supabase

Supabase

Automate database operations with Supabase and emma

With emma's Supabase integration, you can directly interact with your Supabase database. Manage tables, query data, and perform CRUD operations through automated workflows.

Features

Supabase_Operator supports the following 9 tools:

CategoryTools
Read Operations5
Tool NameDescription
supabase_list_tablesGet a list of tables in the database
supabase_get_schemaGet the schema (structure) of a specific table
supabase_selectRetrieve data from a table (supports filtering, sorting, pagination)
supabase_countCount rows in a table (supports filtering)
supabase_rpcCall PostgreSQL RPC functions
Write Operations4
Tool NameDescription
supabase_insertInsert new rows into a table
supabase_updateUpdate rows matching a condition
supabase_upsertInsert a row, or update if it exists
supabase_deleteDelete rows matching a condition

Main Parameters

ParameterDescription
tableName of the target table
columnsColumns to select (array of column names)
filterFilter conditions for the query
orderSort order (column and direction)
limitMaximum number of rows to return
offsetNumber of rows to skip (for pagination)
dataData object for insert/update operations

API Key Types and Permissions

Supabase offers two types of API keys. The operations you can perform depend on which key you use.

Anon Key

A public key with Row Level Security (RLS) applied.

  • Read operations allowed
  • Access restricted by RLS policies
  • Cannot write/delete unless RLS allows

Service Role Key

A secret admin key that bypasses RLS.

  • Full access to all tables
  • Bypasses RLS for direct operations
  • Use only server-side, never expose publicly

Prerequisites

  • emma account
  • Supabase account
  • Supabase project with database
  • Supabase URL and anon/service key

Setup

1. Install the package

npm install @duzzle/supabase-integration

2. Initialize

import { DuzzleSupabase } from '@duzzle/supabase-integration';

const supabase = new DuzzleSupabase({
  apiKey: process.env.DUZZLE_API_KEY,
  supabaseUrl: process.env.SUPABASE_URL,
  supabaseKey: process.env.SUPABASE_ANON_KEY
});

3. Select Data

// Select data from a table with filters
const { data, error } = await supabase.select({
  table: 'users',
  columns: ['id', 'name', 'email', 'created_at'],
  filter: { status: 'active' },
  order: { column: 'created_at', ascending: false },
  limit: 10
});

console.log('Users:', data);

4. Insert Data

// Insert new data into a table
const { data, error } = await supabase.insert({
  table: 'posts',
  data: {
    title: 'New Post',
    content: 'This is the content of the post',
    author_id: 'user-123',
    published: true
  }
});

console.log('Inserted:', data);

© 2026 Duzzle Inc. All rights reserved.