API7 Gateway 3.8.19
OpenAPI to MCP — Supported using variable syntax in base_url.
Release Date: 2025-12-09
Features
Plugins
- OpenAPI to MCP (opens in Plugin Hub docs)
- Supported using variable syntax in
base_url.
- Supported using variable syntax in
- AI Rate Limiting (opens in Plugin Hub docs)
- Supported using Redis, Redis Cluster, and Redis Sentinel as storage backends.
Upgrade note
The ai-rate-limiting plugin now requires a new policy field. Existing configurations continue to function on the data plane, but any updates must include policy: local; otherwise, the update will be rejected.
Data Plane
- Added support for the
${external_user.*}built-in variable to retrieve values from external user information. The variable is injected by theopenid-connectplugin and developer portal OAuth authentication.
Fixes
Plugins
- AI Proxy (opens in Plugin Hub docs)/AI Proxy Multi (opens in Plugin Hub docs)
- Fixed issue: Request headers generated by the client or other plugins were not forwarded to the upstream.
- AI Rate Limiting (opens in Plugin Hub docs)/Limit Count Advanced (opens in Plugin Hub docs)
- Fixed issue: When multiple
ruleswere matched simultaneously, the rate-limiting headers could not be distinguished. By default, they are now distinguished by the index of the matchedrule. Theheader_prefixconfiguration is also supported for custom prefixes. - Fixed issue: When variables were used in the
limitfield, the rate-limiting status was not updated in real-time after the variable's value changed.
- Fixed issue: When multiple
Control Plane
- Fixed issue: Users' access tokens could still be used to access APIs after expiration.
- Fixed issue: The "Labels" section in the Dashboard displayed a large number of duplicate input fields when creating a route.
- Fixed issue: Disabled plugins on a route could not override enabled plugins of the same name on the associated service.
- Fixed issue: Dropdown option values in the Portal Dashboard changed frequently.
- Fixed issue: Plugin configurations in the Dashboard did not automatically populate default values.