Repository navigation
Sub2API 0.2.30
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.30One-line install (Linux):
curl -sSL https://raw.githubusercontent.com/doublepi123/sub2api/main/deploy/install.sh | sudo bashManual download:
Download the appropriate archive for your platform from the assets below.