mcpField
P
planetscale-webhook-automation-recommendations

planetscale-webhook-automation-recommendations

github.com/planetscale数据与数据库1361.7k 次安装8 周前更新
代码仓库

关于 planetscale-webhook-automation-recommendations

用于审查 PlanetScale Webhook 配置,并建议事件路由与安全自动化的技能。它规定接收端的安全要求,并将生产变更置于人工审核或既有授权之后;不会创建或更新 Webhook。

主要功能

  1. 01评估通用、Postgres 和 Vitess 生命周期事件
  2. 02建议告警、工程和 Agent 接收队列的路由
  3. 03规定签名、幂等性和接收端要求
  4. 04设计异常与架构建议处理流程
  5. 05识别不安全自动化和审批关口

适用场景

  1. 01将数据库异常发送到事件响应频道
  2. 02把架构建议转为可审核的变更
  3. 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.opened
  • deploy_request.queued
  • deploy_request.in_progress
  • deploy_request.pending_cutover
  • deploy_request.schema_applied
  • deploy_request.errored
  • deploy_request.reverted
  • deploy_request.closed
  • keyspace.storage

推荐路由

人工告警

将以下事件发送到事故响应或运维频道:

  • branch.anomaly
  • branch.out_of_memory
  • branch.primary_promoted
  • branch.start_maintenance
  • cluster.storage
  • keyspace.storage
  • deploy_request.errored
  • deploy_request.reverted
工程通知

将以下事件发送到 Slack、Linear/Jira 或部署频道:

  • deploy_request.opened
  • deploy_request.queued
  • deploy_request.in_progress
  • deploy_request.pending_cutover
  • deploy_request.schema_applied
  • deploy_request.closed
  • branch.schema_recommendation
Agent 接收队列

将以下事件发送到安全的 Agent 工作流:

  • branch.anomaly
  • branch.schema_recommendation
  • deploy_request.errored
  • cluster.storage
  • keyspace.storage

未经批准,Agent 的输出可以包括:

  • 分诊摘要、可能原因、关联的 Insights/查询模式。
  • 建议的架构、代码、Traffic Control 或运维变更。
  • 针对应用代码的拉取请求。
  • 已应用 DDL 或迁移的开发分支。
  • 向受审核保护的分支提交的开放部署请求。
  • 问题单或工单。

Agent 输出不得自行越过审核关卡:不得执行生产部署、合并 PR、强制实施 Traffic Control、轮换凭据或更改网络——这些操作需要人工执行,或依据 ../planetscale-autonomous-execution-mode/SKILL.md 中的长期授权执行。

Webhook 接收器要求

仅推荐符合以下要求的接收器:

  • HTTPS 端点。
  • 快速返回 2xx 响应;耗时操作应异步排队处理。
  • 不依赖跟随重定向。
  • 使用 PlanetScale Webhook 签名标头和 Webhook 密钥验证签名。
  • 通过事件 ID 或时间戳/资源组合实现幂等性。
  • 具备死信队列或支持安全重试的日志记录。
  • 提供易于理解的审计记录。
  • 明确责任人和升级路径。
  • 提供密钥轮换流程。

推荐的自动化流程

从异常到 PR 的流程
  1. 接收 branch.anomaly。
  2. 验证签名。
  3. 将任务加入队列。
  4. 获取异常详情和相关的 Insights 查询模式。
  5. 通过 SQLCommenter 标签和仓库搜索定位代码路径。
  6. 将问题归类为架构、代码、Traffic Control 或未知。
  7. 生成报告,并可选择创建 PR。
  8. 请求人工批准会影响数据库的工作。
架构建议到分支/部署流程

对于 Vitess:

  1. 接收 branch.schema_recommendation。
  2. 获取建议详情。
  3. 将 DDL 应用到开发分支。
  4. 开启拉取请求,并附上指纹、指标和预期效果。
  5. 开启部署请求——DR 和 PR 共同构成可供审核的单元;开启它们无需审批。
  6. 经人工审批后部署,或根据一项允许此类部署的长期授权自主执行(../planetscale-autonomous-execution-mode/SKILL.md)。

对于 Postgres:

  1. 接收 branch.schema_recommendation。
  2. 获取建议详情。
  3. 将 DDL 转换为应用迁移。
  4. 在非生产分支上测试,并在 PR 中记录结果。
  5. 开启 PR。
  6. 合并后通过部署流水线应用到生产环境;若没有流水线,则在获得明确审批后应用。
Vitess 的部署请求生命周期流程
  • 开启时发送通知。
  • 验证所有者及关联的应用 PR。
  • 排队或进行中时发送提醒。
  • 出错或回滚时发送强提醒。
  • 通知待执行的切换,并要求受门控部署的所有者确认。
  • 记录架构已应用,并与应用部署建立关联。

应阻止的反模式

请勿建议:

  • Webhook 直接运行生产环境 DDL,绕过 PR/部署请求工作流。(通过分支、PR 和部署请求来执行 DDL 是受支持的模式,而非反模式。)
  • Webhook 不经任何可供审核的产物,直接将架构建议应用到生产环境。
  • Webhook 直接执行流量控制。
  • Webhook 直接更改 IP 限制。
  • Webhook 直接轮换凭据。
  • Webhook 将密钥或包含字面量的原始 SQL 发布到公开的 Slack 频道。
  • Webhook 接收器忽略签名验证。
  • Webhook 接收器在返回 2xx 之前执行耗时任务。

输出

请返回:

  • 现有 Webhook 清单。
  • 缺少的建议订阅。
  • 目标地址质量审查。
  • 签名验证状态。
  • 自动化机会。
  • 不安全自动化的风险。
  • 需要审批的拟议 Webhook 变更。

结尾写上:

“未创建、更新或删除任何 Webhook 或自动化端点。”

评论

支持 Markdown