-- v1.1.0:账号化重构 + 三级 Webhook(邮箱 -> 域名 -> 全局) -- 节点在 UI/API 层更名「账号」(表名保持 nodes,兼容既有 Node 内部协议) -- 域名级 Webhook 与 Email Workers 配置状态 ALTER TABLE domains ADD COLUMN webhook_url TEXT; ALTER TABLE domains ADD COLUMN webhook_headers TEXT; -- JSON: 自定义请求头 ALTER TABLE domains ADD COLUMN webhook_key_enc TEXT; -- webhook key AES-GCM 密文 ALTER TABLE domains ADD COLUMN setup_error TEXT; -- 「设置 Email Workers」失败原因 -- 邮箱级 Webhook 配置 ALTER TABLE mailboxes ADD COLUMN webhook_url TEXT; ALTER TABLE mailboxes ADD COLUMN webhook_headers TEXT; ALTER TABLE mailboxes ADD COLUMN webhook_key_enc TEXT; -- Webhook 独立实体移除:配置落在 邮箱/域名/全局 三级,投递行携带解析后的目标配置 DROP TABLE IF EXISTS webhook_deliveries; DROP TABLE IF EXISTS webhooks; CREATE TABLE IF NOT EXISTS webhook_deliveries ( id TEXT PRIMARY KEY, email_id TEXT NOT NULL, target_type TEXT NOT NULL, -- mailbox | domain | global url TEXT NOT NULL, headers TEXT, -- JSON: 自定义请求头 key_enc TEXT, -- webhook key 密文(用于 HMAC 签名与 Authorization: Bearer) status TEXT NOT NULL DEFAULT 'pending', -- pending | success | failed | exhausted attempt_count INTEGER NOT NULL DEFAULT 0, next_retry_at TEXT, last_error TEXT, delivered_at TEXT, created_at TEXT NOT NULL ); CREATE INDEX IF NOT EXISTS idx_deliveries_retry ON webhook_deliveries(status, next_retry_at); CREATE INDEX IF NOT EXISTS idx_deliveries_email ON webhook_deliveries(email_id);