Files
Li LiuandClaude Opus 5.5 b7b3775aaa enhance: retire legacy REST routes and make V1 APIs optional (#53753)
Remove the non-underscore `/api/v1/*` REST routes from the metrics port,
including `/api/v1/health`. Add `proxy.http.enableV1` (default `true`,
restart required) to control both `/api/v1/_*` on the metrics port and
`/v1/vector/*` on the Proxy HTTP port.

Setting it to `false` leaves the listeners, `/v2/vectordb/*`, probes,
metrics, and other management endpoints available. Retained console APIs
keep their existing authentication policy. WebUI and telemetry pages
depend on these APIs; their static pages remain controlled separately by
`proxy.http.enableWebUI`.

This is a breaking removal of the older non-underscore API even with
default configuration. Clients must migrate to V2 where equivalent
operations exist, or use the gRPC SDK; health probes should use
`/healthz` or `/livez` as appropriate. Remove the obsolete legacy REST
smoke script, its private fixtures, and its Nightly invocation. The
separate V1/V2 REST test runner remains.

issue: #49846

Design and migration: [HTTP V1 route
retirement](https://github.com/liliu-z/milvus/blob/enhance/http-v1-retirement-20260922/docs/design-docs/design_docs/20260922-http-v1-route-retirement.md)

Validation:

- Passed HTTP configuration tests (default YAML, missing-key default,
explicit disabling with the listener still enabled).
- Passed `go test -tags dynamic,test -gcflags="all=-N -l" -count=1
./internal/http/...`.
- Passed the repository formatter checks and `git diff --check`.
- Verified access-log initialization with a disposable
native-independent test: the actual middleware panics before
initialization and handles the request afterward. The direct HTTP test
helper initializes access logging as production startup does.
- Added production route-registration regressions for all 47 retired
method/path pairs, all 35 console pairs, and all 10 V1 vector pairs,
plus live HTTP V1/V2 and console authentication cases. Local Proxy tests
cannot compile because `milvus_core`, `milvus-storage`, and `rocksdb`
are missing from pkg-config; native-enabled CI must run these tests.
- The broader paramtable suite also encounters a local
`/var/lib/milvus/data` permission failure in
`TestComponentParam_StorageIopsParams`, which disables environment
overrides. Focused HTTP config tests pass with
`LOCAL_STORAGE_PATH=/tmp/milvus-http-v1-paramtable`.

No deployed-cluster or browser acceptance test was run locally.

---------

Signed-off-by: Li Liu <[email protected]>
Signed-off-by: Li Liu <[email protected]>
Co-authored-by: Claude Opus 5.5 (1M context) <[email protected]>
2026-09-23 14:23:33 +08:00
..