用途:convex-authz 是聚焦授权(authz)的专项审计与加固流程,只处理 Convex 应用中的授权缺陷,不做通用代码审查。
主要能力:先用确定性的正则扫描定位四类缺陷——(a) 公开 query/mutation 的 args 中声明 userId/actorId/ownerId 等 v.id(...) 且整块无 ctx.auth 引用,即身份来自参数可被冒用;(b) 处理函数用 ctx.db.get(args.xId) 加载文档后 patch/delete/replace 或直接返回字段,却无所有权比较;(c) 公开 query 按客户端传入 id 返回 email、revenue、ssn 等敏感字段且无 ctx.auth 门控;(d) 公开 mutation 将子行插入/移动进某父容器(projectId、teamId 等)时未验证调用者是否拥有该父文档。
使用方式:第一步必须确认授权基础是否存在——是否有带 provider 的 auth.config.ts,以及以认证主体(tokenIdentifier/identity.subject)为键的 users/identities 表。两者均具备时,按已有规范模式(requireIdentity/requireOwner)逐条加固,随后运行 npx tsc --noEmit 或项目类型检查脚本验证,并重跑扫描确认无残留命中。若缺少任一基础,不要注入 ctx.auth 强制检查(此时 ctx.auth.getUserIdentity() 返回 null,检查无效或误比较),而应将特权函数改为 internalQuery/internalMutation,并提示用户先完成认证设置后重跑。
适用场景:已使用 Convex 的项目中的授权缺陷排查与修复。限制:项目无 convex/ 目录时整体跳过;不扩展到性能、schema 或校验器问题;只为资料中出现的能力,具体安装与调用命令暂未提供。