本说明覆盖 Telegram 私聊、受信任群聊,以及可选的 Rule-Bot Client 私用和社区入口。自行部署者负责选择 Telegram、GitHub、DNS、CDN、反向代理和日志存储服务,并向实际用户说明相应的数据处理边界。
Rule-Bot 接收 Telegram 提供的消息文本、聊天信息和用户身份,用于解析域名、维持当前交互状态、执行限流和生成提交身份。私聊状态和待确认操作只保存在进程内存中,并按交互超时清理;Rule-Bot 不建立 Telegram 消息历史数据库。
启用群聊模式后,Rule-Bot 只处理已加入 ALLOWED_GROUP_IDS 且明确提及机器人的文本消息。群聊模式和管理员强制添加不会再次执行私聊确认,因此只应在受信任群组中启用。
通过 Telegram 成功添加规则时,目标文件和 GitHub 提交可能包含:
DOMAIN-SUFFIX规则;- Telegram 界面中展示的提交者身份;
- 用户填写的可选说明;
- 提交时间和来源注释。
私聊确认页会在提交前展示这些字段。目标仓库公开时,规则和提交历史也会公开。
Rule-Bot Client API 只接受 version 和 domain。服务端不接受客户端指定仓库、规则文件、提交身份、说明或强制添加参数。
官方 Rule-Bot Client 默认在本地执行以下处理:
- 将完整子域名缩减为公共后缀规则下的可注册域名;
- 对同一可注册域名只投递一次;
- 在本地排除
.cn和用户配置的排除项; - 不发送 URL 路径、查询参数、网页内容、来源应用、访问次数或时间戳。
第三方客户端可以采用不同策略。Rule-Bot 只验证收到的单个域名字段,不能保证第三方客户端已经执行相同的本地缩减。
通过 Client API 成功添加规则时,目标文件和提交会记录域名、Rule-Bot Client 来源和时间,不写入对应社区 Token 的 Telegram 身份。目标仓库公开时,这些内容也会公开。
社区 Token 必须由用户在 Telegram 私聊中阅读本说明并主动同意后申请。服务端数据库保存以下数据:
- Telegram 用户 ID;
- 随机 Token 主体及版本;
- 签发时间和到期时间;
- 启用或吊销状态;
- 当前隐私说明版本及同意时间。
这些数据用于群成员验证、限流、重新签发、过期、吊销和隐私同意校验。Token 自身只包含随机主体、版本、签发和到期等验证字段,不包含 Telegram 用户 ID。
撤回同意时,Rule-Bot 会禁用当前 Token、清除 last_used_at,并删除当前隐私同意记录。撤回操作不会删除 Token 元数据行;Telegram 用户 ID、随机主体、版本、签发时间、到期时间和禁用状态会继续保留,直到部署者清理社区 Token 数据库。吊销 Token 同样不会删除这行元数据。
Rule-Bot 会把待检查域名交给配置的 DNS over HTTPS 服务,并使用 GeoIP、GeoSite 和目标 GitHub 仓库完成规则判断。相应服务提供方可能处理域名、出口 IP、请求时间和常规网络元数据。
公网入口经过 Cloudflare、反向代理或其他 CDN 时,这些服务也会处理连接元数据。Rule-Bot Client API 的 HTTP access log 默认关闭,业务代码不读取客户端 IP;反向代理、CDN、容器平台和宿主机仍可能另行记录访问数据。客户端可配置可信代理改变入口看到的出口 IP,但代理提供方会看到连接目标和时间。
Rule-Bot 的常规域名处理日志通常以进程内随机密钥生成的短引用代替原始域名。该引用在进程重启后变化。Client API 隐藏配置路径、不记录请求正文,并关闭自身的 HTTP access log。
当前版本不对全部运行日志作“绝不包含敏感数据”的保证。启动、群组和异常日志可能包含部署配置中的仓库名、规则文件路径、数据目录、群组 ID、管理员 ID、数据源 URL、IP 地址或外部服务返回的错误详情;依赖库也可能产生额外日志。不要公开完整日志。提供诊断信息前,应当逐行检查并移除 Token、密钥、隐藏 API 路径、用户和群组标识、域名、IP 地址、私有仓库信息及内部网络地址。
仓库提供的 Docker Compose 模板把容器日志限制为两个 1 MiB 文件。其他部署方式的日志位置、访问权限和保留时间由部署者控制。
- 被拒绝、无效或重复的域名不写入 Rule-Bot 数据库。
- 私聊状态和待确认操作只在进程内存中临时存在。
- 社区 Token 元数据、同意和吊销状态保存在配置的数据库中;撤回同意会删除同意记录并禁用 Token,但不会删除 Token 元数据行。
- 成功添加的规则会写入目标 GitHub 仓库及提交历史。公开仓库中的内容不能作为临时私密数据撤回;私有仓库的可见范围由仓库权限决定。
不接受上述边界时,不要通过 Telegram 提交规则,也不要启用 Rule-Bot Client 投递。社区用户可以在机器人私聊中吊销 Token 或撤回同意。Rule-Bot Client 用户还可以在本地排除敏感后缀、关闭 rule_bot.enabled,或只保留本地收集。
自行部署者负责处理数据库中的数据清理请求。清理前应确认目标用户、Token 元数据和备份范围,避免影响其他用户。