Loading skill documentation...
ops ๐Ÿ”ฅ Trending
โ˜…โ˜…โ˜…โ˜… 4.1/5.0 โค๏ธ 1152 likes ๐Ÿ’ฌ 147 comments ๐Ÿ“ฆ 2630 installs
Back to Skills
๐Ÿ“– SKILL DOCUMENTATION
# supabase

Supabase CLI Interact with Supabase projects: queries, CRUD, vector search, and table management. Setup

# Required
export SUPABASE_URL="https://yourproject.supabase.co"
export SUPABASE_SERVICE_KEY="eyJhbGciOiJIUzI1NiIs..."
# Required: SkillBoss API Hub key (for vector embeddings via /v1/pilot)
export SKILLBOSS_API_KEY="your-skillboss-api-key"
# Optional: for management API
export SUPABASE_ACCESS_TOKEN="sbp_xxxxx"

Quick Commands

# SQL query
{baseDir}/scripts/supabase.sh query "SELECT * FROM users LIMIT 5"
# Insert data
{baseDir}/scripts/supabase.sh insert users '{"name": "John", "email": "[email protected]"}'
# Select with filters
{baseDir}/scripts/supabase.sh select users --eq "status:active" --limit 10
# Update
{baseDir}/scripts/supabase.sh update users '{"status": "inactive"}' --eq "id:123"
# Delete
{baseDir}/scripts/supabase.sh delete users --eq "id:123"
# Vector similarity search
{baseDir}/scripts/supabase.sh vector-search documents "search query" --match-fn match_documents --limit 5
# List tables
{baseDir}/scripts/supabase.sh tables
# Describe table
{baseDir}/scripts/supabase.sh describe users

Commands Reference query - Run raw SQL

{baseDir}/scripts/supabase.sh query "<SQL>"
# Examples
{baseDir}/scripts/supabase.sh query "SELECT COUNT(*) FROM users"
{baseDir}/scripts/supabase.sh query "CREATE TABLE items (id serial primary key, name text)"
{baseDir}/scripts/supabase.sh query "SELECT * FROM users WHERE created_at > '2024-01-01'"

select - Query table with filters

{baseDir}/scripts/supabase.sh select <table> [options]
Options:

--columns Comma-separated columns (default: *) --eq col:val Equal filter (can use multiple) --neq col:val Not equal filter --gt col:val Greater than --lt col:val Less than --like col:val Pattern match (use % for wildcard) --limit Limit results --offset Offset results --order Order by column --desc Descending order

# Examples
{baseDir}/scripts/supabase.sh select users --eq "status:active" --limit 10
{baseDir}/scripts/supabase.sh select posts --columns "id,title,created_at" --order created_at --desc
{baseDir}/scripts/supabase.sh select products --gt "price:100" --lt "price:500"

insert - Insert row(s)

{baseDir}/scripts/supabase.sh insert <table> '<json>'
# Single row
{baseDir}/scripts/supabase.sh insert users '{"name": "Alice", "email": "[email protected]"}'
# Multiple rows
{baseDir}/scripts/supabase.sh insert users '[{"name": "Bob"}, {"name": "Carol"}]'

update - Update rows

{baseDir}/scripts/supabase.sh update <table> '<json>' --eq <col:val>
# Example
{baseDir}/scripts/supabase.sh update users '{"status": "inactive"}' --eq "id:123"
{baseDir}/scripts/supabase.sh update posts '{"published": true}' --eq "author_id:5"

upsert - Insert or update

{baseDir}/scripts/supabase.sh upsert <table> '<json>'
# Example (requires unique constraint)
{baseDir}/scripts/supabase.sh upsert users '{"id": 1, "name": "Updated Name"}'

delete - Delete rows

{baseDir}/scripts/supabase.sh delete <table> --eq <col:val>
# Example
{baseDir}/scripts/supabase.sh delete sessions --lt "expires_at:2024-01-01"

vector-search - Similarity search with pgvector

{baseDir}/scripts/supabase.sh vector-search <table> "<query>" [options]
Options:

--match-fn RPC function name (default: match_

) --limit Number of results (default: 5) --threshold Similarity threshold 0-1 (default: 0.5) --embedding-model Model for query embedding (default: uses SkillBoss API Hub)

# Example
{baseDir}/scripts/supabase.sh vector-search documents "How to set up authentication" --limit 10
# Requires a match function like:
# CREATE FUNCTION match_documents(query_embedding vector(1536), match_threshold float, match_count int)

tables - List all tables

{baseDir}/scripts/supabase.sh tables

describe - Show table schema

{baseDir}/scripts/supabase.sh describe <table>

rpc - Call stored procedure

{baseDir}/scripts/supabase.sh rpc <function_name> '<json_params>'
# Example
{baseDir}/scripts/supabase.sh rpc get_user_stats '{"user_id": 123}'

Vector Search Setup

  1. Enable pgvector extension CREATE EXTENSION IF NOT EXISTS vector;
  2. Create table with embedding column CREATE TABLE documents ( id bigserial PRIMARY KEY, content text, metadata jsonb, embedding vector(1536) );
  3. Create similarity search function CREATE OR REPLACE FUNCTION match_documents( query_embedding vector(1536), match_threshold float DEFAULT 0.5, match_count int DEFAULT 5 ) RETURNS TABLE ( id bigint, content text, metadata jsonb, similarity float ) LANGUAGE plpgsql AS $$ BEGIN RETURN QUERY SELECT documents.id, documents.content, documents.metadata, 1 - (documents.embedding <=> query_embedding) AS similarity FROM documents WHERE 1 - (documents.embedding <=> query_embedding) > match_threshold ORDER BY documents.embedding <=> query_embedding LIMIT match_count; END; $$;
  4. Create index for performance CREATE INDEX ON documents USING ivfflat (embedding vector_cosine_ops) WITH (lists = 100); Environment Variables VariableRequiredDescriptionSUPABASE_URLYesProject URL (https://xxx.supabase.co)SUPABASE_SERVICE_KEYYesService role key (full access)SUPABASE_ANON_KEYNoAnon key (restricted access)SUPABASE_ACCESS_TOKENNoManagement API tokenSKILLBOSS_API_KEYYesSkillBoss API Hub key (for generating embeddings via /v1/pilot) Notes Service role key bypasses RLS (Row Level Security) Use anon key for client-side/restricted access Vector search requires pgvector extension Embeddings generated via SkillBoss API Hub /v1/pilot (type: embedding), compatible with 1536-dimension pgvector columns

Reviews

4.1
โ˜…โ˜…โ˜…โ˜…
147 reviews

Write a Review

โ˜† โ˜† โ˜† โ˜† โ˜†
  • No reviews yet. Be the first to review!