用途:Convex 项目通常同时存在多个部署(个人 dev、preview、prod,且一台机器上可能有多个项目),多数事故源于命令打到了错误目标。本守卫是一项常驻纪律:先识别、再宣告、后执行,并把 prod 视为需按操作、按会话逐次授权的对象。它本身不是部署工具,而是被 ship、env、migrate、seed 等作为第 0 步调用的组合式守卫。
主要能力:1)执行前识别目标,读取 .env.local 中的 CONVEX_DEPLOYMENT、convex.json,以及 CONVEX_DEPLOY_KEY 是否设置,或调用官方 Convex MCP 状态工具,将目标分类为 local-anonymous、dev、preview、prod;若两个来源不一致,先解决再继续。2)在任何影响部署的命令前用一行宣告目标,例如 target: dev (joyful-capybara-123, personal dev),不得与发现目标同时执行命令。3)prod 需要本次会话中的全新明确同意:对解析到 prod 的 npx convex deploy、npx convex run --prod、在 prod 上 env set、prod 上快照导入导出、或以 prod 访问权限启动 MCP,都需说明将改什么、改在哪个部署,并取得显式同意;此前给出或针对其他目标的同意不适用。4)MCP 安全默认:以非 prod 范围启动官方 MCP(--deployment dev);两个 prod 标志按风险拆分——只读 prod 审计只用 --cautiously-allow-production-pii(读工具),启用可变 prod 工具的 --dangerously-enable-production-deployments 默认关闭,除非用户本会话明确要求变更 prod;不得默认同时开启。5)只读会话模式:用户表示 read-only 或不要改动后,本会话绝对生效,不部署、不 env set/remove、不通过 run 变更、不导入,并以 --disable-tools run,envSet,envRemove 启动 MCP。6)错误部署诊断:部署看似没生效时不要反复重部署,而是重跑第 1 步,通常是打到了与观察目标不同的部署。7)歧义即停止:无法确定命令会命中哪个部署时,用状态工具或对比 npx convex env list 指纹查明,绝不猜测。
限制:官方资料未提供具体价格、平台覆盖或额外计费信息;具体命令行为以 Convex 官方文档为准。