github komari-monitor/komari Snapshot-2607201314

pre-releaseone day ago

主要更新内容

  • 新增公共访客审计事件日志端点,支持主题前端上报访问事件
  • 指标存储完全迁移至独立数据库(默认 SQLite ./data/metrics.db),支持 MySQL/PostgreSQL 后端
  • 指标写入改为批量事务,大幅降低 SQLite 数据库锁冲突
  • 新增指标滚动压缩(rollup)与保留策略管理,支持降采样开关
  • 指标存储配置支持热重载,保存前自动连接测试
  • 删除客户端或 Ping 任务时自动清理对应指标存储数据
  • getNodes RPC 返回改为以 UUID 为键的映射,替代数组
  • 新增 loong64 (LoongArch) 架构二进制构建支持
  • Docker 镜像内移除内建 Cloudflare Tunnel 支持
  • 移除 Cloudflare Access OAuth 提供商
  • 移除 Nezha 兼容层及相关代码
  • 前端构建拆分为独立 CI 步骤,优化多架构镜像构建流程
  • 启动流程重构为显式生命周期阶段,提升可维护性
  • 配置文件自动推断数据库驱动(从 DSN)
  • 新增数据库压缩(VACUUM)检查与维护 API(实验性)
  • visitor_audit_enabled 公开设置项,控制访客日志写入
  • 快照版本号改为 UTC+8 时区生成
  • 支持 ed25519 SSH 密钥用于对外连接

Bug修复

  • 安全修复:主题名称路径遍历漏洞(DeleteTheme/UpdateTheme/SetTheme)
  • Telegram 通知:非 200 响应时返回 API 错误描述而非仅状态码
  • 修复指标聚合时序列标识丢失,确保数据正确分组
  • 修复指标滚动压缩按指标独立游标,避免多系列交错干扰
  • 修复 SQLite 写入时 database is locked 错误(批处理 + 锁管理)
  • 修复指标存储启动阶段未能正确处理零保留策略的定义
  • 修复指标迁移恢复时进度从 0 重新累计的问题
  • 修复时间字段使用 FromTime() 导致时区混淆,统一为 UTC
  • 修复任务结果清除按本地时间而非 UTC 判断的问题
  • 修复内置指标默认保留期错设为 1 天(测试值)的实际影响
  • 修复审计日志清理与指标过期删除的完整性

其他

  • CI 工作流重构:复用 frontend/zig/restore 组合动作,启用快照并发取消
  • 移除已废弃的数据库表读写(records, gpu_records, ping_records)及对应旧表压缩逻辑
  • 移除 coreos/go-oidc/v3google.golang.org/grpc 等未使用依赖
  • 移除已废弃的数据库连接参数(db-host, db-port, db-user, db-pass, db-name
  • 清理无用函数(EditClientName, EditClientToken, GetAllTasksResultByUUID, DeleteTaskByTaskId 等)
  • 新增 cmd/app.go 显式生命周期管理及 cmd/reload.go 热重载管理器
  • 数据库版本标记从文件移至 configs 表,升级备份自动打包至 ./backup/
  • 更新安装脚本以支持 loong64 架构检测
  • 新增访客审计 RPC 文档 docs/visitor-audit-rpc.md

What's Changed

  • fix(security): prevent path traversal in theme name (DeleteTheme/UpdateTheme/SetTheme) by @guocn in #584
  • fix(telegram): 非 200 响应时返回 API 错误描述而非仅状态码 by @Torther in #583
  • feat(rpc): add public visitor audit event endpoint by @sanrokamlan-prog in #597
  • fix: harden visitor audit logging by @sanrokamlan-prog in #602

Commits

New Contributors

Full Changelog: 1.2.5-fix1...Snapshot-2607201314

Don't miss a new komari release

NewReleases is sending notifications on new releases.