v2.1.0

higress-group/higressv2.1.0Apr 2, 2025by johnlanni

AI Summary

This major release introduces the AI search plugin, unified SSE processing, and extensive support for Azure OpenAI, Elasticsearch hybrid search, and MCP server integration.

Key Highlights

  • Added AI search plugin with support for Quark and Elasticsearch hybrid search.
  • Unified SSE processing logic across the platform.
  • Added support for Azure OpenAI Files and Batches APIs.
  • Introduced MCP server SDK and integration.

New Features

  • AI search plugin
  • Unified SSE processing logic
  • Azure OpenAI Files and Batches APIs
  • Elasticsearch hybrid search
  • Quark AI search support
  • Ollama embedding support
  • AI data masking message window
  • Ext-auth plugin HTTP method matching

Full Release Notes

## What's Changed
* update helm docs by @johnlanni in https://github.com/alibaba/higress/pull/1782
* feat: add ollama embedding to ai-cache by @Beatrueman in https://github.com/alibaba/higress/pull/1794
* feat: Support transforming reasoning_content returned by Qwen to OpenAI contract by @CH3CHO in https://github.com/alibaba/higress/pull/1791
* fix: Fix a bug in openaiCustomUrl support by @CH3CHO in https://github.com/alibaba/higress/pull/1790
* Add ai search plugin by @johnlanni in https://github.com/alibaba/higress/pull/1804
* feat: Unify the SSE processing logic by @CH3CHO in https://github.com/alibaba/higress/pull/1800
* fix(typo): use the correct bing name for ai-search. by @maratrixx in https://github.com/alibaba/higress/pull/1807
* Add database configuration for plugins that use Redis. by @johnlanni in https://github.com/alibaba/higress/pull/1814
* set include_usage by default for all model providers by @johnlanni in https://github.com/alibaba/higress/pull/1818
* ai-search support quark by @rinfx in https://github.com/alibaba/higress/pull/1811
* add notes to gateway.rollingMaxUnavailable by @littlejiancc in https://github.com/alibaba/higress/pull/1819
* feat: update ai-token-ratelimit documentation by removing ai-statistics plugin  by @cr7258 in https://github.com/alibaba/higress/pull/1767
* Ai data masking msg window by @007gzs in https://github.com/alibaba/higress/pull/1775
* feat: ext-auth plugin: Blacklist and whitelist modes support HTTP request method matching by @hanxiantao in https://github.com/alibaba/higress/pull/1798
* fix: remove last failed apiToken from retry apiToken list by @cr7258 in https://github.com/alibaba/higress/pull/1802
* feat: Support pushing multi-arch images to a custom image registry by @CH3CHO in https://github.com/alibaba/higress/pull/1815
* fix rust_wasm_build by @007gzs in https://github.com/alibaba/higress/pull/1824
* fix: Disable helm-docs action since it's still under development by @CH3CHO in https://github.com/alibaba/higress/pull/1828
* fix: gateway log config should read from helm\core\values.yaml when deploy with helm by @firebook in https://github.com/alibaba/higress/pull/1834
* Simplify the implementation of ai-search integration with quark and add a tutorial. by @johnlanni in https://github.com/alibaba/higress/pull/1838
* optimize ai search by @johnlanni in https://github.com/alibaba/higress/pull/1843
* feat(helm): add podLabels to gateway && controller by @daixijun in https://github.com/alibaba/higress/pull/1792
* doc: Update the description of timeout config of ai-proxy by @CH3CHO in https://github.com/alibaba/higress/pull/1845
* add plugin start log in sdk by @rinfx in https://github.com/alibaba/higress/pull/1831
* feat: Support only watching key resources in one namespace by @CH3CHO in https://github.com/alibaba/higress/pull/1821
* Set the llm-api-key field of the ai-search plugin to optional by @johnlanni in https://github.com/alibaba/higress/pull/1846
* chore: load EXTRA_TAGS from plugin .buildrc file to avoid build issue. by @Colstuwjx in https://github.com/alibaba/higress/pull/1852
* fix plugin_wrapper.go log level by @Colstuwjx in https://github.com/alibaba/higress/pull/1848
* fix: Fix the incorrect reasoning content concat logic in ai-proxy by @CH3CHO in https://github.com/alibaba/higress/pull/1842
* optimize ai-search references by @johnlanni in https://github.com/alibaba/higress/pull/1859
* optimize model router&mapper by @johnlanni in https://github.com/alibaba/higress/pull/1866
* feat: allow failover to distinguish between different endpoint of the same provider by @cr7258 in https://github.com/alibaba/higress/pull/1862
* feat: add replay protection plugin by @yunmaoQu in https://github.com/alibaba/higress/pull/1672
* feat: add huggingface embedding to ai-cache by @Beatrueman in https://github.com/alibaba/higress/pull/1864
* add redis init status log by @rinfx in https://github.com/alibaba/higress/pull/1867
* support default value by @rinfx in https://github.com/alibaba/higress/pull/1873
* feat: support elasticsearch hybrid search by @cr7258 in https://github.com/alibaba/higress/pull/1844
* bugfix:[frontend-gray plugin] Force no caching for fetch requests by @heimanba in https://github.com/alibaba/higress/pull/1856
* feat: support retry on http status code by @cr7258 in https://github.com/alibaba/higress/pull/1817
* fix openai embedding path by @johnlanni in https://github.com/alibaba/higress/pull/1881
* Rust WASM plugin support for matching service and route name prefixes is effective. by @007gzs in https://github.com/alibaba/higress/pull/1882
* AI-search plugin supports controlling through the web_search_options parameter. by @johnlanni in https://github.com/alibaba/higress/pull/1893
* fix chunk merge bug in ai-search by @johnlanni in https://github.com/alibaba/higress/pull/1895
* more optimize of ai search plugin by @johnlanni in https://github.com/alibaba/higress/pull/1896
* add variable from secret when applying istio cr by @2456868764 in https://github.com/alibaba/higress/pull/1877
* optimize retry&failover logic by @johnlanni in https://github.com/alibaba/higress/pull/1903
* feat: Support files and batches APIs provided by Azure OpenAI by @CH3CHO in https://github.com/alibaba/higress/pull/1904
* support nil option in NewCommonVmCtx by @johnlanni in https://github.com/alibaba/higress/pull/1909
* feat: Support forwarding embedding calls to Ollama in ai-proxy by @CH3CHO in https://github.com/alibaba/higress/pull/1913
* optimization parseIP in xff by @007gzs in https://github.com/alibaba/higress/pull/1915
* fix: Skip reading non-JSON request bodies in ai-proxy by @CH3CHO in https://github.com/alibaba/higress/pull/1914
* feat: add ratelimit metrics in the ai-token-ratelimit plugin  by @hzhswyz in https://github.com/alibaba/higress/pull/1918
* feat: add xfyun emb to ai-cache by @Beatrueman in https://github.com/alibaba/higress/pull/1921
* feat: add buffer_limit functions by @Fengxq2014 in https://github.com/alibaba/higress/pull/1922
* Fix the error in the embedding interface under the AI proxy Qwen compatible mode. by @rinfx in https://github.com/alibaba/higress/pull/1928
* improve the logic for constructing redis key by @rinfx in https://github.com/alibaba/higress/pull/1933
* add example for extending span attributes by @rinfx in https://github.com/alibaba/higress/pull/1936
* optimize plugin sdk by @johnlanni in https://github.com/alibaba/higress/pull/1930
* feat: add golang filter and mcp-server by @Jing-ze in https://github.com/alibaba/higress/pull/1942
* chore: Remove redundant get-higress.sh by @CH3CHO in https://github.com/alibaba/higress/pull/1943
* feat: add config parse in mcp server  by @Jing-ze in https://github.com/alibaba/higress/pull/1944
* Add remote mcp server sdk by @johnlanni in https://github.com/alibaba/higress/pull/1946
* add parse_rule_config fail log by @007gzs in https://github.com/alibaba/higress/pull/1938
* fix invalid ai-proxy cluster by @johnlanni in https://github.com/alibaba/higress/pull/1947
* revert wrapper changes by @johnlanni in https://github.com/alibaba/higress/pull/1948
* fix ai-search rewrite query when no search result found by @johnlanni in https://github.com/alibaba/higress/pull/1949
* add: add mcp server amap tools by @mirror58229 in https://github.com/alibaba/higress/pull/1951
* feat: add mcpServer in config map by @Jing-ze in https://github.com/alibaba/higress/pull/1953
* feat: update Go filter mcp-server by @Jing-ze in https://github.com/alibaba/higress/pull/1950
* Fix log import by @johnlanni in https://github.com/alibaba/higress/pull/1957
* fix: Fix the incorrect image used to build envoy by @CH3CHO in https://github.com/alibaba/higress/pull/1958
* key auth support multiple credentials by @johnlanni in https://github.com/alibaba/higress/pull/1956
* rel 2.1.0-rc.1 by @johnlanni in https://github.com/alibaba/higress/pull/1959
* fix: Fetch get-higress.sh from standalone repo by @CH3CHO in https://github.com/alibaba/higress/pull/1945
* fix: update log info to debug by @Jing-ze in https://github.com/alibaba/higress/pull/1954
* feat: support nacos mcp registry by @luoxiner in https://github.com/alibaba/higress/pull/1961
* update default enable path suffix in model mapper&router plugin by @johnlanni in https://github.com/alibaba/higress/pull/1962
* fix golang filter build by @johnlanni in https://github.com/alibaba/higress/pull/1966
* fix: add match list and wasm mcp-server message pub in redis  by @Jing-ze in https://github.com/alibaba/higress/pull/1963
* fix: mcp server config map by @Jing-ze in https://github.com/alibaba/higress/pull/1969
* doc: add ai statistics metric doc by @cr7258 in https://github.com/alibaba/higress/pull/1889
* feat: add azure embedding to ai-cache by @Beatrueman in https://github.com/alibaba/higress/pull/1975
* docs: Add Azure OpenAI configuration instructionsby @Beatrueman in https://github.com/alibaba/higress/pull/1976
* refactor mcp sdk by @johnlanni in https://github.com/alibaba/higress/pull/1977
* Add all in one mcp by @johnlanni in https://github.com/alibaba/higress/pull/1978
* fix inclusionRegexps not working by @hzhswyz in https://github.com/alibaba/higress/pull/1972
* fix: fix bug of mcp server proxy by @Jing-ze in https://github.com/alibaba/higress/pull/1981
* fix: Fix several issues in the envoy.yaml configuration file by @Fengxq2014 in https://github.com/alibaba/higress/pull/1983
* fix: mcp proxy eventData by @Jing-ze in https://github.com/alibaba/higress/pull/1985
* support rest to mcp by @johnlanni in https://github.com/alibaba/higress/pull/1988
* rename redis key by @rinfx in https://github.com/alibaba/higress/pull/1986
* feat: Add an optional Redis component to the Higress helm package by @littlejiancc in https://github.com/alibaba/higress/pull/1973
* feat: support service delete event trigger for tool and some fix by @luoxiner in https://github.com/alibaba/higress/pull/1987
* use custom nacos go sdk for disable log by @luoxiner in https://github.com/alibaba/higress/pull/1991
* update proxy-wasm-cpp-host by @johnlanni in https://github.com/alibaba/higress/pull/1993
* fix: Golang filter supports skipping processing at the body stage. by @Jing-ze in https://github.com/alibaba/higress/pull/1989
* release 2.1.0 rc.2 by @johnlanni in https://github.com/alibaba/higress/pull/1995
* release 2.1.0 by @Jing-ze in https://github.com/alibaba/higress/pull/1998
* fix poll_oneof by @johnlanni in https://github.com/alibaba/higress/pull/2003
* optimize: Support viewing MCP debug information in the response code details log field by @johnlanni in https://github.com/alibaba/higress/pull/2007
* release 2.1.0 by @johnlanni in https://github.com/alibaba/higress/pull/2008

## New Contributors
* @maratrixx made their first contribution in https://github.com/alibaba/higress/pull/1807
* @firebook made their first contribution in https://github.com/alibaba/higress/pull/1834
* @Colstuwjx made their first contribution in https://github.com/alibaba/higress/pull/1852
* @hzhswyz made their first contribution in https://github.com/alibaba/higress/pull/1918
* @Fengxq2014 made their first contribution in https://github.com/alibaba/higress/pull/1922
* @luoxiner made their first contribution in https://github.com/alibaba/higress/pull/1961

**Full Changelog**: https://github.com/alibaba/higress/compare/v2.0.7...v2.1.0