TARGETF4B2 PARTIALQA 0/5 VERIFIEDR08 · 9/21 PASS COMPLETEAdmin · 配置机器人 webhook、polling、事件版本、签名和故障切换的集成开发者与值班人员

事件订阅与开发配置

Webhook 与 polling 使用同一版本化 EventEnvelope;验签、持久化、去重、快速 ACK 与异步处理形成明确交付边界

/robot/devConfig/:idminiapp-open-platform
R08 · KNIFE 9 / 21

事件订阅与开发配置 · 页面级细化任务包

保留旧 UI 的搜索、邀请、隐私、菜单与 webhook 配置意图,补成 Endpoint revision、签名、事件版本、durable inbox、poll checkpoint 与切换流程。

LEGACY / TARGET ROUTE

legacy source route @a86af60;生产 Bot OpenAPI 404 → /robot/devConfig/:id

ENTRY

从 Bot draft/identity 进入;当前只有 OpenSDK 客户端合同,未部署 SetWebhook 服务端或事件交付面。

SUCCESS OUTPUT

返回 EventSubscription revision 与 endpoint verification receipt;启用配置不等于任何业务事件已处理。

COMMAND MODEL

EndpointDraft → TLS/SSRF verification → signing secret ref → event types/version → test event → publish via outbox;polling 复用 durable checkpoint。

RESPONSIVE + A11Y

桌面模式卡 + endpoint + event table;手机优先当前 404、签名边界、verification 与恢复动作。

TELEMETRY

event_config_view · endpoint_verify · subscription_publish · mode_switch;不记录 URL query、secret、raw payload 或 token。

LEGACY SOURCE + CURRENT PRODUCTIONa86af60 / e50cb8a / 404
  • 2026-07-17 认证遍历 Gitea `reits` 组织共 20 个仓库;精确 `/openapi/v1/bot/*` 服务端实现数为 0
  • xtalk-open-source main@a86af60 含旧 React 机器人 UI 与 `/api/bots/*` 客户端合同,但没有部署证据
  • miniapp-open-platform source fa9283d / production fb1a1b:`developer_apps.kind=bot` 只是通用 App 字段,没有 Bot/Installation/Command/Credential/Event/Delivery 表或 handler
  • opensdk main@e50cb8a 提供 6 个 Bot 客户端路径、HMAC-SHA256 验签、5 分钟窗口与 1 MiB body 上限;go test/vet 通过
  • im-core origin/main@9849051 仍只提供 `/im/chat/create_bot` 的 typ=11 会话壳;最新提交只推进 iOS QA handoff,公网 Bot OpenAPI 探测仍为 404
  • reits-auth source/production@157b859 没有 Bot resource authorization、ServicePrincipal 或 workload exchange
  • 旧 DevConfig 只有 webhook string 与 is_searchable/is_invitable/is_allow_forward/menu_mode;没有签名、验证或 event catalog
  • OpenSDK WebhookHandler 验 HMAC/timestamp 后同步执行 handler;Event-ID header 常量存在但 Update 不含 event_id
IMPLEMENTATION GAPTARGET ONLY
  • 生产没有 SetWebhook route、EventSubscription、Event Store 或 Delivery worker
  • SDK 没有 durable inbox/dedupe,Poller offset 只在内存
  • 固定 2 秒单次 429 retry 不读取 Retry-After,也没有有界指数退避/jitter
六个 legacy React 路由不是 current production;交付中心是 R08 新增。OpenSDK 客户端合同与 IM 会话壳都不能作为 Bot 平台上线证据。
63-STATE PROGRAM / THIS SCREEN

七页分别改变身份、配置、命令、凭证与交付证据边界

QA 0 / 5 VERIFIED
READY事件配置合同可以评审

legacy config + target delivery contract

BOT-EVENT-READY→ 定义 Endpoint revision
LOADING正在读取事件配置

subscription / endpoint / secret / checkpoint

BOT-EVENT-LOAD→ 返回机器人资料
EMPTY尚无已部署事件订阅

event subscription

BOT-EVENT-NO-SUBSCRIPTION→ 创建目标订阅
PARTIAL ERROR订阅草稿可用,交付证据未知

endpoint verification / checkpoint

BOT-EVENT-VERIFY-PARTIAL→ 重试验证证据
ERROR事件配置未发布

subscription revision

BOT-EVENT-PUBLISH-FAILED→ 重新读取配置
OFFLINE离线查看脱敏事件配置

redacted config snapshot

BOT-EVENT-OFFLINE→ 重新连接
FORBIDDEN没有管理事件订阅的权限

bot.webhook.manage

BOT-EVENT-DENY→ 申请事件配置权限
CONFIRM发布订阅或切换交付模式?

subscription/mode revision

BOT-EVENT-PUBLISH-CONFIRM→ 确认发布配置
SUCCESS事件配置 revision 已生效

subscription receipt

BOT-EVENT-PUBLISHED→ 查看测试交付
AUTOMATION BOUNDARY本刀只细化 developer.reits.tech 的 Bot 与事件自动化目标 UI;不创建机器人,不调用 legacy `/api/bots/*`,不签发/复制/轮换 Token,不注册 webhook,不发送测试事件,不暂停或 redeliver 交付,也不把 xtalk 旧 UI、OpenSDK 合同或 IM typ=11 会话壳冒充为 current production Bot 平台。
UI STUDIOtarget-open-bot-config
Admin1440 × 900100%
100%
/robot/devConfig/:id
TARGET UI1440 × 900FIT 100%
R08 DESIGN CANDIDATE · target-open-bot-config · TARGET ONLY · PROD BOT API 404
LEGACY SOURCE / CURRENT PROD / TARGETAutomation Control Plane Blueprint
R8
EVENT CONFIGURATION · SDK CONTRACT / PROD 404

事件订阅与开发配置

旧 UI 只有一个 webhook 字符串;OpenSDK 能验签,但同步执行 handler、offset 只在内存。本页把当前局限与目标 durable delivery 明确分开。

LLegacy webhook fieldplain URL · no verificationSOURCE
SOpenSDK consumer6 paths · HMAC helperCONTRACT
WEBHOOK RECEIVER · SDK EVIDENCE

验签存在,可靠接收缺失

CONTRACT ONLY
HMACSHA-256Replay±5 minBody≤1 MiBHandlersync
HeadersSignature · Timestamp · Update-ID · Event-IDconstants only
!
缺少 durable acceptSDK 在 HMAC 后同步调用业务 handler,未持久化 event_id,也没有快速 ACK/outbox。
e50cb8a
Poller offset 是函数内局部变量;进程重启后从 0 开始。
OPENSDK CLIENT ROUTES

客户端合同 ≠ 服务端

MethodPathProdEvidence
GET/bot/me404PROBED
POST/message/sendCONTRACTSDK
POST/chat/createCONTRACTSDK
GET/chatsCONTRACTSDK
GET/updates404PROBED
POST/webhook/setCONTRACTSDK
REFERENCE VIEWPORT1440 × 900Desktop first · responsive
PRIMARY TASK发布配置 revision主操作、权限与完成反馈必须同屏可验证
DATA CONTRACTEventSubscriptionready / loading / empty / error 使用同一 fixture
ACCESSIBILITYKeyboard + WCAG AA焦点顺序、可读名称、对比度进入 UI CI
VISUAL BASELINETARGET · 2026-07-17桌面/移动、浅色/错误态按稳定 Screen ID 留档

IMPLEMENTATION MAP

目标定义与下一轮逐页细化入口

当前处于 B1/B2:可以拆出架构、设计、交互和 QA 任务,但完成 D01–D12、通过 B3/B4 之前,不得宣称页面已经可以照稿实现。

01

页面区域

  • 机器人与环境上下文
  • 配置任务头
  • 交付模式
  • Endpoint 表单
  • 签名与安全参数
  • 事件订阅
  • 消费契约
  • 发布 revision
02

用户动作

  • 发布配置 revision
  • 验证 Endpoint
  • 发送测试事件
  • 添加或移除事件
  • 轮换签名 secret
  • 切换交付模式
  • 查看失败诊断
03

必须状态

  • 事件配置就绪
  • Endpoint 与订阅加载
  • 尚未配置 Endpoint
  • 事件健康部分失败
  • 配置发布失败
  • 离线只读配置
  • 缺少 bot.webhook:manage
  • 模式切换/轮换确认
  • 配置 revision 已生效
04

数据契约

  • EventSubscription
  • WebhookEndpointRevision
  • WebhookSigningSecret
  • BotEventEnvelope
  • EventTypeVersion
  • PollCheckpoint
  • DeliveryModeSwitch
  • AuditReceipt

TARGET MODULES

目标页面必须交付的模块

  1. 01Webhook/Polling 模式
  2. 02HTTPS endpoint 验证
  3. 03事件订阅表
  4. 04API version
  5. 05HMAC secret 双密钥轮换
  6. 06ACK/Body/Replay 限制
  7. 07durable PollCheckpoint
  8. 08模式切换与诊断

PRODUCT ROUTE INDEX

开放平台 · 自动化 的 38 个稳定 Screen ID

同一产品内的页面共享 token、导航和状态语言,但每个 Screen ID 保留自己的字段、数据契约和 QA 基线。

01
开发者登录/login
Web
02
我的小程序/apps
Web
03
创建小程序/apps/new
Web
04
应用发布/apps/:id/publish
Web
05
应用索引与控制面健康/apps
Admin
06
三步创建应用/apps/new
Admin
07
上传、审核与原子发布/apps/:appId/releases/new
Admin
08
应用基本信息与生命周期/apps/:appId/settings
Admin
09
环境、回调与凭证/apps/:appId/config
Admin
10
版本历史、对比与回滚/apps/:appId/versions
Admin
11
接口、Scope 与使用量/apps/:appId/capabilities
Admin
12
能力申请与审核/apps/:appId/capability-requests
Admin
13
组织目录与企业边界/mini-company/list
Admin
14
创建与验证企业/mini-company/create
Admin
15
开发治理概览/console/development
Admin
16
开发者身份与资源关系/console/developer
Admin
17
成员、邀请与离职治理/console/member
Admin
18
角色、策略与有效权限/console/role
Admin
19
服务账号与工作负载身份/console/service-accounts
Admin
20
操作、授权与安全审计/console/log
Admin
21
机器人目录与运行健康/robot/list
Admin
22
创建机器人与最小授权/robot/create
Admin
23
机器人基本信息与生命周期/robot/baseInfo/:id
Admin
24
事件订阅与开发配置/robot/devConfig/:id
Admin
25
命令定义、权限与测试/robot/command/:id
Admin
26
Bot Token 与运行凭证/robot/token/:id
Admin
27
事件交付、重试与 Redelivery/robot/:id/deliveries
Admin
28
支付订单与资金生命周期/mini/:type/paymentOrders/:id
Admin
29
用户数据、授权与主体请求/mini/:type/userData/:id
Admin
30
支付能力申请与独立复核/mini/:type/payApply/:id
Admin
31
组织财务、结算与对账/console/finance
Admin
32
公共开发者首页与能力总览/
Web
33
Mini App 产品、Quickstart 与宿主边界/mini
Web
34
企业开发与组织治理介绍/mini-company
Web
35
机器人、命令与事件自动化介绍/robot
Web
36
商业合作、场景准入与能力边界/business
Web
37
平台公告、变更影响与订阅中心/notice
Web
38
个人账号、安全、授权与偏好中心/console/my
Admin