用途:该技能用于处理任何涉及 Supabase 的任务,触发范围包括 Database、Auth、Edge Functions、Realtime、Storage、Vectors、Cron、Queues 等产品及客户端相关操作。
主要能力与原则:Supabase 变化频繁,不应依赖训练数据,需先获取 https://supabase.com/changelog.md 扫描破坏性变更,再按文档访问方式查证;实现后要运行测试查询验证;同一方法失败 2-3 次应停止并换思路,必要时查看日志。
安全要点:暴露 schema 中的每张表都应启用 RLS;新建表可能不会自动暴露给 Data API,需显式 GRANT,且授予 anon/authenticated 访问时必须同时启用 RLS。不要用 user_metadata 做授权判断,应使用 raw_app_meta_data/app_metadata;删除用户不会使已有令牌失效;不要在前端暴露 service_role 或 secret key。视图默认绕过 RLS,Postgres 15+ 可用 CREATE VIEW ... WITH (security_invoker = true)。UPDATE 需要 SELECT 策略,且 UPDATE 策略需同时有 USING 与 WITH CHECK。auth.role() 已弃用,改用 TO authenticated/TO anon,并配合所有权谓词。SECURITY DEFINER 会绕过 RLS,不应为修复权限错误而添加。Storage upsert 需要 INSERT + SELECT + UPDATE。安装 Supabase 包时应固定版本并提交 lockfile。
使用方式:CLI 命令应通过 --help 发现,不要猜测。supabase db query 需 CLI v2.79.0+,supabase db advisors 需 v2.81.3+,否则可用 MCP execute_sql 或 get_advisors 回退。MCP 连接排查依次检查服务器可达性(curl -so /dev/null -w "%{http_code}" https://mcp.supabase.com/mcp,401 属正常)、.mcp.json 配置、OAuth 2.1 认证。文档优先用 MCP search_docs,也可在文档 URL 后加 .md 获取 Markdown。
Schema 变更:若存在 supabase/schemas/ 或 config.toml 设置 schema_paths,走声明式流程;否则用 execute_sql 或 supabase db query 迭代,不要用 apply_migration 改本地 schema。提交时先跑 advisors,再执行 supabase db pull <descriptive-name> --local --yes,最后用 supabase migration list --local 验证。
限制:资料未提供具体价格、平台支持范围或效果数据;遇到错误应先查阅 Supabase 监控与调试文档,而非凭记忆诊断。