SuperAPI AI 工具集

convex-helpers-patterns

安全与审计

查看项目

更新于 10-16 02:39

技能介绍

用途:本技能面向 Convex 后端开发,讲解 convex-helpers 库中经过验证的常用模式,帮助实现自动副作用、声明式访问控制、关系遍历、可复用鉴权包装、限流与并发控制。

安装:npm install convex-helpers @convex-dev/workpool

主要能力:

  1. Triggers:在文档变更时自动执行代码,与 mutation 处于同一事务,可计算派生字段、维护计数、级联删除。注意写入热点文档(如全局计数器)会引发 OCC 冲突,需分片或 Workpool。
  2. Row-Level Security:在数据库层声明式控制读写,通过 wrapDatabaseReader / wrapDatabaseWriter 包装 db,规则按表定义 read、insert、modify。
  3. Relationship helpers:getAll、getOneFrom、getManyFrom、getManyVia 简化一对一、一对多、多对多(连接表)查询。
  4. Custom Functions:customQuery / customMutation 创建带鉴权、角色校验的包装函数,ctx 中可注入 user。
  5. Workpool:通过 @convex-dev/workpool 组件限制并行度,序列化冲突写入或限制并发处理。
  6. Rate Limiter:应用层限流,支持全局与按用户令牌桶配置。

使用方式:在 convex/functions.ts 中注册触发器或 RLS 规则,导出包装后的 query/mutation 供业务文件使用;Workpool 需在 convex.config.ts 中 app.use(workpool, { name: "workpool" })。

限制:代码库启用 @typescript-eslint/no-explicit-any,禁止使用 any,否则构建失败。触发器内写热点文档易冲突。资料未提供价格、平台支持范围等更多信息。