Supabase Ops

🐘 Next.js 全栈数据库安全运维专家

基于 Supabase CLI 的数据库迁移、RLS 策略、Edge Functions 与类型生成的全栈运维工具,适合 Next.js 项目。

收藏
9.8k
安装
2.6k
版本
0.1.0
CLS 安全性认证2026-08-03
点击查看完整报告 >

使用说明

核心用法

Supabase Ops 是一款面向 Next.js 项目的专业数据库运维技能,通过 Supabase CLI 自动化管理 PostgreSQL 迁移、类型生成、RLS 策略配置及 Edge Functions 部署。其核心工作流遵循"规划-执行-验证-提交"的严格协议,确保每一次 schema 变更都可追溯、可回滚。

关键能力矩阵

| 功能 | 实现方式 | 安全机制 |
|------|---------|---------|
| 迁移管理 | `supabase/migrations/` 时间戳命名规范 | 强制 dry-run 预览、破坏性操作确认 |
| RLS 策略 | 预定义模板(owner/team/public 模式) | 强制启用 RLS 检查 |
| 类型生成 | `supabase gen types typescript` | 自动同步到 `src/lib/supabase/types.ts` |
| Edge Functions | Deno Runtime + JS 模板 | Service Role Key 仅用于服务端 |

强制性规划协议

所有操作前必须完成六步规划:需求理解 → 现状调查 → 执行计划 → 风险识别 → 顺序执行 → 变更总结。这一设计将人为失误降至最低,尤其针对 DROPALTER COLUMN 等破坏性操作要求备份迁移与用户显式确认。

显著优点

1. 企业级安全范式:强制 RLS、禁止客户端使用 Service Role Key、timestamptz 标准化等规则内置,避免常见配置错误。
2. 类型安全闭环:每次迁移后自动更新 TypeScript 类型,消除前后端类型漂移风险。

3. 生产环境防护db reset 生产阻断、dry-run 强制预览、破坏性操作分级确认,三层防护机制。

4. 模式化效率:提供 owner-only、team-based、public-read-owner-write 三类 RLS 模板,覆盖 90% 业务场景。

局限性与风险

  • CLI 依赖深度:需本地安装 Supabase CLI 并保持版本同步,容器化/CI 环境需额外配置。
  • Deno 生态壁垒:Edge Functions 强制 Deno Runtime,与 Node.js 包生态存在兼容成本。
  • 迁移冲突处理:多人协作时若绕过 CLI 直接修改数据库,可能导致迁移状态不一致,需严格 Git 工作流配合。
  • Service Role Key 泄露风险:虽然规则禁止客户端使用,但开发过程中仍需警惕 .env 文件意外提交。

适用人群

  • 使用 Next.js + Supabase 的全栈开发者
  • 需要严格数据库变更审计的中小型团队
  • 追求 TypeScript 端到端类型安全的项目

常规风险提示

S 级(高)SUPABASE_SERVICE_ROLE_KEY 拥有数据库超级权限,一旦泄露可导致全表数据暴露。技能虽通过 CLI 隔离读取 .env,但开发者仍需确保密钥存储安全(如 Vault、CI Secrets)。A 级db reset 在开发环境会清空数据,生产环境虽被阻断,但误操作 staging 环境仍可能造成数据丢失。

安全解读

核心用法

Supabase Ops 是一款面向 Next.js 开发者的数据库运维指导技能,专注于 Supabase + PostgreSQL 技术栈的全生命周期管理。该技能通过严格的 Planning Protocol 强制开发者在执行任何数据库操作前完成六个规划步骤:理解需求、调研当前 Schema、制定执行计划、识别风险、顺序执行、总结报告。

技能覆盖四大核心场景:数据库迁移管理(Migrations)、类型安全生成(Type Generation)、行级安全策略(RLS Policies)和边缘函数(Edge Functions)。所有操作均通过 npx supabase CLI 完成,避免直接读取 .env 文件,确保凭证安全。

显著优点

极致安全性:该技能为纯 Markdown 文档型工具,无可执行代码,从根本上消除了代码注入风险。强制要求所有表启用 RLS、使用 timestamptz 时间戳、外键明确声明 on delete 行为,并内置生产环境 dry-run 机制。

开发体验优化:提供标准化的迁移文件命名规范(YYYYMMDDHHMMSS_description.sql)、预置的 RLS 策略模板(Owner-only/Team-based/Public read 三种模式),以及完整的 Edge Function Deno 模板,显著降低配置成本。

类型安全闭环:每次 Schema 变更后自动触发 TypeScript 类型再生,确保数据库层与前端代码的类型一致性,减少运行时错误。

潜在局限性

依赖外部 CLI:所有功能依赖用户本地已安装 npx supabase,若 CLI 版本过旧或配置不当,可能导致命令失败。

纯文档无自动化:作为指导型技能,不提供自动执行能力,开发者仍需手动复制粘贴 SQL 和命令,在复杂迁移场景下效率有限。

Next.js 场景绑定:RLS 策略和类型生成路径(src/lib/supabase/types.ts)针对 Next.js 项目结构优化,对其他框架支持有限。

适合人群

  • 使用 Supabase + Next.js 技术栈的全栈开发者
  • 需要规范数据库变更流程的小型团队技术负责人
  • 重视类型安全和 RLS 合规的 SaaS 产品开发者
  • 希望学习 Supabase 最佳实践的初学者

使用风险

性能风险CREATE INDEX CONCURRENTLY 虽避免锁表,但在大表场景下仍可能消耗大量 I/O 资源;生产环境执行前需评估数据库负载。

凭证管理风险:尽管技能声明不读取 .env 文件,但用户若错误配置 SUPABASE_SERVICE_ROLE_KEY 环境变量,仍可能导致权限泄露。

迁移冲突风险:多人协作时若未遵循 Git 工作流管理 supabase/migrations/ 目录,可能产生迁移文件时间戳冲突。

Deno 生态风险:Edge Functions 依赖 Deno 运行时,部分 npm 包存在兼容性问题,需额外验证依赖可用性。

Supabase Ops 内容

手动下载zip · 3.5 kB
claw.jsonapplication/json
请选择文件