用途
Supabase Expert 是一个覆盖 Supabase 全栈开发的技能,适用于用户在提出创建 Supabase 表、编写 RLS 策略、设置 Supabase Auth、创建 Edge Functions、配置存储等需求时使用。它为数据库操作、认证、存储、边缘函数以及 Next.js 集成提供综合性指导,并强调安全模式、性能优化和现代最佳实践。
主要能力与规则
该技能围绕若干关键规则展开:
- API 密钥(新系统):Supabase 现提供两类密钥。Publishable 密钥(前缀
sb_publishable_...)适用于客户端(浏览器、移动端、CLI);Secret 密钥(前缀sb_secret_...)仅限后端(服务器、边缘函数)。旧版 anon 与 service_role 为基于 JWT 的密钥,正在被弃用。Secret 密钥在浏览器中使用会返回 HTTP 401;新密钥支持独立轮换且无停机;应尽可能从旧密钥迁移。 - 认证 SSR 规则:不得使用已弃用的单独 cookie 方法(
get()、set()、remove())以及@supabase/auth-helpers-nextjs包。应始终使用@supabase/ssr包,cookie 方法仅用getAll()和setAll()。Proxy(原 Middleware)必须调用getUser()刷新会话,并必须返回supabaseResponse对象。Next.js 16+ 起使用proxy.ts替代middleware.ts。 - RLS 策略规则:函数始终包裹在 SELECT 中,如
(SELECT auth.uid());SELECT 仅用 USING;INSERT 仅用 WITH CHECK;UPDATE 同时使用 USING 和 WITH CHECK;DELETE 仅用 USING;始终指定TO authenticated或TO anon;为策略中涉及的所有列创建索引;不使用FOR ALL,而是创建 4 条独立策略。 - 数据库函数规则:默认使用
SECURITY INVOKER;始终设置search_path = '';使用完全限定名(public.table_name);指定正确的易变性(IMMUTABLE/STABLE/VOLATILE);避免SECURITY DEFINER,除非绝对必要。 - 边缘函数规则:使用
Deno.serve;导入始终带版本号的npm:/jsr:/node:前缀;共享代码放入_shared/文件夹;仅写入/tmp目录;不使用裸说明符或跨函数依赖。 - 存储规则:在存储桶上启用 RLS;私有内容使用签名 URL;通过 URL 参数应用图片变换;公共资源利用 CDN。
工作流决策树
技能提供一个决策树:当用户提及数据库或 Supabase 工作时,根据具体任务导向不同工作流——创建新表用 Table Creation Workflow;创建 RLS 策略用 RLS Policy Workflow;创建数据库函数用 Database Function Workflow;设置 Auth 用 Auth SSR Workflow;创建 Edge Function 用 Edge Function Workflow;设置 Storage 用 Storage Workflow;Next.js 集成用 Next.js Patterns;API 密钥问题用 API Keys Guide。
使用方式
技能包含可直接参考的代码模板与快速参考,例如:
- 建表模板:包含
id UUID PRIMARY KEY DEFAULT gen_random_uuid()、created_at/updated_at(TIMESTAMPTZ)、created_by、启用 RLS、创建索引等步骤,并使用 snake_case 命名。 - Auth SSR 快速参考:浏览器客户端使用
createBrowserClient,服务器客户端使用createServerClient,并提供 proxy.ts 的完整示例(必须调用getUser()并返回supabaseResponse)。 - RLS 策略快速参考:给出各操作所需的 USING 与 WITH CHECK 对照表及示例策略。
- Storage 快速参考:创建桶的 SQL、存储策略示例与图片变换 URL 格式。
- Edge Function 快速参考:
Deno.serve示例,含 CORS 处理、用户范围客户端与管理客户端说明。
此外还提供 PostgreSQL 风格指南(关键字小写、表名复数、列名单数、模式前缀、表注释、ISO 8601 日期)以及任何 Supabase 工作前的预检清单。
适用场景
适用于使用 Supabase 进行应用开发的各类任务:设计数据库表结构、编写安全的 RLS 策略、实现 SSR 认证、创建边缘函数、配置存储桶与访问策略、Next.js 项目集成,以及处理新旧 API 密钥迁移等。
参考资源
技能包含多个按需加载的参考文件:references/api-keys.md、references/storage-patterns.md、references/nextjs-caveats.md、references/sql-templates.md、references/rls-policy-patterns.md、references/auth-ssr-patterns.md、references/edge-function-templates.md。认证方面支持 20+ OAuth 提供商,包括 Google、GitHub、GitLab、Bitbucket、Apple、Microsoft、Facebook、Twitter、Discord、Slack、Spotify、Twitch、LinkedIn、Notion、Figma、Zoom,以及电话认证、匿名登录和企业 SSO(SAML)。
限制
资料未提供该技能的收费、价格、平台兼容范围、性能效果或使用步骤的详细信息。技能版本为 2.0.0,最后更新于 2025-01-01,文档地址为 https://supabase.com/docs。