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: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>

The documentation is generated from this commit.

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>

Commit:2702038
Author:yihao.dai
Committer:GitHub

feat: [cp2.6] add DumpMessages API and salvage_checkpoint for data salvage (#579) Cherry-pick from master PR #560 and #568 - PR #560 (enhance: Support force failover): changes already present in 2.6 - PR #568 (feat: add DumpMessages API and salvage_checkpoint for data salvage): - Add salvage_checkpoint to GetReplicateInfoResponse - Add DumpMessagesRequest/DumpMessagesResponse messages - Add DumpMessages streaming RPC to MilvusService Signed-off-by: yihao.dai <yihao.dai@zilliz.com> Signed-off-by: Yihao Dai <yihao.dai@zilliz.com>

Commit:5364978
Author:wei liu
Committer:GitHub

feat: add PinSnapshotData and UnpinSnapshotData APIs (#576) issue: https://github.com/milvus-io/milvus/issues/44358 Add Pin/Unpin snapshot data RPCs to protect snapshot-referenced data from GC during restore operations. Pin returns a unique pin_id for later Unpin. Includes optional TTL support and Global-level RBAC privileges (PrivilegePinSnapshotData=87, PrivilegeUnpinSnapshotData=88). Signed-off-by: Wei Liu <wei.liu@zilliz.com>

Commit:fe1b25e
Author:wei liu
Committer:GitHub

feat: Add compaction_protection_seconds to CreateSnapshotRequest (#574) issue: https://github.com/milvus-io/milvus/issues/44358 Add compaction_protection_seconds field to CreateSnapshotRequest, allowing users to specify a duration during which snapshot-referenced segments are protected from compaction. Signed-off-by: Wei Liu <wei.liu@zilliz.com>

Commit:f6191ed
Author:wei liu
Committer:GitHub

enhance: Bind snapshot lifecycle to collection scope (#573) issue: milvus-io/milvus#44358 - Change snapshot privilege object_type from Global to Collection - Add db_name and collection_name fields to DropSnapshotRequest and DescribeSnapshotRequest for collection-level authorization - Add target_db_name and target_collection_name to RestoreSnapshotRequest for cross-collection restore support - Remove privilege check from GetRestoreSnapshotStateRequest since it only queries job status by job_id Signed-off-by: Wei Liu <wei.liu@zilliz.com>

Commit:8b5776d
Author:yihao.dai
Committer:GitHub

feat: add DumpMessages API and salvage_checkpoint for data salvage (#568) Add proto definitions for data salvage feature in force failover: 1. Add salvage_checkpoint to GetReplicateInfoResponse - Captured during force promote - Represents the last synced position from the old primary - Used by data salvage tools to determine starting position 2. Add DumpMessagesRequest/DumpMessagesResponse messages - Stream messages from a WAL range - Supports start/end message ID boundaries - Returns non-system messages only 3. Add DumpMessages RPC to MilvusService - Streaming RPC for dumping WAL messages - Typically used after force failover to recover unsync'd messages Signed-off-by: bigsheeper <yihao.dai@zilliz.com>

Commit:e7e54d9
Author:Spade A
Committer:GitHub

Support element-level for Query (#572) Signed-off-by: SpadeA <tangchenjie1210@gmail.com>

Commit:882e587
Author:yihao.dai
Committer:GitHub

feat: add GetReplicateConfiguration API (#566) (#567) Add proto definitions for GetReplicateConfiguration API: - Add PrivilegeGetReplicateConfiguration enum (value 85) to ObjectPrivilege - Add GetReplicateConfiguration RPC to MilvusService - Add GetReplicateConfigurationRequest message with privilege extension - Add GetReplicateConfigurationResponse message This API allows cluster administrators to view the current cross-cluster replication topology configuration with sensitive data redacted. Generated with [Claude Code](https://claude.ai/code) via [Happy](https://happy.engineering) Signed-off-by: bigsheeper <yihao.dai@zilliz.com> Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: Happy <yesreply@happy.engineering>

Commit:b2c2996
Author:wei liu
Committer:GitHub

feat: Add RefreshExternalTable APIs for external collection support (#557) issue: #45881 This commit adds proto definitions for refreshing external table data: - Add RefreshExternalTable RPC to trigger async refresh job - Add GetRefreshExternalTableProgress RPC to query job progress - Add ListRefreshExternalTableJobs RPC to list refresh jobs - Add RefreshExternalTableState enum for job state tracking - Add corresponding MsgType definitions (2300-2302) The refresh operation is async and returns a job_id for tracking. Jobs support progress monitoring (0-100%) and state transitions (Pending -> InProgress -> Completed/Failed). Signed-off-by: Wei Liu <wei.liu@zilliz.com>

Commit:046ced8
Author:yihao.dai
Committer:GitHub

feat: add GetReplicateConfiguration API (#566) Add proto definitions for GetReplicateConfiguration API: - Add PrivilegeGetReplicateConfiguration enum (value 85) to ObjectPrivilege - Add GetReplicateConfiguration RPC to MilvusService - Add GetReplicateConfigurationRequest message with privilege extension - Add GetReplicateConfigurationResponse message This API allows cluster administrators to view the current cross-cluster replication topology configuration with sensitive data redacted. Generated with [Claude Code](https://claude.ai/code) via [Happy](https://happy.engineering) Signed-off-by: bigsheeper <yihao.dai@zilliz.com> Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: Happy <yesreply@happy.engineering>

Commit:21c03f7
Author:sijie-ni-0214
Committer:GitHub

feat: [2.6] support TruncateCollection api to clear collection data (#565) Signed-off-by: sijie-ni-0214 <sijie.ni@zilliz.com>

Commit:6a0650d
Author:Xiaofan
Committer:GitHub

feat: Add client telemetry API for real-time client monitoring (#564) Add proto definitions for client telemetry feature that enables: - Client heartbeat for status reporting and command delivery - GetClientTelemetry for querying connected clients and metrics - PushClientCommand for sending commands to specific clients - DeleteClientCommand for removing pending commands New message types in common.proto: - Metrics, OperationMetrics for operation statistics - ClientCommand, CommandReply for command framework - ErrorDetail for error reporting Signed-off-by: xiaofanluan <xiaofan.luan@zilliz.com>

Commit:2b8e77d
Author:yihao.dai
Committer:GitHub

enhance: Support force failover (#560) Signed-off-by: bigsheeper <yihao.dai@zilliz.com>

Commit:0a8317d
Author:Chun Han
Committer:GitHub

feat: support search order by(#562) (#563) Signed-off-by: MrPresent-Han <chun.han@gmail.com> Co-authored-by: MrPresent-Han <chun.han@gmail.com>

Commit:3452b3e
Author:862103595
Committer:GitHub

feat: add MOL data type support (#554) * feat: add MOL data type support - Add DataType::Mol (27) in DataType enum - Add MolArray message for storing processed MOL data (pickle format) - Add MolSmilesArray message for storing user input SMILES strings - Add mol_data and mol_smiles_data fields in ScalarField message - Update generated Go code for schema.pb.go This change adds basic MOL (molecular) data type support to Milvus proto schema. MOL type can store molecular data in SMILES format and supports basic CRUD operations. Related to: MOL type storage implementation Signed-off-by: xiejh <862103595@qq.com> * docs: update MolArray comment to use language-agnostic description Signed-off-by: xiejh <862103595@qq.com> * feat: add MolFingerprint function type to FunctionType enum - Add MolFingerprint = 5 to FunctionType enum - This enables molecular fingerprint generation function support - Related to MOL data type implementation Signed-off-by: xiejh <862103595@qq.com> --------- Signed-off-by: xiejh <862103595@qq.com>

Commit:c7feeb8
Author:junjiejiangjjj
Committer:GitHub

feat: Highlight add score data (#555) Signed-off-by: junjie.jiang <junjie.jiang@zilliz.com>

Commit:fd9875a
Author:junjiejiangjjj
Committer:GitHub

feat: [2.6] Highlight add score data (#556) Signed-off-by: junjie.jiang <junjie.jiang@zilliz.com>

Commit:0e76c72
Author:yihao.dai
Committer:GitHub

enhance: Deprecate legacy CDC/replicate (#552) Signed-off-by: bigsheeper <yihao.dai@zilliz.com>

Commit:9e638a7
Author:congqixia
Committer:GitHub

enhance: Add BatchUpdate API (#546) * enhance: Add BatchUpdate API Related to milvus-io/milvus#46358 Signed-off-by: Congqi Xia <congqi.xia@zilliz.com> * Add field ids Signed-off-by: Congqi Xia <congqi.xia@zilliz.com> * update signature Signed-off-by: Congqi Xia <congqi.xia@zilliz.com> --------- Signed-off-by: Congqi Xia <congqi.xia@zilliz.com>

Commit:5b5ad72
Author:Bingyi Sun
Committer:GitHub

feat: add enable_namespace in CollectionSchema (#553) * feat: add enable_namespace in CollectionSchema Signed-off-by: sunby <sunbingyi1992@gmail.com> * change id Signed-off-by: sunby <sunbingyi1992@gmail.com> --------- Signed-off-by: sunby <sunbingyi1992@gmail.com>

Commit:fa67819
Author:Bingyi Sun
Committer:GitHub

feat: add enable_namespace in CollectionSchema (#550) Signed-off-by: sunby <sunbingyi1992@gmail.com>

Commit:ad23eb0
Author:junjiejiangjjj
Committer:GitHub

Fix the bug related to function editing interface permissions (#549) Signed-off-by: junjie.jiang <junjie.jiang@zilliz.com>

Commit:b2fbe26
Author:junjiejiangjjj
Committer:GitHub

Fix the bug related to function editing interface permissions (#548) Signed-off-by: junjie.jiang <junjie.jiang@zilliz.com>

Commit:25746c4
Author:liliu-z
Committer:GitHub

Support Search By PK (#547) Signed-off-by: Li Liu <li.liu@zilliz.com>

Commit:f415d42
Author:aoiasd
Committer:GitHub

Save realted file resource ids in collection schema (#545) Signed-off-by: aoiasd <zhicheng.yue@zilliz.com>

Commit:874a110
Author:yihao.dai
Committer:GitHub

enhance: Return flushall message in response (#542) Signed-off-by: bigsheeper <yihao.dai@zilliz.com>

Commit:deda9c0
Author:yihao.dai
Committer:GitHub

enhance: Return flushall message in response (#541) Signed-off-by: bigsheeper <yihao.dai@zilliz.com>

Commit:9eeb15b
Author:cqy123456
Committer:GitHub

enhance: add MinHash FunctionType (#496) Signed-off-by: cqy123456 <qianya.cheng@zilliz.com>

Commit:ad5ef48
Author:Chun Han
Committer:GitHub

feat: add properties for segment backfill(#523) (#524) Signed-off-by: MrPresent-Han <chun.han@gmail.com> Co-authored-by: MrPresent-Han <chun.han@gmail.com>

Commit:0f971c5
Author:sijie-ni-0214
Committer:GitHub

enhance: Add TruncateCollectionResponse message (#540) Signed-off-by: sijie-ni-0214 <sijie.ni@zilliz.com>

Commit:6087c9c
Author:wei liu
Committer:GitHub

Support Search By PK (#512) (#536) Signed-off-by: Wei Liu <wei.liu@zilliz.com> Co-authored-by: liliu-z <105927039+liliu-z@users.noreply.github.com> Co-authored-by: Li Liu <li.liu@zilliz.com>

Commit:ab384ff
Author:yihao.dai
Committer:GitHub

enhance: Return cluster info in flushall response (#538) Signed-off-by: bigsheeper <yihao.dai@zilliz.com>

Commit:f57ce94
Author:yihao.dai
Committer:GitHub

enhance: Rename control channel (#539) Signed-off-by: bigsheeper <yihao.dai@zilliz.com>

Commit:536281f
Author:yihao.dai
Committer:GitHub

enhance: Return cluster info in flushall response (#537) Signed-off-by: bigsheeper <yihao.dai@zilliz.com>

Commit:57a6dd9
Author:junjiejiangjjj
Committer:GitHub

Optimize function request (#518) Signed-off-by: junjie.jiang <junjie.jiang@zilliz.com>

Commit:04b65d2
Author:wei liu
Committer:GitHub

feat: Add snapshot API definitions for backup and restore (#483) issue: milvus-io/milvus#44358 Add snapshot-related protobuf definitions and RPC services: - Add snapshot privilege definitions in common.proto - Add snapshot RPC services in milvus.proto - Add snapshot.proto with request/response messages - Update proto generation script to include snapshot files This provides the foundation for implementing snapshot-based backup and restore functionality with proper privilege control. Signed-off-by: Wei Liu <wei.liu@zilliz.com>