github komari-monitor/komari Snapshot-2607201808

pre-releaseone day ago

主要更新内容

  • 安全:修复主题名称路径遍历漏洞(DeleteTheme/UpdateTheme/SetTheme),避免未授权文件访问
  • 监控数据架构重构:将监控数据完全迁移至专用 metric store(默认 SQLite ./data/metrics.db),替代旧 records/records_long_term/gpu_records/ping_records 表;支持 MySQL/PostgreSQL 后端,配置热重载,DSN 自动推断驱动
  • 分层降采样(Rollup):新增自动压缩与数据聚合,降低存储占用;可配置原始数据保留窗口和归档层级
  • 公开访客审计端点:新增 public:recordVisitorEvent RPC,允许主题前端记录访客操作,默认关闭,可通过 visitor_audit_enabled 开启
  • Telegram 通知改进:非 200 响应时返回 API 错误描述而非仅状态码
  • 管理端数据库维护:新增空间回收与压缩检查端点(admin:reclaimSpaceadmin:inspectStorage
  • 启动自动版本升级备份:检测版本变化时自动将 ./data 打包备份至 ./backup/upgrade-{time}.zip,便于回滚
  • 新增 loong64 架构支持:构建与安装脚本均支持 loongarch64/loong64
  • 移除内置 Cloudflare tunnel 与 Cloudflare Access OAuth:需自行管理隧道和 OAuth 配置
  • 时间字段标准化:所有模型时间字段改为标准 time.Time(UTC),JSON 序列化为 RFC3339 纳秒格式,废弃自定义 LocalTime 类型
  • 配置变更:废弃 record_enabledrecord_preserve_timeping_record_preserve_timemetric_store_enabled;改用 metric 保留策略管理
  • getNodes RPC 返回类型变更:改为 uuid-keyed map,替代原数组形式

Bug修复

  • 安全:修复主题名称路径遍历漏洞(CVE-待分配)
  • Telegram 通知:非 200 响应时返回 API 错误描述而非仅状态码
  • 强化访客审计日志记录(字段截断、令牌桶限流、IP 来源信任)
  • 修复 SQLite database is locked 错误导致记录写入失败
  • 修复 metric 迁移过程中的 SQLite 表级锁问题
  • 修复 metric 聚合(rollup)时丢失序列标识
  • 修复零保留期 metric 定义在操作后被错误清除
  • 修复 ping record 查询不支持 rollup 读取
  • 修复 compaction 因单个 metric 错误而中断全部压缩
  • 修复空间回收前未清理孤立 metric 数据
  • 修复资源探测中 Totalram 可能溢出(转为 uint64)

其他

  • CI 重构:前端构建抽象为可复用 action(build-frontend/restore-frontend),Docker 与 release 流程解耦;snapshot 版本号基于 UTC+8
  • 系统版本标记从 ./data/.komari-version 文件迁移至数据库配置表,随配置备份恢复
  • 移除旧 report 写入代码、reports 包相关测试及大量未使用的数据库函数
  • 集成 pkg/metric 库统一管理 metric 的生命周期与存储
  • 代码库结构进一步模块化:分离启动阶段(cmd/app.go)、配置热重载管理器等

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-2607201808

Don't miss a new komari release

NewReleases is sending notifications on new releases.