Proto commits in milvus-io/milvus-proto

These commits are when the Protocol Buffers files have changed: (only the last 100 relevant commits are shown)

Commit:3c2afcb
Author:zhenshan.cao
Committer:GitHub

enhance: make running-request ids opaque strings (#696) ListRunningRequests reports request ids that a client passes back to CancelRequests. As int64 values they come from the cluster-wide id allocator (around 4.7e17), above 2^53, so a REST client that decodes JSON numbers as doubles rounds them. Ids handed out to one proxy are contiguous, so the rounded id can name another live request of the same user, and cancelling it stops the wrong request. Make request_id, request_ids, not_found and undetermined strings. The server builds the id as "<proxy id>-<proxy start>-<sequence>" (for example "25-to044v-rfnl"), which stays exact in any JSON decoder; clients treat it as opaque. These fields are not in any release yet. Signed-off-by: zhenshan.cao <zhenshan.cao@zilliz.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

The documentation is generated from this commit.

Commit:fdb7f85
Author:wei liu
Committer:GitHub

enhance: [3.0] expose snapshot summaries with UTC timestamps (#691) * enhance: [3.0] expose snapshot summaries with UTC timestamps issue: https://github.com/milvus-io/milvus/issues/52635 pr: #683 pr: #688 Backport the summary protocol so 3.0 can return list metadata without requiring per-snapshot describe calls. Add SnapshotSummary with name, create_ts, description and create_utc_ts; retain names at field 2 and add summaries at field 3. DescribeSnapshot is unchanged. The source commits are e88ab0dc3a82 and 31746ccb4f27. Resolve the append-position conflict by retaining the 3.0 schema and adding only the summary message. Regenerate Go bindings from that schema instead of copying the master's generated descriptors. Validation: - go -C go-api test -tags dynamic,test -gcflags='all=-N -l' -count=1 github.com/milvus-io/milvus-proto/go-api/v3/... - make -o build generate-proto; repeated generation is idempotent. - Descriptor comparison: only summary message and response field added. - Old/new wire compatibility and UTC int64 roundtrips passed. - git diff --cached --check Signed-off-by: Wei Liu <wei.liu@zilliz.com> * chore: retrigger snapshot proto CI on 3.0 issue: https://github.com/milvus-io/milvus/issues/52635 Create an empty commit to request a fresh CI run after Python setup failed before proto generation. Keep all protocol and generated files unchanged. Validation: - git diff --quiet - git diff --cached --quiet - No build or tests rerun: this commit has no file changes. Signed-off-by: Wei Liu <wei.liu@zilliz.com> --------- Signed-off-by: Wei Liu <wei.liu@zilliz.com>

Commit:84b8251
Author:Buqian Zheng
Committer:GitHub

enhance: remove struct_path from AlterCollectionSchemaRequest.FieldInfo (#689) Remove FieldInfo.struct_path added by #679/#687, because Milvus will parse the parent struct from the `s[b]` name. issue: https://github.com/milvus-io/milvus/issues/51162 Signed-off-by: Buqian Zheng <zhengbuqian@gmail.com>

Commit:bf41562
Author:Buqian Zheng
Committer:Buqian Zheng

enhance: [3.0] remove struct_path from AlterCollectionSchemaRequest.FieldInfo Remove FieldInfo.struct_path added by #679/#687, because Milvus will parse the parent struct from the `s[b]` name. issue: https://github.com/milvus-io/milvus/issues/51162 pr: https://github.com/milvus-io/milvus-proto/pull/689 Signed-off-by: Buqian Zheng <zhengbuqian@gmail.com>

Commit:31746cc
Author:wei liu
Committer:GitHub

enhance: expose Unix milliseconds in snapshot summaries (#688) * enhance: expose Unix milliseconds in snapshot summaries issue: https://github.com/milvus-io/milvus/issues/52635 Snapshot summary create_ts is a Milvus hybrid timestamp, so clients cannot directly use it as a wall-clock value. Add create_utc_ts at field 4 for Unix milliseconds derived from the original physical timestamp. Keep create_ts and its logical ordering intact; zero means unknown or omitted by an older server. DescribeSnapshot remains unchanged. Regenerate Go bindings, document the timestamp semantics and exercise field numbering, wire roundtrips and older-client/server compatibility. Validation: - go -C go-api test -tags dynamic,test -gcflags='all=-N -l' -count=1 github.com/milvus-io/milvus-proto/go-api/v3/... - Go generation verified idempotent with the pinned tools. - git diff --check Signed-off-by: Wei Liu <wei.liu@zilliz.com> * doc: describe summary timestamps as Unix milliseconds issue: https://github.com/milvus-io/milvus/issues/52635 Keep the new field documentation focused on its units and source. Remove the ancillary README and contract-test changes from this protocol extension. Existing snapshot fields and services are unchanged. Validation: - go -C go-api test -tags dynamic,test -gcflags='all=-N -l' -count=1 github.com/milvus-io/milvus-proto/go-api/v3/... - make -o build generate-proto (idempotent) - git diff --check Signed-off-by: Wei Liu <wei.liu@zilliz.com> --------- Signed-off-by: Wei Liu <wei.liu@zilliz.com>

Commit:2f00c7c
Author:Buqian Zheng
Committer:GitHub

feat: [3.0] support recursive Array schema, element-null and struct_path (#687) * feat: [3.0] support recursively array schema (#640) Cherry-pick from master pr: #640 (cherry picked from commit 22b6017dd46a0ad4a0c774dd7302d99da315b029) Signed-off-by: SpadeA <tangchenjie1210@gmail.com> Signed-off-by: Buqian Zheng <zhengbuqian@gmail.com> * feat: [3.0] support element-null (#649) Cherry-pick from master pr: #649 (cherry picked from commit e994281e8de4556950e6f835f163c23c69c50917) Signed-off-by: SpadeA <tangchenjie1210@gmail.com> Signed-off-by: Buqian Zheng <zhengbuqian@gmail.com> * feat: [3.0] add struct_path to AlterCollectionSchemaRequest.FieldInfo (#679) Cherry-pick from master pr: #679 (cherry picked from commit d42e2b79e75c173d0c5f39f2339f79dc3a6617aa) Signed-off-by: Buqian Zheng <zhengbuqian@gmail.com> * docs: [3.0] clarify validity mask compatibility and read precedence (#686) Cherry-pick from master pr: #686 (cherry picked from commit 758fd874d86ec60f1a11df7faea941417c040d6f) Signed-off-by: Buqian Zheng <zhengbuqian@gmail.com> --------- Signed-off-by: SpadeA <tangchenjie1210@gmail.com> Signed-off-by: Buqian Zheng <zhengbuqian@gmail.com> Co-authored-by: Spade A <71589810+SpadeA-Tang@users.noreply.github.com>

Commit:758fd87
Author:Buqian Zheng
Committer:GitHub

docs: clarify validity mask compatibility and read precedence (#686) Signed-off-by: Buqian Zheng <zhengbuqian@gmail.com>

Commit:6f03375
Author:junjiejiangjjj
Committer:GitHub

feat: Support grep scan chain (#680) Signed-off-by: junjie.jiang <junjie.jiang@zilliz.com>

Commit:2239d2a
Author:wei liu
Committer:GitHub

feat: Add business-version conditions to upsert (#684) * feat: Add business-version conditions to upsert issue: milvus-io/milvus#54532 Expose row selection through an optional WriteCondition instead of a field transformation. Define GT/GTE comparisons and missing-row policies without changing existing field numbers or RPC signatures. Clarify that conditional succ_index refers to original written-row indexes. Regenerate the Go bindings with the repository tool versions. Validation: - protoc 3.21.4 / protoc-gen-go 1.33.0 regeneration matches exactly - Go module tests (from go-api): go test -tags dynamic,test -gcflags="all=-N -l" ./... -count=1 - git diff --check Signed-off-by: Wei Liu <wei.liu@zilliz.com> * fix: Prefix conditional upsert missing-row policies issue: milvus-io/milvus#54532 Avoid publishing a bare ERROR name in generated language APIs where Windows macros can collide with it. Preserve policy numbers 0/1/2 while using MISSING_INSERT, MISSING_SKIP and MISSING_ERROR names. Document the shared stored-NULL rule, REPLACE constraints, version-field requirements and default insertion policy. Retain the general meaning of success indexes while specifying conditional row-index alignment. Validation: - Go API module tests (from go-api): go test -tags dynamic,test -gcflags="all=-N -l" ./... -count=1 - Pinned protoc/protoc-gen-go regeneration matches exactly - Descriptor audit: only the policy enum names changed - C++ generation: no bare ERROR token in the generated header - git diff --check Signed-off-by: Wei Liu <wei.liu@zilliz.com> * doc: Describe successful mutation indexes issue: milvus-io/milvus#54532 Describe the shared success-index meaning without expanding the comment into conditional-upsert documentation. Validation: - Regenerated Go bindings with protoc 3.21.4 / protoc-gen-go 1.33.0 - Confirmed both files differ only in comments - git diff --check - Tests not rerun for this comment-only change Signed-off-by: Wei Liu <wei.liu@zilliz.com> * fix: Name missing-row policies by their actions issue: milvus-io/milvus#54532 Read each policy as an action taken when the row is missing, rather than a missing operation. Preserve numeric values and the insertion default while using INSERT_IF_MISSING, SKIP_IF_MISSING and ERROR_IF_MISSING. Validation: - Go API module tests (from go-api): go test -tags dynamic,test -gcflags="all=-N -l" ./... -count=1 - Pinned Go binding regeneration matches exactly - Descriptor audit: policy names are the only semantic changes - C++ generation: no bare ERROR token; Windows compilation not run - git diff --check Signed-off-by: Wei Liu <wei.liu@zilliz.com> --------- Signed-off-by: Wei Liu <wei.liu@zilliz.com>

Commit:19044f2
Author:aoiasd
Committer:GitHub

enhance: [2.6] add count-only RLS principal listing (#682) Cherry-pick milvus-io/milvus-proto#677. Preserve the count=4 and principal_cnt=5 wire contract. Resolve generated Go binding conflicts by regenerating against this release branch with its existing module path and generator versions. (cherry picked from commit d453f064867797be9855e892592b6482c344a792) Signed-off-by: aoiasd <zhicheng.yue@zilliz.com>

Commit:fc2e26a
Author:aoiasd
Committer:GitHub

enhance: [3.0] add count-only RLS principal listing (#681) Cherry-pick milvus-io/milvus-proto#677. Preserve the count=4 and principal_cnt=5 wire contract. Resolve generated Go binding conflicts by regenerating against this release branch with its existing module path and generator versions. (cherry picked from commit d453f064867797be9855e892592b6482c344a792) Signed-off-by: aoiasd <zhicheng.yue@zilliz.com>

Commit:e88ab0d
Author:wei liu
Committer:GitHub

enhance: expose lightweight snapshot summaries in ListSnapshots (#683) issue: https://github.com/milvus-io/milvus/issues/52635 ListSnapshots exposes only names, so clients must describe each snapshot before they can display timestamps or sort the full list. Add SnapshotSummary with name, create_ts and description, and expose it as snapshot_summaries at field 3. Preserve the legacy names at field 2. The timestamp keeps DescribeSnapshot semantics; summaries and names are aligned and ordered by create_ts descending, then name ascending. Validation: - go -C go-api test -tags dynamic,test -gcflags='all=-N -l' -count=1 github.com/milvus-io/milvus-proto/go-api/v3/... - Regenerated Go bindings and checked descriptor compatibility. Signed-off-by: Wei Liu <wei.liu@zilliz.com>

Commit:d42e2b7
Author:Buqian Zheng
Committer:GitHub

feat: add struct_path to AlterCollectionSchemaRequest.FieldInfo (#679) Signed-off-by: Buqian Zheng <zhengbuqian@gmail.com>

Commit:0dbac77
Author:Jeng.Gwan
Committer:GitHub

feat: [3.0] add import execution version to ImportMsg (#663) (#678) Milvus selects an import's execution path (legacy V2 vs the new V3 reshard path) on the coordinator that accepts the request, behind a one-way rollout gate. Import messages can outlive that binary: pending broadcaster tasks are replayed after WAL recovery, and in CDC topologies messages are forwarded to peer clusters that may run a different binary. Without a recorded version, such consumers would re-derive the path from local state and could execute the import differently than it was accepted. Add `version` (int64, field 10) to `msgpb.ImportMsg` and regenerate the Go bindings: - 0/unspecified: legacy V2 path, so messages written by older binaries keep their behavior (backward compatible); - 2: execute with ImportTaskV2; - 3: execute with ReshardTask and ImportTaskV3. This change only defines the wire contract; version selection and enforcement are implemented on the Milvus side. Validation: - make generate-proto (protoc v3.21.4, protoc-gen-go v1.33.0) - cd go-api && go build ./... && go test ./... - git diff --check Signed-off-by: xaxys <tpnnghd@163.com>

Commit:d453f06
Author:aoiasd
Committer:GitHub

enhance: add count-only RLS principal listing (#677) * enhance: add count-only RLS principal listing Signed-off-by: aoiasd <zhicheng.yue@zilliz.com> * enhance: keep RLS list proto change schema-only Signed-off-by: aoiasd <zhicheng.yue@zilliz.com> --------- Signed-off-by: aoiasd <zhicheng.yue@zilliz.com>

Commit:7cf2916
Author:xiaofanluan

feat: add explicit function chain post-processing table results Signed-off-by: xiaofanluan <xiaofan.luan@zilliz.com>

Commit:3442363
Author:xiaofanluan

feat: add FunctionChain transformation contracts Persist collection ingestion chains and return confirmed output-to-input lineage with unknown-outcome metadata. Existing field numbers remain stable; schema field 16 is left available. Signed-off-by: xiaofanluan <xiaofan.luan@zilliz.com>

Commit:7891054
Author:zhenshan.cao
Committer:GitHub

feat: add ListRunningRequests and CancelRequests (#670) * feat: add ListRunningRequests and CancelRequests Two cluster-scoped RPCs for observing the requests a cluster is currently serving and stopping one of them. ListRunningRequests returns one RunningRequestInfo per registered request, with optional database, collection, user and minimum-elapsed filters. CancelRequests takes the request ids to stop and returns, for each one, the description it had at the moment of cancellation, so the caller sees what it stopped and how long it had been running. Both carry a per-node result list so that an unreachable or not-yet-upgraded proxy does not hide the results of the others, and both are guarded by a new global privilege. The pair is defined over the requests a proxy registers, not over one request type: RunningRequestInfo.type says what each row is and cancellable says whether it can be stopped. Related: milvus-io/milvus#53509 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Signed-off-by: zhenshan.cao <zhenshan.cao@zilliz.com> * feat: spell the cancelled field the way Go tooling requires Milvus runs golangci-lint with misspell set to the US locale, and it reads the generated struct field, not only comments: every place that writes `Cancelled:` in a literal or reads `resp.Cancelled` is an error there, which no amount of care on the Go side can avoid while the field is spelled this way. Rename it before the field is public and the spelling is permanent. Only the field name changes; the wire format does not depend on it. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Signed-off-by: zhenshan.cao <zhenshan.cao@zilliz.com> * feat: report undetermined cancel ids and tighten running-request contracts A proxy that does not answer a CancelRequests fan-out may hold some of the requested ids, and a request id does not say which proxy holds it. Those ids were reported in not_found, telling the caller the request had finished while it could still be running. Add an undetermined list for them and keep not_found for ids every proxy has answered for. Also document that the top-level status of both responses is Success as long as one proxy answered, that a canceled entry's state is the one it had before it was canceled, add MsgType values for the two RPCs, and pin the privilege each request is bound to in a contract test. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Signed-off-by: zhenshan.cao <zhenshan.cao@zilliz.com> * feat: let any user list and cancel their own running requests Every common database lets a user see and stop the queries they issued without a privilege, and reserves the privilege for other users' queries. Do the same: a caller without PrivilegeListRunningRequests or PrivilegeCancelRequests is held to their own requests. ListRunningRequestsRequest already filters by user. Add the same user field to CancelRequestsRequest, so that the proxy holding a request can check whom it belongs to when canceling it; the ids of other users' requests are reported as not found, so their existence is not revealed. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Signed-off-by: zhenshan.cao <zhenshan.cao@zilliz.com> * feat: document cancellation as asynchronous and the Canceling state Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: zhenshan.cao <zhenshan.cao@zilliz.com> --------- Signed-off-by: zhenshan.cao <zhenshan.cao@zilliz.com> Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>

Commit:23a2a39
Author:aoiasd
Committer:GitHub

feat: [2.6] backport row-level security proto APIs (#674) Signed-off-by: aoiasd <zhicheng.yue@zilliz.com>

Commit:e79d844
Author:aoiasd
Committer:GitHub

feat: [3.0] backport row-level security proto APIs (#675) Preserve the existing RLS wire contract while adding the final policy, principal tag, and request semantics from master. Signed-off-by: aoiasd <zhicheng.yue@zilliz.com> Co-authored-by: Codex <noreply@openai.com>

Commit:0298647
Author:wei liu
Committer:GitHub

feat: [3.0] add positional replacement to partial update operations (#672) issue: milvus-io/milvus#53016 pr: #666 The 3.0 protocol cannot express positional replacement independently of whole-field REPLACE. Backport PATH_REPLACE=3 and the path field at tag 3 so the Milvus 3.0 implementation can carry the same operation contract. Existing operation values and field numbers remain unchanged. The proto source applied cleanly. Resolve the generated descriptor conflict by regenerating Go code from the 3.0 schema, without importing master-only schema types or validity changes. Server validation and materialization are a separate Milvus backport. Validation: - make generate-proto; repeat generation is byte-identical. - go -C go-api test -tags dynamic,test -gcflags='all=-N -l' -count=1 ./... - Descriptor comparison proves only the intended enum and field added. - Existing op wire bytes and new/old/new round trips are preserved. - git diff --check (cherry picked from commit f77cebc7ba49c27bc433900f69b75fe8f7c48843) Signed-off-by: Wei Liu <wei.liu@zilliz.com>

Commit:022ca5e
Author:yihao.dai
Committer:GitHub

feat: [2.6] add PrivilegeImportBinlog object privilege (#671) Cherry-pick from master PR #643 Signed-off-by: bigsheeper <yihao.dai@zilliz.com> Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>

Commit:5cf73f8
Author:yihao.dai
Committer:GitHub

feat: [3.0] add PrivilegeImportBinlog object privilege (#665) Binlog import (import option backup=true) and L0 import read Milvus's own internal storage layout rather than a caller staging area, which is outside the target collection's namespace. Add a cluster-level privilege so that capability can be authorized separately from the collection-level Import privilege. Keeps the master enum value 94 rather than the next free number on this branch (91), so the same privilege has one wire value across versions. 91-93 stay reserved for the RLS privileges that master already uses. pr: #643 Signed-off-by: bigsheeper <yihao.dai@zilliz.com> Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>

Commit:9537830
Author:junjiejiangjjj
Committer:GitHub

feat: [3.0] hybrid search sub request add chain (#660) Signed-off-by: junjie.jiang <junjie.jiang@zilliz.com>

Commit:9e4f0eb
Author:Chun Han
Committer:GitHub

feat: [3.0] expose compaction lifecycle observability metadata (#669) Backport milvus-io/milvus-proto#668 at 4989b8ddc663e974877f616dda4bdc60b69905da; regenerate Go bindings against the 3.0 schemas. Signed-off-by: MrPresent-Han <chun.han@gmail.com> Co-authored-by: MrPresent-Han <chun.han@gmail.com>

Commit:ae7fea6
Author:Chun Han
Committer:GitHub

feat: expose compaction lifecycle observability metadata (#668) * feat: expose compaction lifecycle observability metadata Signed-off-by: MrPresent-Han <chun.han@gmail.com> * feat: expose typed compaction task metadata Signed-off-by: MrPresent-Han <chun.han@gmail.com> --------- Signed-off-by: MrPresent-Han <chun.han@gmail.com> Co-authored-by: MrPresent-Han <chun.han@gmail.com>

Commit:90300c6
Author:Jeng.Gwan
Committer:GitHub

feat: add import execution version to ImportMsg (#663) Milvus selects an import's execution path (legacy V2 vs the new V3 reshard path) on the coordinator that accepts the request, behind a one-way rollout gate. Import messages can outlive that binary: pending broadcaster tasks are replayed after WAL recovery, and in CDC topologies messages are forwarded to peer clusters that may run a different binary. Without a recorded version, such consumers would re-derive the path from local state and could execute the import differently than it was accepted. Add `version` (int64, field 10) to `msgpb.ImportMsg` and regenerate the Go bindings: - 0/unspecified: legacy V2 path, so messages written by older binaries keep their behavior (backward compatible); - 2: execute with ImportTaskV2; - 3: execute with ReshardTask and ImportTaskV3. This change only defines the wire contract; version selection and enforcement are implemented on the Milvus side. Validation: - make generate-proto (protoc v3.21.4, protoc-gen-go v1.33.0) - cd go-api && go build ./... && go test ./... - git diff --check Signed-off-by: xaxys <tpnnghd@163.com>

Commit:77d67f3
Author:yihao.dai
Committer:GitHub

enhance: revert the bulk import idempotency key fields (#657) Reverts the two fields added in #633. The implementation that needed them (milvus-io/milvus#52544) carries the client key in gRPC metadata and a broadcast message property instead, so no request proto is involved and both fields are unused. Neither field appears in a tagged release, and milvus pins the commit that precedes #633, so field numbers 9 and 10 are released back rather than reserved. Signed-off-by: bigsheeper <yihao.dai@zilliz.com> Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>

Commit:f77cebc
Author:wei liu
Committer:GitHub

feat: add positional replacement to partial update operations (#666) issue: milvus-io/milvus#53016 Partial upsert needs an explicit wire signal for replacing one existing Array element or one child of an ArrayOfStruct element. Reusing REPLACE with an unknown path field would let old servers ignore the path and apply a whole-field replacement. Add PATH_REPLACE as enum value 3 and add the relative path as field 3. Existing enum values and field numbers remain unchanged. This commit only defines the public wire contract; validation and materialization remain in the Milvus Proxy implementation. Validation: - make generate-proto - cd go-api && go test ./... - git diff --check Signed-off-by: Wei Liu <wei.liu@zilliz.com>

Commit:a301a6a
Author:cai.zhang
Committer:GitHub

feat: add the shard types online shard split routes by (#618) A collection's shards are fixed at creation today. Online shard split changes that count without taking the collection offline, and this is the contract the pieces of it agree on: what a shard is, which keys it owns, and how a row's routing key is computed. schema.proto gains ShardState, the four states a shard passes through while a split runs; CollectionShardInfo, one shard's state, vchannel and routing predicate; and HashRouting, the residues of the collection's modulus that shard owns. CollectionShardInfo supersedes the single-field etcdpb.CollectionShardInfo the truncate API left in the collection meta, keeping its field number so records already persisted still decode -- their missing fields read as a normal, never-split shard, which is what they are. DescribeCollectionResponse gains shard_infos, index-parallel to virtual_channel_names; shard_by, the expression producing a row's routing value; and routing_modulus, the one modulus the whole collection's residues are taken against. Its shards_num keeps its number and changes meaning: it is the count of shards serving now, which a split moves, rather than the CreateCollection argument. common.proto gains MsgType SplitShard, numbered with the collection DDL it belongs to rather than the WAL group it travels through. Placement is by modulus throughout. Range routing and a RoutingMode enum were considered and dropped: with the comparison key reduced to the routing value itself, ranges bought nothing hash buckets do not, and one scheme needs no enum to select it. The oneof keeps a single member so a second scheme has somewhere to arrive. issue: #619 Signed-off-by: Cai Zhang <cai.zhang@zilliz.com>

Commit:5c10244
Author:yihao.dai
Committer:GitHub

enhance: [3.0] add common.IDRange and a pre-allocated autoID range to ImportFile (#661) Cherry-pick from master PR #641 (merge commit 3f6306a). Generated files re-generated on the 3.0 branch with protoc v3.21.4 / protoc-gen-go v1.33.0, matching the versions the branch's common.pb.go and msg.pb.go were generated with. Signed-off-by: bigsheeper <yihao.dai@zilliz.com> Co-authored-by: Claude Fable 5 <noreply@anthropic.com>

Commit:fa96f8c
Author:junjiejiangjjj
Committer:GitHub

feat: hybrid search sub request add chain (#659) Signed-off-by: junjie.jiang <junjie.jiang@zilliz.com>

Commit:63e3bc9
Author:wei liu
Committer:GitHub

enhance: add skip index controls to snapshot APIs (#658) Snapshot APIs cannot currently request data-only snapshots or restores, and DescribeSnapshot cannot report whether reusable indexes were omitted. Add skip_index to snapshot creation, regular restore, and external restore requests. Expose the recorded mode in DescribeSnapshotResponse and regenerate the Go bindings. Existing callers keep the current behavior because unset proto3 bool fields default to false. This change only defines the public wire contract. The Milvus-side snapshot and restore behavior is implemented separately. Validation: - git diff --check Signed-off-by: Wei Liu <wei.liu@zilliz.com>

Commit:c39cdda
Author:aoiasd
Committer:GitHub

feat: represent RLS principal tags as JSON (#655) Signed-off-by: aoiasd <zhicheng.yue@zilliz.com> Co-authored-by: Codex <noreply@openai.com>

Commit:0d1eefd
Author:wei liu
Committer:GitHub

feat: [3.0] add async snapshot export job APIs (#656) issue: #44358 pr: #644 Backport the asynchronous snapshot export contract to the 3.0 branch so Milvus 3.0 can return durable export job IDs and query job state, progress, completion URI, and total exported bytes. The source commits conflicted only in generated protobuf output and the MsgType enum context. Preserve the 3.0 contracts, add the new message type, and regenerate Go bindings from the resolved 3.0 proto sources. Validation: - make generate-proto - repeat generation produced the same staged tree - cd go-api && go test ./... - git diff --cached --check Signed-off-by: Wei Liu <wei.liu@zilliz.com>

Commit:9810b92
Author:Sagar Arora
Committer:GitHub

feat: add bulk import idempotency key (#633) Signed-off-by: Sagar Arora <16133744+sagar-arora@users.noreply.github.com>

Commit:cef495b
Author:sthuang
Committer:GitHub

fix: add privilege_ext to GetPartitionStatisticsRequest for RBAC (#654) Backport of #652 to 3.0. GetPartitionStatisticsRequest was missing the privilege_ext_obj annotation that its sibling GetCollectionStatisticsRequest carries. milvus's PrivilegeInterceptor treats a request with no privilege_ext annotation as "no permission required" and lets it through (fail-open), so an authenticated but unauthorized account could read any collection's partition statistics, bypassing the intended PrivilegeGetStatistics check. This mirrors the sibling annotation (object_type Collection, PrivilegeGetStatistics, object_name_index 3). Note: this is a permission tightening. Accounts that previously called GetPartitionStatistics without PrivilegeGetStatistics will be denied once milvus core bumps this proto. Signed-off-by: shaoting-huang <shaoting.huang@zilliz.com> Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>

Commit:a76db65
Author:sthuang
Committer:GitHub

fix: add privilege_ext to GetPartitionStatisticsRequest for RBAC (#653) Backport of #652 to 2.6. GetPartitionStatisticsRequest was missing the privilege_ext_obj annotation that its sibling GetCollectionStatisticsRequest carries. milvus's PrivilegeInterceptor treats a request with no privilege_ext annotation as "no permission required" and lets it through (fail-open), so an authenticated but unauthorized account could read any collection's partition statistics, bypassing the intended PrivilegeGetStatistics check. This mirrors the sibling annotation (object_type Collection, PrivilegeGetStatistics, object_name_index 3). Note: this is a permission tightening. Accounts that previously called GetPartitionStatistics without PrivilegeGetStatistics will be denied once milvus core bumps this proto. Signed-off-by: shaoting-huang <shaoting.huang@zilliz.com> Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>

Commit:16b2888
Author:sthuang
Committer:GitHub

fix: add privilege_ext to GetPartitionStatisticsRequest for RBAC (#652) GetPartitionStatisticsRequest was missing the privilege_ext_obj annotation that its sibling GetCollectionStatisticsRequest already carries. Because milvus's PrivilegeInterceptor treats a request with no privilege_ext annotation as "no permission required" and lets it through (fail-open), an authenticated but unauthorized account could read any collection's partition statistics, bypassing the intended PrivilegeGetStatistics check. PR #213 ("partition related apis require corresponding permissions") annotated the other partition APIs but missed this one. This brings GetPartitionStatistics under the same RBAC as GetCollectionStatistics by mirroring its annotation (object_type Collection, privilege PrivilegeGetStatistics, object_name_index 3 -> collection_name). Note: this is a permission tightening. Accounts that previously called GetPartitionStatistics without PrivilegeGetStatistics will now be denied once milvus core bumps this proto. Signed-off-by: shaoting-huang <shaoting.huang@zilliz.com> Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>

Commit:80c3763
Author:aoiasd
Committer:GitHub

fix: preserve existing RLS proto contracts (#651) Signed-off-by: aoiasd <zhicheng.yue@zilliz.com>

Commit:e994281
Author:Spade A
Committer:GitHub

support element-null (#649) Signed-off-by: SpadeA <tangchenjie1210@gmail.com>

Commit:c45eae9
Author:L1ric
Committer:GitHub

doc: define canonical Decimal wire encoding as 8-byte little-endian unscaled int64 (#650) Signed-off-by: Ayush KAshyap <kashyap11ayush02@gmail.com>

Commit:659295c
Author:yihao.dai
Committer:GitHub

feat: add PrivilegeImportBinlog object privilege (#643) Binlog import (import option backup=true) and L0 import read Milvus's own internal storage layout rather than a caller staging area, which is outside the target collection's namespace. Add a cluster-level privilege so that capability can be authorized separately from the collection-level Import privilege. Signed-off-by: bigsheeper <yihao.dai@zilliz.com> Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>

Commit:3f6306a
Author:yihao.dai
Committer:GitHub

enhance: add common.IDRange and a pre-allocated autoID range to ImportFile (#641) Add a generic common.IDRange {begin, end} message and an optional pre_allocated_auto_ids field on ImportFile. When set, an import materializes autoID primary keys from the given per-file range instead of allocating them locally, so the resulting primary keys are deterministic and known ahead of the import; unset keeps the existing allocate-during-import behavior. issue: #642 Signed-off-by: bigsheeper <yihao.dai@zilliz.com> Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>

Commit:48e24f4
Author:James
Committer:GitHub

fix: revert ttl_seconds to a plain int64, keeping command_id (#648) #647 declared PushClientCommandRequest.ttl_seconds `optional` so a server could apply a default to callers that omitted it while leaving an explicit 0 -- documented as "no expiry" -- alone. That reasoning does not survive contact with proto3 implicit presence, and the change costs source compatibility for every Go consumer. ## Presence does not reach the senders it needed to reach A client built against the previous definition emits nothing at all for an explicit 0, because a plain proto3 scalar at its zero value is not serialized. A server reading the field as absent therefore cannot distinguish that deliberate "never expire" from an unspecified field, whatever the field is declared as. Marking it optional gives presence only to senders rebuilt against the new definition -- which is exactly the population that did not need it. So a default keyed on absence silently converts every existing caller's deliberate "no expiry" into whatever the server picked. Presence bought nothing and hid that. ## It is a source-breaking change The generated field went from `int64` to `*int64`, so ordinary code stops compiling: &milvuspb.PushClientCommandRequest{TtlSeconds: 3600} // no longer builds The PR describing #647 called it additive. That was wrong: the wire format is unchanged, but every Go consumer with a struct literal or a comparison has to be edited. milvus itself needed changes in eight places. ## What this does Restores field 5 to `int64` and keeps `command_id`, which is genuinely additive and is the half of #647 that pulls its weight -- it lets a caller polling for one reply avoid re-transferring a client's whole reply history. Defaulting belongs to layers that can observe absence. In milvus that is the REST handler, which decodes ttl_seconds from JSON into a pointer and resolves it before the RPC; the RPC and the store keep the documented meaning, where 0 is no expiry. Regenerated with protoc v3.21.4 to match the checked-in files. Claude-Session: https://claude.ai/code/session_01GbRxbvRv5qaXVXpNGZLQpW Signed-off-by: xiaofanluan <xiaofan.luan@zilliz.com> Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>

Commit:878676f
Author:James
Committer:GitHub

enhance: give ttl_seconds presence and let telemetry replies be fetched by id (#647) Two fields the client-telemetry surface needs, found while auditing it in milvus-io/milvus#51967. ## optional ttl_seconds The field is documented as "0 = no expiry, >0 = auto-expire in seconds", but a plain proto3 int64 cannot tell an omitted field from an explicit 0. That leaves the server no way to apply a default to callers who did not specify one without also redefining what an existing caller's 0 means -- and no way for that caller to ask for the old behavior back. Declaring it optional gives real presence, so a default belongs to "absent" alone and 0 keeps meaning no expiry for everyone. The generated getter still returns 0 for an unset field, so callers that only read the value are unaffected; the wire format is unchanged for anyone who sets it. ## command_id on GetClientTelemetryRequest Command replies are read back through GetClientTelemetry, which returns every reply a matching client has accumulated. A client retains its most recent 50 and a reply payload can reach 1MiB, so a caller polling for one specific answer transfers the entire history on every attempt -- roughly 50MB per poll in the worst case, repeatedly, for a single command's result. The new field narrows the response to the requested command. Empty keeps the existing behavior, so this is additive for current callers. Regenerated with protoc v3.21.4 to match the checked-in files; the bulk of the diff is the descriptor blob, which is rewritten in full whenever a field is added. Claude-Session: https://claude.ai/code/session_01GbRxbvRv5qaXVXpNGZLQpW Signed-off-by: xiaofanluan <xiaofan.luan@zilliz.com> Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>

Commit:6a38286
Author:aoiasd
Committer:GitHub

fix: use dedicated privileges for RLS management (#645) Signed-off-by: aoiasd <zhicheng.yue@zilliz.com>

Commit:9f7d27f
Author:wei liu
Committer:GitHub

feat: add async snapshot export job APIs (#644) * feat: add async snapshot export job APIs issue: #44358 ExportSnapshot currently returns only after provider-side copies finish, which prevents durable progress tracking and restart recovery. Add the job-based export response and GetExportSnapshotState contract while retaining field 2 as deprecated for wire compatibility. The state request uses the existing global export privilege. Validation: - cd go-api && go test ./... Signed-off-by: Wei Liu <wei.liu@zilliz.com> * feat: report completed snapshot export size issue: #44358 Export clients need the final bundle size without introducing another byte-progress field. Add total_bytes to ExportSnapshotInfo. The value represents the object bytes referenced by a completed export bundle and remains zero before completion. Validation: - git diff --check Signed-off-by: Wei Liu <wei.liu@zilliz.com> --------- Signed-off-by: Wei Liu <wei.liu@zilliz.com>

Commit:22b6017
Author:Spade A
Committer:GitHub

support recursively array schema (#640) Signed-off-by: SpadeA <tangchenjie1210@gmail.com>

Commit:f95888a
Author:aoiasd
Committer:GitHub

feat: add row-level security proto APIs (#628) Signed-off-by: aoiasd <zhicheng.yue@zilliz.com>

Commit:41abf2b
Author:Shreyas S Joshi
Committer:GitHub

feat: add UUIDArray to IDs proto for type-safe UUID primary keys (#639) * feat: add UUIDArray to IDs proto for type-safe UUID primary keys Add UUIDArray message (repeated bytes, each element 16 bytes) and uuid_id = 3 to the IDs oneof so UUID primary keys have a dedicated field instead of sharing StrId with VarChar keys. This makes ParseIDs2PrimaryKeys type-safe without needing a DataType parameter. issue: milvus-io/milvus#50957 Signed-off-by: Shreyas S Joshi <156504459+BlackPool25@users.noreply.github.com> Signed-off-by: Shreyas Joshi <156504459+BlackPool25@users.noreply.github.com> * feat: add UUIDArray to IDs proto for type-safe UUID primary keys Add UUIDArray message (repeated bytes, each element 16 bytes) and uuid_id = 3 to the IDs oneof so UUID primary keys have a dedicated field instead of sharing StrId with VarChar keys. Generated Go file will be regenerated by CI. issue: milvus-io/milvus#50957 Signed-off-by: Shreyas S Joshi <156504459+BlackPool25@users.noreply.github.com> Signed-off-by: Shreyas Joshi <156504459+BlackPool25@users.noreply.github.com> * feat: add UUIDArray to IDs proto for type-safe UUID primary keys Add UUIDArray message (repeated bytes, each element 16 bytes) and uuid_id = 3 to the IDs oneof so UUID primary keys have a dedicated field instead of sharing StrId with VarChar keys. This makes ParseIDs2PrimaryKeys type-safe without needing a DataType parameter. Regenerated go-api/schemapb/schema.pb.go with protoc v5.28.3 and protoc-gen-go v1.33.0. issue: milvus-io/milvus#50957 Signed-off-by: Shreyas S Joshi <156504459+BlackPool25@users.noreply.github.com> Signed-off-by: Shreyas Joshi <156504459+BlackPool25@users.noreply.github.com> --------- Signed-off-by: Shreyas S Joshi <156504459+BlackPool25@users.noreply.github.com> Signed-off-by: Shreyas Joshi <156504459+BlackPool25@users.noreply.github.com>

Commit:dd14a65
Author:Shreyas S Joshi
Committer:GitHub

feat: add UUID field type to DataType enum (#636) Add UUID = 28 to the DataType enum for native UUID primary key support in Milvus. UUIDs are stored as 16-byte binary values. - proto/schema.proto: UUID = 28 added between Mol (27) and BinaryVector (100) - go-api/schemapb/schema.pb.go: DataType_UUID const, name map, and value map The proto validates successfully with: python -m grpc_tools.protoc -I ./proto --python_out=. ./proto/schema.proto issue: milvus-io/milvus#50957 Signed-off-by: Shreyas Joshi <156504459+BlackPool25@users.noreply.github.com>

Commit:2ed0720
Author:L1ric
Committer:yhmo

feat: add Decimal DataType for fixed-point numeric fields (#630) Signed-off-by: Ayush KAshyap <kashyap11ayush02@gmail.com> (cherry picked from commit 0fb0d5bcf2e2ff4dff30683e5aa0f8991a20d011)

Commit:ace1491
Author:James
Committer:yhmo

feat: add bytes_val to TemplateValue for raw binary expression params (#632) proto3 forbids raw binary in a string field (UTF-8 enforced), so a client pre-built membership-filter blob (bloom/roaring/bitset) currently has to be base64-encoded onto string_val (~33% inflation). Add a bytes bytes_val = 6 variant to the TemplateValue oneof so such blobs travel as raw bytes. Signed-off-by: xiaofanluan <xf@hjjaq.com> Co-authored-by: xiaofanluan <xf@hjjaq.com> Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com> (cherry picked from commit 7efdf25099dd41c8215f47b7a6525aa0e22eea32)

Commit:b7d0324
Author:Bingyi Sun
Committer:yhmo

add namespace APIs (#626) Signed-off-by: sunby <sunbingyi1992@gmail.com> (cherry picked from commit 1aa0f3b3f5b6a073ac8186ca0db15b2a7dc618a3)

Commit:0f92704
Author:Bingyi Sun
Committer:yhmo

add prewarm task api (#624) Signed-off-by: sunby <sunbingyi1992@gmail.com> (cherry picked from commit fa142bbae2e03e20277d807af6218590d8da9e40)

Commit:9624477
Author:Eelyousha
Committer:yhmo

add Date and Time Datatype (#621) * add Date and Time Datatype Signed-off-by: Ilya <qubelord777@gmail.com> * updated go-api Signed-off-by: Ilya <qubelord777@gmail.com> --------- Signed-off-by: Ilya <qubelord777@gmail.com> (cherry picked from commit f36c2a6b3279bceb2cafd376b03e4e00490cdcfe)

Commit:f79839b
Author:Bingyi Sun
Committer:yhmo

add prewarm api (#622) Signed-off-by: sunby <sunbingyi1992@gmail.com> (cherry picked from commit 0912ffa3f8efe9cd45ed836b58734d82370c7f57)

Commit:ede10ab
Author:junjiejiangjjj
Committer:yhmo

Add chain api proto (#620) Signed-off-by: junjie.jiang <junjie.jiang@zilliz.com> (cherry picked from commit 7262f8042a558016722cced7800ee2acd37f47fa)

Commit:05c506c
Author:alohaha22
Committer:yhmo

Add inclusive start option to DumpMessages (#616) Signed-off-by: alohaha22 <shawn.work1229@outlook.com> (cherry picked from commit e378dbfa23a2abc16378e8c7e525754c48d82e4b)

Commit:f2aabb1
Author:Chun Han
Committer:yhmo

feat: add predicate payload to DeleteRequest (#613) (#614) issue: #613 Signed-off-by: MrPresent-Han <chun.han@gmail.com> Co-authored-by: MrPresent-Han <chun.han@gmail.com> (cherry picked from commit d04ae0302d3201bae6552804f561ce19e7fa3e41)

Commit:14101b4
Author:sthuang
Committer:yhmo

feat: add AlterRole proto (#611) Summary: - Add role descriptions and the AlterRole RPC contract. - Add MsgType_AlterRole and regenerate Go bindings. Rationale: - Role descriptions need a single proto field for create, read, and edit paths. - AlterRole uses role_name as the locator and description as the only mutable role field. Tests: - make generate-proto > /tmp/gen.log 2>&1; echo exit=0 - cd go-api && go build ./... > /tmp/build.log 2>&1; echo exit=0 - cd go-api && gofmt -l . - rg generated GetDescription getters and MsgType_AlterRole Signed-off-by: shaoting-huang <shaoting.huang@zilliz.com> (cherry picked from commit 43795e8f8f6eac62d673592f9ad28ea6ea3acdad)

Commit:2092322
Author:sthuang
Committer:yhmo

feat(rbac): add credential user descriptions (#610) Summary: - Add description fields to credential create/update requests and user results. - Regenerate the Go API binding for the milvus proto schema. Rationale: - Request description fields are proto3 optional so callers can distinguish omitted values from an explicit empty string. - UserResult exposes the stored description without changing UserEntity, which remains an input identifier type. Tests: - make generate-proto > /tmp/gen.log 2>&1; echo exit=$? (exit=0) - cd go-api && go build ./... > /tmp/build.log 2>&1; echo exit=$? (exit=0) - gofmt -l go-api - rg generated GetDescription accessors Signed-off-by: shaoting-huang <shaoting.huang@zilliz.com> (cherry picked from commit 2dd6aa4596bc198b66f7c56d9763d1758032623b)

Commit:5989868
Author:sijie-ni-0214
Committer:yhmo

Update AlterCollectionSchema drop proto fields (#608) * Remove index_status from AlterCollectionSchemaResponse Signed-off-by: sijie-ni-0214 <sijie.ni@zilliz.com> * Add drop function output fields flag Signed-off-by: sijie-ni-0214 <sijie.ni@zilliz.com> --------- Signed-off-by: sijie-ni-0214 <sijie.ni@zilliz.com> (cherry picked from commit 8daa6dc555e6a42c3c5b83cf6386e94bd783481c)

Commit:67af22c
Author:wei liu
Committer:yhmo

feat: add snapshot export and external restore APIs (#612) * feat: add external snapshot restore proto Add the RestoreExternalSnapshot service API and request/response messages. Define a dedicated RestoreExternalSnapshot privilege for global restore authorization. Signed-off-by: Wei Liu <wei.liu@zilliz.com> * feat: add snapshot foreign storage API fields Snapshot cross-bucket export and external restore need public request fields for the foreign storage spec and credential reference. The reference lets Milvus keep raw secret material out of persisted restore state while still allowing runtime credential resolution. Validation: make generate-proto Signed-off-by: Wei Liu <wei.liu@zilliz.com> * feat: use external spec for snapshot storage APIs issue: #44358 Snapshot export and external restore should expose one storage spec contract instead of splitting the storage description and credential reference into separate request fields. The split API made it unclear which value owned credentials and diverged from the external table external_spec shape. This change replaces the snapshot foreign storage fields with external_spec and regenerates the Go API output. The request now carries one JSON spec whose extfs section owns provider, endpoint, region, IAM, and credential settings. Validation: - git diff --check - rg old snapshot storage field names in proto and go-api Signed-off-by: Wei Liu <wei.liu@zilliz.com> --------- Signed-off-by: Wei Liu <wei.liu@zilliz.com> (cherry picked from commit e90ee63ad3fceea966ff1a051db5b4e4deec76b6)

Commit:e770a07
Author:Bingyi Sun
Committer:yhmo

Add namespace field in DeleteRequest (#606) Signed-off-by: sunby <sunbingyi1992@gmail.com> (cherry picked from commit 489331a5a41f5bf733f09a147b99fc9420b4f881)

Commit:e190fd7
Author:Chun Han
Committer:yhmo

feat: add search aggregation search size (#600) Add a per-level search_size field so search aggregation can request a larger candidate bucket budget without changing returned bucket size. Signed-off-by: MrPresent-Han <chun.han@gmail.com> Co-authored-by: MrPresent-Han <chun.han@gmail.com> Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> (cherry picked from commit 551b5154e14318a76761fdeaf2ce1c2ccf781892)

Commit:f17dceb
Author:Spade A
Committer:yhmo

add AddCollectionStructField API (#602) Signed-off-by: SpadeA <tangchenjie1210@gmail.com> (cherry picked from commit 9b60a053353ff0ab6ec9b8bdb8d2ac5ef4292795)

Commit:0fb0d5b
Author:L1ric
Committer:GitHub

feat: add Decimal DataType for fixed-point numeric fields (#630) Signed-off-by: Ayush KAshyap <kashyap11ayush02@gmail.com>

Commit:7efdf25
Author:James
Committer:GitHub

feat: add bytes_val to TemplateValue for raw binary expression params (#632) proto3 forbids raw binary in a string field (UTF-8 enforced), so a client pre-built membership-filter blob (bloom/roaring/bitset) currently has to be base64-encoded onto string_val (~33% inflation). Add a bytes bytes_val = 6 variant to the TemplateValue oneof so such blobs travel as raw bytes. Signed-off-by: xiaofanluan <xf@hjjaq.com> Co-authored-by: xiaofanluan <xf@hjjaq.com> Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

Commit:29edb7f
Author:alohaha22
Committer:GitHub

feat: [2.6] add inclusive start option to DumpMessages (#629) Signed-off-by: alohaha22 <shawn.work1229@outlook.com>

Commit:1aa0f3b
Author:Bingyi Sun
Committer:GitHub

add namespace APIs (#626) Signed-off-by: sunby <sunbingyi1992@gmail.com>

Commit:fa142bb
Author:Bingyi Sun
Committer:GitHub

add prewarm task api (#624) Signed-off-by: sunby <sunbingyi1992@gmail.com>

Commit:f36c2a6
Author:Eelyousha
Committer:GitHub

add Date and Time Datatype (#621) * add Date and Time Datatype Signed-off-by: Ilya <qubelord777@gmail.com> * updated go-api Signed-off-by: Ilya <qubelord777@gmail.com> --------- Signed-off-by: Ilya <qubelord777@gmail.com>

Commit:0912ffa
Author:Bingyi Sun
Committer:GitHub

add prewarm api (#622) Signed-off-by: sunby <sunbingyi1992@gmail.com>

Commit:7262f80
Author:junjiejiangjjj
Committer:GitHub

Add chain api proto (#620) Signed-off-by: junjie.jiang <junjie.jiang@zilliz.com>

Commit:e378dbf
Author:alohaha22
Committer:GitHub

Add inclusive start option to DumpMessages (#616) Signed-off-by: alohaha22 <shawn.work1229@outlook.com>

Commit:d04ae03
Author:Chun Han
Committer:GitHub

feat: add predicate payload to DeleteRequest (#613) (#614) issue: #613 Signed-off-by: MrPresent-Han <chun.han@gmail.com> Co-authored-by: MrPresent-Han <chun.han@gmail.com>

Commit:fd141a0
Author:sthuang
Committer:GitHub

feat: [2.6] add credential user and role description protos (#610)(#611) (#615) * feat(rbac): add credential user descriptions (#610) Summary: - Add description fields to credential create/update requests and user results. - Regenerate the Go API binding for the milvus proto schema. Rationale: - Request description fields are proto3 optional so callers can distinguish omitted values from an explicit empty string. - UserResult exposes the stored description without changing UserEntity, which remains an input identifier type. Tests: - make generate-proto > /tmp/gen.log 2>&1; echo exit=$? (exit=0) - cd go-api && go build ./... > /tmp/build.log 2>&1; echo exit=$? (exit=0) - gofmt -l go-api - rg generated GetDescription accessors Signed-off-by: shaoting-huang <shaoting.huang@zilliz.com> (cherry picked from commit 2dd6aa4596bc198b66f7c56d9763d1758032623b) * feat: add AlterRole proto (#611) Summary: - Add role descriptions and the AlterRole RPC contract. - Add MsgType_AlterRole and regenerate Go bindings. Rationale: - Role descriptions need a single proto field for create, read, and edit paths. - AlterRole uses role_name as the locator and description as the only mutable role field. Tests: - make generate-proto > /tmp/gen.log 2>&1; echo exit=0 - cd go-api && go build ./... > /tmp/build.log 2>&1; echo exit=0 - cd go-api && gofmt -l . - rg generated GetDescription getters and MsgType_AlterRole Signed-off-by: shaoting-huang <shaoting.huang@zilliz.com> (cherry picked from commit 43795e8f8f6eac62d673592f9ad28ea6ea3acdad) --------- Signed-off-by: shaoting-huang <shaoting.huang@zilliz.com>

Commit:43795e8
Author:sthuang
Committer:GitHub

feat: add AlterRole proto (#611) Summary: - Add role descriptions and the AlterRole RPC contract. - Add MsgType_AlterRole and regenerate Go bindings. Rationale: - Role descriptions need a single proto field for create, read, and edit paths. - AlterRole uses role_name as the locator and description as the only mutable role field. Tests: - make generate-proto > /tmp/gen.log 2>&1; echo exit=0 - cd go-api && go build ./... > /tmp/build.log 2>&1; echo exit=0 - cd go-api && gofmt -l . - rg generated GetDescription getters and MsgType_AlterRole Signed-off-by: shaoting-huang <shaoting.huang@zilliz.com>

Commit:2dd6aa4
Author:sthuang
Committer:GitHub

feat(rbac): add credential user descriptions (#610) Summary: - Add description fields to credential create/update requests and user results. - Regenerate the Go API binding for the milvus proto schema. Rationale: - Request description fields are proto3 optional so callers can distinguish omitted values from an explicit empty string. - UserResult exposes the stored description without changing UserEntity, which remains an input identifier type. Tests: - make generate-proto > /tmp/gen.log 2>&1; echo exit=$? (exit=0) - cd go-api && go build ./... > /tmp/build.log 2>&1; echo exit=$? (exit=0) - gofmt -l go-api - rg generated GetDescription accessors Signed-off-by: shaoting-huang <shaoting.huang@zilliz.com>

Commit:8daa6dc
Author:sijie-ni-0214
Committer:GitHub

Update AlterCollectionSchema drop proto fields (#608) * Remove index_status from AlterCollectionSchemaResponse Signed-off-by: sijie-ni-0214 <sijie.ni@zilliz.com> * Add drop function output fields flag Signed-off-by: sijie-ni-0214 <sijie.ni@zilliz.com> --------- Signed-off-by: sijie-ni-0214 <sijie.ni@zilliz.com>

Commit:e90ee63
Author:wei liu
Committer:GitHub

feat: add snapshot export and external restore APIs (#612) * feat: add external snapshot restore proto Add the RestoreExternalSnapshot service API and request/response messages. Define a dedicated RestoreExternalSnapshot privilege for global restore authorization. Signed-off-by: Wei Liu <wei.liu@zilliz.com> * feat: add snapshot foreign storage API fields Snapshot cross-bucket export and external restore need public request fields for the foreign storage spec and credential reference. The reference lets Milvus keep raw secret material out of persisted restore state while still allowing runtime credential resolution. Validation: make generate-proto Signed-off-by: Wei Liu <wei.liu@zilliz.com> * feat: use external spec for snapshot storage APIs issue: #44358 Snapshot export and external restore should expose one storage spec contract instead of splitting the storage description and credential reference into separate request fields. The split API made it unclear which value owned credentials and diverged from the external table external_spec shape. This change replaces the snapshot foreign storage fields with external_spec and regenerates the Go API output. The request now carries one JSON spec whose extfs section owns provider, endpoint, region, IAM, and credential settings. Validation: - git diff --check - rg old snapshot storage field names in proto and go-api Signed-off-by: Wei Liu <wei.liu@zilliz.com> --------- Signed-off-by: Wei Liu <wei.liu@zilliz.com>

Commit:489331a
Author:Bingyi Sun
Committer:GitHub

Add namespace field in DeleteRequest (#606) Signed-off-by: sunby <sunbingyi1992@gmail.com>

Commit:551b515
Author:Chun Han
Committer:GitHub

feat: add search aggregation search size (#600) Add a per-level search_size field so search aggregation can request a larger candidate bucket budget without changing returned bucket size. Signed-off-by: MrPresent-Han <chun.han@gmail.com> Co-authored-by: MrPresent-Han <chun.han@gmail.com> Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

Commit:2a015ee
Author:Spade A
Committer:GitHub

support element-level search (#603) Signed-off-by: SpadeA <tangchenjie1210@gmail.com>

Commit:9b60a05
Author:Spade A
Committer:GitHub

add AddCollectionStructField API (#602) Signed-off-by: SpadeA <tangchenjie1210@gmail.com>

Commit:2b6d690
Author:Chun Han
Committer:GitHub

feat: add search aggregation proto contracts (#48971) (#599) (cherry picked from commit 1730b76e58dc6e1fed2cd6dbc78de0ae43924d07) Signed-off-by: MrPresent-Han <chun.han@gmail.com> Co-authored-by: MrPresent-Han <chun.han@gmail.com> Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>

Commit:445ffe0
Author:wei liu
Committer:GitHub

enhance: add external spec to refresh job info (#596) Signed-off-by: Wei Liu <wei.liu@zilliz.com>

Commit:f5b7758
Author:wei liu
Committer:GitHub

enhance: add external spec to refresh job info (#595) Signed-off-by: Wei Liu <wei.liu@zilliz.com>

Commit:c9f705f
Author:congqixia
Committer:GitHub

enhance: Bump package go-api/v2 to go-api/v3 (#592) Signed-off-by: Congqi Xia <congqi.xia@zilliz.com>

Commit:966f062
Author:congqixia
Committer:GitHub

enhance: Bump package go-api/v2 to go-api/v3 (#591) Signed-off-by: Congqi Xia <congqi.xia@zilliz.com>

Commit:35123cf
Author:Chun Han
Committer:GitHub

feat: add search aggregation proto contracts (#48971) (#589) Signed-off-by: MrPresent-Han <chun.han@gmail.com> Co-authored-by: MrPresent-Han <chun.han@gmail.com> Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>

Commit:8ddc7ef
Author:wei liu
Committer:GitHub

feat: [2.6] add FieldPartialUpdateOp for Array field partial update ops (#590) pr: #586 issue: https://github.com/milvus-io/milvus/issues/49241 Cherry-pick of #586 to the 2.6 release branch so that the 2.6 milvus backport PR can adopt ARRAY_APPEND / ARRAY_REMOVE semantics via UpsertRequest.field_ops. Proto surface is identical to master: - schema.proto: new FieldPartialUpdateOp message with OpType enum (REPLACE / ARRAY_APPEND / ARRAY_REMOVE). Enum ranges reserve namespaces for future JSON_* / NUM_* / SET_* / STRING_* ops. - milvus.proto: new repeated field UpsertRequest.field_ops = 11. No existing field numbers are reused; FieldData is unchanged so the addition is forward/backward compatible with older 2.6 clients and servers via proto3 unknown-field tolerance. Signed-off-by: Wei Liu <wei.liu@zilliz.com>

Commit:04b6d9f
Author:wei liu
Committer:GitHub

feat: add FieldPartialUpdateOp for Array field partial update ops (#586) issue: #49241 Introduce FieldPartialUpdateOp and attach it to UpsertRequest.field_ops so upsert requests can carry field-level partial-update directives. FieldData remains a pure data carrier to avoid leaking op semantics into InsertRequest / QueryResults / SearchResultData / msgstream paths and to prevent accidental echo-back on client-side read-modify-write flows. Phase 1 defines three ops: - REPLACE (default, full overwrite, preserves existing behavior) - ARRAY_APPEND (append payload to the tail of an Array row) - ARRAY_REMOVE (remove every element matching the payload) UpsertRequest.field_ops uses field number 11. Enum values reserve 1-9 for ARRAY_* ops, 10-19 for JSON_*, 20-29 for numeric counter ops, etc., so future ops can be added without breaking changes. Ops reference FieldData entries by field_name. Duplicate field_names and ops targeting fields not carried by fields_data are rejected by the server. proto3 unknown-field semantics keep the change backward compatible: older servers simply ignore field_ops and fall back to REPLACE. Signed-off-by: Wei Liu <wei.liu@zilliz.com>

Commit:07e91f1
Author:sijie-ni-0214
Committer:GitHub

feat: add function_name to AlterCollectionSchema DropRequest (#583) Extend DropRequest oneof identifier with function_name field, enabling drop function with cascade deletion of output fields. Signed-off-by: sijie-ni-0214 <sijie.ni@zilliz.com>

Commit:28760e7
Author:Spade A
Committer:GitHub

support null for struct (#578) Signed-off-by: SpadeA <tangchenjie1210@gmail.com>

Commit:67d7d79
Author:wei liu
Committer:GitHub

feat: add snapshot API definitions for collections (#585) Squash of snapshot-related proto changes backported to v2.6.15: - feat: Add snapshot API definitions for backup and restore (#483) - enhance: Bind snapshot lifecycle to collection scope (#573) - feat: Add compaction_protection_seconds to CreateSnapshotRequest (#574) - feat: add PinSnapshotData and UnpinSnapshotData APIs (#576) proto/milvus.proto: add Create/Drop/List/Describe/Restore snapshot RPCs plus Pin/UnpinSnapshotData. proto/common.proto: add snapshot MsgType and ObjectPrivilege entries. go-api/*: regenerated via protoc. Signed-off-by: Wei Liu <wei.liu@zilliz.com>

Commit:e6ff15c
Author:wei liu
Committer:GitHub

feat: [cp2.6.12] add snapshot API definitions (backfill) (#584) Squash of the following snapshot-related commits, backfilled onto hotfix-2.6.12-backfill (which does not contain DumpMessages / #579): - feat: Add snapshot API definitions for backup and restore (#483) - enhance: Bind snapshot lifecycle to collection scope (#573) - feat: Add compaction_protection_seconds to CreateSnapshotRequest (#574) - feat: add PinSnapshotData and UnpinSnapshotData APIs (#576) proto/milvus.proto: add Create/Drop/List/Describe/Restore snapshot RPCs plus Pin/UnpinSnapshotData. proto/common.proto: add snapshot MsgType and ObjectPrivilege entries. go-api/*: regenerated via protoc. Signed-off-by: Wei Liu <wei.liu@zilliz.com>

Commit:08c2505
Author:Chun Han
Committer:GitHub

feat: change order_by values to group by values (#582) Signed-off-by: MrPresent-Han <chun.han@gmail.com> Co-authored-by: MrPresent-Han <chun.han@gmail.com>