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>