API7 Enterprise Release Notes
3.9.9
Release Date: 2026-04-10
Features
Control Plane
- Upstream labels are now persisted and returned correctly via the API. Previously, labels set on upstreams (e.g., by ADC or Ingress Controller) were silently dropped during persistence, causing false diffs on every sync cycle and unnecessary audit log growth.
- The file server address can now be dynamically configured through the System Settings page in the Dashboard, following the same dual-source pattern as the DP Manager address and Admin API address.
Fixes
Plugins
- AI Proxy
- Fixed issue: When using AI Proxy with protocol conversion (e.g., Anthropic client to OpenAI provider),
stream_options.include_usage=truewas injected into the pre-conversion request body instead of the post-conversion OpenAI body, so usage statistics were missing from streaming responses for converted protocols.
- Fixed issue: When using AI Proxy with protocol conversion (e.g., Anthropic client to OpenAI provider),
- Forward Auth
- Fixed issue: When the auth service responded with HTTP 200 but omitted a header listed in
upstream_headers, the original client-supplied value was forwarded to the upstream instead of being cleared. This could allow clients to spoof upstream headers by including them in the original request.
- Fixed issue: When the auth service responded with HTTP 200 but omitted a header listed in
- JWT Auth
- Fixed issue: The JWT Auth plugin did not verify that the JWT token's
algheader matched the consumer's configured algorithm before signature verification, which could allow algorithm confusion attacks.
- Fixed issue: The JWT Auth plugin did not verify that the JWT token's
Data Plane
- Fixed issue: The Data Plane compatibility report showed spurious warnings for valid plugin configurations. Plugins using
patternProperties, conditional schemas (if/then/else),allOf,dependencies, oradditionalProperties=trueincorrectly reported "unrecognized fields" warnings. Affected plugins included ai-proxy, ai-proxy-multi, openapi-to-mcp, acl, http-logger, limit-count-advanced, portal-auth, jwt-auth, proxy-rewrite, and grpc-transcode.
3.9.8
Release Date: 2026-04-07
Breaking Changes
Plugins
-
Limit Count
Upgrade noteThe
sync_interval(Redis delayed sync) feature has been removed from thelimit-countplugin and is now available exclusively in the Limit Count Advanced plugin. If you are usinglimit-countwithsync_intervalconfigured, migrate your configuration to thelimit-count-advancedplugin before upgrading.
Features
Plugins
- MCP Tools ACL (New Plugin)
- Added a new plugin for per-tool access control on MCP services exposed via the OpenAPI-to-MCP plugin. Supports allowlist (
allow_tools) and denylist (deny_tools) modes with expression-based matching conditions for route-level or service-level tool access policies. Consumers and consumer groups are supported with priority-based rule evaluation. SSE responses are automatically filtered to remove denied tools fromtools/listresults.
- Added a new plugin for per-tool access control on MCP services exposed via the OpenAPI-to-MCP plugin. Supports allowlist (
- AI Proxy
- Added native Anthropic Messages API support. Requests to
/v1/messagesusing the Anthropic SDK format are now passed through directly to Anthropic-compatible backends without protocol conversion, preserving Anthropic-specific fields such as cache token usage. - Added full support for the OpenAI Responses API (
POST /v1/responses). Both streaming and non-streaming responses are handled, and all downstream plugins (RAG, content moderation, prompt decorator, prompt guard, logging) work correctly with the Responses API format.
- Added native Anthropic Messages API support. Requests to
- AI Rate Limiting
- Added a new
expressionlimit strategy with thecost_exprfield, allowing dynamic token cost calculation using custom Lua arithmetic expressions. For example,input_tokens + cache_creation_input_tokensenables cache-aware input token per minute (ITPM) rate limiting for Anthropic Claude.
- Added a new
- OAS Validator
- Added support for OpenAPI 3.1 specification validation, including features such as
exclusiveMinimum/exclusiveMaximumas numbers,if/then/elseconditional schemas, nullable types via["string", "null"],const,patternProperties,prefixItems, and JSON Schema$dynamicRef/$dynamicAnchor. - Added a configurable
rejection_status_codeoption (400–599, default 400). This allows distinguishing semantic validation errors (e.g., 422 Unprocessable Entity) from malformed request syntax (400 Bad Request).
- Added support for OpenAPI 3.1 specification validation, including features such as
- Request ID
- Added
uuidv7as a newalgorithmoption. UUID v7 generates time-ordered, lexicographically sortable unique identifiers, making them more suitable for distributed tracing and log correlation than random UUID v4.
- Added
- OpenAPI to MCP
- Added support for OpenAPI
in: headerparameters. Header parameters defined in OpenAPI specs are now correctly included in MCP tool schemas and forwarded as HTTP headers when invoking the upstream API.
- Added support for OpenAPI
Control Plane
- Added support for Vault dynamic roles for database credential rotation. Dynamic roles create temporary database users with a configurable lease TTL, improving security compared to static roles. Dynamic role is now the default mode, with automatic startup retry using exponential backoff.
- Added a standalone file-server component for hosting files accessible by MCP servers. Files can be uploaded via the Dashboard API and served through a dedicated port. The file server is disabled by default and can be enabled in the system settings.
- Added HTTP Bridge as a new Dynamic Client Registration (DCR) provider type. HTTP Bridge proxies DCR operations (register, update, delete, rotate secret) to an external identity provider via configurable HTTP endpoints.
- Added Data Plane compatibility reporting. When Control Plane and Data Plane versions differ, the Data Plane now reports incompatible resource details (schema validation failures, unknown plugin fields, missing plugins) via heartbeat. Compatibility status is viewable through the runtime instance API.
- Services can now be published without upstream configuration, enabling AI Proxy and other plugin-only scenarios where no backend upstream is needed.
- Optimized custom plugin synchronization with incremental cache refresh. The periodic sync job now queries only for changes instead of performing a full table scan, significantly reducing database load.
Data Plane
- Improved Redis Sentinel connection performance. Master node addresses are now cached with a configurable TTL, reducing Sentinel round-trip queries on each new connection. Additionally, pooled connections skip redundant AUTH and SELECT DB commands, lowering latency for high-throughput Redis operations.
Developer Portal
- Added admin impersonation. Portal administrators can impersonate organization owners to troubleshoot issues, with a 1-hour time-to-live and a persistent warning banner during impersonation.
- Added OAuth client secret regeneration for HTTP Bridge credentials. Organization owners can regenerate secrets through a confirmation modal in the credential management UI.
- Added configurable TOTP-based two-factor authentication (2FA) for Developer Portal login.
- Added role-based access control (RBAC) with three roles: Owner (full control, including organization deletion), Admin (all permissions except organization deletion), and Member (view-only access).
- Organization settings now use slug-prefixed URLs. Page URLs update automatically when switching organizations or renaming the organization slug.
- Application detail pages now display configuration based on portal settings.
- Added an optional signup notice HTML slot for displaying trusted custom content before the sign-up button on the authentication page.
Fixes
Plugins
- AI Aliyun Content Moderation
- Fixed issue: Empty or whitespace-only content caused a 400 error from the Alibaba Cloud moderation API. Additionally, LLM error responses (status ≥ 400) triggered a 500 error during response moderation, and multimodal content arrays crashed text extraction.
- AI Proxy
- Fixed issue: The
apisix_llm_active_connectionsPrometheus gauge was never decremented when a plugin exited early viangx.exit(), causing the metric to grow indefinitely and report incorrect active connection counts.
- Fixed issue: The
- AI Rate Limiting, Limit Conn, Limit Req
- Fixed issue:
$env://and$secret://references in Redis host configuration were passed as literal strings instead of being resolved to their actual values, causing Redis connection failures.
- Fixed issue:
- Fixed issue: API keys, authentication tokens, OAuth credentials, and full plugin configuration payloads were logged in plaintext across multiple plugin and agent log outputs. Sensitive data is now redacted.
Control Plane
- Fixed issue: Updating service runtime configuration (e.g., toggling service status) via PATCH failed with a schema validation error when the service had no upstream configured.
- Fixed issue: HTTP and stream subsystem plugins sharing the same name used a single cache entry, causing the wrong plugin schema to be used for validation when both subsystems were active.
- Fixed issue: Subscriptions could be deleted across API products without validating that the subscription belonged to the target product.
- Fixed issue: Services without upstream configuration showed phantom empty upstream records in the upstream list API.
- Fixed issue: Control Plane crashed with a nil pointer dereference during upgrade migration when processing services with no upstream configured.
- Fixed issue: Multiple API Products within the same Developer Portal could link to the same gateway service (same service ID and gateway group), causing configuration conflicts.
- Fixed issue: Updating an SSL certificate allowed SNI collisions when adding new domains that conflicted with existing certificates.
- Fixed issue: Deleting an API Product that shared a gateway service with another product incorrectly removed all system plugins from the shared service, breaking the other product's authentication configuration.
- Fixed issue: DCR provider authentication headers (such as Bearer tokens) were stored in the database without encryption.
- Fixed issue: Consumer credential secrets were not masked in audit logs due to a value/pointer receiver mismatch.
- Fixed issue: Approval handlers (accept/reject subscription) continued execution after returning a 403 status, bypassing the permission check and processing the request.
- Fixed issue: Read-only Developer Portal users could cancel API Product subscriptions because the endpoint used a read permission check instead of write.
- Fixed issue: PATCH operations on route and stream route runtime configurations used read-only or view-only permission checks, allowing users without write access to modify configurations.
- Fixed issue: Upstream resources were not validated against the requested service, allowing access to upstreams belonging to other services.
- Fixed issue: The CAS SSLVerify configuration flag was inverted, causing TLS certificate verification to be disabled when it was configured as enabled. This could expose CAS authentication connections to man-in-the-middle attacks.
- Fixed issue: Concurrent requests from ADC caused a fatal crash (
concurrent map writes) in the route validator due to unsynchronized access to lazy-initialized schema cache maps. - Fixed issue: API call statistics flush held a database lock during IO operations, causing performance degradation under high traffic. The flush mechanism now uses swap-and-release with batch writes.
Console (Dashboard)
- Fixed issue: The Service Hub page and related modals crashed when a service had an empty or missing name.
- Fixed issue: Adding the same service published to different gateway groups as linked services, was incorrectly blocked by frontend validation.
Data Plane
- Fixed issue: DNS resolution intermittently returned incorrect IP addresses. When the gateway operated in cache-only mode, DNS Additional section records (nameserver glue records) were incorrectly included in resolution results and their domain names overwritten with the queried domain. This caused random upstream connection failures, as the gateway occasionally selected a nameserver IP instead of the actual service IP.
Developer Portal
- Fixed issue: Every unauthenticated request to the Developer Portal generated a "No developer ID in session" log entry, flooding production logs and obscuring real errors.
- Fixed issue: The "Regenerate Secret" option was shown (as disabled) for OIDC provider credentials, instead of being hidden. It is now only visible for HTTP Bridge credentials.
- Fixed issue: After re-signing in without logging out, the owner role was not properly restored, causing role-gated UI buttons to appear disabled until a manual page refresh.
3.9.7
Release Date: 2026-03-25
Features
Plugins
- AI Proxy
- Added bidirectional protocol conversion between Anthropic and OpenAI formats. Users can send requests in Anthropic SDK format to OpenAI-compatible backends (such as DeepSeek or OpenRouter), with the gateway automatically converting request and response formats, including SSE streaming.
- OpenAPI to MCP
- Added MCP Tool Annotations support. Tools generated from OpenAPI specs can now carry behavioral metadata (read-only, destructive, idempotent) via the
x-mcp-annotationsvendor extension, enabling AI agents to better understand and invoke APIs.
- Added MCP Tool Annotations support. Tools generated from OpenAPI specs can now carry behavioral metadata (read-only, destructive, idempotent) via the
Control Plane
- Added a form-based UI for the Limit Count plugin in Dashboard, supporting visual configuration of Local, Redis, and Redis Cluster policies without manually editing JSON/YAML.
- Added custom menu groups in the Dashboard sidebar. External links such as internal documentation or wiki pages can be configured via a YAML config file.
- Improved performance under high API traffic by reducing database write frequency for hot-path operations (such as token last-used timestamps and gateway heartbeat timestamps) through write debouncing and in-memory caching. Also optimized distributed lock acquisition latency.
Data Plane
- Added port range support for
stream_proxyTCP and UDP listeners (e.g.,2000-2100), eliminating the need to list each port individually when configuring a large number of proxy ports.
Fixes
Plugins
- AI Proxy
- Fixed issue: AI request token usage statistics (
prompt_tokens,completion_tokens) were inaccurate when HTTP chunk boundaries did not align with SSE event boundaries in upstream responses.
- Fixed issue: AI request token usage statistics (
- Prometheus
- Fixed issue:
apisix_llm_*metrics were exported for all API routes, even those without AI plugins enabled, causing unnecessary metric cardinality and storage overhead. Also addeddisabled_labelssupport for LLM metrics, allowing operators to selectively disable high-cardinality labels.
- Fixed issue:
Control Plane
- Fixed issue: When multiple concurrent API requests modified Global Rules simultaneously, only the last write took effect in the gateway, even though Dashboard showed all modifications as successful.
- Fixed issue: Syncing service configurations with non-HTTPS active health checks via ADC failed with the error
Unrecognized key: "https_verify_certificate". - Updated the default worker count to 1 when adding Kubernetes gateway instances in Dashboard.
Data Plane
- Fixed issue: API call count statistics became inaccurate after a gateway worker process restart (e.g., an unexpected crash).
3.9.6
Release Date: 2026-03-09
Features
Plugins
- Error Log Collect
- Added a new plugin to support centralized error log collection.
- Oas Validator
- Added a new parameter
reject_if_not_match. When set tofalse, it allows requests to pass to upstream services even if they fail OAS validation.
- Added a new parameter
- Limit Count Advanced
- Added more log information for easier debugging.
Control Plane
- Supported published Services and Routes in Resource name APIs.
- Added support for Services and Routes as alert conditions in alert policies.
- Supports dynamic rotation of Postgres credentials via Vault.
Data Plane
- Added the
rate-limiting-infovariable to retrieve detailed status information of rate-limiting plugins. - Enhanced Docker images: switched to distroless base images and upgraded busybox to fix security vulnerabilities.
Fixes
Plugins
- Limit Count Advanced
- Fixed issue: A panic in the synchronization function could cause the shared dictionary lock to not be released, leading to synchronization interruptions.
3.9.5
Release Date: 2026-02-14
Features
Plugins
- Feishu Auth
- Added a new Feishu authentication plugin based on the OIDC Authorization Code flow, supporting integration with internal business services in the workbench.
- Dingtalk Auth
- Added a new Dingtalk authentication plugin that logs key information during the authentication process for easier tracking.
Control Plane
-
Daily License Information Logging: The control plane now records daily license information, including CPU limits, expiration time, and current core usage. It starts logging reminders 3 months before the license expires. Users can directly view CPU usage through the logs.
-
OpenTelemetry Data Collection and Visualization: The control plane can now dispatch debug and sampling tasks to data planes, receive reported data, and support data export via API along with frontend visualization.
NoteThis feature introduces Jaeger as an additional component. If deploying with Helm, note that the control plane's values file enables Jaeger by default. The official Helm chart is available at https://charts.api7.ai.
3.9.4
Release Date: 2026-02-03
Features
Control Plane
- After disabling SCIM, users can delete historical SCIM accounts synchronized from the IdP in API7.
- Supports uploading OpenAPI 3.1.0 and 3.1.1 files.
Fixes
Plugins
- Limit Count
- Fixed issue: The counter data could be inaccurate if the Gateway crashed unexpectedly.
Data Plane
- Fixed issue: The heartbeat and metrics reporting would only use the first control plane address when multiple addresses were configured.
Control Plane
- Fixed issue: A route URL not starting with
/would cause the conflict detection API to return a500error. - Fixed issue: The code hints in the plugin configuration editor would sometimes stop working.
3.9.3
Release Date: 2026-01-26
Features
Plugins
- AI Request Rewrite
- Supported two new providers: Gemini, Vertex AI.
- SAML Auth
- Added
auth_protocol_binding_methodparameter to support configuring SAML protocol binding methods, includingHTTP-POSTandHTTP-Redirect. The default value isHTTP-Redirect(backward compatible with previous versions).HTTP-POSTmust be used when Azure AD is the identity provider.
- Added
Fixes
Plugins
- SAML Auth
-
Fixed issue: SAML sessions could not be shared across multiple gateway instances. Added the mandatory
secretfield for configuring the key to encrypt session data.Upgrade noteThe
saml-authplugin upgraded from older versions can work normally but cannot share sessions across multiple gateway instances. This issue can be resolved by configuring thesecretfield. -
Fixed issue: Missing
NameIDfield in the SAML request when processing logout requests. The absence of theNameIDfield will cause logout failure when Azure AD is the identity provider.
-
3.9.2
Release Date: 2026-01-19
Features
Plugins
- AI Proxy/AI Proxy Multi
- Supported four new providers: Gemini, Vertex AI, OpenRouter, and Anthropic.
- Basic Auth/JWT Auth/Key Auth/HMAC Auth/LDAP Auth
- Added a
realmconfiguration option to set the Realm value in theWWW-Authenticateresponse header for 401 authentication failures.
- Added a
- OpenID Connect
- Supported validating claims by configuring
claim_schema.
- Supported validating claims by configuring
Control Plane
- Rejected gateway nodes with a version higher than the Control Plane.
- Supported querying node health status in multi-upstream scenarios.
Fixes
Plugins
- Limit Count
- Fixed issue: The rate limiting counter was shared when the same rate-limiting configuration was applied across multiple consumers (introduced in 3.8.5).
- Limit Count Advanced
- Fixed issue: Incorrect data appeared when resetting request headers (introduced in 3.8.19).
- Fixed issue: Rate limiting data was not correctly submitted after enabling Redis delayed synchronization (introduced in 3.8.19).
- Fixed issue: Redis password could not be specified in Redis Sentinel mode.
- Fixed issue: Keepalive was not enabled for Redis connections in Redis Sentinel mode.
- Syslog
- Fixed issue: After sending an excessively long log in UDP mode, subsequent logs could not be sent.
- Request ID
- Fixed issue: The system failed to generate a new request ID when the
request-idprovided by the client was empty.
- Fixed issue: The system failed to generate a new request ID when the
Data Plane
- Fixed issue: A
deepcopy table overflowerror could occur during the startup process. - Fixed issue: The
serverheader still returned "APISIX" whenenable_server_tokenswas disabled. - Fixed issue: The health checker caused the gateway to continuously output error logs after an update to the
ai-proxy-multiplugin.
Control Plane
- Fixed issue: The default
client.depthfor SSL resources was too small, causing mTLS migration failure for Cloud v2 users. - Fixed issue: Data duplication could occur during concurrent calls to the SSL API.
- Fixed issue: The health status of frontend components on the Dashboard was not reflected in the
/healthzAPI response.
3.9.1
Release Date: 2026-01-08
Fix
Developer Portal
- Fixed issue: "Developers" created in older versions of the Developer Portal could not be deleted.
3.9.0
Release Date: 2026-01-06
Features
- All API7 Enterprise Docker images are now signed using Cosign, enhancing image security.
Developer Portal
- Newly Redesigned Developer Portal
- Provides open-source SDKs and a frontend scaffolding project to facilitate user customization and development.
- Introduces a new Portal-level authentication mechanism for API integration.
- Removes the built-in Portal SSO feature.
Plugins
-
-
Supported using Redis and Redis Cluster as the rate limiting data storage backend.
Upgrade noteAdded a new required field
policy. Existing configurations do not require modification and will continue to function in the data plane. However, when updating a configuration, this field must be supplied (e.g.,policy=local), otherwise the update will be rejected.
-
-
- Added a new algorithm
ksuidfor ID generation.
- Added a new algorithm
-
- Supported customizing HTTP headers sent to the Loki server.
-
File Logger
- Supported conditional request logging using the
matchfield.
- Supported conditional request logging using the
-
- The
rulesfield is now required.
- The
Control Plane
- Allowed to completely disable built-in username/password login after enabling SSO login.
- Supported configuring the maximum execution time for database statements.
- Observability Enhancements
- Enabled the pprof performance profiling by default.
- Added database connection pool metrics to the metrics endpoint.
- Supported separate logging for access and error logs.
- Added the
request_idfield to access and error logs.
Fixes
Plugins
- OpenAPI to MCP
- Fixed issue: Passing authentication credentials via query parameters could lead to sensitive information leakage.
Data Plane
- Optimized caching behavior for resolution chains that involve CNAME and A records.
Control Plane
- Removed the display of IP and Port from the gateway instance list to avoid misleading users.
- Fixed issue: Database deadlocks could occur during concurrent batch inserts into the API call statistics table.
- Fixed issue: Dashboard failed to start when using a non-
publicschema in PostgreSQL.
3.8.23
Release Date: 2026-02-03
Features
Control Plane
- Supports uploading OpenAPI 3.1.0 and 3.1.1 files.
Fixes
Data Plane
- Fixed issue: Heartbeat and metrics would only be reported to the first control plane address when multiple addresses were configured.
Control Plane
- Fixed issue: A route URL not starting with
/would cause the conflict detection API to return a500error.
3.8.22
Release Date: 2026-01-19
Fixes
Plugins
- Limit Count
- Fixed issue: The rate limiting counter was shared when the same rate-limiting configuration was applied across multiple consumers (introduced in 3.8.5).
- Limit Count Advanced
- Fixed issue: Incorrect data appeared when resetting request headers (introduced in 3.8.19).
- Fixed issue: Rate limiting data was not correctly submitted after enabling Redis delayed synchronization (introduced in 3.8.19).
- Fixed issue: Redis password could not be specified in Redis Sentinel mode.
- Fixed issue: Keepalive was not enabled for Redis connections in Redis Sentinel mode.
- Syslog
- Fixed issue: After sending an excessively long log in UDP mode, subsequent logs could not be sent.
- Request ID
- Fixed issue: The system failed to generate a new request ID when the
request-idprovided by the client was empty.
- Fixed issue: The system failed to generate a new request ID when the
Data Plane
- Fixed issue: A
deepcopy table overflowerror could occur during the startup process.
Control Plane
- Fixed issue: The default
client.depthfor SSL resources was too small, causing mTLS migration failure for Cloud v2 users. - Fixed issue: Data duplication could occur during concurrent calls to the SSL API.
3.8.21
Release Date: 2025-12-23
Features
Plugins
- gRPC Web
- Supported enabling the plugin on routes that use non-wildcard paths.
- OpenAPI to MCP
- Provided the
flatten_parametersparameter to control whether path and query parameters from the OpenAPI specification are placed at the top level of the tools input schema.
- Provided the
Data Plane
- Fallback CP
- Supported using the gateway as a backup node to sync data to AWS S3 and Azure Blob. Note that backup nodes do not provide HTTP/HTTPS services and are not counted towards the license quota.
- Supported authentication using AWS IAM Role and Azure Managed Identity.
Control Plane
- Supported using MSSQL Server 2022 as the database for the control plane.
- Provided script generation for deploying gateway instances using Docker Compose.
- Improved the text prompts for each parameter when deploying gateway instances in Kubernetes.
Fixes
Plugins
- AI Proxy/AI Proxy Multi
- Fixed issue: Headers configured in the plugin could not override downstream headers with the same name due to case-insensitivity.
- Limit Conn/Limit Count Advanced/AI Rate Limiting
- Fixed issue: The
rules.keyfield did not support the variable default value syntax.
- Fixed issue: The
- OpenAPI to MCP
- Fixed issue: Errors or perpetual loading occurred when configuring the MCP Server in AI clients such as Cursor and Cline.
Data Plane
- Fixed issue: The gateway continued its startup process even after failing to connect to the control plane during initialization.
- Fixed issue: Heartbeat failed when the gateway listened on the same port using different IP addresses.
- Fixed issue: The Fallback CP feature failed to load credential data correctly.
- Fixed issue: Optimized the performance after enabling the Prometheus plugin.
Control Plane
- Fixed issue: For services created via the Admin API, their routes could not be selected on the console's monitoring page to view monitoring data.
- Fixed issue: Incorrect "Unhealthy Ratio" data displayed on the console's upstream page after configuring active health checks for an upstream.
3.8.20
Release Date: 2025-12-11
Fixes
- OpenAPI to MCP
- Fixed issue: Variables in
base_urlwere not resolved correctly.
- Fixed issue: Variables in
3.8.19
Release Date: 2025-12-09
Features
Plugins
- OpenAPI to MCP
- Supported using variable syntax in
base_url.
- Supported using variable syntax in
- AI Rate Limiting
- Supported using Redis, Redis Cluster, and Redis Sentinel as storage backends.
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/AI Proxy Multi
- Fixed issue: Request headers generated by the client or other plugins were not forwarded to the upstream.
- AI Rate Limiting/Limit Count Advanced
- 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.
3.8.18
Release Date: 2025-11-25
To support creating multiple Portal instances, the portal-auth plugin of the data plane has been upgraded. After upgrading the control plane, users should upgrade the data plane as soon as possible. During the period between the control plane upgrade and the data plane upgrade completion, please do not update existing API products, as such changes will not take effect.
Features
Data Plane
- Supported specifying the
backlogconfiguration for listening ports. - Supported Azure Blob storage type in
fallback_cp.
Control Plane
- Supported Dynamic Client Registration (DCR) provider management.
- Supported DCR authentication type in API products.
- Supported OAuth authentication type (obtaining client ID and client secret based on DCR) in Developer credentials.
- Supported creating multiple Portal instances. Existing Portal usage data will be assigned to the automatically created
defaultPortal instance. - API7 Dashboard supported specifying the license storage path in the configuration file.
Fixes
Plugins
- All Logger Plugins
- Fixed issue: Logger plugins failed to obtain request bodies when client request bodies were too large to generate temporary files.
- AI Proxy Multi
- Fixed issue: Health checkers were rebuilt when requests hit different consumers.
Control Plane
- Fixed issue: The Helm Chart version was not locked in the Ingress Controller installation script.
- Fixed issue: Offline gateway instances were still displaying compatibility tags.
- Fixed issue: When creating/updating upstreams, the system did not check if
upstream_hostwas empty whenpass_hostwas set torewrite. - Fixed issue: In the Developer Portal, when OpenAPI documents contained multiple
server_urls, developers could not select aserver_urlwhen initiating test requests. - Fixed issue: Developers with subscriptions under the "pending approval" state can still make requests to the gateway.
3.8.17
Release Date: 2025-11-10
Features
Plugins
- Limit Conn
- Supported variable syntax in the
connandburstfields. - Added a
rulesfield for configuring multiple rate-limiting rules simultaneously.
- Supported variable syntax in the
- Limit Count Advanced
- Supported variable syntax in the
countandtime_windowfields. - Added a
rulesfield for configuring multiple rate-limiting rules simultaneously.
- Supported variable syntax in the
- AI Rate Limiting
- Supported variable syntax in the
limitandtime_windowfields. - Added a
rulesfield for configuring multiple rate-limiting rules simultaneously.
- Supported variable syntax in the
- AI Proxy/AI Proxy Multi/AI Request Rewrite
- Supported the
aimlapiprovider.
- Supported the
- OpenAPI to MCP
- Considered the default values of query parameters defined in OpenAPI when sending requests to the upstream service.
- All Access Log Logging Plugins
- Supported configuring each plugin's batch processor
max_pending_entriesin the plugin metadata, for the the maximum number of pending entries in the batch processor. - Flushed the pending logs to the logging service before the worker process exited.
- Supported configuring each plugin's batch processor
Control Plane
- Supported configuring IP whitelist and blacklist for accessing the dashboard.
Fixes
Data Plane
- AI Proxy Multi
- Fixed issue: Multiple worker processes cannot share the health checker of an AI instance.
Control Plane
- Fixed issue: Cannot upload license when the browser lacks permissions.
- Fixed issue: Bad performance of the gateway when the number of
upstream.nodesis very large. - Fixed issue: The
policyfield of plugins, such aslimit-countandlimit-count-advanced, is optional (should be required). - Fixed issue: When creating a new SSO page and clicking "Back", the page redirected to the SMTP Server page.
3.8.16
Release Date: 2025-10-28
Features
Plugins
- Kafka Logger
- Supported SCRAM-SHA-512 in SASL mechanism.
Control Plane
- Added support for specifying host when publishing Gateway service in API Portal.
- Added cache configuration support for query failure scenarios in the Gateway secret module.
- Updated Ingress Controller installation form to support configuring namespace and name.
- Specified supported versions when importing OpenAPI in the Dashboard UI.
- Removed the bare metal tab from the Gateway deployment page.