-- v2.5.0:操作日志 + 邮件「保留」(不再过期) -- - operation_logs:记录 Console 内所有人工/系统操作(账号 / 域名 / 邮箱 / Webhook), -- 供「日志」页回看;detail 只存非敏感元信息(secret/token 永不入库该表)。 -- - emails.retained:1 = 用户点「保留」,过期清理(Cron TTL)跳过该邮件,永不过期。 /** # 数据库表:操作日志(Console 内所有操作的审计流水) **/ CREATE TABLE IF NOT EXISTS operation_logs ( id TEXT PRIMARY KEY, action TEXT NOT NULL, -- account.create / account.delete / domain.setup / mailbox.create / webhook.save / webhook.deliver ... target_type TEXT NOT NULL, -- account | domain | mailbox | email | webhook target_id TEXT, -- 被操作资源 id(全局 webhook 等无 id 时为 NULL) target_name TEXT, -- 展示名(账号名 / 域名 / 邮箱地址 / webhook url) detail TEXT, -- JSON 补充信息(不含任何 secret) operator TEXT NOT NULL DEFAULT '', -- 操作账号(Console 登录名;系统自动操作为 system) created_at TEXT NOT NULL ); CREATE INDEX IF NOT EXISTS idx_operation_logs_created ON operation_logs(created_at DESC); CREATE INDEX IF NOT EXISTS idx_operation_logs_type ON operation_logs(target_type); -- 邮件保留标记(1 = 永不过期,Cron TTL 清理跳过) ALTER TABLE emails ADD COLUMN retained INTEGER NOT NULL DEFAULT 0;