Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: alibaba/higress
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v2.0.7
Choose a base ref
...
head repository: alibaba/higress
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v2.1.0-rc.1
Choose a head ref
Loading
Showing with 16,515 additions and 2,343 deletions.
  1. +5 −0 .github/workflows/build-and-push-wasm-plugin-image.yaml
  2. +2 −2 .github/workflows/build-and-test-plugin.yaml
  3. +4 −4 .github/workflows/build-and-test.yaml
  4. +258 −229 .github/workflows/build-image-and-push.yaml
  5. +1 −1 .github/workflows/deploy-standalone-to-oss.yaml
  6. +2 −1 .github/workflows/helm-docs.yaml
  7. +3 −3 .github/workflows/release-hgctl.yaml
  8. +11 −5 Makefile.core.mk
  9. +72 −129 README.md
  10. +0 −106 README_EN.md
  11. +230 −0 README_ZH.md
  12. +1 −1 VERSION
  13. +4 −2 docker/docker.mk
  14. +1 −1 envoy/envoy
  15. +2 −4 go.mod
  16. +2 −2 helm/core/Chart.yaml
  17. +1 −1 helm/core/README.md
  18. +6 −3 helm/core/templates/_pod.tpl
  19. +7 −0 helm/core/templates/controller-deployment.yaml
  20. +25 −16 helm/core/values.yaml
  21. +3 −3 helm/higress/Chart.lock
  22. +3 −3 helm/higress/Chart.yaml
  23. +4 −2 helm/higress/README.md
  24. +2 −3 hgctl/go.mod
  25. +1 −1 istio/istio
  26. +1 −1 istio/proxy
  27. +1 −1 pkg/bootstrap/server.go
  28. +55 −6 pkg/ingress/config/ingress_config.go
  29. +8 −1 pkg/ingress/config/ingress_config_test.go
  30. +119 −0 pkg/ingress/config/ingress_template.go
  31. +166 −0 pkg/ingress/config/ingress_template_test.go
  32. +3 −2 pkg/ingress/config/kingress_config.go
  33. +8 −1 pkg/ingress/config/kingress_config_test.go
  34. +157 −0 pkg/ingress/config/secret_config_mgr.go
  35. +155 −0 pkg/ingress/config/secret_config_mgr_test.go
  36. +2 −0 pkg/ingress/kube/configmap/config.go
  37. +3 −0 pkg/ingress/kube/configmap/controller.go
  38. +327 −0 pkg/ingress/kube/configmap/mcp_server.go
  39. +354 −0 pkg/ingress/kube/configmap/mcp_server_test.go
  40. +17 −5 pkg/ingress/kube/http2rpc/controller.go
  41. +1 −1 pkg/ingress/kube/ingress/controller.go
  42. +3 −3 pkg/ingress/kube/ingress/controller_test.go
  43. +1 −1 pkg/ingress/kube/ingressv1/controller.go
  44. +17 −7 pkg/ingress/kube/kingress/controller.go
  45. +1 −1 pkg/ingress/kube/kingress/controller_test.go
  46. +17 −5 pkg/ingress/kube/mcpbridge/controller.go
  47. +5 −6 pkg/ingress/kube/secret/controller.go
  48. +2 −1 pkg/ingress/kube/secret/controller_test.go
  49. +17 −5 pkg/ingress/kube/wasmplugin/controller.go
  50. +5 −6 pkg/ingress/translation/translation.go
  51. +39 −0 plugins/golang-filter/Dockerfile
  52. +12 −0 plugins/golang-filter/Makefile
  53. +47 −0 plugins/golang-filter/README.md
  54. +45 −0 plugins/golang-filter/README_en.md
  55. +65 −0 plugins/golang-filter/mcp-server/README.md
  56. +67 −0 plugins/golang-filter/mcp-server/README_en.md
  57. +153 −0 plugins/golang-filter/mcp-server/config.go
  58. +188 −0 plugins/golang-filter/mcp-server/filter.go
  59. +54 −0 plugins/golang-filter/mcp-server/go.mod
  60. +182 −0 plugins/golang-filter/mcp-server/go.sum
  61. +202 −0 plugins/golang-filter/mcp-server/internal/redis.go
  62. +26 −0 plugins/golang-filter/mcp-server/internal/registry.go
  63. +844 −0 plugins/golang-filter/mcp-server/internal/server.go
  64. +227 −0 plugins/golang-filter/mcp-server/internal/sse.go
  65. +243 −0 plugins/golang-filter/mcp-server/registry/nacos/nacos.go
  66. +170 −0 plugins/golang-filter/mcp-server/registry/nacos/server.go
  67. +64 −0 plugins/golang-filter/mcp-server/registry/registry.go
  68. +200 −0 plugins/golang-filter/mcp-server/registry/remote.go
  69. +90 −0 plugins/golang-filter/mcp-server/servers/gorm/db.go
  70. +58 −0 plugins/golang-filter/mcp-server/servers/gorm/server.go
  71. +55 −0 plugins/golang-filter/mcp-server/servers/gorm/tools.go
  72. +274 −42 plugins/wasm-cpp/common/route_rule_matcher.h
  73. +7 −1 plugins/wasm-cpp/extensions/hmac_auth/plugin.cc
  74. +35 −0 plugins/wasm-cpp/extensions/hmac_auth/plugin_test.cc
  75. +203 −126 plugins/wasm-cpp/extensions/key_auth/plugin.cc
  76. +41 −1 plugins/wasm-cpp/extensions/key_auth/plugin.h
  77. +159 −0 plugins/wasm-cpp/extensions/key_auth/plugin_test.cc
  78. +3 −2 plugins/wasm-cpp/extensions/model_mapper/plugin.cc
  79. +3 −1 plugins/wasm-cpp/extensions/model_mapper/plugin.h
  80. +3 −3 plugins/wasm-cpp/extensions/model_router/README.md
  81. +21 −21 plugins/wasm-cpp/extensions/model_router/README_EN.md
  82. +8 −2 plugins/wasm-cpp/extensions/model_router/plugin.cc
  83. +3 −1 plugins/wasm-cpp/extensions/model_router/plugin.h
  84. +3 −3 plugins/wasm-go/Makefile
  85. +2 −0 plugins/wasm-go/README.md
  86. +2 −0 plugins/wasm-go/README_EN.md
  87. +20 −0 plugins/wasm-go/examples/custom-span-attribute/go.mod
  88. +20 −0 plugins/wasm-go/examples/custom-span-attribute/go.sum
  89. +70 −0 plugins/wasm-go/examples/custom-span-attribute/main.go
  90. +55 −9 plugins/wasm-go/extensions/ai-cache/README.md
  91. +16 −13 plugins/wasm-go/extensions/ai-cache/README_EN.md
  92. +7 −3 plugins/wasm-go/extensions/ai-cache/cache/provider.go
  93. +10 −2 plugins/wasm-go/extensions/ai-cache/cache/redis.go
  94. +10 −8 plugins/wasm-go/extensions/ai-cache/config/config.go
  95. +167 −0 plugins/wasm-go/extensions/ai-cache/embedding/huggingface.go
  96. +151 −0 plugins/wasm-go/extensions/ai-cache/embedding/ollama.go
  97. +14 −8 plugins/wasm-go/extensions/ai-cache/embedding/provider.go
  98. +310 −0 plugins/wasm-go/extensions/ai-cache/embedding/xfyun.go
  99. +1 −1 plugins/wasm-go/extensions/ai-cache/main.go
  100. +12 −11 plugins/wasm-go/extensions/ai-history/README.md
  101. +13 −11 plugins/wasm-go/extensions/ai-history/README_EN.md
  102. +5 −1 plugins/wasm-go/extensions/ai-history/main.go
  103. +31 −25 plugins/wasm-go/extensions/ai-proxy/README.md
  104. +1 −1 plugins/wasm-go/extensions/ai-proxy/README_EN.md
  105. +7 −5 plugins/wasm-go/extensions/ai-proxy/config/config.go
  106. +7 −1 plugins/wasm-go/extensions/ai-proxy/go.mod
  107. +8 −0 plugins/wasm-go/extensions/ai-proxy/go.sum
  108. +122 −49 plugins/wasm-go/extensions/ai-proxy/main.go
  109. +5 −5 plugins/wasm-go/extensions/ai-proxy/provider/ai360.go
  110. +47 −23 plugins/wasm-go/extensions/ai-proxy/provider/azure.go
  111. +5 −5 plugins/wasm-go/extensions/ai-proxy/provider/baichuan.go
  112. +5 −5 plugins/wasm-go/extensions/ai-proxy/provider/baidu.go
  113. +13 −12 plugins/wasm-go/extensions/ai-proxy/provider/claude.go
  114. +5 −5 plugins/wasm-go/extensions/ai-proxy/provider/cloudflare.go
  115. +0 −17 plugins/wasm-go/extensions/ai-proxy/provider/cluster.go
  116. +8 −8 plugins/wasm-go/extensions/ai-proxy/provider/cohere.go
  117. +12 −16 plugins/wasm-go/extensions/ai-proxy/provider/context.go
  118. +3 −3 plugins/wasm-go/extensions/ai-proxy/provider/coze.go
  119. +7 −7 plugins/wasm-go/extensions/ai-proxy/provider/deepl.go
  120. +5 −5 plugins/wasm-go/extensions/ai-proxy/provider/deepseek.go
  121. +11 −10 plugins/wasm-go/extensions/ai-proxy/provider/dify.go
  122. +5 −5 plugins/wasm-go/extensions/ai-proxy/provider/doubao.go
  123. +117 −75 plugins/wasm-go/extensions/ai-proxy/provider/failover.go
  124. +20 −20 plugins/wasm-go/extensions/ai-proxy/provider/gemini.go
  125. +5 −5 plugins/wasm-go/extensions/ai-proxy/provider/github.go
  126. +5 −5 plugins/wasm-go/extensions/ai-proxy/provider/groq.go
  127. +20 −19 plugins/wasm-go/extensions/ai-proxy/provider/hunyuan.go
  128. +19 −18 plugins/wasm-go/extensions/ai-proxy/provider/minimax.go
  129. +5 −5 plugins/wasm-go/extensions/ai-proxy/provider/mistral.go
  130. +91 −6 plugins/wasm-go/extensions/ai-proxy/provider/model.go
  131. +21 −91 plugins/wasm-go/extensions/ai-proxy/provider/moonshot.go
  132. +7 −6 plugins/wasm-go/extensions/ai-proxy/provider/ollama.go
  133. +19 −27 plugins/wasm-go/extensions/ai-proxy/provider/openai.go
  134. +152 −44 plugins/wasm-go/extensions/ai-proxy/provider/provider.go
  135. +99 −185 plugins/wasm-go/extensions/ai-proxy/provider/qwen.go
  136. +5 −4 plugins/wasm-go/extensions/ai-proxy/provider/request_helper.go
  137. +88 −53 plugins/wasm-go/extensions/ai-proxy/provider/retry.go
  138. +8 −7 plugins/wasm-go/extensions/ai-proxy/provider/spark.go
  139. +5 −5 plugins/wasm-go/extensions/ai-proxy/provider/stepfun.go
  140. +5 −5 plugins/wasm-go/extensions/ai-proxy/provider/together_ai.go
  141. +5 −5 plugins/wasm-go/extensions/ai-proxy/provider/yi.go
  142. +5 −5 plugins/wasm-go/extensions/ai-proxy/provider/zhipuai.go
  143. +12 −0 plugins/wasm-go/extensions/ai-proxy/util/string.go
  144. +8 −8 plugins/wasm-go/extensions/ai-quota/README.md
  145. +8 −7 plugins/wasm-go/extensions/ai-quota/README_EN.md
  146. +2 −2 plugins/wasm-go/extensions/ai-quota/go.mod
  147. +2 −4 plugins/wasm-go/extensions/ai-quota/go.sum
  148. +4 −1 plugins/wasm-go/extensions/ai-quota/main.go
  149. +300 −0 plugins/wasm-go/extensions/ai-search/README.md
  150. +299 −0 plugins/wasm-go/extensions/ai-search/README_EN.md
  151. +134 −0 plugins/wasm-go/extensions/ai-search/engine/arxiv/arxiv.go
  152. +128 −0 plugins/wasm-go/extensions/ai-search/engine/bing/bing.go
  153. +153 −0 plugins/wasm-go/extensions/ai-search/engine/elasticsearch/elasticsearch.go
  154. +120 −0 plugins/wasm-go/extensions/ai-search/engine/google/google.go
  155. +178 −0 plugins/wasm-go/extensions/ai-search/engine/quark/quark.go
  156. +37 −0 plugins/wasm-go/extensions/ai-search/engine/types.go
  157. +26 −0 plugins/wasm-go/extensions/ai-search/go.mod
  158. +96 −0 plugins/wasm-go/extensions/ai-search/go.sum
  159. +107 −0 plugins/wasm-go/extensions/ai-search/guide.md
  160. +760 −0 plugins/wasm-go/extensions/ai-search/main.go
  161. +214 −0 plugins/wasm-go/extensions/ai-search/prompts/arxiv.md
  162. +39 −0 plugins/wasm-go/extensions/ai-search/prompts/chinese-internet.md
  163. +217 −0 plugins/wasm-go/extensions/ai-search/prompts/full.md
  164. +41 −0 plugins/wasm-go/extensions/ai-search/prompts/internet.md
  165. +51 −0 plugins/wasm-go/extensions/ai-search/prompts/private.md
  166. +58 −0 plugins/wasm-go/extensions/ai-search/prompts/test_ai_search.py
  167. +1 −0 plugins/wasm-go/extensions/ai-statistics/README.md
  168. +1 −0 plugins/wasm-go/extensions/ai-statistics/README_EN.md
  169. +16 −8 plugins/wasm-go/extensions/ai-statistics/main.go
  170. +20 −23 plugins/wasm-go/extensions/ai-token-ratelimit/README.md
  171. +20 −22 plugins/wasm-go/extensions/ai-token-ratelimit/README_EN.md
  172. +11 −2 plugins/wasm-go/extensions/ai-token-ratelimit/config.go
  173. +52 −3 plugins/wasm-go/extensions/ai-token-ratelimit/main.go
  174. +7 −6 plugins/wasm-go/extensions/cluster-key-rate-limit/README.md
  175. +9 −7 plugins/wasm-go/extensions/cluster-key-rate-limit/README_EN.md
  176. +2 −1 plugins/wasm-go/extensions/cluster-key-rate-limit/config.go
  177. +31 −16 plugins/wasm-go/extensions/ext-auth/README.md
  178. +31 −16 plugins/wasm-go/extensions/ext-auth/README_EN.md
  179. +28 −11 plugins/wasm-go/extensions/ext-auth/config/config.go
  180. +49 −1 plugins/wasm-go/extensions/ext-auth/config/config_test.go
  181. +17 −11 plugins/wasm-go/extensions/ext-auth/expr/match_rules.go
  182. +145 −75 plugins/wasm-go/extensions/ext-auth/expr/match_rules_test.go
  183. +1 −2 plugins/wasm-go/extensions/ext-auth/main.go
  184. +9 −0 plugins/wasm-go/extensions/ext-auth/util/utils.go
  185. +1 −0 plugins/wasm-go/extensions/frontend-gray/config/config.go
  186. +6 −0 plugins/wasm-go/extensions/frontend-gray/main.go
  187. +3 −6 plugins/wasm-go/extensions/ip-restriction/main.go
  188. +8 −2 plugins/wasm-go/extensions/ip-restriction/utils.go
  189. +34 −3 plugins/wasm-go/extensions/ip-restriction/utils_test.go
  190. +110 −0 plugins/wasm-go/extensions/replay-protection/README.md
  191. +109 −0 plugins/wasm-go/extensions/replay-protection/README_EN.md
  192. +1 −0 plugins/wasm-go/extensions/replay-protection/VERSION
  193. +107 −0 plugins/wasm-go/extensions/replay-protection/config/config.go
  194. +22 −0 plugins/wasm-go/extensions/replay-protection/go.mod
  195. +24 −0 plugins/wasm-go/extensions/replay-protection/go.sum
  196. +77 −0 plugins/wasm-go/extensions/replay-protection/main.go
  197. +8 −0 plugins/wasm-go/extensions/replay-protection/util/utils.go
  198. +1 −0 plugins/wasm-go/go.mod
  199. +3 −0 plugins/wasm-go/go.sum
  200. +33 −0 plugins/wasm-go/mcp-servers/Dockerfile
  201. +51 −0 plugins/wasm-go/mcp-servers/Makefile
  202. +260 −0 plugins/wasm-go/mcp-servers/README.md
  203. +256 −0 plugins/wasm-go/mcp-servers/README_zh.md
  204. +23 −0 plugins/wasm-go/mcp-servers/amap-tools/go.mod
  205. +38 −0 plugins/wasm-go/mcp-servers/amap-tools/go.sum
  206. +32 −0 plugins/wasm-go/mcp-servers/amap-tools/main.go
  207. +33 −0 plugins/wasm-go/mcp-servers/amap-tools/server/server.go
  208. +80 −0 plugins/wasm-go/mcp-servers/amap-tools/tools/maps_around_search.go
  209. +87 −0 plugins/wasm-go/mcp-servers/amap-tools/tools/maps_bicycling.go
  210. +89 −0 plugins/wasm-go/mcp-servers/amap-tools/tools/maps_direction_driving.go
  211. +125 −0 plugins/wasm-go/mcp-servers/amap-tools/tools/maps_direction_transit_integrated.go
  212. +88 −0 plugins/wasm-go/mcp-servers/amap-tools/tools/maps_direction_walking.go
  213. +80 −0 plugins/wasm-go/mcp-servers/amap-tools/tools/maps_distance.go
  214. +101 −0 plugins/wasm-go/mcp-servers/amap-tools/tools/maps_geo.go
  215. +76 −0 plugins/wasm-go/mcp-servers/amap-tools/tools/maps_ip_location.go
  216. +79 −0 plugins/wasm-go/mcp-servers/amap-tools/tools/maps_regeocode.go
  217. +84 −0 plugins/wasm-go/mcp-servers/amap-tools/tools/maps_search_detail.go
  218. +90 −0 plugins/wasm-go/mcp-servers/amap-tools/tools/maps_text_search.go
  219. +89 −0 plugins/wasm-go/mcp-servers/amap-tools/tools/maps_weather.go
  220. +25 −0 plugins/wasm-go/mcp-servers/quark-search/go.mod
  221. +38 −0 plugins/wasm-go/mcp-servers/quark-search/go.sum
  222. +32 −0 plugins/wasm-go/mcp-servers/quark-search/main.go
  223. +41 −0 plugins/wasm-go/mcp-servers/quark-search/server/server.go
  224. +130 −0 plugins/wasm-go/mcp-servers/quark-search/tools/web_search.go
  225. +45 −0 plugins/wasm-go/mcp-servers/quark-search/tools/web_search_test.go
  226. +85 −0 plugins/wasm-go/pkg/log/log.go
  227. +2 −2 plugins/wasm-go/pkg/wrapper/http_wrapper.go
  228. +7 −17 plugins/wasm-go/pkg/wrapper/log_wrapper.go
  229. +204 −57 plugins/wasm-go/pkg/wrapper/plugin_wrapper.go
  230. +23 −0 plugins/wasm-go/pkg/wrapper/redis_wrapper.go
  231. +1 −1 plugins/wasm-rust/Cargo.toml
  232. +2 −2 plugins/wasm-rust/Dockerfile
  233. +609 −0 plugins/wasm-rust/example/wrapper-say-hello/Cargo.lock
  234. +15 −0 plugins/wasm-rust/example/wrapper-say-hello/Cargo.toml
  235. +29 −0 plugins/wasm-rust/example/wrapper-say-hello/docker-compose.yaml
  236. +86 −0 plugins/wasm-rust/example/wrapper-say-hello/envoy.yaml
  237. +149 −0 plugins/wasm-rust/example/wrapper-say-hello/src/lib.rs
  238. +0 −1 plugins/wasm-rust/extensions/ai-data-masking/.buildrc
  239. +3 −0 plugins/wasm-rust/extensions/ai-data-masking/.prebuild
  240. +64 −69 plugins/wasm-rust/extensions/ai-data-masking/src/lib.rs
  241. +338 −0 plugins/wasm-rust/extensions/ai-data-masking/src/msg_window.rs
  242. +1 −4 plugins/wasm-rust/src/event_stream.rs
  243. +18 −0 plugins/wasm-rust/src/plugin_wrapper.rs
  244. +457 −27 plugins/wasm-rust/src/rule_matcher.rs
  245. +192 −0 test/e2e/conformance/tests/go-wasm-basic-auth-template.go
  246. +77 −0 test/e2e/conformance/tests/go-wasm-basic-auth-template.yaml
  247. +139 −0 test/e2e/conformance/tests/go-wasm-replay-protection.go
  248. +88 −0 test/e2e/conformance/tests/go-wasm-replay-protection.yaml
  249. +12 −0 test/e2e/conformance/utils/kubernetes/helpers.go
  250. +0 −278 tools/get-higress.sh
  251. +3 −1 tools/hack/build-envoy.sh
  252. +39 −0 tools/hack/build-golang-filters.sh
  253. +22 −2 tools/hack/build-istio-image.sh
  254. +4 −2 tools/hack/build-istio-pilot.sh
  255. +1 −1 tools/hack/prebuild.sh
5 changes: 5 additions & 0 deletions .github/workflows/build-and-push-wasm-plugin-image.yaml
Original file line number Diff line number Diff line change
@@ -133,6 +133,11 @@ jobs:
command="
set -e
cd /workspace/plugins/wasm-rust/extensions/${PLUGIN_NAME}
if [ -f ./.prebuild ]; then
echo 'Found .prebuild file, sourcing it...'
. ./.prebuild
fi
rustup target add wasm32-wasip1
cargo build --target wasm32-wasip1 --release
cp target/wasm32-wasip1/release/*.wasm plugin.wasm
tar czvf plugin.tar.gz plugin.wasm
4 changes: 2 additions & 2 deletions .github/workflows/build-and-test-plugin.yaml
Original file line number Diff line number Diff line change
@@ -24,7 +24,7 @@ jobs:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version: 1.21.5
go-version: 1.22
# There are too many lint errors in current code bases
# uncomment when we decide what lint should be addressed or ignored.
# - run: make lint
@@ -51,7 +51,7 @@ jobs:
- name: "Setup Go"
uses: actions/setup-go@v5
with:
go-version: 1.21.5
go-version: 1.22

- name: Setup Rust
uses: actions-rs/toolchain@v1
8 changes: 4 additions & 4 deletions .github/workflows/build-and-test.yaml
Original file line number Diff line number Diff line change
@@ -13,7 +13,7 @@ jobs:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version: 1.21.5
go-version: 1.22
# There are too many lint errors in current code bases
# uncomment when we decide what lint should be addressed or ignored.
# - run: make lint
@@ -26,7 +26,7 @@ jobs:
- name: "Setup Go"
uses: actions/setup-go@v5
with:
go-version: 1.21.5
go-version: 1.22

- name: Setup Golang Caches
uses: actions/cache@v4
@@ -64,7 +64,7 @@ jobs:
- name: "Setup Go"
uses: actions/setup-go@v5
with:
go-version: 1.21.5
go-version: 1.22

- name: Setup Golang Caches
uses: actions/cache@v4
@@ -111,7 +111,7 @@ jobs:
- name: "Setup Go"
uses: actions/setup-go@v5
with:
go-version: 1.21.5
go-version: 1.22

- name: Setup Golang Caches
uses: actions/cache@v4
Loading