Skip to content

v0.7.1

Choose a tag to compare

@github-actions github-actions released this 27 Jul 08:37

v0.7.0 发布后审查修复:访问密钥 fail-closed、加密 sidecar 防误重生、调度/代理热路径正确性,以及总览页版本展示。

升级须知

  • 禁用 / 过期的已知访问密钥 fail-closed。GATEWAY_TOKEN 同值时也不会被 legacy 回退复活;仅库中无对应行的 env token 仍可作为无租户回退。
  • 库内已有密文时,缺少 key_encryption.salt / key_encryption.secret 会拒绝启动(不再静默重生导致密钥全丢)。请始终同时备份/恢复 gateway.db 与两个 sidecar。

新增

  • 管理台总览展示构建版本(GET /admin/api/configversion / commit / build_date,来自 ldflags)。

修复

  • 禁用 / 过期的已知访问密钥 fail-closed:与 GATEWAY_TOKEN 同值时也不再被 legacy 回退复活。
  • GET /v1/models 遵守访问密钥模型白名单,不再泄漏完整目录。
  • 创建访问密钥原子写入 expiry / quota / allowlist;非法 JSON 返回 400。
  • 出站 HTTP 重定向CheckRedirect 不再对未解析主机名调用 dial guard(避免合法公网跳转被误拒);实际连接仍由 dial 后 ip:port 守卫。
  • 备份导入 UIsettings_applied / settings_rejected 按 map 计数(此前恒为 0)。
  • 落盘加密 sidecar fail-closed:空 key_encryption.secret 不再静默重生;secret 创建改为 O_EXCL;已有密文的 DB 在缺少 salt/secret 时拒绝启动(避免只恢复 gateway.db 导致密钥全丢)。
  • 调度 RR 不再跨 band:公平轮转仅在相同 priority + status + 计数器并列键内进行,保留 affinity 与质量排序。
  • 容量类失败不降权 status:除跳过 fail_count 外,status 保持 valid,避免共享 worker 限流把健康 Key 排到 rate_limited 之后。
  • 候选缓存 generation:invalidate 后并发 fill 不会写回陈旧快照。
  • max_inflight 在 endpoint 槽位之后再占用,排队等待不再占住 per-key 并发配额。
  • stream 以 body 为准:显式 "stream": false 不被 Accept: text/event-stream 覆盖。
  • 纯客户端 4xx 不记 Key 失败(404 资源未找到、校验错误等),避免污染 Laplace 排序。

变更

  • README 访问密钥 / 盐与备份说明与 fail-closed 行为对齐。

Full Changelog: v0.7.0...v0.7.1