SuperAPI AI 工具集

supabase-reference-architecture

通用与其它

查看项目

更新于 10-16 06:20

技能介绍

用途:为生产级 Supabase 应用提供五种企业架构模式,可按规模单独选用。

主要能力:monorepo 中通过共享包提供单例客户端与类型化数据库访问;基于 JWT 自定义声明 org_id 的多租户 RLS 隔离,无需应用层过滤;微服务使用独立 Supabase 项目并支持跨项目访问;Next.js 服务端/客户端拆分与 SvelteKit hooks 集成;边缘函数、缓存、队列、审计等运维模式。

使用方式:需安装 @supabase/supabase-js v2+(npm install @supabase/supabase-js)与 Supabase CLI(npm install -g supabase),并具备 Supabase 项目及 PostgreSQL 基础。核心步骤包括:在 packages/supabase 中创建共享客户端与仅服务端使用的 admin 客户端(admin 设置 autoRefreshToken: false、persistSession: false);为租户表添加 org_id 列并启用 RLS,策略使用 org_id = (auth.jwt() ->> 'org_id')::uuid;通过 set_tenant_claim 函数校验成员身份后写入声明,再调用 supabase.auth.refreshSession() 刷新会话;Next.js 服务端组件用 service_role key 并转发 cookie,客户端组件用 anon key。

适用场景:需要多租户隔离、共享类型与集中迁移的 monorepo、微服务架构及主流框架集成的 Supabase 项目。

限制:需自行准备环境变量与项目;租户切换需重新认证;pg_cron 需在控制台启用;性能调优、CI 集成与安全加固需参考其他技能。部分细节(如 SvelteKit 完整示例、队列消费者)资料未完整提供。