更新日志
3.9.9
发布日期:2026-04-10
新功能
控制面
- Upstream 标签现在可通过 API 正确持久化和返回。此前,通过 ADC 或 Ingress Controller 设置的 upstream 标签在持久化过程中被静默丢弃,导致每次同步周期产生虚假差异和不必要的审计日志增长。
- 文件服务器地址现在可通过 Dashboard 系统设置页面动态配 置,与 DP Manager 地址和 Admin API 地址使用相同的双数据源模式。
缺陷修复
插件
- AI Proxy
- 修复问题:使用 AI Proxy 进行协议转换时(例如 Anthropic 客户端转 OpenAI 提供商),
stream_options.include_usage=true被注入到转换前的请求体而非转换后的 OpenAI 请求体中,导致转换协议的流式响应中缺少用量统计信息。
- 修复问题:使用 AI Proxy 进行协议转换时(例如 Anthropic 客户端转 OpenAI 提供商),
- Forward Auth
- 修复问题:当认证服务返回 HTTP 200 但未包含
upstream_headers中配置的某个请求头时,客户端原始请求中携带的该请求头值被直接转发到上游,而非被清除。这可能导致客户端通过在原始请求中携带该请求头来伪造上游请求头。
- 修复问题:当认证服务返回 HTTP 200 但未包含
- JWT Auth
- 修复问题:JWT Auth 插件在签名验证前未校验 JWT 令牌的
alg头是否与消费者配置的算法一致,可能导致算法混淆攻击。
- 修复问题:JWT Auth 插件在签名验证前未校验 JWT 令牌的
数据面
- 修复问题:数据面兼容性报告对有效的插件配置显示了虚假的警告信息。使用
patternProperties、条件 schema(if/then/else)、allOf、dependencies或additionalProperties=true的插件被错误地报告了"未识别字段"警告。受影响的插件包括 ai-proxy、ai-proxy-multi、openapi-to-mcp、acl、http-logger、limit-count-advanced、portal-auth、jwt-auth、proxy-rewrite 和 grpc-transcode。
3.9.8
发布日期:2026-04-07
不兼容变更
插件
-
Limit Count
升级说明limit-count插件中的sync_interval(Redis 延迟同步)功能已被移除,该功能现在仅在 Limit Count Advanced 插件中提供。如果你正在使用配置了sync_interval的limit-count插件,请在升级前将配置迁移至limit-count-advanced插件。
新功能
插件
- MCP Tools ACL(新插件)
- 新增用于 MCP 服务的工具级访问控制插件,适用于通过 OpenAPI-to-MCP 插件暴露的 MCP 服务。支持白名单(
allow_tools)和黑名单(deny_tools)模式,并可通过表达式匹配条件实现路由级或服务级工具访问策略。支持消费者和消费者组的优先级规则评估。SSE 响应会自动过滤tools/list结果中被拒绝的工具。
- 新增用于 MCP 服务的工具级访问控制插件,适用于通过 OpenAPI-to-MCP 插件暴露的 MCP 服务。支持白名单(
- AI Proxy
- 新增原生 Anthropic Messages API 支持。使用 Anthropic SDK 格式发送到
/v1/messages的请求现在可直接透传至 Anthropic 兼容后端,无需协议转换,保留 Anthropic 特有的字段(如缓存 token 用量)。 - 新增 OpenAI Responses API(
POST /v1/responses)完整支持。流式和非流式响应均可正确处理,所有下游插件(RAG、内容审核、Prompt Decorator、Prompt Guard、日志)均可与 Responses API 格式正常协作。
- 新增原生 Anthropic Messages API 支持。使用 Anthropic SDK 格式发送到
- AI Rate Limiting
- 新增
expression限速策略,支持通过cost_expr字段使用自定义 Lua 算术表达式动态计算 token 成本。例如,input_tokens + cache_creation_input_tokens可实现 Anthropic Claude 的缓存感知输入 token 每分钟(ITPM)限速。
- 新增
- OAS Validator
- 新增 OpenAPI 3.1 规范校验支持,包括
exclusiveMinimum/exclusiveMaximum数值格式、if/then/else条件 schema、["string", "null"]可空类型、const、patternProperties、prefixItems以及 JSON Schema$dynamicRef/$dynamicAnchor等特性。 - 新增可配置的
rejection_status_code选项(400–599,默认 400),可区分语义校验错误(如 422 Unprocessable Entity)和请求格式错误(400 Bad Request)。
- 新增 OpenAPI 3.1 规范校验支持,包括
- Request ID
- 新增
uuidv7算法选项。UUID v7 生成按时间排序、字典序可排序的唯一标识符,比随机 UUID v4 更适合分布式追踪和日志关联。
- 新增
- OpenAPI to MCP
- 新增 OpenAPI
in: header参数支持。OpenAPI 规范中定义的 Header 参数现在可正确包含在 MCP 工具 schema 中,并在调用上游 API 时作为 HTTP 请求头转发。
- 新增 OpenAPI
控制面
- 新增 Vault 动态角色数据库凭证轮换支持。动态角色会创建具有可配置租约 TTL 的临时数据库用户,相比静态角色安全性更高。动态角色现为默认模式,并支持指数退避自动重试启动。
- 新增独立的文件服务器组件,用于托管 MCP 服务器可访问的文件。文件可通过 Dashboard API 上传,通过专用端口提供服务。文件服务器默认关闭,可在系统设置中启用。
- 新增 HTTP Bridge 动态客户端注册(DCR)提供者类型。HTTP Bridge 通过可配置的 HTTP 端点将 DCR 操作(注册、更新、删除、轮换密钥)代理至外部身份提供者。
- 新增数据面兼容性报告功能。当控制面与 数据面版本不一致时,数据面通过心跳上报不兼容资源详情(schema 校验失败、未知插件字段、缺失插件),兼容性状态可通过运行时实例 API 查看。
- 发布服务时 upstream 配置现在为可选项,支持 AI Proxy 等无需后端 upstream 的纯插件场景。
- 优化自定义插件同步机制,采用增量缓存刷新。定时同步任务现在仅查询变更部分而非全表扫描,显著降低数据库负载。
数据面
- 优化 Redis Sentinel 连接性能。Master 节点地址现通过可配置 TTL 的本地缓存进行缓存,减少每次新建连接时对 Sentinel 的查询往返。此外,连接池中复用的连接跳过重复的 AUTH 和 SELECT DB 命令,降低高吞吐 Redis 操作的延迟。
开发者门户
- 新增管理员身份模拟功能。门户管理员可模拟组织 Owner 身份进行问题排查,模拟会话有效期 1 小时,模拟期间显示持久性警告横幅。
- 新增 HTTP Bridge 凭证的 OAuth 客户端密钥重新生成功能。组织 Owner 可通过凭证管理界面中的确认弹窗重新生成密钥。
- 新增可配置的 TOTP 双因素认证(2FA),用于开发者门户登录。
- 新增基于角色的访问控制(RBAC),包含三种角色:Owner(完全控制,包括删除组织)、Admin(除删除组织外的所有权限)和 Member(仅查看权限)。
- 组织设置页面现使用 slug 前缀 URL。切换组织或重命名组织 slug 时,页面 URL 自动更新。
- 应用详情页现根据门户配置文件中的设置展示相关配置。
- 新增可选的注册提示 HTML 插槽,用于在认证页面的注册按钮前展示自定义可信内容。
缺陷修复
插件
- AI Aliyun Content Moderation
- 修复问题:空白内容导致阿里云审核 API 返回 400 错误。此外,LLM 错误响应(状态码 ≥ 400)在响应审核阶段触发 500 错误,多模态内容数组导致文本提取崩溃。
- AI Proxy
- 修复问题:当插件通过
ngx.exit()提前退出时,apisix_llm_active_connectionsPrometheus 指标永远不会递减,导致该指标持续增长并报告不准确的活跃连接数。
- 修复问题:当插件通过
- AI Rate Limiting、Limit Conn、Limit Req
- 修复问题:Redis 主机配置中的
$env://和$secret://引用被当作字面字符串传递,未能解析为实际值,导致 Redis 连接失败。
- 修复问题:Redis 主机配置中的
- 修复问题:多个插件和 Agent 日志输出中,API 密钥、认证令牌、OAuth 凭证和完整插件配置以明文形式记录。敏感数据现已脱敏处理。