关于 planetscale-webhook-automation-recommendations
用于审查 PlanetScale Webhook 配置,并建议事件路由与安全自动化的技能。它规定接收端的安全要求,并将生产变更置于人工审核或既有授权之后;不会创建或更新 Webhook。
主要功能
- 01评估通用、Postgres 和 Vitess 生命周期事件
- 02建议告警、工程和 Agent 接收队列的路由
- 03规定签名、幂等性和接收端要求
- 04设计异常与架构建议处理流程
- 05识别不安全自动化和审批关口
适用场景
- 01将数据库异常发送到事件响应频道
- 02把架构建议转为可审核的变更
- 03评估 Webhook 接收端防护和自动化风险
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ planetscale/ skills --skill planetscale-webhook-automation-recommendations安装后在 Claude Code 中输入/planetscale-webhook-automation-recommendations确认已加载。
详细介绍
Webhook 自动化建议
目的
审核并推荐可通知人员并触发安全自动化的 PlanetScale Webhook。未经批准,不要创建或更新 Webhook。
Webhook 设计原则
Webhook 可以触发自动化,但默认情况下,自动化必须生成建议、问题单、分支或拉取请求。未经明确的人工批准,不得直接更改生产数据库或生产应用行为。
需要评估的事件
通用和 Postgres
branch.anomaly:出现新的 Insights 异常。branch.out_of_memory:Postgres 内存不足事件。branch.primary_promoted:主节点故障转移/提升。branch.ready:分支已创建并就绪。branch.sleeping:分支进入休眠状态。branch.start_maintenance:维护即将开始。cluster.storage:存储阈值或增长事件。database.access_request:访问请求。branch.schema_recommendation:架构建议事件(如可用)。webhook.test:测试事件。
Vitess 部署生命周期
deploy_request.openeddeploy_request.queueddeploy_request.in_progressdeploy_request.pending_cutoverdeploy_request.schema_applieddeploy_request.erroreddeploy_request.reverteddeploy_request.closedkeyspace.storage
推荐路由
人工告警
将以下事件发送到事故响应或运维频道:
branch.anomalybranch.out_of_memorybranch.primary_promotedbranch.start_maintenancecluster.storagekeyspace.storagedeploy_request.erroreddeploy_request.reverted
工程通知
将以下事件发送到 Slack、Linear/Jira 或部署频道:
deploy_request.openeddeploy_request.queueddeploy_request.in_progressdeploy_request.pending_cutoverdeploy_request.schema_applieddeploy_request.closedbranch.schema_recommendation
Agent 接收队列
将以下事件发送到安全的 Agent 工作流:
branch.anomalybranch.schema_recommendationdeploy_request.erroredcluster.storagekeyspace.storage
未经批准,Agent 的输出可以包括:
- 分诊摘要、可能原因、关联的 Insights/查询模式。
- 建议的架构、代码、Traffic Control 或运维变更。
- 针对应用代码的拉取请求。
- 已应用 DDL 或迁移的开发分支。
- 向受审核保护的分支提交的开放部署请求。
- 问题单或工单。
Agent 输出不得自行越过审核关卡:不得执行生产部署、合并 PR、强制实施 Traffic Control、轮换凭据或更改网络——这些操作需要人工执行,或依据 ../planetscale-autonomous-execution-mode/SKILL.md 中的长期授权执行。
Webhook 接收器要求
仅推荐符合以下要求的接收器:
- HTTPS 端点。
- 快速返回 2xx 响应;耗时操作应异步排队处理。
- 不依赖跟随重定向。
- 使用 PlanetScale Webhook 签名标头和 Webhook 密钥验证签名。
- 通过事件 ID 或时间戳/资源组合实现幂等性。
- 具备死信队列或支持安全重试的日志记录。
- 提供易于理解的审计记录。
- 明确责任人和升级路径。
- 提供密钥轮换流程。
推荐的自动化流程
从异常到 PR 的流程
- 接收
branch.anomaly。 - 验证签名。
- 将任务加入队列。
- 获取异常详情和相关的 Insights 查询模式。
- 通过 SQLCommenter 标签和仓库搜索定位代码路径。
- 将问题归类为架构、代码、Traffic Control 或未知。
- 生成报告,并可选择创建 PR。
- 请求人工批准会影响数据库的工作。
架构建议到分支/部署流程
对于 Vitess:
- 接收
branch.schema_recommendation。 - 获取建议详情。
- 将 DDL 应用到开发分支。
- 开启拉取请求,并附上指纹、指标和预期效果。
- 开启部署请求——DR 和 PR 共同构成可供审核的单元;开启它们无需审批。
- 经人工审批后部署,或根据一项允许此类部署的长期授权自主执行(
../planetscale-autonomous-execution-mode/SKILL.md)。
对于 Postgres:
- 接收
branch.schema_recommendation。 - 获取建议详情。
- 将 DDL 转换为应用迁移。
- 在非生产分支上测试,并在 PR 中记录结果。
- 开启 PR。
- 合并后通过部署流水线应用到生产环境;若没有流水线,则在获得明确审批后应用。
Vitess 的部署请求生命周期流程
- 开启时发送通知。
- 验证所有者及关联的应用 PR。
- 排队或进行中时发送提醒。
- 出错或回滚时发送强提醒。
- 通知待执行的切换,并要求受门控部署的所有者确认。
- 记录架构已应用,并与应用部署建立关联。
应阻止的反模式
请勿建议:
- Webhook 直接运行生产环境 DDL,绕过 PR/部署请求工作流。(通过分支、PR 和部署请求来执行 DDL 是受支持的模式,而非反模式。)
- Webhook 不经任何可供审核的产物,直接将架构建议应用到生产环境。
- Webhook 直接执行流量控制。
- Webhook 直接更改 IP 限制。
- Webhook 直接轮换凭据。
- Webhook 将密钥或包含字面量的原始 SQL 发布到公开的 Slack 频道。
- Webhook 接收器忽略签名验证。
- Webhook 接收器在返回 2xx 之前执行耗时任务。
输出
请返回:
- 现有 Webhook 清单。
- 缺少的建议订阅。
- 目标地址质量审查。
- 签名验证状态。
- 自动化机会。
- 不安全自动化的风险。
- 需要审批的拟议 Webhook 变更。
结尾写上:
“未创建、更新或删除任何 Webhook 或自动化端点。”
评论
支持 Markdown