Releases: alibaba/higress
v2.1.6
Higress
📋 Overview of This Release
This release includes 31 updates, covering enhancements, bug fixes, performance optimizations, and more.
Update Distribution
- New Features: 13 items
- Bug Fixes: 5 items
- Refactoring and Optimization: 7 items
- Documentation Updates: 5 items
- Testing Improvements: 1 item
⭐ Key Highlights
This release contains 2 major updates, which are highly recommended to focus on:
- feat: Add Higress API MCP server (#2517): The newly added Higress API MCP server functionality enhances AI Agent's management capabilities over Higress resources, supporting the creation, deletion, modification, and querying of routes and services through MCP, thereby improving the system's flexibility and maintainability.
- Migrate WASM Go Plugins to New SDK and Go 1.24 (#2532): The underlying compilation dependency for developing Wasm Go plugins has been switched from TinyGo to native Go 1.24, improving plugin compatibility and performance, ensuring alignment with the latest technology stack, and providing users with more stable and efficient plugin support.
For more details, please refer to the detailed description of key features below.
🌟 Detailed Description of Key Features
Below are the detailed descriptions of the important features and improvements in this release:
1. feat: Add Higress API MCP server
Related PR: #2517 | Contributor: @cr7258
Usage Background
In modern microservice architectures, the API gateway, as the entry point, requires flexible and powerful configuration management capabilities. Higress, as a high-performance API gateway, provides rich features for managing routes, service origins, and plugins. However, the existing configuration management methods may not be flexible enough to meet complex operational needs. To address this issue, PR #2517 introduces the Higress API MCP Server, providing a new way to manage configurations through the Higress Console API. This feature is primarily aimed at operations personnel and developers who need advanced and dynamic management of Higress.
Feature Details
This change implements the Higress API MCP Server, re-implementing an MCP server using golang-filter that can call the Higress Console API to manage routes, service origins, and plugins. The specific implementation includes:
- Added the HigressClient class to handle interactions with the Higress Console API.
- Implemented various management tools such as route management (list-routes, get-route, add-route, update-route), service origin management (list-service-sources, get-service-source, add-service-source, update-service-source), and plugin management (get-plugin, delete-plugin, update-request-block-plugin).
- Modified relevant configuration files and README documentation, providing detailed configuration examples and usage instructions.
- Code changes involve multiple files, including
config.go
,client.go
,server.go
, etc., ensuring the completeness and extensibility of the feature.
Usage Instructions
To enable and configure the Higress API MCP Server, follow these steps:
- Add the MCP Server configuration in the Higress ConfigMap, specifying the URL, username, and password of the Higress Console.
- When starting the Higress Gateway, ensure that
mcpServer.enable
is set totrue
. - Use the provided tool commands (e.g.,
list-routes
,add-route
) to manage routes, service origins, and plugins. - Configuration example:
apiVersion: v1
kind: ConfigMap
metadata:
name: higress-config
namespace: higress-system
data:
higress: |-
mcpServer:
sse_path_suffix: /sse
enable: true
servers:
- name: higress-api-mcp-server
path: /higress-api
type: higress-api
config:
higressURL: http://higress-console.higress-system.svc.cluster.local
username: admin
password: <password>
Notes:
- Ensure that the Higress Console URL, username, and password are correct.
- It is recommended to use environment variables or encrypted storage for the password to enhance security.
Feature Value
The Higress API MCP Server brings the following specific benefits to users:
- Improved Operational Efficiency: Through a unified MCP interface, users can more conveniently manage and configure Higress resources via AI Agent, reducing the complexity and error rate of manual operations.
- Enhanced System Flexibility: Support for dynamic management and updating of routes, service origins, and plugins makes the system more flexible and able to quickly respond to changes in business requirements.
- Increased System Stability: Automated configuration management reduces the possibility of human errors, thereby enhancing the stability and reliability of the system.
- Easy Integration: The design of the Higress API MCP Server makes it easy to integrate with other AI agents and tools, facilitating the construction of a complete automated operations system.
2. Migrate WASM Go Plugins to New SDK and Go 1.24
Related PR: #2532 | Contributor: @erasernoob
Usage Background
With the development of the Go language, new versions provide many performance optimizations and security improvements. This PR aims to migrate WASM Go plugins from the old SDK to the new SDK and upgrade the Go version to 1.24. This not only resolves some known issues in the old version but also paves the way for future feature expansion and performance optimization. The target user group includes developers and operations personnel using Higress for microservice management and traffic control.
Feature Details
This PR mainly implements the following features: 1) Updated the workflow files for building and testing plugins to support the new Go version; 2) Modified the Dockerfile and Makefile, removing support for TinyGo and switching to the standard Go compiler for generating WASM files; 3) Updated the go.mod file, referencing new package paths and versions; 4) Adjusted the import path of the logging library, unifying the use of the new logging library. These changes allow the plugins to better utilize the new features of Go 1.24, such as improved garbage collection and more efficient compiler optimizations. Additionally, removing support for TinyGo simplifies the build process and reduces potential compatibility issues.
Usage Instructions
To enable and configure this feature, first ensure that your development environment has Go 1.24 installed. Then, you can specify the new build parameters by modifying the project's Makefile and Dockerfile. For example, set GO_VERSION ?= 1.24.4
in the Makefile and use ARG BUILDER=higress-registry.cn-hangzhou.cr.aliyuncs.com/plugins/wasm-go-builder:go1.24.4-oras1.0.0
in the Dockerfile. A typical use case is when you need to deploy new WASM plugins in Higress. Best practices include regularly updating dependencies to the latest versions and ensuring that all related code is adapted to the new version.
Feature Value
This refactoring brings multiple benefits to users: 1) Improved plugin runtime efficiency and stability, thanks to the new features and optimizations in Go 1.24; 2) Simplified build process, reducing dependency on third-party tools (such as TinyGo) and lowering maintenance costs; 3) Unified code style and dependency management, improving the readability and maintainability of the project; 4) Enhanced system security by adopting the latest Go version to fix known security vulnerabilities. These improvements make the Higress ecosystem more robust, providing a more powerful and reliable microservice management platform for users.
📝 Full Changelog
🚀 New Features (Features)
-
Related PR: #2679
Contributor: @erasernoob
Change Log: This PR adds support for external service FQDN in image annotations and includes corresponding test cases to ensure the correctness and stability of the new feature.
Feature Value: Allows users to specify external FQDN as the image target, enhancing the system's flexibility and applicability, and facilitating the integration of more external resources. -
Related PR: #2667
Contributor: @hanxiantao
Change Log: This PR adds support for setting a global route rate limit threshold for the AI Token rate-limiting plugin, while optimizing the underlying logic related to the cluster-key-rate-limit plugin and improving log messages.
Feature Value: By adding support for global rate limit thresholds, users can more flexibly manage traffic, avoiding the impact of a single route's excessive traffic on the entire system's stability. -
Related PR: #2652
Contributor: @OxalisCu
Change Log: This PR adds support for the first-byte timeout for LLM streaming requests in the ai-proxy plugin by modifying the provider.go file.
Feature Value: This feature allows users to set a first-byte timeout for LLM streaming requests, improving system stability and user experience. -
Related PR: #2650
Contributor: @zhangjingcn
Change Log: This PR implements the functionality to fetch ErrorResponseTemplate configuration from the Nacos MCP registry by modifying the mcp_model.go and watcher.go files to support new metadata handling.
Feature Value: This feature enhances t...
v2.1.5
Higress
📋 Overview of This Release
This release includes 41 updates, covering various aspects such as feature enhancements, bug fixes, and performance optimizations.
Update Content Distribution
- New Features: 19
- Bug Fixes: 14
- Refactoring Optimizations: 2
- Documentation Updates: 6
⭐ Key Focus
This release includes 2 significant updates, which are recommended for your attention:
- feat: add DB MCP Server execute, list tables, describe table tools (#2506): By adding these tools, users can more conveniently manage and operate databases, enhancing the system's flexibility and usability, making database operations more intuitive and efficient.
- feat: advanced load balance policies for LLM service through wasm plugin (#2531): By introducing advanced load balancing strategies, the performance and resource utilization of LLM services have been improved, allowing users to choose the most suitable strategy to optimize their services based on their needs.
For more details, please refer to the key features section below.
🌟 Detailed Description of Key Features
Here is a detailed description of the important features and improvements in this release:
1. feat: add DB MCP Server execute, list tables, describe table tools
Related PR: #2506 | Contributor: hongzhouzi
Usage Background
In many application development scenarios, developers need to frequently interact with databases, such as executing SQL statements and viewing table structures. While the existing MCP server supports basic database query functions, it lacks more advanced operation tools. This update adds three tools: execute
(execute SQL), list tables
(list tables), and describe table
(describe table), aiming to meet higher user demands for database management. The target user groups include, but are not limited to, database administrators, backend developers, and application developers who need to frequently interact with databases.
Feature Details
Specifically, by modifying the db.go
file, new database type constants were introduced, and the new tools were registered in the server.go
file. The newly added tools implement the functionality of executing arbitrary SQL statements, listing all table names, and obtaining detailed information about specific tables. The core technical points lie in using the GORM framework to handle different types of database connections and providing customized SQL query logic for each type of database. Additionally, the code changes also involved optimizing the error handling mechanism, such as unifying the error handling function handleSQLError
, improving the maintainability of the code. These improvements not only enriched the MCP server's feature set but also enhanced its applicability in various database environments.
Usage Instructions
Enabling these new features is straightforward; just ensure that your MCP server configuration includes the correct database DSN and type. For the execute
tool, users can send requests containing the sql
parameter to perform INSERT, UPDATE, or DELETE operations; the list tables
tool requires no additional parameters and can be called directly to return all table names in the current database; the describe table
tool requires a table
parameter to specify the table name to view. Typical use cases include, but are not limited to, periodically checking the consistency of database table structures, generating automated scripts, and verifying data before and after migration. It is important to note that when using the execute
tool, caution should be exercised to avoid executing commands that may compromise data integrity.
Feature Value
This feature significantly expands the application scope of the MCP server in database management, enabling users to complete daily tasks more efficiently. It not only simplifies complex manual operations and reduces the likelihood of errors but also provides a solid foundation for building automated O&M processes. Especially for projects that need to work across multiple database platforms, this unified and flexible interface design is undoubtedly a boon. Additionally, by improving error handling logic and adding security measures (such as preventing SQL injection), this PR further ensures the stability and security of the system.
2. feat: advanced load balance policies for LLM service through wasm plugin
Related PR: #2531 | Contributor: rinfx
Usage Background
With the widespread application of large language models (LLMs), the demand for high performance and high availability is growing. Traditional load balancing strategies may not meet these requirements, especially when handling a large number of concurrent requests. The new load balancing strategies aim to address these issues by providing smarter request distribution. The target user group includes enterprises and developers who require high-performance and high-availability LLM services.
Feature Details
This PR implements three new load balancing strategies: 1. Minimum Load Strategy, implemented using WASM, suitable for gateway-api-inference-extension; 2. Global Least Request Strategy based on Redis, which tracks and manages the number of requests for each host via Redis, ensuring that requests are allocated to the host with the least current load; 3. Prompt Prefix Matching Strategy, which selects backend nodes based on prompt prefixes, and if no match is found, uses the Global Least Request Strategy. These strategies are implemented using WASM plugins, providing high scalability and flexibility.
Usage Instructions
To enable these load balancing strategies, you need to specify the corresponding strategy type and configuration parameters in the Higress gateway configuration. For example, to enable the Global Least Request Strategy based on Redis, set lb_policy
to global_least_request
in the configuration file and provide the FQDN, port, username, and password of the Redis service. For the Prompt Prefix Matching Strategy, set lb_policy
to prefix_cache
and make the corresponding configuration. Best practice is to choose the appropriate strategy based on the actual application scenario and regularly monitor and adjust the configuration to optimize performance.
Feature Value
These new load balancing strategies bring significant performance improvements to LLM services. The Minimum Load Strategy ensures that requests are allocated to the host with the least current load, thereby improving response speed and resource utilization. The Global Least Request Strategy based on Redis further optimizes resource allocation by tracking the number of requests for each host in real time. The Prompt Prefix Matching Strategy improves processing efficiency by caching and reusing KV Cache. These features not only enhance system performance and stability but also improve user experience, especially in high-concurrency scenarios.
📝 Complete Changelog
🚀 New Features (Features)
-
Related PR: #2533
Contributor: @johnlanni
Change Log: Added support for the subPath field, allowing users to configure rules for removing request path prefixes, and updated the Chinese and English documentation to include usage instructions for the new feature.
Feature Value: By introducing the subPath configuration option, the flexibility and customizability of the AI proxy plugin have been enhanced, enabling developers to more finely control the request path processing logic and improve the user experience. -
Related PR: #2514
Contributor: @daixijun
Change Log: This PR commented out the default tracing.skywalking configuration in values.yaml, resolving the issue where skywalking configurations were automatically added when users chose other tracing types.
Feature Value: By removing unnecessary skywalking configurations, conflicts with user-defined tracing settings are avoided, enhancing the system's flexibility and user experience. -
Related PR: #2509
Contributor: @daixijun
Change Log: This PR implemented handling of the OpenAI responses interface Body and added support for the Volcano Ark large model responses interface, achieved by extending the logic in the provider/doubao.go file.
Feature Value: The new feature enables the system to support more types of AI response processing, particularly for users using the Volcano Ark large model, significantly enhancing the system's compatibility and flexibility. -
Related PR: #2488
Contributor: @rinfx
Change Log: Addedtrace_span_key
andas_separate_log_field
configuration options, allowing the keys for logging and span attribute recording to be different and enabling log content to exist as separate fields.
Feature Value: By providing more flexible logging and tracing data recording methods, the system's monitoring capabilities have been enhanced, helping developers better understand and optimize application performance. -
Related PR: #2485
Contributor: @johnlanni
Change Log: This PR introduced the errorResponseTemplate feature, allowing the mcp server plugin to customize response content when the backend HTTP status code is greater than 300.
...
v2.1.5-rc.1
What's Changed
- feat: Plugin server supports k8s deployment and configures the default download URL of the plugin(#2232, #2280,#2312) by @NorthernBob in #2389
- fix: change auto generate se namespace to mcp by @Erica177 in #2398
- fix(ai-proxy): fix bedrock Sigv4 mismatch by @HecarimV in #2402
- fix: fix const McpStreamableProtocol spell mistake by @Erica177 in #2405
- feat(ai-proxy): Adjust the streaming response structure to keep it consistent with the openai by @daixijun in #2391
- add mcp-server doc by @hourmoneys in #2327
- opt: unify the
end-of-line
markers in the MCP session filter. by @johnlanni in #2403 - fix(ai-proxy): fix gemini provider missing finishReason by @daixijun in #2408
- docs: fix broken link in mcp-servers README_zh.md by @xuruidong in #2418
- feat: support for wanxiang image/video generation in ai-proxy & ai-statistics by @mirror58229 in #2378
- feat: Add AI-based bidding information tool MCP service by @hourmoneys in #2343
- fix: When configuring an MCP server for SSE forwarding, the controller may crash by @johnlanni in #2423
- feat: add default route support for wanx image&video synthesis by @mirror58229 in #2431
- feat(ai-proxy): add support for OpenAI Fine-Tuning API by @wydream in #2424
- add release-notes of 2.1.4 by @johnlanni in #2433
- feat: add mcp-router plugin by @johnlanni in #2409
- update envoy and istio by @johnlanni in #2440
- release 2.1.5-rc.1 by @johnlanni in #2446
New Contributors
- @NorthernBob made their first contribution in #2389
- @xuruidong made their first contribution in #2418
- @wydream made their first contribution in #2424
Full Changelog: v2.1.4...v2.1.5-rc.1
v2.1.4
Detailed release notes
https://github.com/alibaba/higress/tree/main/release-notes/2.1.4
What's Changed
- feat(ai-proxy): support Amazon Bedrock Image Generation by @daixijun in #2212
- fix: Fix the incorrect rewrite config generated for Nacos 3 MCP Servers by @CH3CHO in #2211
- feat: update translate-readme action by @littlejiancc in #2208
- fix: Remove the Authorization request header when using AI-proxy to proxy Gemini by @hanxiantao in #2220
- fix : fix issue #2222 by @Erica177 in #2231
- Add test translation workflow by @MAVRICK-1 in #2228
- mcp server support API auth through OAS3
security schemes
by @johnlanni in #2241 - Fix : add fail strategy for wasmplugin generated by mcp server by @Erica177 in #2237
- fix: modify log level WARN -> DEBUG in key-auth plugin by @lexburner in #2275
- fix proxy-wasm-cpp-sdk by @johnlanni in #2281
- feat: Supports recording request header, request body, response header and response body information in the access log by @forgottener in #2265
- feat(mcp-server): add HackMD mcp server by @Whitea029 in #2260
- add mcp service shebao tools by @hourmoneys in #2303
- feat: Add a github action to copy CRD definitions from api folder to helm folder by @CH3CHO in #2268
- feat: allow skipping higress dev image build during wasmplugin e2e tests by @cr7258 in #2264
- feat: Refactor mcpServer.matchList config generation logic by @CH3CHO in #2207
- add info log of ai-search plugin by @johnlanni in #2323
- fix(ai-proxy): URL encode model name in Bedrock requests by @HecarimV in #2321
- feat(ai-proxy): add doubao Image Generation support by @daixijun in #2331
- feat: cluster-key-rate-limit support setting global rate limit thresholds for routes by @hanxiantao in #2262
- feat(ai-proxy): support OpenAI-compatible image and audio model Mapping by @daixijun in #2341
- fix: set "EnableSemanticCachefalse" to false when no vector configured in ai-cache by @mirror58229 in #2351
- feat(ai-proxy): add batches & files support by @daixijun in #2355
- feat: support dify ai-proxy e2e test || feat: support diify ai-proxy e2e test by @VinciWu557 in #2319
- fix content-length header not remove in ai-search plugin by @johnlanni in #2363
- feat(ai-proxy): add modelMapping regexp support by @daixijun in #2358
- feat(ai-proxy): Fixed the issue that the API pass-through path error does not support openaiCustomUrl after openai is configured. by @daixijun in #2364
- feat(frontend-gray): Add uniqueGrayTag configuration detection by @heimanba in #2371
- feat(ai-proxy): add models & image generation support for gemini by @daixijun in #2380
- feat(ai-proxy): support Google Cloud Vertex by @HecarimV in #2119
- add upstream override wasm abi by @johnlanni in #2387
- feat(ai-proxy): Add Claude image understanding and Tools calling capabilities by @daixijun in #2385
- fix: refactored mcp server auto discovery logic and fix some issue by @Erica177 in #2382
- fix : fix credential process logic for nacos mcp util and add ut for it by @Erica177 in #2394
- fix: Support mixing line breaks in a single SSE response by @CH3CHO in #2344
- Update CRD file in the helm folder by @github-actions in #2392
New Contributors
- @MAVRICK-1 made their first contribution in #2228
- @lexburner made their first contribution in #2275
- @forgottener made their first contribution in #2265
- @Whitea029 made their first contribution in #2260
- @hourmoneys made their first contribution in #2303
Full Changelog: v2.1.3...v2.1.4
v2.1.3
What's Changed
- Update helm translated README.zh.md by @github-actions in #2152
- fix: update golang filter README by @Jing-ze in #2147
- fix : Add nacos username and password login option by @Erica177 in #2170
- feat: Support /v1/models API in ai-proxy by @CH3CHO in #2164
- fix(ai-statistics): adjust requestBodyBufferLimit by @HecarimV in #2192
- fix : fix vs rewrite when mcp protocol is http by @Erica177 in #2203
- feat: Add SSE direct proxy support to mcp-session filter by @CH3CHO in #2157
- fix param type error by @Erica177 in #2204
Full Changelog: v2.1.2...v2.1.3
v2.1.2
What's Changed
- feat:Getting MatchLabels dynamically via gatewaySelectorKey/Value #1857 by @waTErMo0n in #1883
- fix: update module replacements by @Similarityoung in #2090
- feat: optimize elasticsearch ai-search plugin and update related docs" by @cr7258 in #2100
- feat: Support extracting model argument from body in multipart/form-data format by @CH3CHO in #1940
- update mcp descriptions by @mirror58229 in #2105
- feat(ai-proxy): support Amazon Bedrock by @HecarimV in #2039
- update github & e2bdev mcp descriptions by @mirror58229 in #2107
- test: add test for /pkg/ingress/kube/common by @Tsukilc in #2123
- add mcp yuque descriptions by @mirror58229 in #2125
- fix: ai_data_masking add compatibility handling for non-compliant API response structures by @007gzs in #2130
- fix: Refactor MCP Server into MCP Session and MCP Server by @Jing-ze in #2120
- feat : support mcp server auto discovery for nacos registry by @Erica177 in #2122
- Update helm translated README.zh.md by @github-actions in #2141
- fix : when nacos push empty service instance list, should skip generate by @Erica177 in #2144
- fix: make mcp server redis client config based by @Jing-ze in #2145
- When the service source type is nacos3, if mcpserver is turned off, then the discovery mechanism of nacos2 will be enabled by @johnlanni in #2150
- add: add mcp-context7 descriptions by @mirror58229 in #2149
New Contributors
- @waTErMo0n made their first contribution in #1883
- @Similarityoung made their first contribution in #2090
- @HecarimV made their first contribution in #2039
- @Tsukilc made their first contribution in #2123
- @github-actions made their first contribution in #2141
Full Changelog: v2.1.1...v2.1.2
v2.1.2-rc.1
What's Changed
- feat:Getting MatchLabels dynamically via gatewaySelectorKey/Value #1857 by @waTErMo0n in #1883
- fix: update module replacements by @Similarityoung in #2090
- feat: optimize elasticsearch ai-search plugin and update related docs" by @cr7258 in #2100
- feat: Support extracting model argument from body in multipart/form-data format by @CH3CHO in #1940
- update mcp descriptions by @mirror58229 in #2105
- feat(ai-proxy): support Amazon Bedrock by @HecarimV in #2039
- update github & e2bdev mcp descriptions by @mirror58229 in #2107
- test: add test for /pkg/ingress/kube/common by @Tsukilc in #2123
- add mcp yuque descriptions by @mirror58229 in #2125
- fix: ai_data_masking add compatibility handling for non-compliant API response structures by @007gzs in #2130
- fix: Refactor MCP Server into MCP Session and MCP Server by @Jing-ze in #2120
- feat : support mcp server auto discovery for nacos registry by @Erica177 in #2122
New Contributors
- @waTErMo0n made their first contribution in #1883
- @Similarityoung made their first contribution in #2090
- @HecarimV made their first contribution in #2039
- @Tsukilc made their first contribution in #2123
Full Changelog: v2.1.1...v2.1.2-rc.1
v2.1.1
What's Changed
- feat: update custom-response plugin to returns different content for different response statuse by @Fengxq2014 in #2002
- polish translate-readme action by @littlejiancc in #2020
- Feat dynamic tool reset by @luoxiner in #2031
- fix: ai statistics doc by @cr7258 in #2040
- mcp: support amap auto ip detection by @johnlanni in #2041
- [frontend-gray] Reconstruct the business logic to be more friendly towards micro frontends and multi-version support. by @heimanba in #2011
- support nacos namespace by @luoxiner in #2045
- fix: fix param mapping use %v instead of %s by @luoxiner in #2046
- fix: Escape asterisk characters in ai-proxy documents by @CH3CHO in #1999
- feat:add GetContextId func for HttpContext by @hzhswyz in #2043
- Fix the issue of traps caused by gc in wasm plugins compiled with go 1.24 by @johnlanni in #2054
- feat: support config store and redis configuration optional in mcp server by @Jing-ze in #2035
- feat: Support building waf plugin using Makefile by @CH3CHO in #2061
- rm plugin id after use by @rinfx in #2070
- add mcp servers by @johnlanni in #2076
- fix wasm-go/jwt-auth claims_to_headers bug by @liseri in #2057
- add mcp descriptions by @mirror58229 in #2080
- fix: support mcp server database reconnect and fix tool/list method denied by @Jing-ze in #2074
- Enhance the compatibility of AI observability plugins with different LLM suppliers by @rinfx in #2088
New Contributors
Full Changelog: v2.1.0...v2.1.1
v2.1.1-rc.1
What's Changed
- feat: update custom-response plugin to returns different content for different response statuse by @Fengxq2014 in #2002
- polish translate-readme action by @littlejiancc in #2020
- Feat dynamic tool reset by @luoxiner in #2031
- fix: ai statistics doc by @cr7258 in #2040
- mcp: support amap auto ip detection by @johnlanni in #2041
- [frontend-gray] Refactor the business logic to be more friendly towards micro frontends and multi-version support. by @heimanba in #2011
- support nacos namespace by @luoxiner in #2045
- fix: fix param mapping use %v instead of %s by @luoxiner in #2046
- fix: Escape asterisk characters in ai-proxy documents by @CH3CHO in #1999
- feat:add GetContextId func for HttpContext by @hzhswyz in #2043
- Fix the issue of traps caused by gc in wasm plugins compiled with go 1.24 by @johnlanni in #2054
- feat: support config store and redis configuration optional in mcp server by @Jing-ze in #2035
Full Changelog: v2.1.0...v2.1.1-rc.1
v2.1.0
What's Changed
- update helm docs by @johnlanni in #1782
- feat: add ollama embedding to ai-cache by @Beatrueman in #1794
- feat: Support transforming reasoning_content returned by Qwen to OpenAI contract by @CH3CHO in #1791
- fix: Fix a bug in openaiCustomUrl support by @CH3CHO in #1790
- Add ai search plugin by @johnlanni in #1804
- feat: Unify the SSE processing logic by @CH3CHO in #1800
- fix(typo): use the correct bing name for ai-search. by @maratrixx in #1807
- Add database configuration for plugins that use Redis. by @johnlanni in #1814
- set include_usage by default for all model providers by @johnlanni in #1818
- ai-search support quark by @rinfx in #1811
- add notes to gateway.rollingMaxUnavailable by @littlejiancc in #1819
- feat: update ai-token-ratelimit documentation by removing ai-statistics plugin by @cr7258 in #1767
- Ai data masking msg window by @007gzs in #1775
- feat: ext-auth plugin: Blacklist and whitelist modes support HTTP request method matching by @hanxiantao in #1798
- fix: remove last failed apiToken from retry apiToken list by @cr7258 in #1802
- feat: Support pushing multi-arch images to a custom image registry by @CH3CHO in #1815
- fix rust_wasm_build by @007gzs in #1824
- fix: Disable helm-docs action since it's still under development by @CH3CHO in #1828
- fix: gateway log config should read from helm\core\values.yaml when deploy with helm by @firebook in #1834
- Simplify the implementation of ai-search integration with quark and add a tutorial. by @johnlanni in #1838
- optimize ai search by @johnlanni in #1843
- feat(helm): add podLabels to gateway && controller by @daixijun in #1792
- doc: Update the description of timeout config of ai-proxy by @CH3CHO in #1845
- add plugin start log in sdk by @rinfx in #1831
- feat: Support only watching key resources in one namespace by @CH3CHO in #1821
- Set the llm-api-key field of the ai-search plugin to optional by @johnlanni in #1846
- chore: load EXTRA_TAGS from plugin .buildrc file to avoid build issue. by @Colstuwjx in #1852
- fix plugin_wrapper.go log level by @Colstuwjx in #1848
- fix: Fix the incorrect reasoning content concat logic in ai-proxy by @CH3CHO in #1842
- optimize ai-search references by @johnlanni in #1859
- optimize model router&mapper by @johnlanni in #1866
- feat: allow failover to distinguish between different endpoint of the same provider by @cr7258 in #1862
- feat: add replay protection plugin by @yunmaoQu in #1672
- feat: add huggingface embedding to ai-cache by @Beatrueman in #1864
- add redis init status log by @rinfx in #1867
- support default value by @rinfx in #1873
- feat: support elasticsearch hybrid search by @cr7258 in #1844
- bugfix:[frontend-gray plugin] Force no caching for fetch requests by @heimanba in #1856
- feat: support retry on http status code by @cr7258 in #1817
- fix openai embedding path by @johnlanni in #1881
- Rust WASM plugin support for matching service and route name prefixes is effective. by @007gzs in #1882
- AI-search plugin supports controlling through the web_search_options parameter. by @johnlanni in #1893
- fix chunk merge bug in ai-search by @johnlanni in #1895
- more optimize of ai search plugin by @johnlanni in #1896
- add variable from secret when applying istio cr by @2456868764 in #1877
- optimize retry&failover logic by @johnlanni in #1903
- feat: Support files and batches APIs provided by Azure OpenAI by @CH3CHO in #1904
- support nil option in NewCommonVmCtx by @johnlanni in #1909
- feat: Support forwarding embedding calls to Ollama in ai-proxy by @CH3CHO in #1913
- optimization parseIP in xff by @007gzs in #1915
- fix: Skip reading non-JSON request bodies in ai-proxy by @CH3CHO in #1914
- feat: add ratelimit metrics in the ai-token-ratelimit plugin by @hzhswyz in #1918
- feat: add xfyun emb to ai-cache by @Beatrueman in #1921
- feat: add buffer_limit functions by @Fengxq2014 in #1922
- Fix the error in the embedding interface under the AI proxy Qwen compatible mode. by @rinfx in #1928
- improve the logic for constructing redis key by @rinfx in #1933
- add example for extending span attributes by @rinfx in #1936
- optimize plugin sdk by @johnlanni in #1930
- feat: add golang filter and mcp-server by @Jing-ze in #1942
- chore: Remove redundant get-higress.sh by @CH3CHO in #1943
- feat: add config parse in mcp server by @Jing-ze in #1944
- Add remote mcp server sdk by @johnlanni in #1946
- add parse_rule_config fail log by @007gzs in #1938
- fix invalid ai-proxy cluster by @johnlanni in #1947
- revert wrapper changes by @johnlanni in #1948
- fix ai-search rewrite query when no search result found by @johnlanni in #1949
- add: add mcp server amap tools by @mirror58229 in #1951
- feat: add mcpServer in config map by @Jing-ze in #1953
- feat: update Go filter mcp-server by @Jing-ze in #1950
- Fix log import by @johnlanni in #1957
- fix: Fix the incorrect image used to build envoy by @CH3CHO in #1958
- key auth support multiple credentials by @johnlanni in #1956
- rel 2.1.0-rc.1 by @johnlanni in #1959
- fix: Fetch get-higress.sh from standalone repo by @CH3CHO in #1945
- fix: update log info to debug by @Jing-ze in #1954
- feat: support nacos mcp registry by @luoxiner in #1961
- update default enable path suffix in model mapper&router plugin by @johnlanni in #1962
- fix golang filter build by @johnlanni in #1966
- fix: add match list and wasm mcp-server message pub in redis by @Jing-ze in #1963
- fix: mcp server config map by @Jing-ze in #1969
- doc: add ai statistics metric doc by @cr7258 in #1889
- feat: add azure embedding to ai-cache by @Beatrueman in #1975
- docs: Add Azure OpenAI configuration instructionsby @Beatrueman in #1976
- refactor mcp sdk by @johnlanni in #1977
- Add all in one mcp by @johnlanni in #1978
- fix inclusionRegexps not working by @hzhswyz in #1972
- fix: fix bug of mcp server proxy by @Jing-ze in #1981
- fix: Fix several issues in the envoy.yaml configuration file by @Fengxq2014 in #1983
- fix: mcp proxy eventData by @Jing-ze in #1985
- support rest to mcp by @johnlanni in #1988
- rename redis key by @rinfx in #1986
- feat: Add an optional Redis component to the Higress helm package by @littlejiancc in #1973
- feat: support service delete event trigger for tool and some fix by @luoxiner in https://github.com/alibaba/higress/pu...