主要更新内容
- 引入 Metric Store 架构,历史监控数据(records、GPU、Ping)迁移至专用指标存储,支持 SQLite/MySQL/PostgreSQL 后端,且提供存储后端在线迁移功能
- 新增数据库 vacuum 与大小查询 API(
api:vacuumDatabase/api:getDatabaseSize) - 增加快照发布(Snapshot)CI/CD 流程,每次推送到 main 自动构建多架构二进制与 Docker 镜像
- 重构服务端启动生命周期,引入显式的
App阶段模型与统一关闭清理流程 - 移除对 Cloudflare Tunnel(cloudflared)的内嵌支持,不再内建隧道管理
- 移除 Cloudflare Access OAuth 登录方式,配置中已存在的提供者记录会自动清除
- 重新设计 RPC 身份模型(Principal),引入主体类型(匿名/Agent/用户/API Key)及集合式角色判定,阻断越权路径
- Release notes 生成流程集成 AI 摘要,支持从 komari-web 仓库自动提取前端变更
Bug修复
- 在 RPC 边界对所有敏感操作强制要求双因素认证(2FA)
- 修复
common:getNodesRPC 返回节点顺序不稳定的问题 - 修复
DeleteTheme/UpdateTheme/SetTheme接口的路径穿越漏洞,严格校验主题名称 - 修复 Telegram 消息发送在非 200 响应时不返回 API 错误描述的问题
其他
- CI 前端构建步骤拆分为独立可复用 action,提升并行度与缓存效率
- 移除旧版 records 表及其关联的压缩/迁移逻辑,运行期全部通过 metric store 读写
- 清理已废弃的配置项(
record_enabled、record_preserve_time、ping_record_preserve_time、cloudflare_tunnel_token) - 优化 rollup 查询对标签维度(tag series)的保留策略,支持
PreserveSeries选项
What's Changed
- fix(rpc): 在 RPC 边界强制对敏感操作进行双因素认证(2FA) by @carbofish in #571
- fix: preserve node order in common:getNodes RPC by @yuanhhs in #566
- feat: add database vacuum and size API endpoints by @Akizon77 in #578
- fix(security): prevent path traversal in theme name (DeleteTheme/UpdateTheme/SetTheme) by @guocn in #584
- fix(telegram): 非 200 响应时返回 API 错误描述而非仅状态码 by @Torther in #583
New Contributors
- @carbofish made their first contribution in #571
- @yuanhhs made their first contribution in #566
- @guocn made their first contribution in #584
- @Torther made their first contribution in #583
Full Changelog: 1.2.5...Snapshot-2607112201