Repository navigation
FreeIDX v1.0.2
FreeIDX v1.0.2
v1.0.1 之后的维护版本,重点是后台运行维护能力(数据库孤儿清理、R2 未使用对象清理)与邮件发送 / 账号验证链路加固。
主要内容
后台运行维护
- 新增「数据库维护」页(
/admin/maintenance/db):统计并分批清理孤儿行与失效行,只清理账目类数据,不触碰正文 - 新增「对象存储维护」页(
/admin/maintenance/r2):扫描白名单前缀内的未引用对象,分步(start / step / reset)删除并展示进度 - 支持在后台手动触发每日 Cron 任务,便于发版后立即校准
- 计数校准逻辑抽出为
calibrateCounters,Cron 与后台「立即校准」共用同一口径,避免两套算法漂移 lastusername增加每日自愈,纠正历史脏数据与改名回写遗漏- 附件存储抽象补齐
list()分页枚举能力,测试替身可省略并回落「存储不支持枚举」
邮件与账号验证加固
- SMTP 认证按 EHLO 通告能力选择
AUTH LOGIN/AUTH PLAIN - 单步应答超时(15s)与会话总超时(60s)分离,修复连接泄漏
- 日发送限额由「发送成功后 +1」改为「发前原子预约、失败归还」,并发下不再突破日上限
DATA后收到250即判定成功,不再因QUIT失败而重复投递- 邮箱设置:密码按 host + user 身份保持,池与密码单事务提交;回显不再按「有密码才可用」过滤,避免整行误删账号;发件地址改用严格邮箱校验,防邮件头注入
- 发码接口仅保留注册场景;找回密码改为静默成功 + 单邮箱日上限,避免通过错误码枚举已注册邮箱
- 登录与找回密码的邮箱统一按小写查询,修复手打大小写邮箱「查不到账号但能登录」的问题
- 注册字段格式校验前置,避免用户被「请先获取验证码」误导
- 运行环境缺少
waitUntil时退化为请求内等待,避免 isolate 回收导致丢信 bootstrap新增setting.mailOn,前端按 SMTP 池实际可用性决定是否展示验证码输入框- 每日 Cron 清理
bbs_email_code中超过 24h 的过期行,防止表无限增长
界面与体验
- 后台邮件设置页、扩展管理页交互优化,新增扩展图标渲染组件
- 后台设置项标签精简,补齐 11 种语言 override 词条
- 版本更新页「关于」区域标题行间距与垂直对齐优化
- 大屏端移除根字号放大逻辑,仅放宽版心宽度,避免超宽屏字号失控
修复
- 修复构建版本号附带
-dirty标记的问题
工程与测试
- 补充认证链路测试替身(waitUntil / 邮件通道),新增找回密码与 Cron GC 用例
- 更新开发架构文档中的邮件与认证说明