Add release notes (#2850)

Co-authored-by: johnlanni <6763318+johnlanni@users.noreply.github.com>
This commit is contained in:
github-actions[bot]
2025-09-01 18:59:25 +08:00
committed by GitHub
parent 84ca119a5d
commit 7372f4a6c6
2 changed files with 908 additions and 0 deletions

View File

@@ -0,0 +1,454 @@
# Higress
## 📋 Overview of This Release
This release includes **42** updates, covering various aspects such as feature enhancements, bug fixes, and performance optimizations.
### Update Distribution
- **New Features**: 21 items
- **Bug Fixes**: 14 items
- **Refactoring and Optimization**: 4 items
- **Documentation Updates**: 2 items
- **Testing Improvements**: 1 item
### ⭐ Key Highlights
This release includes **3** significant updates, which are recommended for your attention:
- **feat: add MCP SSE stateful session load balancer support** ([#2818](https://github.com/alibaba/higress/pull/2818)): This feature enables applications based on SSE to better maintain persistent connections between clients and servers, enhancing user experience and application performance, especially in scenarios requiring long-term connections for data pushing.
- **feat: Support adding a proxy server in between when forwarding requests to upstream** ([#2710](https://github.com/alibaba/higress/pull/2710)): This feature allows users to use a proxy server when forwarding requests to upstream services, enhancing the system's flexibility and security, suitable for scenarios where communication through specific proxies is required.
- **feat(ai-proxy): add auto protocol compatibility for OpenAI and Claude APIs** ([#2810](https://github.com/alibaba/higress/pull/2810)): By automatically detecting and converting protocols, users can seamlessly use APIs from different AI service providers without manual configuration, improving user experience and flexibility.
For more details, please refer to the Important Features section below.
---
## 🌟 Detailed Description of Important Features
Here are the detailed descriptions of important features and improvements in this release:
### 1. feat: add MCP SSE stateful session load balancer support
**Related PR**: [#2818](https://github.com/alibaba/higress/pull/2818) | **Contributor**: [@johnlanni](https://github.com/johnlanni)
**Usage Background**
As the demand for real-time communication grows, Server-Sent Events (SSE) have become a key technology for many applications. However, in distributed systems, ensuring that requests from the same client are always routed to the same backend service to maintain session state has been a challenge. Traditional load balancing strategies cannot meet this need. This feature addresses this issue by introducing MCP SSE stateful session load balancing support. By specifying the `mcp-sse` type in the `higress.io/load-balance` annotation, users can easily manage SSE connection state sessions. The target user group mainly consists of application developers and service providers who need to perform real-time data pushing in distributed environments.
**Feature Details**
This PR mainly implements the following features:
1. **Extend `load-balance` annotation**: In the `loadbalance.go` file, support for the `mcp-sse` value is added, and the `McpSseStateful` field is added to the `LoadBalanceConfig` struct.
2. **Simplified Configuration**: Users only need to set `mcp-sse` in the `higress.io/load-balance` annotation to enable this feature, with no additional configuration required.
3. **Backend Address Encoding**: When MCP SSE stateful session load balancing is enabled, the backend address will be Base64 encoded and embedded in the session ID of the SSE message. This ensures that the client can correctly identify and maintain the session. The core innovation lies in dynamically generating SSE session-related configurations through EnvoyFilter, thereby achieving stateful session management.
**Usage Instructions**
To use this feature, users need to follow these steps:
1. **Enable the Feature**: Add the `higress.io/load-balance: mcp-sse` annotation to the Ingress resource.
2. **Configuration Example**:
```yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: sse-ingress
annotations:
higress.io/load-balance: mcp-sse
spec:
rules:
- host: example.com
http:
paths:
- path: /mcp-servers/test/sse
pathType: Prefix
backend:
service:
name: sse-service
port:
number: 80
```
3. **Testing**: Access the SSE endpoint using the `curl` command and check if the returned messages contain the correct session ID.
**Notes**:
- Ensure that the backend service can handle Base64 encoded session IDs.
- Avoid frequent changes to the backend service deployment to prevent session consistency issues.
**Feature Value**
This feature brings the following specific benefits to users:
1. **Session Consistency**: Ensures that requests from the same client are always routed to the same backend service, maintaining session state consistency.
2. **Simplified Configuration**: Enables the feature with simple annotation configuration, reducing the complexity of user configuration.
3. **Enhanced User Experience**: For applications that rely on SSE, such as real-time notifications and stock market data, it provides a more stable and consistent service experience.
4. **Reduced Operations Costs**: Reduces errors and failures caused by inconsistent sessions, lowering the workload of the operations team.
---
### 2. feat: Support adding a proxy server in between when forwarding requests to upstream
**Related PR**: [#2710](https://github.com/alibaba/higress/pull/2710) | **Contributor**: [@CH3CHO](https://github.com/CH3CHO)
**Usage Background**
In modern microservice architectures, especially in complex network environments, directly forwarding requests from the client to the backend service may encounter various issues, such as network security and performance bottlenecks. Introducing an intermediate proxy server can effectively solve these problems, for example, by performing traffic control, load balancing, and SSL offloading through the proxy server. Additionally, in some cases, enterprises may need to use specific proxy servers to meet compliance and security requirements. The target user group for this feature mainly consists of enterprises and developers who need to optimize request forwarding paths in complex network environments.
**Feature Details**
This PR mainly implements the ability to configure one or more proxy servers in the McpBridge resource and allows specifying proxy servers for each registry. The specific implementation includes:
1. Adding the `proxies` field in the `McpBridge` resource definition to configure the list of proxy servers, and adding the `proxyName` field in the `registries` item to associate the proxy server with the registry.
2. When creating or updating the `McpBridge` resource, the system automatically generates the corresponding EnvoyFilter resources, which define how to forward requests to the specified proxy server.
3. Additionally, EnvoyFilters are generated for each service bound to a proxy, ensuring they correctly point to the local listener on the corresponding proxy server. The entire technical implementation is based on Envoy's advanced routing capabilities, demonstrating the project's powerful functionality in handling complex network topologies.
**Usage Instructions**
To enable this feature, at least one proxy server must first be configured in the `McpBridge` resource. This can be done by adding new `ProxyConfig` objects to the `spec.proxies` array, each containing necessary information such as `name`, `serverAddress`, and `serverPort`. Next, for the registry entries that need to use a proxy server, simply reference the defined proxy name in their `proxyName` field. Once configured, the system will automatically handle all related EnvoyFilter generation work. It is worth noting that before actual deployment, the correctness of the configuration files should be carefully checked to avoid service unavailability due to misconfiguration.
**Feature Value**
The newly added proxy server support feature greatly enhances the system's network flexibility, allowing users to flexibly adjust request forwarding paths according to their needs. For example, by setting up different proxy servers, it is easy to achieve data transmission optimization across multiple regions; at the same time, with the additional security features provided by the proxy layer (such as SSL encryption), the overall system security is significantly improved. In addition, this feature also helps simplify operations management, especially in situations where frequent adjustments to the network architecture are needed. Through simple configuration changes, rapid responses to changes can be achieved without major modifications to the underlying infrastructure. In summary, this improvement not only expands the project's scope but also provides users with more powerful tools to tackle increasingly complex network challenges.
---
### 3. feat(ai-proxy): add auto protocol compatibility for OpenAI and Claude APIs
**Related PR**: [#2810](https://github.com/alibaba/higress/pull/2810) | **Contributor**: [@johnlanni](https://github.com/johnlanni)
**Usage Background**
In the AI proxy plugin, users may need to interact with multiple AI service providers (such as OpenAI and Anthropic Claude) simultaneously. These providers typically use different API protocols, leading to the need for manual configuration of protocol types when switching services, which increases complexity and the likelihood of errors. This feature solves this problem, allowing users to seamlessly use different providers' services without worrying about the differences in underlying protocols. The target user group consists of developers and enterprises who want to simplify the AI service integration process.
**Feature Details**
This PR implements the automatic protocol compatibility feature. The core technological innovation lies in automatically detecting the request path and intelligently converting the protocol based on the target provider's capabilities. Specifically, when the request path is `/v1/chat/completions`, it is recognized as the OpenAI protocol; when the request path is `/v1/messages`, it is recognized as the Claude protocol. If the target provider does not support the native Claude protocol, the plugin converts the request from Claude format to OpenAI format, and vice versa. In the `main.go` file, new logic for automatic protocol detection based on the request path is added, and path replacements are made as necessary. Additionally, a new `claude_to_openai.go` file is added to implement the specific conversion logic from Claude to OpenAI protocol.
**Usage Instructions**
Enabling this feature is very simple; users just need to send requests as usual, with no additional configuration required. For example, for OpenAI protocol requests, the URL is `http://your-domain/v1/chat/completions`, and for Claude protocol requests, the URL is `http://your-domain/v1/messages`. The plugin will automatically detect and handle protocol conversion. If the target provider does not support the Claude protocol, the plugin will convert it to OpenAI format. Example configuration is as follows:
```yaml
provider:
type: claude # Provider natively supporting the Claude protocol
apiTokens:
- 'YOUR_CLAUDE_API_TOKEN'
version: '2023-06-01'
```
**Notes**: Ensure that the API token and version number are correctly configured so that the plugin can correctly identify and process the requests.
**Feature Value**
This feature significantly improves the usability and flexibility of the AI proxy plugin, reducing the user's configuration burden. Through automatic protocol detection and intelligent conversion, users can more easily switch between different AI service providers without worrying about protocol compatibility issues. This not only improves development efficiency but also enhances the stability and reliability of the system. Additionally, the feature supports streaming responses, further expanding its application scenarios, especially in cases requiring real-time interaction. In summary, this feature provides users with a more efficient and convenient way to integrate and manage multiple AI service providers.
---
## 📝 Full Changelog
### 🚀 New Features (Features)
- **Related PR**: [#2847](https://github.com/alibaba/higress/pull/2847) \
**Contributor**: @Erica177 \
**Change Log**: This PR adds a security mode for Nacos MCP, involving modifications to `mcp_model.go` and `watcher.go` files, including the addition and adjustment of configuration options. \
**Feature Value**: By adding security mode support, the security of Nacos MCP services is enhanced, allowing users to manage their microservice configurations in a more secure environment.
- **Related PR**: [#2842](https://github.com/alibaba/higress/pull/2842) \
**Contributor**: @hanxiantao \
**Change Log**: Added detailed Chinese and English documentation for the hmac-auth-apisix plugin and added corresponding test cases to ensure the stability and reliability of the newly added features. \
**Feature Value**: By adding documentation and tests, the availability and stability of the hmac-auth-apisix plugin are improved, helping users better understand and use the HMAC authentication mechanism, enhancing API security.
- **Related PR**: [#2823](https://github.com/alibaba/higress/pull/2823) \
**Contributor**: @johnlanni \
**Change Log**: Added OpenRouter as an AI service provider, supporting access to various AI models through a unified API. Core implementations include support for chat completions and text completions. \
**Feature Value**: By introducing OpenRouter, users can more flexibly choose different AI models and interact with them, simplifying the complexity of cross-platform AI service usage and enhancing the user experience.
- **Related PR**: [#2815](https://github.com/alibaba/higress/pull/2815) \
**Contributor**: @hanxiantao \
**Change Log**: This PR adds the hmac-auth-apisix plugin, implementing API request authentication functionality. It verifies the integrity and authenticity of requests by generating signatures using the HMAC algorithm. \
**Feature Value**: The newly added hmac-auth-apisix plugin enhances system security, ensuring that only authenticated clients can access protected resources, improving the user experience and system protection capabilities.
- **Related PR**: [#2808](https://github.com/alibaba/higress/pull/2808) \
**Contributor**: @daixijun \
**Change Log**: Added support for the Anthropic API and the OpenAI v1/models interface, expanding the compatibility and functional scope of DeepSeek. \
**Feature Value**: The introduction of new support allows users to leverage more artificial intelligence service options, enhancing the system's flexibility and practicality.
- **Related PR**: [#2805](https://github.com/alibaba/higress/pull/2805) \
**Contributor**: @johnlanni \
**Change Log**: Added a JSON-RPC protocol conversion plugin, capable of extracting request and response information from MCP protocol to headers, facilitating further observation, rate limiting, and authentication processing. \
**Feature Value**: This feature allows users to utilize JSON-RPC for higher-level policy control in A2A protocols, such as authentication and traffic management, thereby enhancing the system's flexibility and security.
- **Related PR**: [#2788](https://github.com/alibaba/higress/pull/2788) \
**Contributor**: @zat366 \
**Change Log**: This PR updates the dependency `github.com/higress-group/wasm-go` in mcp-server to support MCP plugin responses with images. This is achieved by updating the `go.mod` and `go.sum` files. \
**Feature Value**: The new feature allows MCP plugins to handle and respond to image data, enhancing the system's multimedia processing capabilities and providing users with richer content display options.
- **Related PR**: [#2769](https://github.com/alibaba/higress/pull/2769) \
**Contributor**: @github-actions[bot] \
**Change Log**: This PR updates the CRD files in the `helm` folder, adding new attribute definitions for `proxies`. \
**Feature Value**: By updating the CRD files to add new attributes, the Kubernetes resource definitions become more enriched and complete, enhancing the system's configuration flexibility and extensibility.
- **Related PR**: [#2761](https://github.com/alibaba/higress/pull/2761) \
**Contributor**: @johnlanni \
**Change Log**: This PR introduces two new deduplication strategies: `SPLIT_AND_RETAIN_FIRST` and `SPLIT_AND_RETAIN_LAST`, used to retain the first and last elements of comma-separated header values, respectively. \
**Feature Value**: The new strategies provide users with more granular control options, allowing them to choose to retain specific position data during deduplication operations, thus better meeting diverse needs.
- **Related PR**: [#2739](https://github.com/alibaba/higress/pull/2739) \
**Contributor**: @WeixinX \
**Change Log**: Added a new plugin configuration field `reroute`, allowing users to control whether to disable route reselection. This feature is implemented by modifying the main configuration file and adding relevant test cases. \
**Feature Value**: This feature provides users with a way to finely control the routing behavior during request processing, enhancing the system's flexibility and configurability, and meeting the needs of specific scenarios.
- **Related PR**: [#2730](https://github.com/alibaba/higress/pull/2730) \
**Contributor**: @rinfx \
**Change Log**: This PR adds tool usage support for the Bedrock service by modifying the structures and logic in `bedrock.go` and other files, enabling the system to handle tool-related requests. \
**Feature Value**: The new feature allows users to effectively utilize tool invocation capabilities in the Bedrock environment, enhancing the system's flexibility and functionality, and better meeting the needs of applications that require external tool integration.
- **Related PR**: [#2729](https://github.com/alibaba/higress/pull/2729) \
**Contributor**: @rinfx \
**Change Log**: This PR adds a length limit for each value in the AI statistics plugin, automatically truncating when the length exceeds the set limit. This helps reduce memory usage when processing large files such as base64-encoded images and videos. \
**Feature Value**: By limiting and truncating overly long data values, this feature can effectively prevent memory overflow issues caused by logging large media files, thereby improving system stability and performance.
- **Related PR**: [#2713](https://github.com/alibaba/higress/pull/2713) \
**Contributor**: @Aias00 \
**Change Log**: This PR adds Grok provider support for the AI proxy, including the addition of Grok Go files and updates to related documentation. \
**Feature Value**: By integrating Grok as a new AI provider, users can now leverage Grok's AI capabilities to process requests, increasing the system's flexibility and functional diversity.
- **Related PR**: [#2712](https://github.com/alibaba/higress/pull/2712) \
**Contributor**: @SCMRCORE \
**Change Log**: Added support for the Gemini model thinking function, specifically adapting to the 2.5 Flash, 2.5 Pro, and 2.5 Flash-Lite models. \
**Feature Value**: This enhancement improves the functionality of the AI proxy plugin, allowing users to utilize specific Gemini models for more complex thinking tasks, enhancing the user experience and application scope.
- **Related PR**: [#2704](https://github.com/alibaba/higress/pull/2704) \
**Contributor**: @hanxiantao \
**Change Log**: This PR implements the functionality of Rust WASM plugin support for Redis database configuration options and improves the `demo-wasm` to retrieve Redis configuration from the Wasm plugin configuration. \
**Feature Value**: This feature allows developers to more flexibly configure and integrate Redis databases when using Rust WASM plugins, improving development efficiency and the configurability of applications.
- **Related PR**: [#2698](https://github.com/alibaba/higress/pull/2698) \
**Contributor**: @erasernoob \
**Change Log**: Implemented support for multimodal data in the Gemini model, adding the ability to handle images and text. This is achieved by introducing new dependencies and modifying existing code logic. \
**Feature Value**: This enhancement strengthens the functionality of the AI proxy plugin, allowing it to support more complex multimodal data processing, providing users with a richer and more flexible AI service experience.
- **Related PR**: [#2696](https://github.com/alibaba/higress/pull/2696) \
**Contributor**: @rinfx \
**Change Log**: This PR introduces streaming response support when the content security plugin is enabled, adjusting the detection frequency via the `bufferLimit` parameter to improve the flexibility and efficiency of content detection. \
**Feature Value**: The new streaming response feature allows users to more efficiently handle content security detection, reducing latency and improving the user experience, especially in scenarios requiring real-time feedback.
- **Related PR**: [#2671](https://github.com/alibaba/higress/pull/2671) \
**Contributor**: @Aias00 \
**Change Log**: Implemented path suffix and content type filtering functionality to address performance and resource management issues in the ai-statistics plugin. By introducing the SkipProcessing mechanism, it avoids indiscriminate processing of all requests and reduces unnecessary response body caching. \
**Feature Value**: This enhancement improves the selective processing capability of the AI statistics plugin, enhancing system performance and optimizing resource usage efficiency. It is particularly beneficial for scenarios with a large number of complex API requests, significantly improving the user experience.
### 🐛 Bug Fixes (Bug Fixes)
- **Related PR**: [#2816](https://github.com/alibaba/higress/pull/2816) \
**Contributor**: @Asnowww \
**Change Log**: This PR corrects a spelling error in the `scanners-user-agents.data` file, changing 'scannr' to 'scanner'. \
**Feature Value**: Correcting spelling errors in the documentation improves the accuracy and readability of the document, helping users better understand and use the related features.
- **Related PR**: [#2799](https://github.com/alibaba/higress/pull/2799) \
**Contributor**: @erasernoob \
**Change Log**: This PR fixes the wasm-go-build plugin build command to ensure that all files in the directory are included during compilation, solving the compilation failure issue caused by missing dependencies. \
**Feature Value**: By fixing the build command, this PR prevents compilation errors due to missing files, enhancing the stability and reliability of the build process and providing a better development experience for developers.
- **Related PR**: [#2787](https://github.com/alibaba/higress/pull/2787) \
**Contributor**: @co63oc \
**Change Log**: This PR fixes a spelling error in the `RegisteTickFunc` function, ensuring the correctness of the timer task registration. By correcting the function name, it avoids potential functional failures. \
**Feature Value**: This fix corrects the issue where timer tasks could not be registered correctly due to a spelling error, enhancing the system's stability and reliability and ensuring that applications dependent on timer task execution run as expected.
- **Related PR**: [#2786](https://github.com/alibaba/higress/pull/2786) \
**Contributor**: @CH3CHO \
**Change Log**: This PR removes the `accept-encoding` header when the mcp-session filter handles SSE transport requests, solving the issue of incorrect handling of compressed response body data. \
**Feature Value**: This fix ensures that the MCP server can work correctly when using SSE transport upstream, avoiding data parsing errors due to compression and enhancing the system's stability and reliability.
- **Related PR**: [#2782](https://github.com/alibaba/higress/pull/2782) \
**Contributor**: @CH3CHO \
**Change Log**: This PR fixes the issue of the Azure URL configuration component being unexpectedly changed, ensuring the correctness and consistency of the URL components by defining a new enum type `azureServiceUrlType`. \
**Feature Value**: This fix ensures that users can maintain their original Azure service URL configuration when using the AI proxy, avoiding service call failures or inconsistencies due to incorrect changes.
- **Related PR**: [#2757](https://github.com/alibaba/higress/pull/2757) \
**Contributor**: @Jing-ze \
**Change Log**: This PR fixes the issue with the mcp server building Envoy filter unit tests, ensuring the correctness and stability of the test cases. \
**Feature Value**: By fixing the errors in the unit tests, this PR enhances the reliability and maintainability of the code, helping developers better perform subsequent development and debugging work.
- **Related PR**: [#2755](https://github.com/alibaba/higress/pull/2755) \
**Contributor**: @CH3CHO \
**Change Log**: This PR fixes the issue where adding duplicate IPs in the ip-restriction configuration would throw an error, by ignoring the error for existing IPs and displaying the specific error details from iptree. \
**Feature Value**: Allowing duplicate entries in the IP restriction list improves configuration flexibility and user experience while ensuring that other types of errors are still handled effectively.
- **Related PR**: [#2754](https://github.com/alibaba/higress/pull/2754) \
**Contributor**: @Jing-ze \
**Change Log**: This PR corrects the stopping and buffering issues when decoding data in golang-filter, ensuring a more stable data processing flow. \
**Feature Value**: This fix resolves errors in the data decoding process, enhancing the system's reliability and user experience, and preventing potential data loss or processing anomalies.
- **Related PR**: [#2743](https://github.com/alibaba/higress/pull/2743) \
**Contributor**: @Jing-ze \
**Change Log**: This PR fixes the error when setting `ip_source_type` to `origin-source`, ensuring that the IP restriction feature can be correctly configured based on the source type. \
**Feature Value**: This fix resolves the issue of incorrect IP source type settings under specific conditions, enhancing the system's stability and security, and allowing users to more reliably use the IP restriction feature.
- **Related PR**: [#2723](https://github.com/alibaba/higress/pull/2723) \
**Contributor**: @CH3CHO \
**Change Log**: This PR corrects the functional anomaly in the C++ Wasm plugin due to using an incorrect attribute name in the `_match_service_` rule, restoring the rule by modifying it to the correct attribute name. \
**Feature Value**: This fix resolves the service routing issue caused by an incorrect matching rule, enhancing the system's stability and accuracy, and ensuring that users can correctly access the desired services.
- **Related PR**: [#2706](https://github.com/alibaba/higress/pull/2706) \
**Contributor**: @WeixinX \
**Change Log**: This PR fixes the issue where the transformer performs an add operation when the key does not exist, and adds test cases for mapping operations, ensuring correct transformations from headers/query to body and from body to headers/query. \
**Feature Value**: This fix enhances the system's stability and reliability, preventing erroneous data operations, and boosting user confidence in the data processing logic, thereby improving the user experience.
- **Related PR**: [#2663](https://github.com/alibaba/higress/pull/2663) \
**Contributor**: @CH3CHO \
**Change Log**: This PR fixes the error in the bedrock model name escaping logic, removes unnecessary URL encoding in the request body, and ensures that the response matches expectations. \
**Feature Value**: By correcting the name escaping logic issue, this fix enhances the system's stability and compatibility, ensuring that users do not encounter issues due to mismatched escaping during use.
- **Related PR**: [#2653](https://github.com/alibaba/higress/pull/2653) \
**Contributor**: @johnlanni \
**Change Log**: This PR fixes the issue where the AI route fallback function fails when using Bedrock. It ensures that the path can be correctly obtained even when headers are nil, avoiding null pointer exceptions. \
**Feature Value**: This fix resolves the issue of request rejection due to signature verification failure under specific conditions, enhancing the system's stability and reliability, and ensuring that users can smoothly access the service.
- **Related PR**: [#2628](https://github.com/alibaba/higress/pull/2628) \
**Contributor**: @co63oc \
**Change Log**: This PR corrects spelling errors in multiple files, involving 5 files and 36 lines of code, ensuring the accuracy of the documentation and comments. \
**Feature Value**: Correcting spelling errors enhances the professionalism of the codebase, allowing developers to more accurately understand the content when reading the documentation, thereby reducing errors caused by misunderstandings.
### ♻️ Refactoring and Optimization (Refactoring)
- **Related PR**: [#2777](https://github.com/alibaba/higress/pull/2777) \
**Contributor**: @StarryVae \
**Change Log**: Updated the ai-prompt-decorator plugin to the new encapsulated API, improving the initialization configuration and the way the request header handling method is called. \
**Feature Value**: This refactoring enhances the consistency and maintainability of the code, making it easier for developers to integrate and use the ai-prompt-decorator feature.
- **Related PR**: [#2773](https://github.com/alibaba/higress/pull/2773) \
**Contributor**: @CH3CHO \
**Change Log**: Refactored the path-to-API-name mapping logic in ai-proxy, introducing regular expressions to simplify the mapping process, and added test cases to verify the correctness of the functionality. \
**Feature Value**: By optimizing the path mapping logic structure, this refactoring enhances the maintainability and extensibility of the code, making it easier to support more paths, indirectly improving the system's flexibility and user experience.
- **Related PR**: [#2740](https://github.com/alibaba/higress/pull/2740) \
**Contributor**: @CH3CHO \
**Change Log**: This PR downgrades some log levels from `warn` to `info` in the `ai-statistics` component to more accurately reflect the actual importance of these log messages. \
**Feature Value**: By adjusting the log levels, this change makes the log records more in line with actual needs, helping to reduce false alarms when users view the logs and improve the user experience.
- **Related PR**: [#2711](https://github.com/alibaba/higress/pull/2711) \
**Contributor**: @johnlanni \
**Change Log**: This PR deprecates the use of slashes as separators in the mcp server and tool, adopting a format that better conforms to function naming conventions. This includes updating some of the library's dependency versions and making adjustments to the relevant files. \
**Feature Value**: By adhering to standard function naming conventions, this change enhances the consistency and readability of the code, helping to reduce future maintenance costs and minimizing potential errors due to non-compliant naming.
### 📚 Documentation Updates (Documentation)
- **Related PR**: [#2770](https://github.com/alibaba/higress/pull/2770) \
**Contributor**: @co63oc \
**Change Log**: Corrected spelling errors in multiple files, including test files, README, and variable names and configuration item names in Go code. \
**Feature Value**: This improves the accuracy and readability of the documentation, ensuring the consistency and user experience of the code. For users of the plugin, these changes help avoid confusion or configuration issues caused by spelling errors.
### 🧪 Testing Improvements (Testing)
- **Related PR**: [#2809](https://github.com/alibaba/higress/pull/2809) \
**Contributor**: @Jing-ze \
**Change Log**: Added unit tests for multiple Wasm extensions and introduced CI/CD workflows to automate these tests, ensuring code quality and stability. \
**Feature Value**: This improves the reliability of Wasm plugins by adding comprehensive unit tests and automated CI/CD processes, helping developers quickly identify and fix issues, thereby enhancing the user experience.
---
## 📊 Release Statistics
- 🚀 New Features: 21 items
- 🐛 Bug Fixes: 14 items
- ♻️ Refactoring and Optimization: 4 items
- 📚 Documentation Updates: 2 items
- 🧪 Testing Improvements: 1 item
**Total**: 42 changes (including 3 significant updates)
Thank you to all the contributors for their hard work! 🎉
# Higress Console
## 📋 Overview of This Release
This release includes **12** updates, covering multiple aspects such as feature enhancements, bug fixes, and performance optimizations.
### Distribution of Updates
- **New Features**: 5 items
- **Bug Fixes**: 5 items
- **Refactoring and Optimization**: 2 items
---
## 📝 Complete Changelog
### 🚀 New Features (Features)
- **Related PR**: [#585](https://github.com/higress-group/higress-console/pull/585) \
**Contributor**: @johnlanni \
**Change Log**: This PR adds a new AI service provider and updates the list of available models, including updating translation files to support the newly added provider. \
**Feature Value**: By introducing more AI service providers and updating the model list, users now have access to a wider range of service options, enhancing the system's flexibility and usability.
- **Related PR**: [#582](https://github.com/higress-group/higress-console/pull/582) \
**Contributor**: @Thomas-Eliot \
**Change Log**: Added support for the ai-load-balancer plugin, enabling visual configuration in higress-console and defining its priority within the system. \
**Feature Value**: By providing white-screen configuration options, it greatly improves the efficiency and flexibility of managing AI load balancers, lowering the barrier to use.
- **Related PR**: [#579](https://github.com/higress-group/higress-console/pull/579) \
**Contributor**: @JayLi52 \
**Change Log**: This update adds support for PostgreSQL and ClickHouse databases to the MCP server management function, while optimizing the MySQL database connection string format and fixing some database connection-related issues. \
**Feature Value**: The addition of new database support expands the application scope of MCP, allowing users to choose the most suitable database type flexibly, improving the system's compatibility and user experience.
- **Related PR**: [#572](https://github.com/higress-group/higress-console/pull/572) \
**Contributor**: @CH3CHO \
**Change Log**: This PR adds the functionality to manage proxy servers, including new classes and service controllers, allowing users to configure and manage proxy servers. \
**Feature Value**: With the added support, users can more flexibly manage and configure proxy servers, increasing the system's flexibility and availability.
- **Related PR**: [#565](https://github.com/higress-group/higress-console/pull/565) \
**Contributor**: @Aias00 \
**Change Log**: This PR improves MCP server management tasks 6 and 7, including updating the README.md documentation, modifying the system service implementation code, and optimizing the ConfigMap handling logic. \
**Feature Value**: By improving the MCP server management features, it enhances the system's stability and maintainability, simplifying the management of Higress configurations and improving the user experience.
### 🐛 Bug Fixes (Bug Fixes)
- **Related PR**: [#584](https://github.com/higress-group/higress-console/pull/584) \
**Contributor**: @CH3CHO \
**Change Log**: Fixed an error that occurred when authentication was enabled but no allowed consumers were present, including incorrectly clearing the list of allowed consumers and displaying incorrect authentication status. \
**Feature Value**: Ensures that the authentication feature works correctly even without allowed consumers, and the user interface accurately reflects the current authentication status.
- **Related PR**: [#581](https://github.com/higress-group/higress-console/pull/581) \
**Contributor**: @hongzhouzi \
**Change Log**: Fixed an NPE exception that occurred during the update of the openapi mcp server and corrected the PostgreSQL enumeration values to ensure consistency with constants in Higress. \
**Feature Value**: Improves the system's stability and reliability by resolving the NPE issue, and the consistency of enumeration values improves the accuracy of configuration management, reducing potential error sources.
- **Related PR**: [#577](https://github.com/higress-group/higress-console/pull/577) \
**Contributor**: @CH3CHO \
**Change Log**: Synchronized the domain name regex validation patterns between the front-end and back-end, ensuring that long top-level domains like `test.internal` are accepted, involving minor code changes and the addition of test cases. \
**Feature Value**: Resolves the issue where some valid domain names could not pass due to inconsistent domain validation rules between the front-end and back-end, enhancing the system's compatibility and user experience.
- **Related PR**: [#574](https://github.com/higress-group/higress-console/pull/574) \
**Contributor**: @CH3CHO \
**Change Log**: Fixed a logical error when filtering V1alpha1WasmPlugin based on the internal flag, ensuring that non-internal instances are not mistakenly returned. \
**Feature Value**: Improves system accuracy, ensuring that users get the correct list of plugin instances, avoiding data inconsistency issues caused by logical errors.
- **Related PR**: [#570](https://github.com/higress-group/higress-console/pull/570) \
**Contributor**: @CH3CHO \
**Change Log**: Corrected a spelling mistake that caused a 'Cannot read properties of undefined' error when editing an OpenAI type LLM provider. \
**Feature Value**: By fixing this issue, it prevents runtime errors when configuring OpenAI service providers, improving the system's stability and user experience.
### ♻️ Refactoring and Optimization (Refactoring)
- **Related PR**: [#573](https://github.com/higress-group/higress-console/pull/573) \
**Contributor**: @CH3CHO \
**Change Log**: Refactored the authentication module for MCP server integration, allowing regular routes and MCP servers to share the same authentication logic. Major changes include adding, removing, and modifying code in multiple files. \
**Feature Value**: By refactoring the authentication module, it unifies the authentication logic, improving code maintainability and reusability, reducing redundant code, and contributing to the overall stability and performance of the system.
- **Related PR**: [#571](https://github.com/higress-group/higress-console/pull/571) \
**Contributor**: @JayLi52 \
**Change Log**: Optimized the performance of the EditToolDrawer, McpServerCommand, and MCPDetail components by updating the way the Monaco editor is imported and configuring on-demand loading. \
**Feature Value**: Improves the application's loading speed and response efficiency, reduces unnecessary resource consumption, and enhances the user experience.
---
## 📊 Release Statistics
- 🚀 New Features: 5 items
- 🐛 Bug Fixes: 5 items
- ♻️ Refactoring and Optimization: 2 items
**Total**: 12 changes
Thanks to all contributors for their hard work! 🎉

View File

@@ -0,0 +1,454 @@
# Higress
## 📋 本次发布概览
本次发布包含 **42** 项更新涵盖了功能增强、Bug修复、性能优化等多个方面。
### 更新内容分布
- **新功能**: 21项
- **Bug修复**: 14项
- **重构优化**: 4项
- **文档更新**: 2项
- **测试改进**: 1项
### ⭐ 重点关注
本次发布包含 **3** 项重要更新,建议重点关注:
- **feat: add MCP SSE stateful session load balancer support** ([#2818](https://github.com/alibaba/higress/pull/2818)): 此功能使得基于SSE的应用能够更好地保持客户端与服务器之间的持久连接增强用户体验和应用性能特别是在需要维持长时间连接以进行数据推送的场景中。
- **feat: Support adding a proxy server in between when forwarding requests to upstream** ([#2710](https://github.com/alibaba/higress/pull/2710)): 此功能允许用户在转发请求到上游服务时使用代理服务器,增强了系统的灵活性和安全性,适用于需要通过特定代理进行通信的场景。
- **feat(ai-proxy): add auto protocol compatibility for OpenAI and Claude APIs** ([#2810](https://github.com/alibaba/higress/pull/2810)): 通过自动协议检测与转换用户无需手动配置即可无缝使用不同AI服务提供商的API提升了用户体验和灵活性。
详细信息请查看下方重要功能详述部分。
---
## 🌟 重要功能详述
以下是本次发布中的重要功能和改进的详细说明:
### 1. feat: add MCP SSE stateful session load balancer support
**相关PR**: [#2818](https://github.com/alibaba/higress/pull/2818) | **贡献者**: [@johnlanni](https://github.com/johnlanni)
**使用背景**
随着实时通信需求的增长Server-Sent Events (SSE) 成为了许多应用的关键技术。然而在分布式系统中如何确保同一个客户端的请求始终被路由到相同的后端服务以保持会话状态成为了一个挑战。传统的负载均衡策略无法满足这一需求。本功能针对这一问题引入了MCP SSE状态会话负载均衡支持。通过在`higress.io/load-balance`注解中指定`mcp-sse`类型用户可以轻松实现SSE连接的状态会话管理。目标用户群体主要是需要在分布式环境中进行实时数据推送的应用开发者和服务提供商。
**功能详述**
本次PR主要实现了以下功能
1. **扩展`load-balance`注解**:在`loadbalance.go`文件中增加了对`mcp-sse`值的支持,并在`LoadBalanceConfig`结构体中添加了`McpSseStateful`字段。
2. **简化配置**:用户只需在`higress.io/load-balance`注解中设置`mcp-sse`,即可启用该功能,无需额外配置。
3. **后台地址编码**当启用了MCP SSE状态会话负载均衡后后端地址将被Base64编码并嵌入到SSE消息的会话ID中。这样可以确保客户端能够正确地识别和维护会话。
核心技术创新在于通过EnvoyFilter动态生成SSE会话相关的配置从而实现状态会话管理。
**使用方式**
要使用此功能,用户需要按照以下步骤操作:
1. **启用功能**在Ingress资源中添加`higress.io/load-balance: mcp-sse`注解。
2. **配置示例**
```yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: sse-ingress
annotations:
higress.io/load-balance: mcp-sse
spec:
rules:
- host: example.com
http:
paths:
- path: /mcp-servers/test/sse
pathType: Prefix
backend:
service:
name: sse-service
port:
number: 80
```
3. **测试**:通过`curl`命令访问SSE端点检查返回的消息中是否包含正确的会话ID。
注意事项:
- 确保后端服务能够处理Base64编码的会话ID。
- 避免频繁更改后端服务部署,以免影响会话的一致性。
**功能价值**
此功能为用户带来了以下具体好处:
1. **会话一致性**:确保同一个客户端的请求始终被路由到相同的后端服务,从而保持会话状态的一致性。
2. **简化配置**:通过简单的注解配置即可启用功能,降低了用户的配置复杂度。
3. **提升用户体验**对于依赖于SSE的应用如实时通知、股票行情等能够提供更稳定和一致的服务体验。
4. **降低运维成本**:减少了因会话不一致导致的错误和故障,降低了运维团队的工作负担。
---
### 2. feat: Support adding a proxy server in between when forwarding requests to upstream
**相关PR**: [#2710](https://github.com/alibaba/higress/pull/2710) | **贡献者**: [@CH3CHO](https://github.com/CH3CHO)
**使用背景**
在现代微服务架构中特别是在复杂的网络环境中直接将请求从客户端转发到后端服务可能会遇到各种问题如网络安全、性能瓶颈等。引入中间代理服务器可以有效解决这些问题例如通过代理服务器进行流量控制、负载均衡、SSL卸载等操作。此外在某些情况下企业可能需要使用特定的代理服务器来满足合规性和安全要求。此功能的目标用户群体主要是需要在复杂网络环境中优化请求转发路径的企业和开发者们。
**功能详述**
该PR主要实现了在McpBridge资源中配置一个或多个代理服务器并允许为每个注册表配置指定的代理服务器。具体实现包括1. 在`McpBridge`资源定义中添加了`proxies`字段用于配置代理服务器列表,以及在`registries`项中添加了`proxyName`字段以关联代理服务器与注册表。2. 当创建或更新`McpBridge`资源时系统会根据配置自动生成相应的EnvoyFilter资源这些资源定义了如何将请求转发至指定的代理服务器。3. 此外还生成了针对每个绑定有代理的服务的EnvoyFilter确保它们能够正确地指向对应代理服务器上的本地监听器。整个技术实现基于Envoy的高级路由能力展示了项目在处理复杂网络拓扑方面的强大功能。
**使用方式**
启用此功能首先需要在`McpBridge`资源中配置至少一个代理服务器。这可以通过向`spec.proxies`数组中添加新的`ProxyConfig`对象完成,每个对象需包含诸如`name``serverAddress``serverPort`等必要信息。接着,对于希望使用代理服务器的注册表条目,只需在其`proxyName`字段中引用已定义的代理名称即可。一旦配置好系统会自动处理所有相关的EnvoyFilter生成工作。值得注意的是在实际部署前应该仔细检查配置文件的正确性避免因错误配置导致的服务不可用等问题。
**功能价值**
新增加的代理服务器支持功能极大地增强了系统的网络灵活性使得用户可以根据自身需求灵活地调整请求转发路径。比如通过设置不同的代理服务器可以轻松实现多地域间的数据传输优化同时借助于代理层提供的额外安全特性如SSL加密也大大提高了整个系统的安全性。另外这一功能还有助于简化运维管理尤其是在需要频繁调整网络架构的情况下通过简单的配置更改就能快速响应变化无需对底层基础架构做出重大修改。总而言之这项改进不仅扩展了项目的适用范围也为用户提供了更强有力的工具来应对日益复杂的网络挑战。
---
### 3. feat(ai-proxy): add auto protocol compatibility for OpenAI and Claude APIs
**相关PR**: [#2810](https://github.com/alibaba/higress/pull/2810) | **贡献者**: [@johnlanni](https://github.com/johnlanni)
**使用背景**
在AI代理插件中用户可能需要同时与多个AI服务提供商如OpenAI和Anthropic Claude进行交互。这些提供商通常使用不同的API协议导致用户在切换服务时需要手动配置协议类型增加了复杂性和出错的可能性。此功能解决了这一问题使用户能够无缝地使用不同提供商的服务而无需关心底层协议的差异。目标用户群体是那些希望简化AI服务集成过程的开发者和企业。
**功能详述**
本PR实现了自动协议兼容功能核心技术创新在于自动检测请求路径并根据目标提供商的能力智能地进行协议转换。具体来说当请求路径为`/v1/chat/completions`识别为OpenAI协议当请求路径为`/v1/messages`识别为Claude协议。如果目标提供商不支持原生Claude协议插件会将请求从Claude格式转换为OpenAI格式反之亦然。在`main.go`文件中,新增了基于请求路径的自动协议检测逻辑,并在必要时进行路径替换。此外,新增了`claude_to_openai.go`文件用于实现Claude到OpenAI协议的具体转换逻辑。
**使用方式**
启用此功能非常简单用户只需像往常一样发送请求即可无需额外配置。例如对于OpenAI协议的请求URL为`http://your-domain/v1/chat/completions`而对于Claude协议的请求URL为`http://your-domain/v1/messages`。插件会自动检测并处理协议转换。如果目标提供商不支持Claude协议插件会将其转换为OpenAI格式。示例配置如下
```yaml
provider:
type: claude # 原生支持Claude协议的供应商
apiTokens:
- 'YOUR_CLAUDE_API_TOKEN'
version: '2023-06-01'
```
注意事项确保正确配置API令牌和版本号以便插件能够正确识别和处理请求。
**功能价值**
此功能显著提升了AI代理插件的易用性和灵活性减少了用户的配置负担。通过自动协议检测和智能转换用户可以更轻松地在不同AI服务提供商之间切换而无需担心协议兼容性问题。这不仅提高了开发效率还增强了系统的稳定性和可靠性。此外该功能还支持流式响应进一步扩展了其应用场景特别是在需要实时交互的场景中。总之此功能为用户提供了一种更高效、更简便的方式来集成和管理多AI服务提供商。
---
## 📝 完整变更日志
### 🚀 新功能 (Features)
- **Related PR**: [#2847](https://github.com/alibaba/higress/pull/2847) \
**Contributor**: @Erica177 \
**Change Log**: 此PR为Nacos MCP添加了安全模式涉及对mcp_model.go和watcher.go文件的修改包括新增和调整配置项。 \
**Feature Value**: 通过增加安全模式支持提升了Nacos MCP服务的安全性允许用户在更安全的环境下管理其微服务配置。
- **Related PR**: [#2842](https://github.com/alibaba/higress/pull/2842) \
**Contributor**: @hanxiantao \
**Change Log**: 为hmac-auth-apisix插件添加了详细的中文和英文文档并增加了相应的测试用例以确保新添加的功能稳定可靠。 \
**Feature Value**: 通过增加文档与测试提高了hmac-auth-apisix插件的可用性和稳定性帮助用户更好地理解和使用HMAC认证机制增强API的安全性。
- **Related PR**: [#2823](https://github.com/alibaba/higress/pull/2823) \
**Contributor**: @johnlanni \
**Change Log**: 新增了OpenRouter作为AI服务提供商支持通过统一API访问多种AI模型。核心实现包括chat completions和text completions的支持。 \
**Feature Value**: 通过引入OpenRouter用户可以更灵活地选择不同的AI模型并进行交互简化了跨平台使用AI服务的复杂性提升了用户体验。
- **Related PR**: [#2815](https://github.com/alibaba/higress/pull/2815) \
**Contributor**: @hanxiantao \
**Change Log**: 本PR添加了hmac-auth-apisix插件实现了对API请求的身份验证功能。通过HMAC算法生成签名来验证请求的完整性与真实性。 \
**Feature Value**: 新增的hmac-auth-apisix插件增强了系统的安全性确保只有经过身份验证的客户端才能访问受保护的资源提升了用户体验和系统防护能力。
- **Related PR**: [#2808](https://github.com/alibaba/higress/pull/2808) \
**Contributor**: @daixijun \
**Change Log**: 添加了Anthropic API和OpenAI v1/models接口的支持扩展了DeepSeek的兼容性和功能范围。 \
**Feature Value**: 引入的新支持使得用户能够利用更多的人工智能服务选项,增强了系统的灵活性和实用性。
- **Related PR**: [#2805](https://github.com/alibaba/higress/pull/2805) \
**Contributor**: @johnlanni \
**Change Log**: 新增了JSON-RPC协议转换插件能够从MCP协议中提取请求和响应信息到头部便于进一步的观察、限流、认证等处理。 \
**Feature Value**: 该功能允许用户在A2A协议中利用JSON-RPC进行更高级别的策略控制如身份验证和流量管理从而提高了系统的灵活性与安全性。
- **Related PR**: [#2788](https://github.com/alibaba/higress/pull/2788) \
**Contributor**: @zat366 \
**Change Log**: 此PR更新了mcp-server中的依赖项github.com/higress-group/wasm-go以支持MCP插件响应图片。通过更新go.mod和go.sum文件实现。 \
**Feature Value**: 新增功能允许MCP插件处理并响应图像数据增强了系统的多媒体处理能力为用户提供更丰富的内容展示选项。
- **Related PR**: [#2769](https://github.com/alibaba/higress/pull/2769) \
**Contributor**: @github-actions[bot] \
**Change Log**: 此PR在helm文件夹中更新了CRD文件增加了关于proxies的新属性定义。 \
**Feature Value**: 通过更新CRD文件增加新属性使Kubernetes资源定义更加丰富和完善提升了系统的配置灵活性和可扩展性。
- **Related PR**: [#2761](https://github.com/alibaba/higress/pull/2761) \
**Contributor**: @johnlanni \
**Change Log**: 此PR引入了两种新的去重策略SPLIT_AND_RETAIN_FIRST和SPLIT_AND_RETAIN_LAST分别用于保留逗号分隔的头部值的第一个和最后一个元素。 \
**Feature Value**: 新策略为用户提供了更细粒度的控制选项,允许他们在去重操作时根据需求选择保留特定位置的数据,从而更好地满足多样化的需求。
- **Related PR**: [#2739](https://github.com/alibaba/higress/pull/2739) \
**Contributor**: @WeixinX \
**Change Log**: 新增了一个插件配置字段`reroute`,允许用户控制是否禁用路由重新选择。这一功能通过修改主要配置文件及添加相关测试用例来实现。 \
**Feature Value**: 该功能为用户提供了一种方式来精细化控制请求处理过程中的路由行为,增强了系统的灵活性和可配置性,满足了特定场景下的需求。
- **Related PR**: [#2730](https://github.com/alibaba/higress/pull/2730) \
**Contributor**: @rinfx \
**Change Log**: 此PR为Bedrock服务添加了工具使用支持通过修改bedrock.go等文件中的结构体和逻辑使系统能够处理与工具相关的请求。 \
**Feature Value**: 新增加的功能允许用户在Bedrock环境下有效地利用工具调用能力提升了系统的灵活性和功能性更好地满足了需要集成外部工具的应用场景需求。
- **Related PR**: [#2729](https://github.com/alibaba/higress/pull/2729) \
**Contributor**: @rinfx \
**Change Log**: 此PR增加了AI统计插件中每个value的长度限制当超过设定长度时自动截断。这有助于减少处理大文件如base64编码的图片、视频时的内存占用。 \
**Feature Value**: 通过限制和截断过长的数据值,该功能可以有效防止因记录大型媒体文件导致的内存溢出问题,从而提高系统的稳定性和性能表现。
- **Related PR**: [#2713](https://github.com/alibaba/higress/pull/2713) \
**Contributor**: @Aias00 \
**Change Log**: 此PR为AI代理添加了Grok提供商支持包括新增Grok Go文件实现与更新相关文档。 \
**Feature Value**: 通过集成Grok作为新的AI提供商用户现在可以利用Grok的AI能力来处理请求增加了系统的灵活性和功能多样性。
- **Related PR**: [#2712](https://github.com/alibaba/higress/pull/2712) \
**Contributor**: @SCMRCORE \
**Change Log**: 增加了对Gemini模型thinking功能的支持特别针对2.5 Flash、2.5 Pro和2.5 Flash-Lite三种模型进行了适配。 \
**Feature Value**: 增强了AI代理插件的功能性允许用户利用特定的Gemini模型进行更复杂的思考任务提升了用户体验与应用范围。
- **Related PR**: [#2704](https://github.com/alibaba/higress/pull/2704) \
**Contributor**: @hanxiantao \
**Change Log**: 该PR实现了Rust WASM插件支持Redis数据库配置选项的功能同时改进了demo-wasm以从Wasm插件配置中获取Redis配置。 \
**Feature Value**: 此功能允许开发者在使用Rust WASM插件时能够更加灵活地配置和集成Redis数据库提高了开发效率和应用的可配置性。
- **Related PR**: [#2698](https://github.com/alibaba/higress/pull/2698) \
**Contributor**: @erasernoob \
**Change Log**: 实现了Gemini模型对多模态的支持增加了处理图片和文本的能力。通过引入新依赖和修改现有代码逻辑增强功能。 \
**Feature Value**: 增强了AI代理插件的功能使其能够支持更复杂的多模态数据处理为用户提供更加丰富和灵活的AI服务体验。
- **Related PR**: [#2696](https://github.com/alibaba/higress/pull/2696) \
**Contributor**: @rinfx \
**Change Log**: 此PR在启用内容安全插件时引入了流式响应支持通过`bufferLimit`参数调整检测频率,提高了内容检测的灵活性和效率。 \
**Feature Value**: 新增的流式响应功能允许用户更高效地处理内容安全检测,减少延迟,提高用户体验,特别适用于需要实时反馈的应用场景。
- **Related PR**: [#2671](https://github.com/alibaba/higress/pull/2671) \
**Contributor**: @Aias00 \
**Change Log**: 实现了路径后缀和内容类型过滤功能以解决ai-statistics插件的性能与资源管理问题。通过引入SkipProcessing机制避免了对所有请求的无差别处理减少了不必要的响应体缓存。 \
**Feature Value**: 增强了AI统计插件的选择性处理能力提升了系统性能并优化了资源使用效率对于大量且复杂的API请求场景尤其有益可显著改善用户体验。
### 🐛 Bug修复 (Bug Fixes)
- **Related PR**: [#2816](https://github.com/alibaba/higress/pull/2816) \
**Contributor**: @Asnowww \
**Change Log**: 该PR修正了文件`scanners-user-agents.data`中的拼写错误,将'scannr'更正为'scanner'。 \
**Feature Value**: 修正文档中的拼写错误可以提高文档的准确性和可读性,有助于用户更好地理解和使用相关功能。
- **Related PR**: [#2799](https://github.com/alibaba/higress/pull/2799) \
**Contributor**: @erasernoob \
**Change Log**: 修正了wasm-go-build插件构建命令确保编译时包含了目录中的所有文件解决了由于依赖关系导致的编译失败问题。 \
**Feature Value**: 通过修复编译命令,避免因缺少必要文件而引起的编译错误,提升了构建过程的稳定性和可靠性,为开发者提供了更好的开发体验。
- **Related PR**: [#2787](https://github.com/alibaba/higress/pull/2787) \
**Contributor**: @co63oc \
**Change Log**: 修复了RegisteTickFunc函数的拼写错误确保了定时任务注册功能的正确性。通过更正关键函数名避免了潜在的功能失效问题。 \
**Feature Value**: 修正了因拼写错误导致的定时任务无法正常注册的问题,提升了系统的稳定性和可靠性,保障了依赖于定时任务执行的应用程序按预期运行。
- **Related PR**: [#2786](https://github.com/alibaba/higress/pull/2786) \
**Contributor**: @CH3CHO \
**Change Log**: 此PR移除了mcp-session过滤器处理SSE传输请求时的'accept-encoding'头部,解决了无法正确处理压缩响应体数据的问题。 \
**Feature Value**: 该修复确保了MCP服务器上游使用SSE传输时能够正常工作避免了因压缩导致的数据解析错误提升了系统的稳定性和可靠性。
- **Related PR**: [#2782](https://github.com/alibaba/higress/pull/2782) \
**Contributor**: @CH3CHO \
**Change Log**: 此PR修复了Azure URL配置组件被意外更改的问题通过定义新的枚举类型azureServiceUrlType来确保URL组件的正确性和一致性。 \
**Feature Value**: 该修复保证了用户在使用AI代理时能够保持他们对Azure服务URL的原始配置避免因错误更改而导致的服务调用失败或不一致问题。
- **Related PR**: [#2757](https://github.com/alibaba/higress/pull/2757) \
**Contributor**: @Jing-ze \
**Change Log**: 修复了mcp server构建Envoy过滤器单元测试的问题确保了测试用例的正确性和稳定性。 \
**Feature Value**: 通过修复单元测试中的错误,增强了代码的可靠性和可维护性,帮助开发者更好地进行后续开发和调试工作。
- **Related PR**: [#2755](https://github.com/alibaba/higress/pull/2755) \
**Contributor**: @CH3CHO \
**Change Log**: 此PR修复了在ip-restriction配置中添加重复IP时抛出错误的问题通过忽略已存在IP的错误并显示iptree返回的具体错误详情。 \
**Feature Value**: 允许在IP限制列表中存在重复项提高了配置灵活性和用户体验同时确保其他类型的错误仍能得到有效处理。
- **Related PR**: [#2754](https://github.com/alibaba/higress/pull/2754) \
**Contributor**: @Jing-ze \
**Change Log**: 修正了golang-filter中解码数据时的停止和缓冲问题确保数据处理流程更加稳定。 \
**Feature Value**: 解决了数据解码过程中的错误,提高了系统的可靠性和用户体验,避免了潜在的数据丢失或处理异常。
- **Related PR**: [#2743](https://github.com/alibaba/higress/pull/2743) \
**Contributor**: @Jing-ze \
**Change Log**: 修复了设置ip_source_type为origin-source时的错误确保了IP限制功能可以正确地根据源类型进行配置。 \
**Feature Value**: 此修复解决了在特定条件下IP源类型设置不正确的问题提高了系统的稳定性和安全性让用户能够更可靠地使用IP限制功能。
- **Related PR**: [#2723](https://github.com/alibaba/higress/pull/2723) \
**Contributor**: @CH3CHO \
**Change Log**: 修正了C++ Wasm插件中_match_service_规则由于使用错误属性名导致的功能异常问题通过修改为正确的属性名称使规则恢复正常。 \
**Feature Value**: 解决了因匹配规则错误而导致的服务路由问题,提高了系统的稳定性和准确性,确保用户能够正确地访问到所需的服务。
- **Related PR**: [#2706](https://github.com/alibaba/higress/pull/2706) \
**Contributor**: @WeixinX \
**Change Log**: 修复了transformer在替换键不存在时执行添加操作的问题并增加了映射操作的测试用例确保从headers/querys到body以及从body到headers/querys的转换正确。 \
**Feature Value**: 此修复提高了系统的稳定性和可靠性,防止了错误的数据操作,增强了用户对数据处理逻辑的信心,提升了用户体验。
- **Related PR**: [#2663](https://github.com/alibaba/higress/pull/2663) \
**Contributor**: @CH3CHO \
**Change Log**: 修复了bedrock模型名称转义逻辑中的错误移除了请求体中不必要的URL编码处理并确保返回的响应与预期一致。 \
**Feature Value**: 通过修正名称转义逻辑问题,提高了系统的稳定性和兼容性,确保了用户在使用过程中不会遇到由于转义不匹配导致的问题。
- **Related PR**: [#2653](https://github.com/alibaba/higress/pull/2653) \
**Contributor**: @johnlanni \
**Change Log**: 修复了当使用Bedrock时AI路由回退功能失效的问题。通过确保即使在headers为nil的情况下也能正确获取路径来避免空指针异常。 \
**Feature Value**: 此修复解决了特定条件下签名验证失败导致的请求被拒绝问题,提高了系统的稳定性和可靠性,确保用户可以顺利访问服务。
- **Related PR**: [#2628](https://github.com/alibaba/higress/pull/2628) \
**Contributor**: @co63oc \
**Change Log**: 此PR修正了多个文件中的拼写错误共涉及5个文件36行代码的修改确保了文档和注释的准确性。 \
**Feature Value**: 修正拼写错误提高了代码库的专业性,使开发者在阅读文档时能够更准确地理解内容,从而减少因误解导致的错误。
### ♻️ 重构优化 (Refactoring)
- **Related PR**: [#2777](https://github.com/alibaba/higress/pull/2777) \
**Contributor**: @StarryVae \
**Change Log**: 更新了ai-prompt-decorator插件至新的封装API改进了初始化配置与请求头处理方法的调用方式。 \
**Feature Value**: 此次重构提高了代码的一致性和可维护性使得开发者能够更方便地集成和使用ai-prompt-decorator功能。
- **Related PR**: [#2773](https://github.com/alibaba/higress/pull/2773) \
**Contributor**: @CH3CHO \
**Change Log**: 重构了ai-proxy中的路径到API名称的映射逻辑引入正则表达式简化映射过程并新增了测试用例以验证功能正确性。 \
**Feature Value**: 通过优化路径映射逻辑结构,提高了代码可维护性和扩展性,使得支持更多路径变得更加容易,间接提升了系统的灵活性和用户体验。
- **Related PR**: [#2740](https://github.com/alibaba/higress/pull/2740) \
**Contributor**: @CH3CHO \
**Change Log**: 此PR将`ai-statistics`组件中部分日志级别从`warn`下调至`info`,以更准确地反映这些日志信息的实际重要性。 \
**Feature Value**: 通过调整日志级别,使日志记录更加符合实际需求,有助于降低用户在查看日志时的误报警率,提升用户体验。
- **Related PR**: [#2711](https://github.com/alibaba/higress/pull/2711) \
**Contributor**: @johnlanni \
**Change Log**: 本PR将mcp server和tool中使用斜杠作为连接符的方式废弃改为使用更符合函数命名规范的格式。这包括更新了部分代码库中的依赖版本并对相关文件进行了调整。 \
**Feature Value**: 通过遵循标准的函数命名约定,这次改动增强了代码的一致性和可读性,有助于降低未来维护的成本,同时也减少了由于不合规命名导致的潜在错误。
### 📚 文档更新 (Documentation)
- **Related PR**: [#2770](https://github.com/alibaba/higress/pull/2770) \
**Contributor**: @co63oc \
**Change Log**: 修正了多个文件中的拼写错误包括测试文件、README以及Go代码中的变量名和配置项名称。 \
**Feature Value**: 提高了文档的准确性和可读性,确保了代码的一致性和用户体验。对于使用该插件的用户来说,这些更改有助于避免因拼写错误导致的混淆或配置问题。
### 🧪 测试改进 (Testing)
- **Related PR**: [#2809](https://github.com/alibaba/higress/pull/2809) \
**Contributor**: @Jing-ze \
**Change Log**: 新增了针对多个Wasm扩展的单元测试并引入了CI/CD工作流来自动化这些测试确保代码质量和稳定性。 \
**Feature Value**: 提高了Wasm插件的可靠性通过增加全面的单元测试和自动化CI/CD流程帮助开发者更快地发现和修复问题提升了用户体验。
---
## 📊 发布统计
- 🚀 新功能: 21项
- 🐛 Bug修复: 14项
- ♻️ 重构优化: 4项
- 📚 文档更新: 2项
- 🧪 测试改进: 1项
**总计**: 42项更改包含3项重要更新
感谢所有贡献者的辛勤付出!🎉
# Higress Console
## 📋 本次发布概览
本次发布包含 **12** 项更新涵盖了功能增强、Bug修复、性能优化等多个方面。
### 更新内容分布
- **新功能**: 5项
- **Bug修复**: 5项
- **重构优化**: 2项
---
## 📝 完整变更日志
### 🚀 新功能 (Features)
- **Related PR**: [#585](https://github.com/higress-group/higress-console/pull/585) \
**Contributor**: @johnlanni \
**Change Log**: 此PR增加了新的AI服务提供商并更新了可用模型列表包括对翻译文件的更新以支持新增加的提供商。 \
**Feature Value**: 通过引入更多AI服务提供商及更新模型列表用户现在可以访问更广泛的服务选项提升了系统的灵活性和实用性。
- **Related PR**: [#582](https://github.com/higress-group/higress-console/pull/582) \
**Contributor**: @Thomas-Eliot \
**Change Log**: 新增了对ai-load-balancer插件的支持使其能够在higress-console中进行可视化配置并定义了其在系统中的优先级。 \
**Feature Value**: 通过提供白屏配置选项极大提升了用户对于AI负载均衡器的管理效率与灵活性降低了使用门槛。
- **Related PR**: [#579](https://github.com/higress-group/higress-console/pull/579) \
**Contributor**: @JayLi52 \
**Change Log**: 本次更新为MCP服务器管理功能添加了对PostgreSQL和ClickHouse数据库的支持同时优化了MySQL数据库连接字符串格式并修复了一些数据库连接相关的问题。 \
**Feature Value**: 新增的数据库支持扩大了MCP的应用范围使用户能够更灵活地选择适合其需求的数据库类型提升了系统的兼容性和用户体验。
- **Related PR**: [#572](https://github.com/higress-group/higress-console/pull/572) \
**Contributor**: @CH3CHO \
**Change Log**: 此PR添加了管理代理服务器的功能包括新类和服务控制器允许用户配置和管理代理服务器。 \
**Feature Value**: 通过新增的支持,用户能够更灵活地管理和配置代理服务器,提高了系统的灵活性和可用性。
- **Related PR**: [#565](https://github.com/higress-group/higress-console/pull/565) \
**Contributor**: @Aias00 \
**Change Log**: 该PR改进了MCP服务器管理任务6和7包括更新README.md文档、修改系统服务实现代码及优化ConfigMap处理逻辑。 \
**Feature Value**: 通过改进MCP服务器管理功能提高了系统的稳定性和可维护性简化了用户对Higress配置的管理提升了用户体验。
### 🐛 Bug修复 (Bug Fixes)
- **Related PR**: [#584](https://github.com/higress-group/higress-console/pull/584) \
**Contributor**: @CH3CHO \
**Change Log**: 修复了在启用认证但没有允许的消费者时出现的错误,包括不正确地清空允许消费者列表和显示错误的认证状态。 \
**Feature Value**: 确保即使在没有允许消费者的情况下,认证功能也能正常工作,并且用户界面能够准确反映当前的认证状态。
- **Related PR**: [#581](https://github.com/higress-group/higress-console/pull/581) \
**Contributor**: @hongzhouzi \
**Change Log**: 修复了更新openapi mcp server时出现的NPE异常并修正了PostgreSQL枚举值以确保与Higress中的常量一致。 \
**Feature Value**: 通过解决NPE问题提高了系统的稳定性和可靠性同时枚举值的一致性改进了配置管理的准确性减少了潜在的错误源。
- **Related PR**: [#577](https://github.com/higress-group/higress-console/pull/577) \
**Contributor**: @CH3CHO \
**Change Log**: 同步了前后端对域名正则表达式的校验模式,确保长顶级域名如`test.internal`能够被接受,涉及少量代码修改和新增测试用例。 \
**Feature Value**: 解决了因前后端使用的域名验证规则不一致导致的部分合法域名无法通过的问题,提升了系统的兼容性和用户体验。
- **Related PR**: [#574](https://github.com/higress-group/higress-console/pull/574) \
**Contributor**: @CH3CHO \
**Change Log**: 修复了根据internal标志过滤V1alpha1WasmPlugin时的逻辑错误确保非内部实例不会被误返回。 \
**Feature Value**: 提高了系统准确性,确保用户获取到正确的插件实例列表,避免了因逻辑错误导致的数据不一致问题。
- **Related PR**: [#570](https://github.com/higress-group/higress-console/pull/570) \
**Contributor**: @CH3CHO \
**Change Log**: 修正了一个拼写错误该错误导致在编辑OpenAI类型的LLM提供者时出现'Cannot read properties of undefined'的报错。 \
**Feature Value**: 通过修复此问题避免了用户在配置OpenAI服务提供商时遇到运行时错误提升了系统的稳定性和用户体验。
### ♻️ 重构优化 (Refactoring)
- **Related PR**: [#573](https://github.com/higress-group/higress-console/pull/573) \
**Contributor**: @CH3CHO \
**Change Log**: 重构了MCP服务器集成的认证模块使得常规路由和MCP服务器可以共享相同的认证逻辑。主要变更包括在多个文件中添加、删除及修改代码。 \
**Feature Value**: 通过重构认证模块,实现了认证逻辑的统一化,提升了代码的可维护性和复用性,减少了重复代码,有助于提高系统的整体稳定性和性能。
- **Related PR**: [#571](https://github.com/higress-group/higress-console/pull/571) \
**Contributor**: @JayLi52 \
**Change Log**: 通过更新Monaco编辑器的引入方式并配置按需加载优化了EditToolDrawer、McpServerCommand和MCPDetail组件中的性能。 \
**Feature Value**: 提高了应用加载速度与响应效率,减少了不必要的资源消耗,提升了用户体验。
---
## 📊 发布统计
- 🚀 新功能: 5项
- 🐛 Bug修复: 5项
- ♻️ 重构优化: 2项
**总计**: 12项更改
感谢所有贡献者的辛勤付出!🎉