Skip to content

Conversation

@kmrmt
Copy link
Contributor

@kmrmt kmrmt commented Oct 14, 2025

Description

  • add WithMetadata API to search, insert, remove update and upsert operation

Related Issue

Versions

  • Vald Version: v1.7.17
  • Go Version: v1.24.5
  • Rust Version: v1.88.0
  • Docker Version: v28.3.2
  • Kubernetes Version: v1.33.3
  • Helm Version: v3.18.4
  • NGT Version: v2.4.3
  • Faiss Version: v1.11.0

Checklist

Special notes for your reviewer

Summary by CodeRabbit

  • New Features

    • Added metadata-aware APIs for search, insert, update, upsert, remove, and object retrieval with single, multi, and streaming variants.
    • Payloads and object responses can now include optional binary metadata for insert/update/upsert/timestamp/vector/distance operations.
  • Documentation

    • Added comprehensive HTTP mappings, status codes, error guidance, and troubleshooting notes for all metadata-enabled endpoints.

@kmrmt kmrmt requested review from Matts966, datelier and kpango October 14, 2025 07:26
@vdaas-ci
Copy link
Collaborator

[CHATOPS:HELP] ChatOps commands.

  • 🙆‍♀️ /approve - approve
  • 🍱 /format - format codes and add licenses
  • /gen-test - generate test codes
  • 🏷️ /label - add labels
  • 🔚 2️⃣ 🔚 /label actions/e2e-deploy - run E2E deploy & integration test

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Oct 14, 2025

📝 Walkthrough

Walkthrough

Adds optional bytes metadata fields to several payload messages in apis/proto/v1/payload/payload.proto and introduces apis/proto/v1/vald/meta.proto, a new public proto defining metadata-aware gRPC services (unary, multi, and streaming RPCs) wired to payload.v1 types with HTTP mappings. (32 words)

Changes

Cohort / File(s) Summary
Payload metadata fields
apis/proto/v1/payload/payload.proto
Added optional bytes metadata to: Insert.Request, Insert.ObjectRequest, Update.Request, Update.ObjectRequest, Update.TimestampRequest, Upsert.Request, Upsert.ObjectRequest, Object.Distance, and Object.Vector.
New metadata services
apis/proto/v1/vald/meta.proto
Added a new public proto meta.v1 with services: SearchWithMetadata, InsertWithMetadata, ObjectWithMetadata, RemoveWithMetadata, UpdateWithMetadata, UpdateTimestampWithMetadata, UpsertWithMetadata (including multi and streaming variants). RPCs use payload.v1 message types and include google.api.http annotations and documentation.

Sequence Diagram(s)

sequenceDiagram
  autonumber
  actor Client
  participant Gateway as API Gateway / gRPC
  participant MetaSvc as SearchWithMetadata
  participant Core as Vector Index
  participant Store as Metadata Store

  Client->>Gateway: SearchWithMetadata(Request { vector/id, metadata })
  Gateway->>MetaSvc: SearchWithMetadata RPC
  MetaSvc->>Core: Search(vector/id)
  Core-->>MetaSvc: Neighbors (ids, scores)
  MetaSvc->>Store: Fetch metadata for ids
  Store-->>MetaSvc: Metadata map
  MetaSvc-->>Gateway: Response { neighbors + metadata }
  Gateway-->>Client: Response
Loading
sequenceDiagram
  autonumber
  actor Client
  participant Gateway as API Gateway / gRPC
  participant MetaIns as InsertWithMetadata
  participant Core as Vector Index
  participant Store as Metadata Store

  Client->>Gateway: InsertWithMetadata(Request { id, vector, metadata })
  Gateway->>MetaIns: InsertWithMetadata RPC
  MetaIns->>Core: Insert(id, vector)
  Core-->>MetaIns: Location
  MetaIns->>Store: Upsert metadata (id, metadata)
  Store-->>MetaIns: OK
  MetaIns-->>Gateway: Object.Location
  Gateway-->>Client: Location
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Potential areas needing extra attention:

  • apis/proto/v1/payload/payload.proto — ensure field numbers and backward compatibility with existing clients.
  • apis/proto/v1/vald/meta.proto — validate HTTP annotations, streaming RPC correctness, and documentation accuracy.
  • Any generated-code implications (proto-gen changes) and API compatibility notes.

Suggested labels

size/XL

Suggested reviewers

  • vankichi
  • Matts966

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title Check ✅ Passed The title "Add metadata API" is directly related to the changeset and clearly summarizes the primary change. The pull request introduces a comprehensive new metadata API surface by adding an optional bytes metadata field to multiple payload message types and creating a new proto file (meta.proto) that defines seven service families (SearchWithMetadata, InsertWithMetadata, ObjectWithMetadata, RemoveWithMetadata, UpdateWithMetadata, UpdateTimestampWithMetadata, UpsertWithMetadata) with numerous RPCs for metadata-aware vector operations. The title is concise, specific enough to convey the main intent, and avoids vague language. A developer scanning PR history would understand that this PR introduces new metadata API functionality.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feature/metadata/gateway-implementation

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 90b33c6 and 2663eda.

📒 Files selected for processing (1)
  • apis/proto/v1/payload/payload.proto (9 hunks)
🔇 Additional comments (1)
apis/proto/v1/payload/payload.proto (1)

163-164: Metadata field additions are syntactically correct.

The optional bytes metadata fields are properly declared for proto3 (scalar types support the optional label). All additions follow a consistent pattern across Insert, Update, Upsert, and Object messages, with field numbers appropriately sequenced.

Also applies to: 181-182, 210-211, 228-229, 246-247, 272-273, 290-291, 392-393, 424-425


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between b79998d and 0fc5ed5.

📒 Files selected for processing (2)
  • apis/proto/v1/payload/payload.proto (13 hunks)
  • apis/proto/v1/vald/meta.proto (1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (10)
  • GitHub Check: build
  • GitHub Check: build
  • GitHub Check: build
  • GitHub Check: build
  • GitHub Check: build
  • GitHub Check: build
  • GitHub Check: build
  • GitHub Check: build
  • GitHub Check: build
  • GitHub Check: build

// The configuration of the remove request.
Config config = 2;
// The key is related to the request vector.
optional Meta.Key key = 3;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does this Remove mean:

  1. removing the object with the given id if the key is set, or
  2. removing the specified key from the object with the given id?

Would it be more useful to use KeyValue instead, or perhaps define a separate RemoveByKey?

// The configuration of the search request.
Config config = 2;
// The key is related to the vector.
optional Meta.Key key = 3;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

kv is useful when filtering instead of just the key? (same for other search requests)

@cloudflare-workers-and-pages
Copy link

cloudflare-workers-and-pages bot commented Oct 20, 2025

Deploying vald with  Cloudflare Pages  Cloudflare Pages

Latest commit: 2663eda
Status: ✅  Deploy successful!
Preview URL: https://fcb5dbbb.vald.pages.dev
Branch Preview URL: https://feature-metadata-gateway-imp.vald.pages.dev

View logs

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

♻️ Duplicate comments (1)
apis/proto/v1/payload/payload.proto (1)

119-120: Remove proto3-incompatible optional on message-typed field (duplicate from prior review).

This issue was flagged in a previous review. optional cannot be applied to message-typed fields in proto3; only scalar types support the optional qualifier. Meta.Value is a message type, so the field declaration must drop optional.

Apply this diff:

-    // The value is related to the request key.
-    optional Meta.Value value = 3;
+    // The value is related to the request key.
+    Meta.Value value = 3;
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 0fc5ed5 and 2640c18.

📒 Files selected for processing (1)
  • apis/proto/v1/payload/payload.proto (10 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (200)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: check-format-diff
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: check-format-diff
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: check-format-diff
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: check-format-diff
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: check-format-diff
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: check-format-diff
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: check-format-diff
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: check-format-diff
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: check-format-diff
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: check-format-diff
🔇 Additional comments (1)
apis/proto/v1/payload/payload.proto (1)

165-166: Verify consistency in metadata representation across messages.

Metadata is added using different patterns:

  • Search.Response uses optional Meta.Value value (from existing Meta message with google.protobuf.Any)
  • Insert/Update/Upsert/Object operations use optional bytes metadata (raw bytes)

Additionally, a new Metadata message (lines 813–822) defines Key and Value with bytes, which differs from the existing Meta message's use of google.protobuf.Any.

Clarify the design intent: Should all metadata fields use raw bytes consistently, or should Search.Response align with the others? Also document when to use the existing Meta message versus the new Metadata message.

Also applies to: 183-184, 212-213, 230-231, 248-249, 274-275, 292-293, 424-425

optional bytes metadata = 3;
}

// Represent mthe ultiple upsert request.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Fix typo in comment.

Line 278 has a typo: "mthe ultiple" should be "the multiple".

Apply this diff:

-  // Represent mthe ultiple upsert request.
+  // Represent the multiple upsert request.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
// Represent mthe ultiple upsert request.
// Represent the multiple upsert request.
🤖 Prompt for AI Agents
In apis/proto/v1/payload/payload.proto around line 278, fix the typo in the
comment by replacing "mthe ultiple" with "the multiple" so the comment reads
"Represent the multiple upsert request." Ensure only the comment text is changed
and maintain existing punctuation and formatting.

}

// Metadata related message
message Metadata {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is message Meta different from this message?

// Search results.
repeated Object.Distance results = 2;
// The value is related to the request key.
optional Meta.Value value = 3;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What type of search is supported?
For example, are key = value (vectors with the key-value pair) or key (vectors with the key) supported?

// Represent a search response.
message Response {
// The unique request ID.
string request_id = 1;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there any support of metadata delete API?

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

♻️ Duplicate comments (1)
apis/proto/v1/payload/payload.proto (1)

276-276: Fix lingering typo in comment.

The typo from past reviews remains: "mthe ultiple" should be "the multiple".

Apply this diff:

-  // Represent mthe ultiple upsert request.
+  // Represent the multiple upsert request.
🧹 Nitpick comments (1)
apis/proto/v1/payload/payload.proto (1)

813-822: Clarify the distinction between Meta and Metadata message types.

A Metadata message is now defined with bytes key and bytes value fields, but there is already a Meta message (line 798–811) with different structure (string key and google.protobuf.Any value). The purpose and use-case distinction between these two is not documented.

Add inline comments explaining when each should be used, or consolidate if only one is needed.

Are both Meta and Metadata message types intended to coexist? If so, clarifying comments on each would help prevent confusion in downstream code.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 2640c18 and 803937c.

📒 Files selected for processing (1)
  • apis/proto/v1/payload/payload.proto (10 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (170)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build
  • GitHub Check: check-format-diff
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build
  • GitHub Check: check-format-diff
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build
  • GitHub Check: check-format-diff
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build
  • GitHub Check: check-format-diff
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build
  • GitHub Check: check-format-diff
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build
  • GitHub Check: check-format-diff
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build
  • GitHub Check: check-format-diff
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build
🔇 Additional comments (1)
apis/proto/v1/payload/payload.proto (1)

163-164: Metadata field additions look structurally sound.

All optional bytes metadata fields are correctly applied to scalar types (valid in proto3). The fields are added consistently across Insert, Update, Upsert, TimestampRequest, and response messages (Distance, Vector), maintaining a uniform pattern.

Also applies to: 181-182, 210-211, 228-229, 246-247, 272-273, 290-291, 392-393, 424-425

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (2)
apis/proto/v1/vald/meta.proto (2)

386-386: Fix documentation formatting typo.

Line 386 contains a double-slash comment marker: // // ---. This should be a single // --- to match the documentation style used consistently throughout the file.

-  // // ---
+  // ---

547-547: Update RPC documentation comments to match actual RPC names.

Lines 547 and 582 contain documentation comments that reference generic RPC names without the WithMetadata suffix, creating an inconsistency with the actual RPC definitions:

  • Line 547: Comment says "StreamGetObject" but the RPC (line 571) is StreamGetObjectWithMetadata
  • Line 581–582: Comment says "A method to get all the vectors" but the RPC is StreamListObjectWithMetadata

Update the comments to reference the correct RPC names with the WithMetadata suffix for consistency and clarity.

   // Overview
-  // StreamGetObject RPC is the method to get the metadata of multiple existing vectors using the [bidirectional streaming RPC]...
+  // StreamGetObjectWithMetadata RPC is the method to get the metadata of multiple existing vectors using the [bidirectional streaming RPC]...

Also applies to: 581-582

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between a559bd6 and e22d44c.

📒 Files selected for processing (1)
  • apis/proto/v1/vald/meta.proto (1 hunks)
🔇 Additional comments (1)
apis/proto/v1/vald/meta.proto (1)

1-944: Metadata fields confirmed in all referenced payload.v1 types.

Verification confirms that payload.proto has been properly updated with optional bytes metadata fields across all relevant message types:

  • Insert.Request, Insert.ObjectRequest
  • Update.Request, Update.ObjectRequest, Update.TimestampRequest
  • Upsert.Request, Upsert.ObjectRequest
  • Object.Distance

The meta.proto service definitions correctly reference these payload types and will function as intended with metadata propagation.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 5

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between e22d44c and 90b33c6.

📒 Files selected for processing (1)
  • apis/proto/v1/vald/meta.proto (1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (168)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build / build (amd64, ubuntu-latest)
  • GitHub Check: build

// gRPC has a message size limitation.<br>
// Please be careful that the size of the request exceeds the limit.
// </div>
// // ---
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Fix malformed documentation comment.

Line 386 contains a double slash: // // ---, which should be // --- to match the pattern elsewhere in the file.

Apply this diff:

-  // // ---
+  // ---
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
// // ---
// ---
🤖 Prompt for AI Agents
In apis/proto/v1/vald/meta.proto around line 386, the documentation comment is
malformed with a double slash ("// // ---"); replace it with a single-comment
marker ("// ---") to match the file's comment pattern and maintain consistency.

// Overview
// StreamGetObjectWithMetadata RPC is the method to get the metadata of multiple existing vectors using the [bidirectional streaming RPC](https://grpc.io/docs/what-is-grpc/core-concepts/#bidirectional-streaming-rpc).<br>
// Using the bidirectional streaming RPC, the GetObject request can be communicated in any order between client and server.
// Each Upsert request and response are independent.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Correct RPC reference in documentation comment.

The comment references "Upsert" but this is the StreamGetObjectWithMetadata RPC. It should say "Each GetObject request and response are independent" to match the RPC name.

Apply this diff:

-  // Each Upsert request and response are independent.
+  // Each GetObject request and response are independent.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
// Each Upsert request and response are independent.
// Each GetObject request and response are independent.
🤖 Prompt for AI Agents
In apis/proto/v1/vald/meta.proto around line 549, the documentation comment
incorrectly refers to "Upsert"; update the comment text to reference the correct
RPC by replacing "Each Upsert request and response are independent." with "Each
GetObject request and response are independent." so the comment matches the
StreamGetObjectWithMetadata RPC.

Comment on lines +573 to +583
// Overview
// A method to get all the vectors with server streaming
// ---
// Status Code
// TODO
// ---
// Troubleshooting
// TODO
rpc StreamListObjectWithMetadata(payload.v1.Object.List.Request) returns (stream payload.v1.Object.List.Response) {
option (google.api.http).get = "/object/list/metadata";
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Replace TODO placeholders with complete documentation.

The StreamListObjectWithMetadata RPC (lines 576–577 and 579–580) has empty Status Code and Troubleshooting sections marked "TODO". These should either be populated with valid content or removed if this RPC is not yet intended for release.

Would you like me to help populate these sections with appropriate status codes and troubleshooting guidance, or should we mark this RPC as experimental/alpha pending completion?

🤖 Prompt for AI Agents
In apis/proto/v1/vald/meta.proto around lines 573 to 583, the RPC
StreamListObjectWithMetadata contains placeholder "TODO" entries for the Status
Code and Troubleshooting sections; replace these placeholders with concrete
content by either (A) adding a Status Code list (e.g., OK — successful,
INVALID_ARGUMENT — bad request params, NOT_FOUND — no objects match,
UNAUTHORIZED — auth failure, INTERNAL/UNAVAILABLE — server errors) and a
Troubleshooting section (e.g., validate request parameters, check
authentication/permissions, inspect server logs for internal errors, verify
index/state and retry with exponential backoff), or (B) if the RPC is not ready
for release, mark the RPC as experimental/alpha and remove the TODOs, adding an
explicit note that documentation and stable status codes will be provided later.

Comment on lines +640 to +646
//
// | name | common reason | how to resolve |
// | :---------------- | :---------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------- |
// | CANCELLED | Executed cancel() of rpc from client/server-side or network problems between client and server. | Check the code, especially around timeout and connection management, and fix if needed. |
// | DEADLINE_EXCEEDED | The RPC timeout setting is too short on the client/server side. | Check the gRPC timeout setting on both the client and server sides and fix it if needed. |
// | NOT_FOUND | No vectors in the system match the specified timestamp conditions. | Check whether vectors matching the specified timestamp conditions exist in the system, and fix conditions if needed. |
// | INTERNAL | Target Vald cluster or network route has some critical error. | Check target Vald cluster first and check network route including ingress as second.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Complete the documentation table.

The troubleshooting table for RemoveByTimestampWithMetadata (lines 641–646) is missing a closing pipe character on the last row. Line 646 ends mid-cell without proper table closure.

Apply this diff:

-  // | INTERNAL          | Target Vald cluster or network route has some critical error.                                   | Check target Vald cluster first and check network route including ingress as second.
+  // | INTERNAL          | Target Vald cluster or network route has some critical error.                                   | Check target Vald cluster first and check network route including ingress as second.     |
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
//
// | name | common reason | how to resolve |
// | :---------------- | :---------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------- |
// | CANCELLED | Executed cancel() of rpc from client/server-side or network problems between client and server. | Check the code, especially around timeout and connection management, and fix if needed. |
// | DEADLINE_EXCEEDED | The RPC timeout setting is too short on the client/server side. | Check the gRPC timeout setting on both the client and server sides and fix it if needed. |
// | NOT_FOUND | No vectors in the system match the specified timestamp conditions. | Check whether vectors matching the specified timestamp conditions exist in the system, and fix conditions if needed. |
// | INTERNAL | Target Vald cluster or network route has some critical error. | Check target Vald cluster first and check network route including ingress as second.
//
// | name | common reason | how to resolve |
// | :---------------- | :---------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------- |
// | CANCELLED | Executed cancel() of rpc from client/server-side or network problems between client and server. | Check the code, especially around timeout and connection management, and fix if needed. |
// | DEADLINE_EXCEEDED | The RPC timeout setting is too short on the client/server side. | Check the gRPC timeout setting on both the client and server sides and fix it if needed. |
// | NOT_FOUND | No vectors in the system match the specified timestamp conditions. | Check whether vectors matching the specified timestamp conditions exist in the system, and fix conditions if needed. |
// | INTERNAL | Target Vald cluster or network route has some critical error. | Check target Vald cluster first and check network route including ingress as second. |
🤖 Prompt for AI Agents
In apis/proto/v1/vald/meta.proto around lines 640 to 646, the markdown table row
for the INTERNAL error is missing the trailing pipe to close the last cell;
update the last row so it ends with a closing pipe character (add " |" at the
end of line 646) to properly close the table cell and ensure the table renders
correctly.

Comment on lines +828 to +840
// A method to update timestamp an indexed vector and metadata.
// ---
// Status Code
// TODO
// ---
// Troubleshooting
// TODO
rpc UpdateTimestampWithMetadata(payload.v1.Update.TimestampRequest) returns (payload.v1.Object.Location) {
option (google.api.http) = {
post: "/update/timestamp/metadata"
body: "*"
};
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Replace TODO placeholders with complete documentation.

The UpdateTimestampWithMetadata RPC (lines 831–832 and 834) has empty Status Code and Troubleshooting sections marked "TODO". These should either be populated with valid content or removed if this RPC is not yet intended for release.

Would you like me to help populate these sections with appropriate status codes and troubleshooting guidance, or should we mark this RPC as experimental/alpha pending completion?

🤖 Prompt for AI Agents
In apis/proto/v1/vald/meta.proto around lines 828–840, the
UpdateTimestampWithMetadata RPC has placeholder "TODO" entries for Status Code
and Troubleshooting; replace those TODOs with either (A) a Status Code list
describing expected gRPC/HTTP responses such as: 200 OK (successful update), 400
InvalidArgument (malformed request/invalid timestamp/metadata), 404 NotFound
(object id not found), 409 AlreadyExists/Conflict (timestamp conflict if
applicable), 500 Internal (server error), and 503 Unavailable
(dependency/unreachable datastore), or (B) a Troubleshooting section that lists
common failure causes and remedies (invalid request payloads and how to validate
fields, missing object id and how to confirm existence,
permission/authentication issues and required headers, datastore/network errors
with retry guidance and log locations), and if this RPC is not ready for release
instead annotate it as experimental (add a short comment or an option flag
indicating "experimental/alpha" and remove the incomplete sections); implement
one of these two fixes so the proto contains concrete status codes and
actionable troubleshooting steps or is explicitly marked experimental.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants