Commit Graph
99 Commits
Author SHA1 Message Date
easyai 3de26d5157 feat(web): 分类展示公开 API 文档
将通用开放接口与兼容接口分层展示,补充完整接口目录、分类路由、搜索能力和接入约定。\n\n验证:pnpm nx run web:test;pnpm nx run web:build
2026-07-22 17:12:48 +08:00
easyai 7c5a999e32 feat(api): 统一公开接口为 /api/v1 前缀
将通用生成、Gemini、可灵、火山、健康检查与 OpenAPI 的推荐入口统一到 /api/v1,并保留历史路径作为兼容别名。同步更新代理配置、接入文档、接口清单和前缀回归测试。\n\n验证:go vet ./...;go test ./...;pnpm openapi;pnpm lint;pnpm test;pnpm build;公开 OpenAPI 71 个方法与接口清单机器比对一致。
2026-07-22 08:48:32 +08:00
wangbo b04a7d9d3d feat(web): 支持文档页真实提交请求 2026-07-22 00:24:36 +08:00
wangbo 56d4a3a6b7 fix(access): 修正 API Key 可分配模型范围 2026-07-22 00:24:36 +08:00
chengcheng 142dcc7932 chore(git): 合并视频时长线性计费修复
ci / verify (pull_request) Successful in 13m41s
2026-07-21 13:34:52 +08:00
chengcheng e3dfe8162b fix(billing): 视频时长按实际秒数线性计费
将五秒基础价按 duration / 5 比例结算,保留 provider 返回的小数时长,避免六秒视频被按两个完整单位收费。

影响:所有使用 5s 视频基础价的模型,quantity 与 durationUnitCount 允许小数。新增迁移同步现存规则的旧 ceil 公式元数据。

验证:go vet ./...;pnpm lint;pnpm test;pnpm build;./tests/ci/migrations-test.sh
2026-07-21 13:32:23 +08:00
chengcheng 69b0c107d3 fix(web): 修正在线测试模型类型筛选
移除可能将 image_to_video 误判为图像模型的子串回退,在没有匹配模型时显示空状态。

新增图像生成、图像编辑和视频模式回归测试。验证通过:前端 94 项测试、类型检查、lint 和生产构建。
2026-07-21 13:12:40 +08:00
chengcheng bfa17a3aba fix(auth): 为登录链路增加有界超时
ci / verify (pull_request) Successful in 11m22s
为 PostgreSQL 连接、就绪检查和本地登录设置分层超时,数据库不可用时返回稳定 503 错误码并记录无凭据的连接池统计。

前端登录在 10 秒后取消请求并兼容调用方 AbortSignal,Nginx 登录精确路由限制上游为 15 秒,同时更新 OpenAPI 和回归测试。
2026-07-21 11:47:09 +08:00
chengcheng 8beb8501fa fix(billing): 封住发布前计费竞态
ci / verify (pull_request) Failing after 8s
阻止上游提交状态不明的任务被租约接管后重复执行,并为人工复核保留可操作的结算记录。

将生产提交绑定到当前估价签名,统一复用预处理快照,并补强规则形状、定点溢出与历史规则兼容校验。

已通过 PostgreSQL 16 集成测试、Go 全量测试与静态检查、前端测试与构建、OpenAPI、依赖审计、镜像、迁移、流水线和 SemVer 门禁。
2026-07-21 10:23:58 +08:00
chengcheng 62d25fcb11 feat(web): 增加计费结算异常管理界面
管理端支持按状态查看结算与释放记录,展示精确到九位的小数金额、错误分类和重试次数,并使用一次性 Idempotency-Key 发起审计化重试。
2026-07-21 00:25:57 +08:00
chengcheng 7cea21f765 feat(web): 增加参数即时估价与显式免费编辑
估价请求统一使用 350ms 防抖、AbortController 和请求序号,区分免费、计算中、价格不可用与失败状态,并展示候选冻结上限。价格未就绪时阻止生产提交。\n\n计价规则编辑器新增显式免费开关和 9 位价格步进。\n\n验证:Web 88 项测试和生产构建通过。
2026-07-20 23:22:50 +08:00
chengcheng d956524690 fix(web): 修复相对 OIDC 登录地址跳转
ci / verify (pull_request) Successful in 22m7s
2026-07-20 15:26:44 +08:00
chengcheng 4426eeccf7 chore(merge): 整合最新 main 与统一认证变更
ci / verify (pull_request) Successful in 12m18s
合并远端生产 CI、依赖与 API 文档改动,保留统一认证和 SSF 能力。由于远端生产基线已占用 0062,将尚未发布的身份迁移整理为 0063 至 0068 的最终增量 Schema,移除仅用于开发期草稿升级的破坏性迁移步骤。

验证:go test ./...。其余生产门禁在合并提交后继续执行。
2026-07-17 19:06:37 +08:00
chengcheng b179162330 fix(web): 完善统一认证恢复与重配交互
为处理中、失败和清理中的配对展示明确状态与恢复动作,支持放弃并清理、作用域内退役冲突连接,并在 Active 状态引导管理员先安全禁用再使用新接入码。同步修复运行时切换后的浏览器会话残留与确认弹窗焦点约束。

验证:pnpm test;pnpm lint;pnpm build。
2026-07-17 18:31:38 +08:00
chengcheng 74c20b1976 Merge remote-tracking branch 'origin/main' into codex/production-cicd
# Conflicts:
#	pnpm-lock.yaml
2026-07-17 16:21:49 +08:00
wangbo cc3bbeccc2 feat(web): 完善 API 文档与异步任务说明 2026-07-17 15:42:46 +08:00
wangbo 0d18df54f1 feat: 增加计费预估核对运维流程 2026-07-17 13:57:21 +08:00
chengcheng af13a0444e fix(build): 修复前端依赖安全门禁
同步缺失的 Vitest 锁文件,并将 Vitest、Vite 及受影响的传递依赖限制到已修复版本,避免严格 frozen install 和高危依赖审计阻塞 CI。\n\n验证:pnpm frozen install、lint、26 个前端测试、Go 测试、生产构建及 high 级依赖审计通过。
2026-07-17 12:38:49 +08:00
chengcheng a767dc42c0 refactor(identity): 统一网页认证配置来源
移除旧 OIDC_* 与 VITE_OIDC_* 业务配置读取,统一使用数据库 Revision 和 SecretStore 引用构建运行时。同步更新 Compose、示例配置、接入文档及集成测试,并保留数据库、SecretStore 和安全事件健康窗口等部署级参数。\n\n验证:go test ./...;go test -race ./...;go vet ./...;pnpm test;pnpm lint;pnpm build;docker compose config -q
2026-07-17 12:31:00 +08:00
chengcheng e0a356ee0c feat(web): 增加统一认证接入与运维页面
系统设置新增统一认证配对、验证、激活、重验证、回滚与禁用流程,安全事件改为统一能力状态。前端登录入口运行时读取公开配置,不再依赖 VITE_OIDC 构建变量。\n\n验证:web 31 项测试;web typecheck;pnpm lint;web production build
2026-07-17 12:18:26 +08:00
chengcheng ffb85b73af feat(ssf): 托管机器凭据并支持动态恢复
Gateway 连接表单接收认证中心一次性交付的 machine Client 凭据,后端立即写入 SecretStore,数据库和公开响应只保留引用及公开 Client ID。SSF 管理 Token、Verification 和 RFC 7662 内省统一从动态凭据读取,支持现有连接无重启修复及进程重启恢复,环境变量仅保留为旧部署回退。\n\n验证:go test ./apps/api/...;pnpm nx test web;真实重启、OIDC 登录与 session-revoked 1.29 秒失效验收。
2026-07-17 09:13:57 +08:00
wangbo a24eb1aeb0 feat: 自托管 AI Gateway 运维管理 SKILL 2026-07-16 23:57:14 +08:00
chengcheng 2ccf041b35 feat(ssf): 增加连接操作审计与追踪证据
安全事件连接的成功和运行时失败现在写入脱敏审计,响应携带 Trace ID 与 Audit ID,管理页面展示最近一次成功操作证据。审计仅记录连接状态、健康模式和错误类别,不采集授权头、Token、Bearer 或 Secret。\n\n验证:HTTP API、Store、Security Events Go 测试以及 Web Vitest、TypeScript 类型检查通过。
2026-07-16 10:55:21 +08:00
chengcheng 42ddc70b27 fix(ssf): 修复安全事件连接基础阻断
为已记录旧迁移版本的环境补充幂等表修复迁移,并让 Transmitter 网络连接在 IPv6 地址不可达时继续尝试 IPv4。失败连接现在通过 If-Match 安全重试,页面同步提供重试入口并清理过期错误提示。\n\n验证:Go securityevents/migrate 测试、Web Vitest 与 TypeScript 类型检查通过。
2026-07-16 10:44:59 +08:00
chengcheng 9efeb16fd1 feat(ssf): 实现安全事件一键连接与凭据托管
新增数据库驱动的 SecurityEventConnectionManager,复用 RFC 7662 机器 Client,自动完成 Discovery、Push Bearer 生成、Stream 创建、Verification、首次启用、零停机轮换和安全退役。

增加文件与 Kubernetes SecretStore、最小权限 RBAC、动态 Receiver/撤销水位/内省降级,以及系统设置管理页面。已通过全量 Go 测试、go vet、关键包竞态测试、27 个 Web 测试、类型检查、生产构建、Compose 和 Kubernetes dry-run。
2026-07-15 17:25:00 +08:00
chengcheng 8ca68eb3cd fix: 为失效 OIDC 事务提供安全重试
细分回调事务、状态和授权响应错误,提供脱敏诊断编号与显式重新登录入口,避免失效事务形成重试循环。
2026-07-13 22:50:09 +08:00
chengcheng 46bac51703 feat: 将 Gateway Web 迁移到 BFF 会话
浏览器只通过 HttpOnly Cookie 恢复统一认证状态,不再访问认证中心 Token Endpoint 或保存 OIDC Token。同步更新错误提示、部署配置和接入文档。
2026-07-13 19:09:57 +08:00
chengcheng a81a7b5200 fix: 修复 OIDC 用户预配与跨标签页登录态
增加受控 JIT 本地用户投影,并使用 HttpOnly Cookie 在新标签页恢复认证中心登录态。补充错误语义、安全校验、自动化测试与回滚配置。
2026-07-13 17:07:52 +08:00
wangbo 17b1f77e1d Merge remote-tracking branch 'origin/main' 2026-07-13 13:28:19 +08:00
wangbo 03abc0eab7 feat(gateway): 接入统一认证中心本地登录 2026-07-12 20:45:35 +08:00
wangbo b9c0e1a7a5 feat: add stable OIDC authentication 2026-07-12 05:14:23 +08:00
wangbo 8847d973a8 feat: add Responses API compatibility 2026-07-10 23:33:15 +08:00
wangbo b7351f3b9b feat(runtime): 适配推理模式开关 2026-07-06 02:03:03 +08:00
chensipeng 0dc9df759b feat(system): 完成客户端自定义与系统设置
新增管理端客户端自定义标签页、公开与管理端系统设置接口、文件存储设置持久化、数据库迁移、契约类型和 OpenAPI 文档。
2026-06-30 14:53:29 +08:00
wangbo 0e675e259c feat: add runner failover rules and cache affinity 2026-06-28 20:50:23 +08:00
wangbo 7f32446466 feat: support cached input token billing 2026-06-23 17:17:57 +08:00
wangbo 02ba5d3cdd 修复模型引用与账单展示 2026-06-15 00:17:20 +08:00
wangbo b860ef37e8 增加单一源保护全局策略 2026-06-15 00:14:40 +08:00
wangbo 4d1a01ec71 Expire local static assets after 24 hours 2026-06-07 19:29:04 +08:00
wangbo f47132a653 完善 API Key 能力范围可视化和维护 2026-06-07 19:01:32 +08:00
wangbo d41d9482c7 Add runtime restore and temp asset cleanup 2026-06-05 20:28:26 +08:00
wangbo 644a6f9d17 完善文档页文本向量与重排序调用支持 2026-05-31 21:18:41 +08:00
wangbo 8ee7a7969e feat: expose retry priority in retry chain 2026-05-30 14:25:29 +08:00
wangbo f5c69b9852 feat: support image quality control 2026-05-28 00:17:27 +08:00
wangbo 3d23918542 fix(model-catalog): refine summary capability filters 2026-05-24 23:38:31 +08:00
wangbo 355d8cad74 fix(model-catalog): align enabled model summary 2026-05-24 23:06:24 +08:00
wangbo 71950d2b4f fix(rate-limits): treat empty policies as unlimited 2026-05-24 22:28:25 +08:00
wangbo 6d99e26e2a feat(admin): support provider model presets 2026-05-24 22:28:07 +08:00
wangbo 8ad5b06c18 feat(api): 添加多媒体内容支持并优化钱包计费系统
- 在 API 接口定义中为 video_url 和 audio_url 类型添加 mime_type 字段
- 实现 Google Gemini 客户端对视频和音频内容的支持,包括媒体类型检测和数据传输
- 添加 Gemini 客户端测试用例验证多媒体内容转换功能
- 重构 Playground 页面的媒体上传逻辑以支持 MIME 类型传递
- 实现钱包计费预留机制,确保任务执行前余额充足
- 添加钱包冻结余额管理,防止并发操作导致的超扣问题
- 实现计费预留释放逻辑,处理任务失败或取消情况下的资金返还
- 优化数据库事务处理,确保计费操作的原子性和一致性
- 添加数据库集成测试验证迁移脚本执行流程
- 统一 Google Gemini 相关模型提供商标识符映射
2026-05-22 23:46:08 +08:00
chensipeng 13186f8ed1 feat(chat): 完善 Chat Completions 兼容层 2026-05-19 17:46:27 +08:00