WebHooker/docs/zh/guide/storage.md
2026-08-13 22:46:35 +00:00

3.4 KiB
Raw Blame History

存储布局

KV 存储布局

键模式 TTL
config:routes 路由 JSON 数组 永久
config:groups 分组 JSON 数组 永久
session:{id} 管理员会话 { userId, login } 7 天
token:{userId} { userId, accessToken, expiresAt, refreshToken? } 0.9 × Token 有效期
token-reverse:{sha256} 用于按 Token 反查的用户 id 0.9 × Token 有效期
state:{hex} { redirectTo, expiresAt, discordUserId?, telegramUserId?, telegramChatId? } 600 秒
invite:{token} { groupId, role, expiresAt, createdBy, note? } 7 天
invite:group:{id} 每组的 Token 索引(保证邀请列表一致性) 永久
delivery:{id} Webhook 投递 id去重标记 300 秒
delivery:{groupId}:{id} 分组级 webhook 入口的租户级投递去重 300 秒
tenant:{groupId} 分组 webhook secret64 位 hex控制台生成 永久
msg:{routeId}:{key}:{target} 原地更新用消息 id 追踪(如 workflow_run / check_run 7 天
cmd:guild:{id} 已注册命令的服务器 id去重 永久
cmd:registered:global 全局命令注册标记(去重) 1 天
config:discord-app-id 缓存的 Discord 应用 id 永久
i18n:{lang} 叠加在英文之上的翻译覆盖 永久

D1 存储布局

D1 数据库(DB 绑定,数据库 webhooker)包含四张表:

用途
send_logs 每次分发尝试一行(路由 id、事件、目标、ok/error、耗时、错误码、详情
audit_logs 每次管理员操作一行(登录/登出、分组/路由/成员/邀请变更)
discord_links 映射 discord_user_idgithub_user_id,供 /gh Discord 命令使用
telegram_links 映射 telegram_user_idgithub_user_id,供 /gh Telegram 命令使用

audit_logs 由定时任务在 AUDIT_RETENTION_DAYS(默认 90后自动清理。行字段说明见日志