成为赞助商——支持中文 Agent 生态

了解赞助
库Agent场景库
← 返回用例列表

Supabase Database Webhooks 表事件出站简报

按 INSERT/UPDATE/DELETE 触发、pg_net 异步包装、载荷形态与 Vault 存密,整理表变更出站简报;不代写生产密钥进迁移、不代改生产触发器。

场景说明

面向独立开发者:把「行变更推到 Edge Function/外部系统」写成可对账步骤,区别于 Auth Hooks 与邮件/通信 Webhook。

案例叙事

01他们做了什么

业务要在 profiles 插入后通知计费或调用 Edge Function,却把同步 HTTP 塞进触发器——或本地调试把 localhost 写进 Webhook URL 打到容器自己。

Supabase Docs《Database Webhooks》(dateModified 可核)说明:Database Webhooks 在表事件发生时把实时数据发到另一系统;可挂钩 INSERT、UPDATE、DELETE,且均在行变更之后触发。它们与触发器很像,实质是用 pg_net 扩展对触发器的便利包装;扩展异步,因此不会因长耗时网络请求长时间阻塞数据库变更。可用 Dashboard 创建,也可用 SQL 直接建 trigger,调用 supabase_functions.http_request。支持 HTTP POST/GET 等;也可在每次表事件时调用 Edge Function,函数以请求体收载荷,并用项目 secret key 做服务间调用。文档提醒:若把密钥写进触发器定义,密钥会出现在触发器 SQL/数据库转储中;可用 Supabase Vault 存 project_url 与 secret_key,在触发函数里读取后再 net.http_post。本地实例中 Postgres 在 Docker 内,Webhook URL 的 localhost 指向容器自身,应使用 host.docker.internal(或主机局域网 IP)。载荷由底层表记录自动生成,含 type/table/schema/record/old_record。本场景据此输出出站简报。禁止把生产 secret 写入示例迁移或声称「生产触发器已安全」。

02实际效果

  • 源未披露量化「出站延迟」;公开文只描述事件类型、pg_net 异步、Vault 存密与本地主机名注意点。
  • 能把「同步阻塞触发器 / secret 进迁移 / 本地 localhost 误配」拆开。
  • 为行变更驱动的自动化提供可落地的设计提问。

03值得知道

  • 可登录数据库的角色在请求排队期间可能读到解密后的密钥(文档对 net.http_request_queue 有说明)。
  • HTTP 超时等参数以当前 http_request/pg_net 文档为准。
  • 上面写的是官方机制,不是你项目现有触发器列表。

04可复制提示词

Supabase Database Webhooks 简报

你是 Supabase Database Webhooks 助手。只给出站核对简报,不要编造已配置成功。

表与事件:{{table_events}}
下游目标:{{downstream}}
环境(local/hosted):{{environment}}
密钥存放现状:{{secret_storage}}

输出 Markdown:
1. 触发时机与异步含义
2. 载荷字段核对
3. Vault vs 触发器内嵌密钥提问
4. 本地 host.docker.internal 验收
禁止索要 secret key 值;禁止代改生产触发器。

行变更未出站排查提纲

表已更新但下游未收到请求,请写排查提纲。

现象:{{symptom}}
触发器/Webhook 摘要:{{trigger_brief}}
下游日志:{{downstream_logs}}

输出:
1. 事件类型是否订错
2. URL/主机名是否指向错误主机
3. 密钥/鉴权是否导致下游拒收
4. 下一步人工验证
不要伪造「下游已收到」。

05一手来源

怎么做

  1. 粘贴目标表与事件(INSERT/UPDATE/DELETE)、下游(Edge Function/HTTP)、本地或托管环境摘要
  2. Agent 按官方 Database Webhooks 说明输出:触发时机→pg_net 异步→载荷字段→Vault/密钥与本地 host.docker.internal 提问清单
  3. 人工在 SQL Editor/Dashboard 验证;Agent 不代把 secret 写入迁移、不代改生产触发器

实用提示

  • Database Webhooks 是基于触发器 + pg_net 的便利封装,网络请求异步,不因长耗时 HTTP 长时间阻塞行变更
  • 与 clerk-webhooks-user-events-brief / Twilio 不同:本条是数据库行级出站,不是 IdP 或通信平台事件
#Supabase#Database Webhooks#pg_net#触发器#独立开发者