Convex 开发技能面向使用 Convex 后端平台的开发工作,围绕查询、变更、动作、Schema、索引、实时订阅、乐观更新、文件存储、HTTP 端点、Webhook 等主题提供指导。
用途与工作流 该技能按开发流程组织内容,覆盖从项目启动到上线审查的多个环节:
- 启动项目:查看结构、类型与验证器的模式。
- 数据库查询:查看索引、过滤与性能相关内容。
- 动作与调度:查看外部 API 与事务相关内容。
- 实时功能:查看订阅与乐观更新。
- HTTP 端点:查看 Webhook、REST 与 CORS。
- 文件处理:查看上传与文件服务。
- 后台任务:查看定时函数(cron)。
- Schema 变更:查看数据迁移(migrations)。
- AI 集成:查看 LLM 对话、RAG 与工具调用(agents)。
- 安全:查看认证、ConvexError、ESLint 与访问控制。
- 代码审查:查看生产就绪检查清单(review)。
- 组件:查看可复用的 Convex 包(components)。
convex-helpers(npm 包) 技能还涵盖 convex-helpers 的辅助能力:
- 自定义函数与 Zod:中间件、认证包装器、Zod 验证(helpers-functions)。
- 数据辅助:关系、CRUD、触发器、过滤、分页(helpers-data)。
- 安全辅助:RLS、限流、会话、CORS(helpers-security)。
- 异步辅助:workpool、动作重试、迁移(helpers-async)。
- 验证辅助:验证器工具、Standard Schema、代码生成(helpers-validation)。
- 集成辅助:Hono、查询缓存、useQuery、QueryStreams(helpers-integrations)。
关键原则
- 每个函数都要定义 args 和 returns 验证器。
- 使用带结构化错误码的 ConvexError,而不是普通 Error。
- 数据库查询使用 .withIndex() 而非 .filter()。
- 调度和 ctx.run* 调用使用 internal.(不要用 api.)。
- 仅在需要 Node.js API 时使用 "use node";。
- 业务逻辑放在 convex/model/ 辅助函数中,公共 API 保持薄包装。
- 始终 await Promise(ctx.db.、ctx.scheduler.)。
- 安装 @convex-dev/eslint-plugin 进行构建时验证。
按优先级划分的规则类别
- 安全(CRITICAL,前缀 security-)
- security-auth-check:公共函数中始终检查认证。
- security-internal-functions:调度和 ctx.run 调用使用内部函数。
- security-row-level-access:变更前验证行级所有权。
- security-convex-error:使用 ConvexError 而非普通 Error。
- security-rate-limiting:为公共变更实现限流。
- security-table-name:在 ctx.db 调用中包含表名。
- 验证(HIGH,前缀 validation-)
- validation-return-types:函数始终定义返回验证器。
- 性能(HIGH,前缀 performance-)
- performance-no-filter:查询使用 .withIndex() 而非 .filter()。
- performance-bounded-collect:仅在结果集有界时使用 .collect()。
- performance-no-date-now:查询函数中不要使用 Date.now()。
- 代码质量(MEDIUM,前缀 code-quality-)
- code-quality-await-promises:始终 await 异步操作。
使用方式 阅读各规则文件获取详细说明与代码示例,例如 rules/security-auth-check.md、rules/performance-no-filter.md。每个规则文件包含:为什么重要、错误代码示例及说明、正确代码示例及说明。
适用场景与限制 该技能适用于使用 Convex 进行后端开发的各类场景,包括数据库操作、实时功能、文件存储、HTTP 端点、后台任务、AI 集成与安全审查等。资料未提供具体的收费、价格、平台支持范围或效果数据,相关事实暂未提供。