supabase

Enforce Row Level Security and authenticated access across Supabase tables, APIs, and Edge Functions.

44|9|Updated May 7, 2026
One-click install
npx skills add https://github.com/Omar-Obando/qwen-orchestrator --skill supabase-omar-obando
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: supabase
Source: https://github.com/Omar-Obando/qwen-orchestrator/tree/main/skills/supabase
Command: npx skills add https://github.com/Omar-Obando/qwen-orchestrator --skill supabase-omar-obando

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Building Supabase backends securely is hard because authorization must be enforced consistently across SQL tables, API access, auth contexts, and server-side logic.

Core Features & Use Cases

  • Row Level Security (RLS) by default: Enforces per-user and per-team access at the database layer to prevent accidental data leaks.
  • Edge Functions with authenticated context: Implements server logic in Deno using the caller’s JWT so RLS rules remain effective.
  • Auto-generated APIs and typed data: Uses PostgREST and generated TypeScript types to reduce boilerplate and improve correctness.
  • Real-time subscriptions and storage access: Supports database change streams plus bucket policies for controlled file operations.

Use case example: you need a multi-tenant app where users can only read and write their own records, trigger server-side workflows for orders, and update clients in real time when their data changes.

Quick Start

Use the supabase skill to design RLS policies for every public table and implement an authenticated Edge Function that updates only rows belonging to the caller.

Frequently Asked Questions about supabase

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I enforce Row Level Security in Supabase for multi-tenant authorization?

Enforce Row Level Security in Supabase by enabling RLS on all public tables and writing least-privilege policies using auth.uid(). This ensures users can only read and write their own records, preventing accidental data leaks at the database layer.

How do I create Supabase clients with JWT authentication for secure API access?

Create Supabase clients with global Authorization headers to propagate JWT authentication context. This ensures that authenticated access is enforced consistently across auto-generated PostgREST endpoints, typed CRUD operations, and real-time subscriptions.

How do I verify JWT tokens in Supabase Edge Functions using Deno?

Verify JWT tokens in Supabase Edge Functions by implementing server logic in the Deno runtime that validates the caller's JWT. This preserves the authenticated context so database RLS rules remain effective during server-side workflows.

Can I manage storage bucket policies and realtime subscriptions securely in Supabase?

Securely manage storage bucket policies and realtime subscriptions in Supabase by defining controlled file operation governance and database change streams. This requires handling realtime, storage, and migrations safely alongside RLS policies.

What's the best way to prevent data leaks across Supabase APIs and database tables?

Prevent data leaks across Supabase APIs and database tables by enforcing RLS by default on every public table and defining least-privilege policies. This secures authorization consistently across SQL tables, API access, and server-side logic.

Do I need to enable RLS on all public tables to secure a Supabase backend?

Yes, you need to enable RLS on all public tables to secure a Supabase backend. This is a strict requirement to enforce per-user and per-team access at the database layer, mitigating the difficulty of consistent authorization across API contexts.