Skip to content

Sub2API 0.2.30

Choose a tag to compare

@github-actions github-actions released this 02 Oct 16:10
· 163 commits to main since this release

AI API Gateway Platform - 将 AI 订阅配额分发和管理

本次同步上游 23 个提交。重点是新增 TypeSafe(Jev System One)平台、充值赠送 /
折扣阶梯,以及邮件验证码、支付查单、antigravity 错误体等几处安全加固。另外修复了
fork 独有的 Kiro 平台在数据库约束里被上游迁移反复覆盖掉的问题。

  • feat: 原生支持 TypeSafe Jev System One(平台名 typesafe,模型 jev-latest,
    仅通过 /v1/systemone 使用)。上游后续又补齐了平台迁移、审计覆盖、端点隔离与
    错误策略,并对齐上游 schema 校验:拒绝重复键和大小写 / Unicode 折叠的变体键,
    防止 {"model":"x","MODEL":"jev-latest"} 这类请求绕过模型白名单与流式限制。

  • fix(billing): TypeSafe API Key 账号支持上游计费探测(此前按默认表单创建会失败)。

  • feat(payment): 充值赠送阶梯,满 X 送 Y%,按到账基数计算并落库(payment_orders
    新增 bonus_amount 列);新增折扣模式,可在赠送 / 折扣之间切换,充值页快捷金额
    显示促销价签。

  • feat(keys): API Key 列表支持按分组名排序。

  • feat(admin): 账号列表的优先级改为可就地加减的步进器,连续点击合并为一次保存,
    失败自动回滚。

  • fix(email): 验证码尝试次数改用 Redis 原子计数,并发猜测无法突破 5 次上限;
    重置密码令牌改为只存 SHA-256 哈希且一次性消费。

  • fix(payment): 未登录的订单查询接口限流为每 IP 每分钟 20 次,防止枚举订单号。

  • fix(antigravity): 返回给客户端的上游错误体做脱敏,不再泄露 GCP 项目号、
    项目 ID 与服务账号邮箱;原始错误体仍保留在运维日志中。

  • fix(billing): 请求进行中 API Key 被删除时,账单仍正常结算。此前 Key 计数更新
    找不到行会让整个计费事务回滚,连余额 / 订阅扣费也一起丢失。

  • fix(deps): 上游同样把 axios 升到 1.20.0,与我们 v0.2.29 的升级一致。

  • fix(i18n): 修正自定义错误码的提示文案。

  • docs: 新增安全策略与私密漏洞报告渠道。

230 / 231 号迁移曾把 kiro 加进 user_platform_quotas 与 composite_model_routes 的
平台 CHECK 约束。但上游的 237(minimax)、238(opencode_go)、241(typesafe)
每次都按自己的平台列表重建这两个约束,而上游列表里没有 kiro,于是 kiro 一次次
被删掉。线上当前两张表都会拒绝 kiro 行,只是还没有人写入过,所以一直没被发现。

新增 242_restore_kiro_platform_checks.sql,把两个约束重建为全部平台的并集
(含 kiro 与 typesafe),与后端 AllowedQuotaPlatforms 一致。同时新增集成测试:
跑完全部迁移后,约束必须接受 AllowedQuotaPlatforms 中的每个平台。以后上游再
重建这两个约束,CI 会直接失败,而不是悄悄丢掉 kiro。去掉 242 时该测试失败。

本次有 19 个文件冲突,全部是上游加入 typesafe 的平台列表与我们的 kiro 撞在同一行。
统一取上游版本并补回 kiro,两者都保留:

  • 后端:配额 schema 校验、分组 / 复合路由 / 渠道的平台列表、调度快照平台集合
    (数组长度从 11 改为 12)、gateway 模型列表(保留 Kiro 与 Antigravity 的默认
    模型分支,同时加入上游的 TypeSafe 分支)、API 合约测试。
  • 前端:类型定义与各处平台顺序列表补回 kiro;配额相关组件继续使用 fork 的集中
    常量 frontend/src/constants/platforms.ts,并在其中加入 typesafe。
  • VERSION 保持 fork 自己的版本线。

Kiro 平台、Kiro 模型目录门控的两个设置项、X-Stainless-Package-Version 0.112.1、
account_repo.go 中 len(updates.Credentials) > 0 的条件均已核对完好。

后端 build / vet / -tags=unit / -tags=integration(真实 Postgres 跑全部迁移)/
golangci-lint(0 issues),前端 typecheck / lint 以及配额、设置页、用户组件相关
的 19 个测试文件(163 个用例)通过。


📥 Installation

Docker:

# Docker Hub
docker pull doublepi/sub2api:0.2.30

# GitHub Container Registry
docker pull ghcr.io/doublepi123/sub2api:0.2.30

One-line install (Linux):

curl -sSL https://raw.githubusercontent.com/doublepi123/sub2api/main/deploy/install.sh | sudo bash

Manual download:
Download the appropriate archive for your platform from the assets below.

📚 Documentation