Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Backport PR #2741 to release/v1.7 for change symlink API documents #2776

Conversation

vdaas-ci
Copy link
Collaborator

@vdaas-ci vdaas-ci commented Dec 13, 2024

Description

SSIA

Related Issue

Versions

  • Vald Version: v1.7.14
  • Go Version: v1.23.3
  • Rust Version: v1.82.0
  • Docker Version: v27.3.1
  • Kubernetes Version: v1.31.2
  • Helm Version: v3.16.2
  • NGT Version: v2.3.4
  • Faiss Version: v1.9.0

Checklist

Special notes for your reviewer

Summary by CodeRabbit

Release Notes

  • New Features

    • Introduced Vald APIs for Flush, Insert, Object, Remove, Search, Update, Upsert, Filter, Index, and Mirror functionalities, enhancing vector management capabilities.
    • Each API includes multiple RPC methods for operations such as adding, updating, removing, and searching vectors.
  • Documentation

    • Comprehensive documentation added for each API, detailing usage, input/output structures, and status codes for better user guidance.
    • New templates and YAML configurations introduced for improved API documentation generation.
    • Enhanced clarity and detail in service documentation, including structured overviews and troubleshooting guidance for all RPC methods.
    • Updated comments for existing RPC methods to improve clarity and usability.

* copy API documents

* Automated generation for API documents (#2742)

* init auto generatation for API documents

* auto-generated API documents

* style: format code with Gofumpt and Prettier

This commit fixes the style issues introduced in 7a36dd8 according to the output
from Gofumpt and Prettier.

Details: #2742

* update

* style: format code with Gofumpt and Prettier

This commit fixes the style issues introduced in 74dc4d6 according to the output
from Gofumpt and Prettier.

Details: #2742

* update

* update

* style: format code with Gofumpt and Prettier

This commit fixes the style issues introduced in 384fc7e according to the output
from Gofumpt and Prettier.

Details: #2742

* update

* fix

* style: format code with Gofumpt and Prettier

This commit fixes the style issues introduced in fa4ba75 according to the output
from Gofumpt and Prettier.

Details: #2742

---------

Co-authored-by: deepsource-autofix[bot] <62050782+deepsource-autofix[bot]@users.noreply.github.com>

* add mirror document

* style: format code with Gofumpt and Prettier

This commit fixes the style issues introduced in df4d79e according to the output
from Gofumpt and Prettier.

Details: #2741

---------

Co-authored-by: deepsource-autofix[bot] <62050782+deepsource-autofix[bot]@users.noreply.github.com>
Co-authored-by: Kiichiro YUKAWA <[email protected]>
Copy link

cloudflare-workers-and-pages bot commented Dec 13, 2024

Deploying vald with  Cloudflare Pages  Cloudflare Pages

Latest commit: 699961c
Status: ✅  Deploy successful!
Preview URL: https://de0936e3.vald.pages.dev
Branch Preview URL: https://backport-release-v1-7-docume-ra1i.vald.pages.dev

View logs

Copy link
Contributor

coderabbitai bot commented Dec 13, 2024

📝 Walkthrough

Walkthrough

The pull request introduces significant modifications across several Makefile components and documentation files related to protocol buffers for the Vald project. New variables and functions are added to the Makefile to enhance the management and documentation of proto files. Additionally, new YAML configuration files and markdown documents are created to define and document various Vald APIs, including their methods, input/output structures, and status codes. The changes also include extensive updates to existing proto files to improve documentation clarity and comprehensiveness.

Changes

File Path Change Summary
Makefile Added variables: PROTO_VALD_APIS, PROTO_VALD_API_DOCS, PROTO_MIRROR_APIS, PROTO_MIRROR_API_DOCS. Introduced $(eval ...) for runtime evaluation.
Makefile.d/functions.mk Added function: gen-api-document for generating API documentation using templates.
Makefile.d/proto.mk Updated targets: proto/all, proto/gen, and added new targets for API documentation generation. Modified dependencies and cleanup processes.
apis/docs/buf.gen.doc.yaml New configuration file for Go package documentation generation, specifying options and output directory.
apis/docs/buf.gen.payload.yaml New configuration file for managing protocol buffer generation settings.
apis/docs/buf.gen.tmpl.yaml New configuration file for managing protocol buffer generation settings.
apis/docs/v1/doc.tmpl New documentation template for generating API documentation dynamically.
apis/docs/v1/filter.md New file detailing the Vald Filter APIs and their RPC methods.
apis/docs/v1/flush.md New file detailing the Vald Flush APIs and their RPC methods.
apis/docs/v1/index.md New file detailing the Vald Index APIs and their RPC methods.
apis/docs/v1/insert.md New file detailing the Vald Insert APIs and their RPC methods.
apis/docs/v1/mirror.md New file detailing the Vald Mirror APIs and their RPC methods.
apis/docs/v1/object.md New file detailing the Vald Object APIs and their RPC methods.
apis/docs/v1/payload.md.tmpl New template definitions for various message types and fields related to API payloads.
apis/docs/v1/payload.tmpl New templating logic for generating documentation based on protocol buffer definitions.
apis/docs/v1/remove.md New file detailing the Vald Remove APIs and their RPC methods.
apis/docs/v1/search.md New file detailing the Vald Search APIs and their RPC methods.
apis/docs/v1/update.md New file detailing the Vald Update APIs and their RPC methods.
apis/docs/v1/upsert.md New file detailing the Vald Upsert APIs and their RPC methods.
apis/proto/v1/mirror/mirror.proto Updated documentation for the Mirror service and its Register RPC method.
apis/proto/v1/vald/filter.proto Enhanced documentation for the Filter service and its RPC methods.
apis/proto/v1/vald/flush.proto Enhanced documentation for the Flush service and its RPC method.
apis/proto/v1/vald/index.proto Added overview comments for each RPC method in the Index service.
apis/proto/v1/vald/insert.proto Enhanced documentation for the Insert service and its RPC methods.
apis/proto/v1/vald/object.proto Enhanced documentation for the Object service and its RPC methods.
apis/proto/v1/vald/remove.proto Enhanced documentation for the Remove service and its RPC methods.
apis/proto/v1/vald/search.proto Enhanced documentation for the Search service and its RPC methods.
apis/proto/v1/vald/update.proto Enhanced documentation for the Update service and its RPC methods.
apis/proto/v1/vald/upsert.proto Enhanced documentation for the Upsert service and its RPC methods.

Possibly related PRs

Suggested labels

priority/low, size/XXXL, area/makefile

Suggested reviewers

  • vankichi
  • kpango

Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR. (Experiment)
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

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

🧹 Outside diff range and nitpick comments (44)
apis/proto/v1/vald/flush.proto (2)

32-41: LGTM! Consider adding request/response examples.

The documentation improvements are excellent, with a clear overview and well-structured status code table. To make it even more helpful for API consumers, consider adding example request/response payloads.

  // Overview
  // Flush RPC is the method to remove all vectors.
  // ---
  // Status Code
  // |  0   | OK                |
  // |  1   | CANCELLED         |
  // |  3   | INVALID_ARGUMENT  |
  // |  4   | DEADLINE_EXCEEDED |
  // |  5   | NOT_FOUND         |
  // |  13  | INTERNAL          |
+ // ---
+ // Example
+ // ```
+ // request:  {}
+ // response: {"count": 100}
+ // ```

31-31: Note about service naming convention.

While Proto best practices suggest suffixing service names with "Service" (e.g., "FlushService"), we should maintain the current name for backward compatibility in this backport PR. Consider addressing this in a future major version update.

🧰 Tools
🪛 buf (1.47.2)

31-31: Service name "Flush" should be suffixed with "Service".

(SERVICE_SUFFIX)

apis/docs/v1/upsert.md (5)

77-79: Fix the table formatting.

The description for disable_balanced_update is split across lines, which breaks the table formatting. Consider fixing it:

-        | disable_balanced_update | bool |  | A flag to disable balanced update (split remove -> insert operation)
-
-    during update operation. |
+        | disable_balanced_update | bool |  | A flag to disable balanced update (split remove -> insert operation) during update operation. |

149-149: Improve clarity in the recommendation.

Consider rephrasing for better clarity:

- It's the recommended method to upsert a large number of vectors.
+ It's the recommended method when upserting many vectors.
🧰 Tools
🪛 LanguageTool

[style] ~149-~149: Specify a number, remove phrase, or simply use “many” or “numerous”
Context: .... It’s the recommended method to upsert a large number of vectors. ### Input - the scheme of `p...

(LARGE_NUMBER_OF)


207-209: Fix the table formatting.

The description for disable_balanced_update is split across lines, which breaks the table formatting. Consider fixing it:

-        | disable_balanced_update | bool |  | A flag to disable balanced update (split remove -> insert operation)
-
-    during update operation. |
+        | disable_balanced_update | bool |  | A flag to disable balanced update (split remove -> insert operation) during update operation. |

361-363: Fix the table formatting.

The description for disable_balanced_update is split across lines, which breaks the table formatting. Consider fixing it:

-        | disable_balanced_update | bool |  | A flag to disable balanced update (split remove -> insert operation)
-
-    during update operation. |
+        | disable_balanced_update | bool |  | A flag to disable balanced update (split remove -> insert operation) during update operation. |

397-399: Add missing description for locations field.

The description for the locations field is empty. Consider adding a description:

    |   field   | type            | label    | description |
    | :-------: | :-------------- | :------- | :---------- |
-    | locations | Object.Location | repeated |             |
+    | locations | Object.Location | repeated | List of vector locations. |
apis/docs/v1/doc.tmpl (1)

3-7: Consider refactoring duplicated code for parsing descriptions

The code blocks at lines 3-7 and 25-28 perform identical operations to parse and store descriptions into the $descs dictionary. To improve maintainability and reduce duplication, consider extracting this logic into a separate template or function.

Also applies to: 25-28

apis/docs/v1/payload.md.tmpl (1)

1-2626: Consider automating template generation to improve maintainability

The file contains a large number of manually defined templates for message schemes and fields. Maintaining these templates can be error-prone and time-consuming. Consider automating the generation of these templates or using a more dynamic approach to reduce duplication and improve maintainability.

apis/docs/v1/flush.md (1)

5-5: Consider enhancing the service overview

The overview could be more detailed by explaining when and why one would use the Flush service, and what happens to the vectors after flushing.

apis/docs/v1/mirror.md (2)

5-5: Enhance the Mirror Service overview

The overview should explain what a Mirror Gateway is and why one would want to register targets with it.


52-61: Remove redundant message definition in Output section

The Output section repeats the same message definition as the Input section. Since they're identical, consider referencing the Input section instead.

Replace the repeated definition with:

The output message structure is identical to the input message structure defined above.
Makefile.d/proto.mk (1)

78-84: Consolidate duplicate documentation generation rules

The rules for generating vald and mirror documentation are nearly identical. Consider consolidating them into a single pattern rule.

-$(ROOTDIR)/apis/docs/v1/%.md: $(ROOTDIR)/apis/proto/v1/vald/%.proto $(ROOTDIR)/apis/docs/v1/payload.md.tmpl $(ROOTDIR)/apis/docs/v1/doc.tmpl
-	@$(call green,"generating documents for API v1...")
-	@$(call gen-api-document,$@,$(subst $(ROOTDIR)/,,$<))
-
-$(ROOTDIR)/apis/docs/v1/mirror.md: $(ROOTDIR)/apis/proto/v1/mirror/mirror.proto $(ROOTDIR)/apis/docs/v1/payload.md.tmpl $(ROOTDIR)/apis/docs/v1/doc.tmpl
-	@$(call green,"generating documents for API v1...")
-	@$(call gen-api-document,$@,$(subst $(ROOTDIR)/,,$<))
+$(ROOTDIR)/apis/docs/v1/%.md: $(ROOTDIR)/apis/proto/v1/**/%.proto $(ROOTDIR)/apis/docs/v1/payload.md.tmpl $(ROOTDIR)/apis/docs/v1/doc.tmpl
+	@$(call green,"generating documents for API v1...")
+	@$(call gen-api-document,$@,$(subst $(ROOTDIR)/,,$<))
apis/proto/v1/vald/object.proto (3)

29-31: Consider renaming service to follow protobuf best practices

The service name should be suffixed with "Service" to follow protobuf naming conventions.

- service Object {
+ service ObjectService {
🧰 Tools
🪛 buf (1.47.2)

31-31: Service name "Object" should be suffixed with "Service".

(SERVICE_SUFFIX)


113-120: Documentation for StreamListObject is incomplete

The status codes and troubleshooting sections are marked as TODO. This should be completed to maintain consistency with other method documentation.

Would you like me to help generate the missing documentation sections?


125-132: Documentation for GetTimestamp is incomplete

Similar to StreamListObject, the status codes and troubleshooting sections are marked as TODO.

Would you like me to help generate the missing documentation sections?

apis/proto/v1/vald/filter.proto (2)

29-32: Consider renaming service and improving type specificity

  1. The service should be suffixed with "Service" to follow protobuf conventions
  2. Consider using more specific request/response types for each method to improve API maintainability
- service Filter {
+ service FilterService {

209-210: Fix copy-paste error in documentation

The overview comment for StreamUpsertObject is identical to UpsertObject. It should be updated to mention streaming functionality.

- // UpsertObject RPC is the method to update a single object and add a new single object.
+ // StreamUpsertObject RPC is the method to update and add multiple objects using bidirectional streaming.
apis/proto/v1/vald/insert.proto (2)

29-31: Consider renaming service and document ABORTED status

  1. The service should be suffixed with "Service" to follow protobuf conventions
  2. The ABORTED status code (10) is listed but not explained in the troubleshooting section
- service Insert {
+ service InsertService {
🧰 Tools
🪛 buf (1.47.2)

31-31: Service name "Insert" should be suffixed with "Service".

(SERVICE_SUFFIX)


74-88: Add missing troubleshooting information for ABORTED status

The status code table includes ABORTED (10), but there's no corresponding troubleshooting information.

Add the following entry to the troubleshooting table:

  // | INTERNAL          | Target Vald cluster or network route has some critical error.                                                                                       | Check target Vald cluster first and check network route including ingress as second.     |
+ // | ABORTED          | The operation was aborted due to a conflict or resource limitation.                                                                                  | Retry the operation with backoff or check resource availability.                         |
apis/proto/v1/vald/upsert.proto (1)

29-31: Consider following the buf style guide for service naming

The service name should be suffixed with "Service" according to buf's style guide.

- service Upsert {
+ service UpsertService {
🧰 Tools
🪛 buf (1.47.2)

31-31: Service name "Upsert" should be suffixed with "Service".

(SERVICE_SUFFIX)

apis/proto/v1/vald/update.proto (2)

29-31: Consider following the buf style guide for service naming

The service name should be suffixed with "Service" according to buf's style guide.

- service Update {
+ service UpdateService {
🧰 Tools
🪛 buf (1.47.2)

31-31: Service name "Update" should be suffixed with "Service".

(SERVICE_SUFFIX)


134-141: Complete the TODO sections in UpdateTimestamp method

The Status Code and Troubleshooting sections are marked as TODO and need to be completed.

Would you like me to help generate the missing documentation sections for the UpdateTimestamp method?

apis/proto/v1/vald/remove.proto (1)

29-31: Consider following the buf style guide for service naming

The service name should be suffixed with "Service" according to buf's style guide.

- service Remove {
+ service RemoveService {
🧰 Tools
🪛 buf (1.47.2)

31-31: Service name "Remove" should be suffixed with "Service".

(SERVICE_SUFFIX)

Makefile.d/functions.mk (1)

449-456: Consider adding error handling for command failures

The function executes multiple commands in sequence but doesn't handle potential failures. Consider adding error checking to ensure the documentation generation process is robust.

 define gen-api-document
-	buf generate --template=apis/docs/buf.gen.tmpl.yaml --path $2
-	cat apis/docs/v1/payload.md.tmpl apis/docs/v1/_doc.md.tmpl > apis/docs/v1/doc.md.tmpl; \
-	buf generate --template=apis/docs/buf.gen.doc.yaml --path $2; \
-	mv $(ROOTDIR)/apis/docs/v1/doc.md $1; \
-	rm apis/docs/v1/*doc.md.tmpl
+	if ! buf generate --template=apis/docs/buf.gen.tmpl.yaml --path $2; then \
+		echo "Error: Failed to generate initial template" >&2; \
+		exit 1; \
+	fi
+	if ! cat apis/docs/v1/payload.md.tmpl apis/docs/v1/_doc.md.tmpl > apis/docs/v1/doc.md.tmpl; then \
+		echo "Error: Failed to concatenate templates" >&2; \
+		exit 1; \
+	fi
+	if ! buf generate --template=apis/docs/buf.gen.doc.yaml --path $2; then \
+		echo "Error: Failed to generate final documentation" >&2; \
+		exit 1; \
+	fi
+	if ! mv $(ROOTDIR)/apis/docs/v1/doc.md $1; then \
+		echo "Error: Failed to move documentation file" >&2; \
+		exit 1; \
+	fi
+	rm -f apis/docs/v1/*doc.md.tmpl
 endef
apis/docs/v1/object.md (1)

38-38: Enhance field descriptions in message definitions

Several fields in the message definitions lack descriptions. Consider adding meaningful descriptions to improve API understanding:

  • Object.ID.id: Add description about the purpose and format of the ID
  • timestamp: Add description about the timestamp format and timezone

Also applies to: 54-54, 124-124

apis/docs/v1/remove.md (1)

225-225: Improve clarity in StreamRemove description

The phrase "a large number of vectors" is vague. Consider providing specific guidance on the recommended batch size or performance characteristics.

-It's the recommended method to remove a large number of vectors.
+It's the recommended method when removing many vectors (recommended batch size: 1000-10000 vectors per stream).
🧰 Tools
🪛 LanguageTool

[style] ~225-~225: Specify a number, remove phrase, or simply use “many” or “numerous”
Context: .... It's the recommended method to remove a large number of vectors. ### Input - the scheme of `p...

(LARGE_NUMBER_OF)

apis/docs/v1/index.md (3)

63-63: Fix grammatical errors: Use singular form after "each"

The word "each" should be followed by a singular noun. Replace "agents" with "agent" in these lines:

  • "for each agents" → "for each agent"
-for each agents
+for each agent

Also applies to: 109-109, 231-231, 304-304

🧰 Tools
🪛 LanguageTool

[grammar] ~63-~63: The noun should probably be in the singular form.
Context: ...C to get the index information for each agents. ### Input - the scheme of `payload.v...

(EVERY_EACH_SINGULAR)


193-227: Add descriptions for Info.Index.Statistics fields

The Info.Index.Statistics message has many fields without descriptions. Please add clear descriptions for each field to help API users understand their purpose and usage.


438-473: Add descriptions for Info.Index.Property fields

The Info.Index.Property message has fields without descriptions. Please add clear descriptions for each field to help API users understand their purpose and configuration impact.

apis/docs/v1/insert.md (1)

143-143: Improve wording precision

Consider replacing "large number of" with more specific wording:

-It's the recommended method to insert a large number of vectors.
+It's the recommended method to insert multiple vectors efficiently.
🧰 Tools
🪛 LanguageTool

[style] ~143-~143: Specify a number, remove phrase, or simply use “many” or “numerous”
Context: .... It's the recommended method to insert a large number of vectors. ### Input - the scheme of `p...

(LARGE_NUMBER_OF)

apis/docs/v1/update.md (3)

5-5: Improve overview clarity

The current sentence structure is awkward. Consider rewording:

-Update Service updates to new vector from inserted vector in the `vald-agent` components.
+Update Service allows updating existing vectors with new vectors in the `vald-agent` components.

73-81: Fix inconsistent table formatting

The table formatting uses inconsistent indentation. Use consistent fenced code block style throughout the document.

Also applies to: 204-212, 359-367

🧰 Tools
🪛 Markdownlint (0.37.0)

73-73: Expected: fenced; Actual: indented
Code block style

(MD046, code-block-style)


143-143: Fix grammar in error descriptions

Add missing articles before "Request pair":

-Request pair of ID and vector is already inserted
+A request pair of ID and vector is already inserted

Also applies to: 286-286, 439-439

🧰 Tools
🪛 LanguageTool

[grammar] ~143-~143: An article may be missing.
Context: ... | | ALREADY_EXISTS | Request pair of ID and vector is already inserted. ...

(BUNCH_OF)

Makefile (1)

156-159: Add comments to explain the purpose of new variables

Consider adding comments to explain the purpose and usage of these new variables to improve maintainability.

+# Filter proto files in the vald directory
 PROTO_VALD_APIS := $(eval PROTO_VALD_APIS := $(filter $(ROOTDIR)/apis/proto/v1/vald/%.proto,$(PROTOS)))$(PROTO_VALD_APIS)
+# Generate documentation paths for vald proto files
 PROTO_VALD_API_DOCS := $(PROTO_VALD_APIS:$(ROOTDIR)/apis/proto/v1/vald/%.proto=$(ROOTDIR)/apis/docs/v1/%.md)
+# Filter proto files in the mirror directory
 PROTO_MIRROR_APIS := $(eval PROTO_MIRROR_APIS := $(filter $(ROOTDIR)/apis/proto/v1/mirror/%.proto,$(PROTOS)))$(PROTO_MIRROR_APIS)
+# Generate documentation paths for mirror proto files
 PROTO_MIRROR_API_DOCS := $(PROTO_MIRROR_APIS:$(ROOTDIR)/apis/proto/v1/mirror/%.proto=$(ROOTDIR)/apis/docs/v1/%.md)
apis/proto/v1/vald/search.proto (1)

29-31: Consider renaming service to follow naming convention

According to the static analysis tool, service names should be suffixed with "Service".

-service Search {
+service SearchService {
🧰 Tools
🪛 buf (1.47.2)

31-31: Service name "Search" should be suffixed with "Service".

(SERVICE_SUFFIX)

apis/docs/v1/filter.md (3)

7-7: Fix sentence structure

Add a comma for better readability.

-Vald Filter Gateway forward user request to user-defined ingress/egress filter components allowing user to run custom logic.
+Vald Filter Gateway forwards user requests to user-defined ingress/egress filter components, allowing users to run custom logic.
🧰 Tools
🪛 LanguageTool

[uncategorized] ~7-~7: Possible missing comma found.
Context: ...t to user-defined ingress/egress filter components allowing user to run custom logic. ```...

(AI_HYDRA_LEO_MISSING_COMMA)


866-873: Fix code block formatting

The indented code blocks should be fenced for consistency with the rest of the document.

Use triple backticks (```) to fence these code blocks instead of indentation.

Also applies to: 980-987, 1118-1125, 1239-1246, 1350-1357, 1488-1495

🧰 Tools
🪛 Markdownlint (0.37.0)

866-866: Expected: fenced; Actual: indented
Code block style

(MD046, code-block-style)


567-567: Improve phrasing consistency

For better consistency:

  1. Line 567: Replace "large number of" with "numerous"
  2. Line 927: Replace "large amount of" with "large number of"

Also applies to: 927-927

🧰 Tools
🪛 LanguageTool

[style] ~567-~567: Specify a number, remove phrase, or simply use “many” or “numerous”
Context: .... It's the recommended method to insert a large number of objects. ### Input - the scheme of `p...

(LARGE_NUMBER_OF)

apis/docs/v1/search.md (3)

627-630: Add specific gRPC message size limits

The notice about gRPC message size limitation should include the actual size limits to help developers make informed decisions.

Consider adding the default and maximum message size limits:

gRPC has a message size limitation.<br>
-Please be careful that the size of the request exceeds the limit.
+The default maximum message size is 4MB. Please ensure your request size does not exceed this limit.
+If needed, you can configure larger limits through the gRPC channel options.

92-92: Fix spacing in table cell

There's an extra space in the "Aggregation Algorithm" description cell across multiple tables.

Remove the extra space after "Algorithm" in the description column:

-| aggregation_algorithm | Search.AggregationAlgorithm |       | Aggregation Algorithm                        |
+| aggregation_algorithm | Search.AggregationAlgorithm |       | Aggregation Algorithm                       |

Also applies to: 236-236, 379-379, 535-535, 704-704, 871-871, 1023-1023, 1167-1167, 1311-1311, 1467-1467, 1636-1636, 1804-1804


1730-1731: Remove unnecessary comment marker

There's a stray comment marker that should be removed.

Please be careful that the size of the request exceeds the limit.
</div>
-//
apis/proto/v1/vald/index.proto (2)

Line range hint 34-60: Follow protobuf message naming conventions for RPC requests and responses

The RPC methods should use standard request/response message names.

Consider renaming the messages to follow the standard convention:

  • For requests: <RPC_Name>Request
  • For responses: <RPC_Name>Response

Example for IndexInfo RPC:

-rpc IndexInfo(payload.v1.Empty) returns (payload.v1.Info.Index.Count)
+rpc IndexInfo(payload.v1.IndexInfoRequest) returns (payload.v1.IndexInfoResponse)

Apply similar changes to other RPCs:

  • IndexDetail
  • IndexStatistics
  • IndexStatisticsDetail
  • IndexProperty
🧰 Tools
🪛 buf (1.47.2)

31-31: Service name "Index" should be suffixed with "Service".

(SERVICE_SUFFIX)


34-36: "payload.v1.Empty" is used as the request or response type for multiple RPCs.

(RPC_REQUEST_RESPONSE_UNIQUE)


34-34: RPC request type "Empty" should be named "IndexInfoRequest" or "IndexIndexInfoRequest".

(RPC_REQUEST_STANDARD_NAME)


34-34: RPC response type "Count" should be named "IndexInfoResponse" or "IndexIndexInfoResponse".

(RPC_RESPONSE_STANDARD_NAME)


40-42: "payload.v1.Empty" is used as the request or response type for multiple RPCs.

(RPC_REQUEST_RESPONSE_UNIQUE)


40-40: RPC request type "Empty" should be named "IndexDetailRequest" or "IndexIndexDetailRequest".

(RPC_REQUEST_STANDARD_NAME)


40-40: RPC response type "Detail" should be named "IndexDetailResponse" or "IndexIndexDetailResponse".

(RPC_RESPONSE_STANDARD_NAME)


46-48: "payload.v1.Empty" is used as the request or response type for multiple RPCs.

(RPC_REQUEST_RESPONSE_UNIQUE)


46-46: RPC request type "Empty" should be named "IndexStatisticsRequest" or "IndexIndexStatisticsRequest".

(RPC_REQUEST_STANDARD_NAME)


46-46: RPC response type "Statistics" should be named "IndexStatisticsResponse" or "IndexIndexStatisticsResponse".

(RPC_RESPONSE_STANDARD_NAME)


52-54: "payload.v1.Empty" is used as the request or response type for multiple RPCs.

(RPC_REQUEST_RESPONSE_UNIQUE)


52-52: RPC request type "Empty" should be named "IndexStatisticsDetailRequest" or "IndexIndexStatisticsDetailRequest".

(RPC_REQUEST_STANDARD_NAME)


52-52: RPC response type "StatisticsDetail" should be named "IndexStatisticsDetailResponse" or "IndexIndexStatisticsDetailResponse".

(RPC_RESPONSE_STANDARD_NAME)


58-58: RPC request type "Empty" should be named "IndexPropertyRequest" or "IndexIndexPropertyRequest".

(RPC_REQUEST_STANDARD_NAME)


58-58: RPC response type "PropertyDetail" should be named "IndexPropertyResponse" or "IndexIndexPropertyResponse".

(RPC_RESPONSE_STANDARD_NAME)


Line range hint 32-60: Enhance RPC documentation with more details

While the overview comments are helpful, they could be more descriptive.

Consider expanding the comments to include:

  • Parameters description
  • Response description
  • Use cases or examples
  • Any limitations or considerations

Example:

-  // Overview
-  // Represent the RPC to get the index information.
+  // IndexInfo retrieves the current index information including:
+  // - Total number of indexed vectors
+  // - Index creation timestamp
+  // - Last modification timestamp
+  //
+  // This RPC is useful for monitoring and maintenance purposes.
🧰 Tools
🪛 buf (1.47.2)

31-31: Service name "Index" should be suffixed with "Service".

(SERVICE_SUFFIX)


34-36: "payload.v1.Empty" is used as the request or response type for multiple RPCs.

(RPC_REQUEST_RESPONSE_UNIQUE)


34-34: RPC request type "Empty" should be named "IndexInfoRequest" or "IndexIndexInfoRequest".

(RPC_REQUEST_STANDARD_NAME)


34-34: RPC response type "Count" should be named "IndexInfoResponse" or "IndexIndexInfoResponse".

(RPC_RESPONSE_STANDARD_NAME)


40-42: "payload.v1.Empty" is used as the request or response type for multiple RPCs.

(RPC_REQUEST_RESPONSE_UNIQUE)


40-40: RPC request type "Empty" should be named "IndexDetailRequest" or "IndexIndexDetailRequest".

(RPC_REQUEST_STANDARD_NAME)


40-40: RPC response type "Detail" should be named "IndexDetailResponse" or "IndexIndexDetailResponse".

(RPC_RESPONSE_STANDARD_NAME)


46-48: "payload.v1.Empty" is used as the request or response type for multiple RPCs.

(RPC_REQUEST_RESPONSE_UNIQUE)


46-46: RPC request type "Empty" should be named "IndexStatisticsRequest" or "IndexIndexStatisticsRequest".

(RPC_REQUEST_STANDARD_NAME)


46-46: RPC response type "Statistics" should be named "IndexStatisticsResponse" or "IndexIndexStatisticsResponse".

(RPC_RESPONSE_STANDARD_NAME)


52-54: "payload.v1.Empty" is used as the request or response type for multiple RPCs.

(RPC_REQUEST_RESPONSE_UNIQUE)


52-52: RPC request type "Empty" should be named "IndexStatisticsDetailRequest" or "IndexIndexStatisticsDetailRequest".

(RPC_REQUEST_STANDARD_NAME)


52-52: RPC response type "StatisticsDetail" should be named "IndexStatisticsDetailResponse" or "IndexIndexStatisticsDetailResponse".

(RPC_RESPONSE_STANDARD_NAME)


58-58: RPC request type "Empty" should be named "IndexPropertyRequest" or "IndexIndexPropertyRequest".

(RPC_REQUEST_STANDARD_NAME)


58-58: RPC response type "PropertyDetail" should be named "IndexPropertyResponse" or "IndexIndexPropertyResponse".

(RPC_RESPONSE_STANDARD_NAME)

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between cfdb7c1 and 699961c.

📒 Files selected for processing (29)
  • Makefile (1 hunks)
  • Makefile.d/functions.mk (1 hunks)
  • Makefile.d/proto.mk (2 hunks)
  • apis/docs/buf.gen.doc.yaml (1 hunks)
  • apis/docs/buf.gen.payload.yaml (1 hunks)
  • apis/docs/buf.gen.tmpl.yaml (1 hunks)
  • apis/docs/v1/doc.tmpl (1 hunks)
  • apis/docs/v1/filter.md (1 hunks)
  • apis/docs/v1/flush.md (1 hunks)
  • apis/docs/v1/index.md (1 hunks)
  • apis/docs/v1/insert.md (1 hunks)
  • apis/docs/v1/mirror.md (1 hunks)
  • apis/docs/v1/object.md (1 hunks)
  • apis/docs/v1/payload.md.tmpl (1 hunks)
  • apis/docs/v1/payload.tmpl (1 hunks)
  • apis/docs/v1/remove.md (1 hunks)
  • apis/docs/v1/search.md (1 hunks)
  • apis/docs/v1/update.md (1 hunks)
  • apis/docs/v1/upsert.md (1 hunks)
  • apis/proto/v1/mirror/mirror.proto (1 hunks)
  • apis/proto/v1/vald/filter.proto (1 hunks)
  • apis/proto/v1/vald/flush.proto (1 hunks)
  • apis/proto/v1/vald/index.proto (1 hunks)
  • apis/proto/v1/vald/insert.proto (1 hunks)
  • apis/proto/v1/vald/object.proto (1 hunks)
  • apis/proto/v1/vald/remove.proto (1 hunks)
  • apis/proto/v1/vald/search.proto (1 hunks)
  • apis/proto/v1/vald/update.proto (1 hunks)
  • apis/proto/v1/vald/upsert.proto (1 hunks)
✅ Files skipped from review due to trivial changes (3)
  • apis/docs/buf.gen.tmpl.yaml
  • apis/docs/buf.gen.payload.yaml
  • apis/docs/buf.gen.doc.yaml
🧰 Additional context used
🪛 buf (1.47.2)
apis/proto/v1/vald/flush.proto

31-31: Service name "Flush" should be suffixed with "Service".

(SERVICE_SUFFIX)

apis/proto/v1/vald/upsert.proto

31-31: Service name "Upsert" should be suffixed with "Service".

(SERVICE_SUFFIX)


57-62: "payload.v1.Upsert.Request" is used as the request or response type for multiple RPCs.

(RPC_REQUEST_RESPONSE_UNIQUE)


57-57: RPC request type "Request" should be named "UpsertRequest" or "UpsertUpsertRequest".

(RPC_REQUEST_STANDARD_NAME)


57-57: RPC response type "Location" should be named "UpsertResponse" or "UpsertUpsertResponse".

(RPC_RESPONSE_STANDARD_NAME)


92-92: "payload.v1.Upsert.Request" is used as the request or response type for multiple RPCs.

(RPC_REQUEST_RESPONSE_UNIQUE)


92-92: RPC request type "Request" should be named "StreamUpsertRequest" or "UpsertStreamUpsertRequest".

(RPC_REQUEST_STANDARD_NAME)


92-92: RPC response type "StreamLocation" should be named "StreamUpsertResponse" or "UpsertStreamUpsertResponse".

(RPC_RESPONSE_STANDARD_NAME)

apis/proto/v1/vald/search.proto

31-31: Service name "Search" should be suffixed with "Service".

(SERVICE_SUFFIX)


56-61: "payload.v1.Search.Request" is used as the request or response type for multiple RPCs.

(RPC_REQUEST_RESPONSE_UNIQUE)


56-61: "payload.v1.Search.Response" is used as the request or response type for multiple RPCs.

(RPC_REQUEST_RESPONSE_UNIQUE)


56-56: RPC request type "Request" should be named "SearchRequest" or "SearchSearchRequest".

(RPC_REQUEST_STANDARD_NAME)


56-56: RPC response type "Response" should be named "SearchResponse" or "SearchSearchResponse".

(RPC_RESPONSE_STANDARD_NAME)


88-93: "payload.v1.Search.IDRequest" is used as the request or response type for multiple RPCs.

(RPC_REQUEST_RESPONSE_UNIQUE)


88-93: "payload.v1.Search.Response" is used as the request or response type for multiple RPCs.

(RPC_REQUEST_RESPONSE_UNIQUE)


88-88: RPC request type "IDRequest" should be named "SearchByIDRequest" or "SearchSearchByIDRequest".

(RPC_REQUEST_STANDARD_NAME)


88-88: RPC response type "Response" should be named "SearchByIDResponse" or "SearchSearchByIDResponse".

(RPC_RESPONSE_STANDARD_NAME)


121-121: "payload.v1.Search.Request" is used as the request or response type for multiple RPCs.

(RPC_REQUEST_RESPONSE_UNIQUE)


121-121: "payload.v1.Search.StreamResponse" is used as the request or response type for multiple RPCs.

(RPC_REQUEST_RESPONSE_UNIQUE)


121-121: RPC request type "Request" should be named "StreamSearchRequest" or "SearchStreamSearchRequest".

(RPC_REQUEST_STANDARD_NAME)


121-121: RPC response type "StreamResponse" should be named "StreamSearchResponse" or "SearchStreamSearchResponse".

(RPC_RESPONSE_STANDARD_NAME)


149-149: "payload.v1.Search.IDRequest" is used as the request or response type for multiple RPCs.

(RPC_REQUEST_RESPONSE_UNIQUE)


149-149: "payload.v1.Search.StreamResponse" is used as the request or response type for multiple RPCs.

(RPC_REQUEST_RESPONSE_UNIQUE)


149-149: RPC request type "IDRequest" should be named "StreamSearchByIDRequest" or "SearchStreamSearchByIDRequest".

(RPC_REQUEST_STANDARD_NAME)


149-149: RPC response type "StreamResponse" should be named "StreamSearchByIDResponse" or "SearchStreamSearchByIDResponse".

(RPC_RESPONSE_STANDARD_NAME)


180-185: "payload.v1.Search.MultiRequest" is used as the request or response type for multiple RPCs.

(RPC_REQUEST_RESPONSE_UNIQUE)


180-185: "payload.v1.Search.Responses" is used as the request or response type for multiple RPCs.

(RPC_REQUEST_RESPONSE_UNIQUE)


180-180: RPC request type "MultiRequest" should be named "MultiSearchRequest" or "SearchMultiSearchRequest".

(RPC_REQUEST_STANDARD_NAME)


180-180: RPC response type "Responses" should be named "MultiSearchResponse" or "SearchMultiSearchResponse".

(RPC_RESPONSE_STANDARD_NAME)


216-221: "payload.v1.Search.MultiIDRequest" is used as the request or response type for multiple RPCs.

(RPC_REQUEST_RESPONSE_UNIQUE)


216-221: "payload.v1.Search.Responses" is used as the request or response type for multiple RPCs.

(RPC_REQUEST_RESPONSE_UNIQUE)


216-216: RPC request type "MultiIDRequest" should be named "MultiSearchByIDRequest" or "SearchMultiSearchByIDRequest".

(RPC_REQUEST_STANDARD_NAME)


216-216: RPC response type "Responses" should be named "MultiSearchByIDResponse" or "SearchMultiSearchByIDResponse".

(RPC_RESPONSE_STANDARD_NAME)


247-252: "payload.v1.Search.Request" is used as the request or response type for multiple RPCs.

(RPC_REQUEST_RESPONSE_UNIQUE)


247-252: "payload.v1.Search.Response" is used as the request or response type for multiple RPCs.

(RPC_REQUEST_RESPONSE_UNIQUE)


247-247: RPC request type "Request" should be named "LinearSearchRequest" or "SearchLinearSearchRequest".

(RPC_REQUEST_STANDARD_NAME)


247-247: RPC response type "Response" should be named "LinearSearchResponse" or "SearchLinearSearchResponse".

(RPC_RESPONSE_STANDARD_NAME)


280-285: "payload.v1.Search.IDRequest" is used as the request or response type for multiple RPCs.

(RPC_REQUEST_RESPONSE_UNIQUE)


280-285: "payload.v1.Search.Response" is used as the request or response type for multiple RPCs.

(RPC_REQUEST_RESPONSE_UNIQUE)


280-280: RPC request type "IDRequest" should be named "LinearSearchByIDRequest" or "SearchLinearSearchByIDRequest".

(RPC_REQUEST_STANDARD_NAME)


280-280: RPC response type "Response" should be named "LinearSearchByIDResponse" or "SearchLinearSearchByIDResponse".

(RPC_RESPONSE_STANDARD_NAME)


313-313: "payload.v1.Search.Request" is used as the request or response type for multiple RPCs.

(RPC_REQUEST_RESPONSE_UNIQUE)


313-313: "payload.v1.Search.StreamResponse" is used as the request or response type for multiple RPCs.

(RPC_REQUEST_RESPONSE_UNIQUE)


313-313: RPC request type "Request" should be named "StreamLinearSearchRequest" or "SearchStreamLinearSearchRequest".

(RPC_REQUEST_STANDARD_NAME)


313-313: RPC response type "StreamResponse" should be named "StreamLinearSearchResponse" or "SearchStreamLinearSearchResponse".

(RPC_RESPONSE_STANDARD_NAME)


341-341: "payload.v1.Search.IDRequest" is used as the request or response type for multiple RPCs.

(RPC_REQUEST_RESPONSE_UNIQUE)


341-341: "payload.v1.Search.StreamResponse" is used as the request or response type for multiple RPCs.

(RPC_REQUEST_RESPONSE_UNIQUE)


341-341: RPC request type "IDRequest" should be named "StreamLinearSearchByIDRequest" or "SearchStreamLinearSearchByIDRequest".

(RPC_REQUEST_STANDARD_NAME)


341-341: RPC response type "StreamResponse" should be named "StreamLinearSearchByIDResponse" or "SearchStreamLinearSearchByIDResponse".

(RPC_RESPONSE_STANDARD_NAME)


372-377: "payload.v1.Search.MultiRequest" is used as the request or response type for multiple RPCs.

(RPC_REQUEST_RESPONSE_UNIQUE)


372-377: "payload.v1.Search.Responses" is used as the request or response type for multiple RPCs.

(RPC_REQUEST_RESPONSE_UNIQUE)


372-372: RPC request type "MultiRequest" should be named "MultiLinearSearchRequest" or "SearchMultiLinearSearchRequest".

(RPC_REQUEST_STANDARD_NAME)


372-372: RPC response type "Responses" should be named "MultiLinearSearchResponse" or "SearchMultiLinearSearchResponse".

(RPC_RESPONSE_STANDARD_NAME)

apis/proto/v1/vald/filter.proto

33-33: Service name "Filter" should be suffixed with "Service".

(SERVICE_SUFFIX)


44-49: "payload.v1.Search.ObjectRequest" is used as the request or response type for multiple RPCs.

(RPC_REQUEST_RESPONSE_UNIQUE)


44-44: RPC request type "ObjectRequest" should be named "SearchObjectRequest" or "FilterSearchObjectRequest".

(RPC_REQUEST_STANDARD_NAME)


44-44: RPC response type "Response" should be named "SearchObjectResponse" or "FilterSearchObjectResponse".

(RPC_RESPONSE_STANDARD_NAME)


63-63: RPC request type "MultiObjectRequest" should be named "MultiSearchObjectRequest" or "FilterMultiSearchObjectRequest".

(RPC_REQUEST_STANDARD_NAME)


63-63: RPC response type "Responses" should be named "MultiSearchObjectResponse" or "FilterMultiSearchObjectResponse".

(RPC_RESPONSE_STANDARD_NAME)


85-85: "payload.v1.Search.ObjectRequest" is used as the request or response type for multiple RPCs.

(RPC_REQUEST_RESPONSE_UNIQUE)


85-85: RPC request type "ObjectRequest" should be named "StreamSearchObjectRequest" or "FilterStreamSearchObjectRequest".

(RPC_REQUEST_STANDARD_NAME)


85-85: RPC response type "StreamResponse" should be named "StreamSearchObjectResponse" or "FilterStreamSearchObjectResponse".

(RPC_RESPONSE_STANDARD_NAME)


97-102: "payload.v1.Insert.ObjectRequest" is used as the request or response type for multiple RPCs.

(RPC_REQUEST_RESPONSE_UNIQUE)


97-102: "payload.v1.Object.Location" is used as the request or response type for multiple RPCs.

(RPC_REQUEST_RESPONSE_UNIQUE)


97-97: RPC request type "ObjectRequest" should be named "InsertObjectRequest" or "FilterInsertObjectRequest".

(RPC_REQUEST_STANDARD_NAME)


97-97: RPC response type "Location" should be named "InsertObjectResponse" or "FilterInsertObjectResponse".

(RPC_RESPONSE_STANDARD_NAME)


118-118: "payload.v1.Insert.ObjectRequest" is used as the request or response type for multiple RPCs.

(RPC_REQUEST_RESPONSE_UNIQUE)


118-118: "payload.v1.Object.StreamLocation" is used as the request or response type for multiple RPCs.

(RPC_REQUEST_RESPONSE_UNIQUE)


118-118: RPC request type "ObjectRequest" should be named "StreamInsertObjectRequest" or "FilterStreamInsertObjectRequest".

(RPC_REQUEST_STANDARD_NAME)


118-118: RPC response type "StreamLocation" should be named "StreamInsertObjectResponse" or "FilterStreamInsertObjectResponse".

(RPC_RESPONSE_STANDARD_NAME)


130-135: "payload.v1.Object.Locations" is used as the request or response type for multiple RPCs.

(RPC_REQUEST_RESPONSE_UNIQUE)


130-130: RPC request type "MultiObjectRequest" should be named "MultiInsertObjectRequest" or "FilterMultiInsertObjectRequest".

(RPC_REQUEST_STANDARD_NAME)


130-130: RPC response type "Locations" should be named "MultiInsertObjectResponse" or "FilterMultiInsertObjectResponse".

(RPC_RESPONSE_STANDARD_NAME)


147-152: "payload.v1.Object.Location" is used as the request or response type for multiple RPCs.

(RPC_REQUEST_RESPONSE_UNIQUE)


147-152: "payload.v1.Update.ObjectRequest" is used as the request or response type for multiple RPCs.

(RPC_REQUEST_RESPONSE_UNIQUE)


147-147: RPC request type "ObjectRequest" should be named "UpdateObjectRequest" or "FilterUpdateObjectRequest".

(RPC_REQUEST_STANDARD_NAME)


147-147: RPC response type "Location" should be named "UpdateObjectResponse" or "FilterUpdateObjectResponse".

(RPC_RESPONSE_STANDARD_NAME)


167-167: "payload.v1.Object.StreamLocation" is used as the request or response type for multiple RPCs.

(RPC_REQUEST_RESPONSE_UNIQUE)


167-167: "payload.v1.Update.ObjectRequest" is used as the request or response type for multiple RPCs.

(RPC_REQUEST_RESPONSE_UNIQUE)


167-167: RPC request type "ObjectRequest" should be named "StreamUpdateObjectRequest" or "FilterStreamUpdateObjectRequest".

(RPC_REQUEST_STANDARD_NAME)


167-167: RPC response type "StreamLocation" should be named "StreamUpdateObjectResponse" or "FilterStreamUpdateObjectResponse".

(RPC_RESPONSE_STANDARD_NAME)


185-190: "payload.v1.Object.Locations" is used as the request or response type for multiple RPCs.

(RPC_REQUEST_RESPONSE_UNIQUE)


185-185: RPC request type "MultiObjectRequest" should be named "MultiUpdateObjectRequest" or "FilterMultiUpdateObjectRequest".

(RPC_REQUEST_STANDARD_NAME)


185-185: RPC response type "Locations" should be named "MultiUpdateObjectResponse" or "FilterMultiUpdateObjectResponse".

(RPC_RESPONSE_STANDARD_NAME)


202-207: "payload.v1.Object.Location" is used as the request or response type for multiple RPCs.

(RPC_REQUEST_RESPONSE_UNIQUE)


202-207: "payload.v1.Upsert.ObjectRequest" is used as the request or response type for multiple RPCs.

(RPC_REQUEST_RESPONSE_UNIQUE)


202-202: RPC request type "ObjectRequest" should be named "UpsertObjectRequest" or "FilterUpsertObjectRequest".

(RPC_REQUEST_STANDARD_NAME)


202-202: RPC response type "Location" should be named "UpsertObjectResponse" or "FilterUpsertObjectResponse".

(RPC_RESPONSE_STANDARD_NAME)


219-219: "payload.v1.Object.StreamLocation" is used as the request or response type for multiple RPCs.

(RPC_REQUEST_RESPONSE_UNIQUE)


219-219: "payload.v1.Upsert.ObjectRequest" is used as the request or response type for multiple RPCs.

(RPC_REQUEST_RESPONSE_UNIQUE)


219-219: RPC request type "ObjectRequest" should be named "StreamUpsertObjectRequest" or "FilterStreamUpsertObjectRequest".

(RPC_REQUEST_STANDARD_NAME)


219-219: RPC response type "StreamLocation" should be named "StreamUpsertObjectResponse" or "FilterStreamUpsertObjectResponse".

(RPC_RESPONSE_STANDARD_NAME)

apis/proto/v1/mirror/mirror.proto

30-30: Service name "Mirror" should be suffixed with "Service".

(SERVICE_SUFFIX)

apis/proto/v1/vald/update.proto

31-31: Service name "Update" should be suffixed with "Service".

(SERVICE_SUFFIX)


58-63: "payload.v1.Object.Location" is used as the request or response type for multiple RPCs.

(RPC_REQUEST_RESPONSE_UNIQUE)


58-63: "payload.v1.Update.Request" is used as the request or response type for multiple RPCs.

(RPC_REQUEST_RESPONSE_UNIQUE)


58-58: RPC request type "Request" should be named "UpdateRequest" or "UpdateUpdateRequest".

(RPC_REQUEST_STANDARD_NAME)


58-58: RPC response type "Location" should be named "UpdateResponse" or "UpdateUpdateResponse".

(RPC_RESPONSE_STANDARD_NAME)


94-94: "payload.v1.Update.Request" is used as the request or response type for multiple RPCs.

(RPC_REQUEST_RESPONSE_UNIQUE)


94-94: RPC request type "Request" should be named "StreamUpdateRequest" or "UpdateStreamUpdateRequest".

(RPC_REQUEST_STANDARD_NAME)


94-94: RPC response type "StreamLocation" should be named "StreamUpdateResponse" or "UpdateStreamUpdateResponse".

(RPC_RESPONSE_STANDARD_NAME)


127-127: RPC request type "MultiRequest" should be named "MultiUpdateRequest" or "UpdateMultiUpdateRequest".

(RPC_REQUEST_STANDARD_NAME)


127-127: RPC response type "Locations" should be named "MultiUpdateResponse" or "UpdateMultiUpdateResponse".

(RPC_RESPONSE_STANDARD_NAME)

apis/proto/v1/vald/insert.proto

31-31: Service name "Insert" should be suffixed with "Service".

(SERVICE_SUFFIX)


55-60: "payload.v1.Insert.Request" is used as the request or response type for multiple RPCs.

(RPC_REQUEST_RESPONSE_UNIQUE)


55-55: RPC request type "Request" should be named "InsertRequest" or "InsertInsertRequest".

(RPC_REQUEST_STANDARD_NAME)


55-55: RPC response type "Location" should be named "InsertResponse" or "InsertInsertResponse".

(RPC_RESPONSE_STANDARD_NAME)


89-89: "payload.v1.Insert.Request" is used as the request or response type for multiple RPCs.

(RPC_REQUEST_RESPONSE_UNIQUE)


89-89: RPC request type "Request" should be named "StreamInsertRequest" or "InsertStreamInsertRequest".

(RPC_REQUEST_STANDARD_NAME)


89-89: RPC response type "StreamLocation" should be named "StreamInsertResponse" or "InsertStreamInsertResponse".

(RPC_RESPONSE_STANDARD_NAME)

apis/proto/v1/vald/remove.proto

31-31: Service name "Remove" should be suffixed with "Service".

(SERVICE_SUFFIX)


56-61: "payload.v1.Remove.Request" is used as the request or response type for multiple RPCs.

(RPC_REQUEST_RESPONSE_UNIQUE)


56-56: RPC request type "Request" should be named "RemoveRequest" or "RemoveRemoveRequest".

(RPC_REQUEST_STANDARD_NAME)


56-56: RPC response type "Location" should be named "RemoveResponse" or "RemoveRemoveResponse".

(RPC_RESPONSE_STANDARD_NAME)


90-95: "payload.v1.Object.Locations" is used as the request or response type for multiple RPCs.

(RPC_REQUEST_RESPONSE_UNIQUE)


90-90: RPC request type "TimestampRequest" should be named "RemoveByTimestampRequest" or "RemoveRemoveByTimestampRequest".

(RPC_REQUEST_STANDARD_NAME)


90-90: RPC response type "Locations" should be named "RemoveByTimestampResponse" or "RemoveRemoveByTimestampResponse".

(RPC_RESPONSE_STANDARD_NAME)


126-126: "payload.v1.Remove.Request" is used as the request or response type for multiple RPCs.

(RPC_REQUEST_RESPONSE_UNIQUE)


126-126: RPC request type "Request" should be named "StreamRemoveRequest" or "RemoveStreamRemoveRequest".

(RPC_REQUEST_STANDARD_NAME)


126-126: RPC response type "StreamLocation" should be named "StreamRemoveResponse" or "RemoveStreamRemoveResponse".

(RPC_RESPONSE_STANDARD_NAME)

apis/proto/v1/vald/object.proto

31-31: Service name "Object" should be suffixed with "Service".

(SERVICE_SUFFIX)


55-57: RPC "Exists" has the same type "payload.v1.Object.ID" for the request and response.

(RPC_REQUEST_RESPONSE_UNIQUE)


55-55: RPC request type "ID" should be named "ExistsRequest" or "ObjectExistsRequest".

(RPC_REQUEST_STANDARD_NAME)


55-55: RPC response type "ID" should be named "ExistsResponse" or "ObjectExistsResponse".

(RPC_RESPONSE_STANDARD_NAME)


82-84: "payload.v1.Object.VectorRequest" is used as the request or response type for multiple RPCs.

(RPC_REQUEST_RESPONSE_UNIQUE)


82-82: RPC request type "VectorRequest" should be named "GetObjectRequest" or "ObjectGetObjectRequest".

(RPC_REQUEST_STANDARD_NAME)


82-82: RPC response type "Vector" should be named "GetObjectResponse" or "ObjectGetObjectResponse".

(RPC_RESPONSE_STANDARD_NAME)


111-111: "payload.v1.Object.VectorRequest" is used as the request or response type for multiple RPCs.

(RPC_REQUEST_RESPONSE_UNIQUE)


111-111: RPC request type "VectorRequest" should be named "StreamGetObjectRequest" or "ObjectStreamGetObjectRequest".

(RPC_REQUEST_STANDARD_NAME)


111-111: RPC response type "StreamVector" should be named "StreamGetObjectResponse" or "ObjectStreamGetObjectResponse".

(RPC_RESPONSE_STANDARD_NAME)


121-121: RPC request type "Request" should be named "StreamListObjectRequest" or "ObjectStreamListObjectRequest".

(RPC_REQUEST_STANDARD_NAME)


121-121: RPC response type "Response" should be named "StreamListObjectResponse" or "ObjectStreamListObjectResponse".

(RPC_RESPONSE_STANDARD_NAME)

apis/proto/v1/vald/index.proto

31-31: Service name "Index" should be suffixed with "Service".

(SERVICE_SUFFIX)


34-36: "payload.v1.Empty" is used as the request or response type for multiple RPCs.

(RPC_REQUEST_RESPONSE_UNIQUE)


34-34: RPC request type "Empty" should be named "IndexInfoRequest" or "IndexIndexInfoRequest".

(RPC_REQUEST_STANDARD_NAME)


34-34: RPC response type "Count" should be named "IndexInfoResponse" or "IndexIndexInfoResponse".

(RPC_RESPONSE_STANDARD_NAME)


40-42: "payload.v1.Empty" is used as the request or response type for multiple RPCs.

(RPC_REQUEST_RESPONSE_UNIQUE)


40-40: RPC request type "Empty" should be named "IndexDetailRequest" or "IndexIndexDetailRequest".

(RPC_REQUEST_STANDARD_NAME)


40-40: RPC response type "Detail" should be named "IndexDetailResponse" or "IndexIndexDetailResponse".

(RPC_RESPONSE_STANDARD_NAME)


46-48: "payload.v1.Empty" is used as the request or response type for multiple RPCs.

(RPC_REQUEST_RESPONSE_UNIQUE)


46-46: RPC request type "Empty" should be named "IndexStatisticsRequest" or "IndexIndexStatisticsRequest".

(RPC_REQUEST_STANDARD_NAME)


46-46: RPC response type "Statistics" should be named "IndexStatisticsResponse" or "IndexIndexStatisticsResponse".

(RPC_RESPONSE_STANDARD_NAME)


52-54: "payload.v1.Empty" is used as the request or response type for multiple RPCs.

(RPC_REQUEST_RESPONSE_UNIQUE)


52-52: RPC request type "Empty" should be named "IndexStatisticsDetailRequest" or "IndexIndexStatisticsDetailRequest".

(RPC_REQUEST_STANDARD_NAME)


52-52: RPC response type "StatisticsDetail" should be named "IndexStatisticsDetailResponse" or "IndexIndexStatisticsDetailResponse".

(RPC_RESPONSE_STANDARD_NAME)

🪛 LanguageTool
apis/docs/v1/remove.md

[style] ~225-~225: Specify a number, remove phrase, or simply use “many” or “numerous”
Context: .... It's the recommended method to remove a large number of vectors. ### Input - the scheme of `p...

(LARGE_NUMBER_OF)

apis/docs/v1/upsert.md

[style] ~149-~149: Specify a number, remove phrase, or simply use “many” or “numerous”
Context: .... It’s the recommended method to upsert a large number of vectors. ### Input - the scheme of `p...

(LARGE_NUMBER_OF)

apis/docs/v1/index.md

[grammar] ~63-~63: The noun should probably be in the singular form.
Context: ...C to get the index information for each agents. ### Input - the scheme of `payload.v...

(EVERY_EACH_SINGULAR)


[grammar] ~109-~109: The noun should probably be in the singular form.
Context: ...Entry | repeated | count infos for each agents | | replica | uint32 ...

(EVERY_EACH_SINGULAR)


[grammar] ~231-~231: The noun should probably be in the singular form.
Context: ...PC to get the index statistics for each agents. ### Input - the scheme of `payload.v...

(EVERY_EACH_SINGULAR)


[grammar] ~304-~304: The noun should probably be in the singular form.
Context: ...Entry | repeated | count infos for each agents | - Info.Index.StatisticsDetail.Deta...

(EVERY_EACH_SINGULAR)

apis/docs/v1/update.md

[grammar] ~143-~143: An article may be missing.
Context: ... | | ALREADY_EXISTS | Request pair of ID and vector is already inserted. ...

(BUNCH_OF)


[uncategorized] ~151-~151: ‘Amount of’ should usually only be used with uncountable or mass nouns. Consider using “number” if this is not the case.
Context: ... recommended method to update the large amount of vectors. ### Input - the scheme of...

(AMOUNTOF_TO_NUMBEROF)


[grammar] ~286-~286: An article may be missing.
Context: ... | | ALREADY_EXISTS | Request pair of ID and vector is already inserted. ...

(BUNCH_OF)


[grammar] ~439-~439: An article may be missing.
Context: ... | | ALREADY_EXISTS | Request pair of ID and vector is already inserted. ...

(BUNCH_OF)

apis/docs/v1/insert.md

[style] ~143-~143: Specify a number, remove phrase, or simply use “many” or “numerous”
Context: .... It's the recommended method to insert a large number of vectors. ### Input - the scheme of `p...

(LARGE_NUMBER_OF)

apis/docs/v1/filter.md

[uncategorized] ~7-~7: Possible missing comma found.
Context: ...t to user-defined ingress/egress filter components allowing user to run custom logic. ```...

(AI_HYDRA_LEO_MISSING_COMMA)


[style] ~567-~567: Specify a number, remove phrase, or simply use “many” or “numerous”
Context: .... It's the recommended method to insert a large number of objects. ### Input - the scheme of `p...

(LARGE_NUMBER_OF)


[uncategorized] ~927-~927: ‘Amount of’ should usually only be used with uncountable or mass nouns. Consider using “number” if this is not the case.
Context: ... recommended method to update the large amount of objects. ### Input - the scheme of...

(AMOUNTOF_TO_NUMBEROF)

🪛 Markdownlint (0.37.0)
apis/docs/v1/remove.md

149-149: Expected: fenced; Actual: indented
Code block style

(MD046, code-block-style)

apis/docs/v1/upsert.md

72-72: Expected: fenced; Actual: indented
Code block style

(MD046, code-block-style)


202-202: Expected: fenced; Actual: indented
Code block style

(MD046, code-block-style)


356-356: Expected: fenced; Actual: indented
Code block style

(MD046, code-block-style)

apis/docs/v1/update.md

73-73: Expected: fenced; Actual: indented
Code block style

(MD046, code-block-style)


204-204: Expected: fenced; Actual: indented
Code block style

(MD046, code-block-style)


359-359: Expected: fenced; Actual: indented
Code block style

(MD046, code-block-style)

apis/docs/v1/filter.md

866-866: Expected: fenced; Actual: indented
Code block style

(MD046, code-block-style)


980-980: Expected: fenced; Actual: indented
Code block style

(MD046, code-block-style)


1118-1118: Expected: fenced; Actual: indented
Code block style

(MD046, code-block-style)


1239-1239: Expected: fenced; Actual: indented
Code block style

(MD046, code-block-style)


1350-1350: Expected: fenced; Actual: indented
Code block style

(MD046, code-block-style)


1488-1488: Expected: fenced; Actual: indented
Code block style

(MD046, code-block-style)

🔇 Additional comments (15)
apis/proto/v1/vald/flush.proto (1)

29-30: LGTM! Documentation improvement is clear and helpful.

The new overview section provides a clear and concise explanation of the Flush Service's responsibility. The use of backticks for vald-agent follows proper documentation conventions.

apis/docs/v1/upsert.md (2)

1-15: LGTM! Clear and well-structured service definition.

The overview effectively explains the purpose of the Upsert Service, and the service definition clearly shows the three available RPC methods.


1-436: Overall documentation is comprehensive and well-structured!

The documentation effectively covers all three RPC methods with clear explanations of their functionality, detailed input/output schemas, status codes, and helpful troubleshooting guidance. While there are some minor formatting issues that could be improved, the technical content is accurate and valuable.

🧰 Tools
🪛 LanguageTool

[style] ~149-~149: Specify a number, remove phrase, or simply use “many” or “numerous”
Context: .... It’s the recommended method to upsert a large number of vectors. ### Input - the scheme of `p...

(LARGE_NUMBER_OF)

🪛 Markdownlint (0.37.0)

72-72: Expected: fenced; Actual: indented
Code block style

(MD046, code-block-style)


202-202: Expected: fenced; Actual: indented
Code block style

(MD046, code-block-style)


356-356: Expected: fenced; Actual: indented
Code block style

(MD046, code-block-style)

apis/docs/v1/payload.tmpl (1)

6-25: Verify recursion termination in the _bfs template

The _bfs template defined between lines 6-25 uses recursion to perform a breadth-first search. Please ensure that the recursion has proper termination conditions to prevent potential infinite loops or stack overflows when processing complex or cyclic data structures.

Makefile.d/proto.mk (1)

67-70: Verify documentation generation dependencies

The proto/gen/api/docs target depends on generated files but doesn't explicitly depend on the templates needed to generate them.

apis/proto/v1/vald/upsert.proto (3)

32-56: LGTM! Well-documented Upsert method

The documentation provides comprehensive information about the method's functionality, status codes, and troubleshooting guidance.


64-91: LGTM! Clear documentation for StreamUpsert method

The documentation effectively explains the bidirectional streaming capability and includes detailed troubleshooting information.


94-123: LGTM! Important notice about gRPC message size limitation

Good practice to warn users about potential message size limitations in MultiUpsert.

apis/proto/v1/vald/remove.proto (2)

63-89: LGTM! Clear explanation of timestamp-based removal

Excellent documentation of the AND condition behavior for multiple timestamps, which helps users understand how to perform range-based deletions.


97-125: LGTM! Well-documented streaming functionality

The documentation effectively explains the bidirectional streaming capability and includes comprehensive troubleshooting information.

apis/docs/v1/index.md (2)

1-17: LGTM: Clear and concise service overview

The overview section and service definition are well-structured and provide a clear understanding of the Index service's purpose and available methods.


116-128: LGTM: Comprehensive status code documentation

The status codes section is well-documented with clear descriptions for each possible response code.

apis/docs/v1/insert.md (2)

1-17: LGTM: Well-structured service documentation

The Insert service documentation is clear and well-organized, with a good overview and clear method definitions.


131-144: LGTM: Excellent troubleshooting documentation

The troubleshooting section provides clear, actionable guidance for each error condition.

🧰 Tools
🪛 LanguageTool

[style] ~143-~143: Specify a number, remove phrase, or simply use “many” or “numerous”
Context: .... It's the recommended method to insert a large number of vectors. ### Input - the scheme of `p...

(LARGE_NUMBER_OF)

apis/proto/v1/vald/search.proto (1)

29-407: Documentation improvements look great!

The enhanced documentation with clear overviews, status codes, and troubleshooting guidance will greatly help API users understand and debug issues.

🧰 Tools
🪛 buf (1.47.2)

31-31: Service name "Search" should be suffixed with "Service".

(SERVICE_SUFFIX)


56-61: "payload.v1.Search.Request" is used as the request or response type for multiple RPCs.

(RPC_REQUEST_RESPONSE_UNIQUE)


56-61: "payload.v1.Search.Response" is used as the request or response type for multiple RPCs.

(RPC_REQUEST_RESPONSE_UNIQUE)


56-56: RPC request type "Request" should be named "SearchRequest" or "SearchSearchRequest".

(RPC_REQUEST_STANDARD_NAME)


56-56: RPC response type "Response" should be named "SearchResponse" or "SearchSearchResponse".

(RPC_RESPONSE_STANDARD_NAME)


88-93: "payload.v1.Search.IDRequest" is used as the request or response type for multiple RPCs.

(RPC_REQUEST_RESPONSE_UNIQUE)


88-93: "payload.v1.Search.Response" is used as the request or response type for multiple RPCs.

(RPC_REQUEST_RESPONSE_UNIQUE)


88-88: RPC request type "IDRequest" should be named "SearchByIDRequest" or "SearchSearchByIDRequest".

(RPC_REQUEST_STANDARD_NAME)


88-88: RPC response type "Response" should be named "SearchByIDResponse" or "SearchSearchByIDResponse".

(RPC_RESPONSE_STANDARD_NAME)


121-121: "payload.v1.Search.Request" is used as the request or response type for multiple RPCs.

(RPC_REQUEST_RESPONSE_UNIQUE)


121-121: "payload.v1.Search.StreamResponse" is used as the request or response type for multiple RPCs.

(RPC_REQUEST_RESPONSE_UNIQUE)


121-121: RPC request type "Request" should be named "StreamSearchRequest" or "SearchStreamSearchRequest".

(RPC_REQUEST_STANDARD_NAME)


121-121: RPC response type "StreamResponse" should be named "StreamSearchResponse" or "SearchStreamSearchResponse".

(RPC_RESPONSE_STANDARD_NAME)


149-149: "payload.v1.Search.IDRequest" is used as the request or response type for multiple RPCs.

(RPC_REQUEST_RESPONSE_UNIQUE)


149-149: "payload.v1.Search.StreamResponse" is used as the request or response type for multiple RPCs.

(RPC_REQUEST_RESPONSE_UNIQUE)


149-149: RPC request type "IDRequest" should be named "StreamSearchByIDRequest" or "SearchStreamSearchByIDRequest".

(RPC_REQUEST_STANDARD_NAME)


149-149: RPC response type "StreamResponse" should be named "StreamSearchByIDResponse" or "SearchStreamSearchByIDResponse".

(RPC_RESPONSE_STANDARD_NAME)


180-185: "payload.v1.Search.MultiRequest" is used as the request or response type for multiple RPCs.

(RPC_REQUEST_RESPONSE_UNIQUE)


180-185: "payload.v1.Search.Responses" is used as the request or response type for multiple RPCs.

(RPC_REQUEST_RESPONSE_UNIQUE)


180-180: RPC request type "MultiRequest" should be named "MultiSearchRequest" or "SearchMultiSearchRequest".

(RPC_REQUEST_STANDARD_NAME)


180-180: RPC response type "Responses" should be named "MultiSearchResponse" or "SearchMultiSearchResponse".

(RPC_RESPONSE_STANDARD_NAME)


216-221: "payload.v1.Search.MultiIDRequest" is used as the request or response type for multiple RPCs.

(RPC_REQUEST_RESPONSE_UNIQUE)


216-221: "payload.v1.Search.Responses" is used as the request or response type for multiple RPCs.

(RPC_REQUEST_RESPONSE_UNIQUE)


216-216: RPC request type "MultiIDRequest" should be named "MultiSearchByIDRequest" or "SearchMultiSearchByIDRequest".

(RPC_REQUEST_STANDARD_NAME)


216-216: RPC response type "Responses" should be named "MultiSearchByIDResponse" or "SearchMultiSearchByIDResponse".

(RPC_RESPONSE_STANDARD_NAME)


247-252: "payload.v1.Search.Request" is used as the request or response type for multiple RPCs.

(RPC_REQUEST_RESPONSE_UNIQUE)


247-252: "payload.v1.Search.Response" is used as the request or response type for multiple RPCs.

(RPC_REQUEST_RESPONSE_UNIQUE)


247-247: RPC request type "Request" should be named "LinearSearchRequest" or "SearchLinearSearchRequest".

(RPC_REQUEST_STANDARD_NAME)


247-247: RPC response type "Response" should be named "LinearSearchResponse" or "SearchLinearSearchResponse".

(RPC_RESPONSE_STANDARD_NAME)


280-285: "payload.v1.Search.IDRequest" is used as the request or response type for multiple RPCs.

(RPC_REQUEST_RESPONSE_UNIQUE)


280-285: "payload.v1.Search.Response" is used as the request or response type for multiple RPCs.

(RPC_REQUEST_RESPONSE_UNIQUE)


280-280: RPC request type "IDRequest" should be named "LinearSearchByIDRequest" or "SearchLinearSearchByIDRequest".

(RPC_REQUEST_STANDARD_NAME)


280-280: RPC response type "Response" should be named "LinearSearchByIDResponse" or "SearchLinearSearchByIDResponse".

(RPC_RESPONSE_STANDARD_NAME)


313-313: "payload.v1.Search.Request" is used as the request or response type for multiple RPCs.

(RPC_REQUEST_RESPONSE_UNIQUE)


313-313: "payload.v1.Search.StreamResponse" is used as the request or response type for multiple RPCs.

(RPC_REQUEST_RESPONSE_UNIQUE)


313-313: RPC request type "Request" should be named "StreamLinearSearchRequest" or "SearchStreamLinearSearchRequest".

(RPC_REQUEST_STANDARD_NAME)


313-313: RPC response type "StreamResponse" should be named "StreamLinearSearchResponse" or "SearchStreamLinearSearchResponse".

(RPC_RESPONSE_STANDARD_NAME)


341-341: "payload.v1.Search.IDRequest" is used as the request or response type for multiple RPCs.

(RPC_REQUEST_RESPONSE_UNIQUE)


341-341: "payload.v1.Search.StreamResponse" is used as the request or response type for multiple RPCs.

(RPC_REQUEST_RESPONSE_UNIQUE)


341-341: RPC request type "IDRequest" should be named "StreamLinearSearchByIDRequest" or "SearchStreamLinearSearchByIDRequest".

(RPC_REQUEST_STANDARD_NAME)


341-341: RPC response type "StreamResponse" should be named "StreamLinearSearchByIDResponse" or "SearchStreamLinearSearchByIDResponse".

(RPC_RESPONSE_STANDARD_NAME)


372-377: "payload.v1.Search.MultiRequest" is used as the request or response type for multiple RPCs.

(RPC_REQUEST_RESPONSE_UNIQUE)


372-377: "payload.v1.Search.Responses" is used as the request or response type for multiple RPCs.

(RPC_REQUEST_RESPONSE_UNIQUE)


372-372: RPC request type "MultiRequest" should be named "MultiLinearSearchRequest" or "SearchMultiLinearSearchRequest".

(RPC_REQUEST_STANDARD_NAME)


372-372: RPC response type "Responses" should be named "MultiLinearSearchResponse" or "SearchMultiLinearSearchResponse".

(RPC_RESPONSE_STANDARD_NAME)

apis/proto/v1/mirror/mirror.proto Show resolved Hide resolved
apis/docs/v1/flush.md Show resolved Hide resolved
apis/docs/v1/object.md Show resolved Hide resolved
apis/docs/v1/object.md Show resolved Hide resolved
apis/docs/v1/remove.md Show resolved Hide resolved
apis/docs/v1/update.md Show resolved Hide resolved
apis/proto/v1/vald/index.proto Show resolved Hide resolved
@vdaas-ci
Copy link
Collaborator Author

[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

Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

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

Remaining comments which cannot be posted as a review comment to avoid GitHub Rate Limit

LanguageTool

[LanguageTool] reported by reviewdog 🐶
Possible typo: you repeated a word (ENGLISH_WORD_REPEAT_RULE)
Suggestions: Config
Rule: https://community.languagetool.org/rule/show/ENGLISH_WORD_REPEAT_RULE?lang=en-US
Category: MISC

Insert.Config config = 2;


[LanguageTool] reported by reviewdog 🐶
Specify a number, remove phrase, or simply use “many” or “numerous” (LARGE_NUMBER_OF[1])
Suggestions: many, numerous
URL: https://languagetool.org/insights/post/wordiness/
Rule: https://community.languagetool.org/rule/show/LARGE_NUMBER_OF?lang=en-US&subId=1
Category: REDUNDANCY

It's the recommended method to insert a large number of vectors.


[LanguageTool] reported by reviewdog 🐶
Possible typo: you repeated a word (ENGLISH_WORD_REPEAT_RULE)
Suggestions: Vector
Rule: https://community.languagetool.org/rule/show/ENGLISH_WORD_REPEAT_RULE?lang=en-US
Category: MISC

Object.Vector vector = 1;


[LanguageTool] reported by reviewdog 🐶
Possible typo: you repeated a word (ENGLISH_WORD_REPEAT_RULE)
Suggestions: Config
Rule: https://community.languagetool.org/rule/show/ENGLISH_WORD_REPEAT_RULE?lang=en-US
Category: MISC

Insert.Config config = 2;


[LanguageTool] reported by reviewdog 🐶
Possible typo: you repeated a word (ENGLISH_WORD_REPEAT_RULE)
Suggestions: Location
Rule: https://community.languagetool.org/rule/show/ENGLISH_WORD_REPEAT_RULE?lang=en-US
Category: MISC

Object.Location location = 1;


[LanguageTool] reported by reviewdog 🐶
Possible typo: you repeated a word (ENGLISH_WORD_REPEAT_RULE)
Suggestions: Status
Rule: https://community.languagetool.org/rule/show/ENGLISH_WORD_REPEAT_RULE?lang=en-US
Category: MISC

google.rpc.Status status = 2;


[LanguageTool] reported by reviewdog 🐶
Possible typo: you repeated a word (ENGLISH_WORD_REPEAT_RULE)
Suggestions: Vector
Rule: https://community.languagetool.org/rule/show/ENGLISH_WORD_REPEAT_RULE?lang=en-US
Category: MISC

Object.Vector vector = 1;


[LanguageTool] reported by reviewdog 🐶
Possible typo: you repeated a word (ENGLISH_WORD_REPEAT_RULE)
Suggestions: Config
Rule: https://community.languagetool.org/rule/show/ENGLISH_WORD_REPEAT_RULE?lang=en-US
Category: MISC

Insert.Config config = 2;


[LanguageTool] reported by reviewdog 🐶
Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION[1])
Suggestions: ``
Rule: https://community.languagetool.org/rule/show/UNLIKELY_OPENING_PUNCTUATION?lang=en-US&subId=1
Category: PUNCTUATION

rpc Register(payload.v1.Mirror.Targets) returns (payload.v1.Mirror.Targets) {}


[LanguageTool] reported by reviewdog 🐶
Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION[1])
Suggestions: ``
Rule: https://community.languagetool.org/rule/show/UNLIKELY_OPENING_PUNCTUATION?lang=en-US&subId=1
Category: PUNCTUATION


[LanguageTool] reported by reviewdog 🐶
Possible typo: you repeated a word (ENGLISH_WORD_REPEAT_RULE)
Suggestions: ID
Rule: https://community.languagetool.org/rule/show/ENGLISH_WORD_REPEAT_RULE?lang=en-US
Category: MISC

Object.ID id = 1;


[LanguageTool] reported by reviewdog 🐶
Possible typo: you repeated a word (ENGLISH_WORD_REPEAT_RULE)
Suggestions: ID
Rule: https://community.languagetool.org/rule/show/ENGLISH_WORD_REPEAT_RULE?lang=en-US
Category: MISC

Object.ID id = 1;


[LanguageTool] reported by reviewdog 🐶
Possible typo: you repeated a word (ENGLISH_WORD_REPEAT_RULE)
Suggestions: Vector
Rule: https://community.languagetool.org/rule/show/ENGLISH_WORD_REPEAT_RULE?lang=en-US
Category: MISC

Object.Vector vector = 1;


[LanguageTool] reported by reviewdog 🐶
Possible typo: you repeated a word (ENGLISH_WORD_REPEAT_RULE)
Suggestions: Status
Rule: https://community.languagetool.org/rule/show/ENGLISH_WORD_REPEAT_RULE?lang=en-US
Category: MISC

google.rpc.Status status = 2;


[LanguageTool] reported by reviewdog 🐶
Possible typo: you repeated a word (ENGLISH_WORD_REPEAT_RULE)
Suggestions: Vector
Rule: https://community.languagetool.org/rule/show/ENGLISH_WORD_REPEAT_RULE?lang=en-US
Category: MISC

Object.Vector vector = 1;


[LanguageTool] reported by reviewdog 🐶
Possible typo: you repeated a word (ENGLISH_WORD_REPEAT_RULE)
Suggestions: Status
Rule: https://community.languagetool.org/rule/show/ENGLISH_WORD_REPEAT_RULE?lang=en-US
Category: MISC

google.rpc.Status status = 2;


[LanguageTool] reported by reviewdog 🐶
Possible typo: you repeated a word (ENGLISH_WORD_REPEAT_RULE)
Suggestions: ID
Rule: https://community.languagetool.org/rule/show/ENGLISH_WORD_REPEAT_RULE?lang=en-US
Category: MISC

Object.ID id = 1;


[LanguageTool] reported by reviewdog 🐶
Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION[1])
Suggestions: ``
Rule: https://community.languagetool.org/rule/show/UNLIKELY_OPENING_PUNCTUATION?lang=en-US&subId=1
Category: PUNCTUATION


[LanguageTool] reported by reviewdog 🐶
Possible typo: you repeated a word (ENGLISH_WORD_REPEAT_RULE)
Suggestions: ID
Rule: https://community.languagetool.org/rule/show/ENGLISH_WORD_REPEAT_RULE?lang=en-US
Category: MISC

Object.ID id = 1;


[LanguageTool] reported by reviewdog 🐶
Possible typo: you repeated a word (ENGLISH_WORD_REPEAT_RULE)
Suggestions: Config
Rule: https://community.languagetool.org/rule/show/ENGLISH_WORD_REPEAT_RULE?lang=en-US
Category: MISC

Remove.Config config = 2;


[LanguageTool] reported by reviewdog 🐶
Possible typo: you repeated a word (ENGLISH_WORD_REPEAT_RULE)
Suggestions: Operator
Rule: https://community.languagetool.org/rule/show/ENGLISH_WORD_REPEAT_RULE?lang=en-US
Category: MISC

Remove.Timestamp.Operator operator = 2;


[LanguageTool] reported by reviewdog 🐶
Specify a number, remove phrase, or simply use “many” or “numerous” (LARGE_NUMBER_OF[1])
Suggestions: many, numerous
URL: https://languagetool.org/insights/post/wordiness/
Rule: https://community.languagetool.org/rule/show/LARGE_NUMBER_OF?lang=en-US&subId=1
Category: REDUNDANCY

It's the recommended method to remove a large number of vectors.


[LanguageTool] reported by reviewdog 🐶
Possible typo: you repeated a word (ENGLISH_WORD_REPEAT_RULE)
Suggestions: ID
Rule: https://community.languagetool.org/rule/show/ENGLISH_WORD_REPEAT_RULE?lang=en-US
Category: MISC

Object.ID id = 1;


[LanguageTool] reported by reviewdog 🐶
Possible typo: you repeated a word (ENGLISH_WORD_REPEAT_RULE)
Suggestions: Config
Rule: https://community.languagetool.org/rule/show/ENGLISH_WORD_REPEAT_RULE?lang=en-US
Category: MISC

Remove.Config config = 2;


[LanguageTool] reported by reviewdog 🐶
Possible typo: you repeated a word (ENGLISH_WORD_REPEAT_RULE)
Suggestions: Location
Rule: https://community.languagetool.org/rule/show/ENGLISH_WORD_REPEAT_RULE?lang=en-US
Category: MISC

Object.Location location = 1;


[LanguageTool] reported by reviewdog 🐶
Possible typo: you repeated a word (ENGLISH_WORD_REPEAT_RULE)
Suggestions: Status
Rule: https://community.languagetool.org/rule/show/ENGLISH_WORD_REPEAT_RULE?lang=en-US
Category: MISC

google.rpc.Status status = 2;


[LanguageTool] reported by reviewdog 🐶
Possible typo: you repeated a word (ENGLISH_WORD_REPEAT_RULE)
Suggestions: ID
Rule: https://community.languagetool.org/rule/show/ENGLISH_WORD_REPEAT_RULE?lang=en-US
Category: MISC

Object.ID id = 1;


[LanguageTool] reported by reviewdog 🐶
Possible typo: you repeated a word (ENGLISH_WORD_REPEAT_RULE)
Suggestions: Config
Rule: https://community.languagetool.org/rule/show/ENGLISH_WORD_REPEAT_RULE?lang=en-US
Category: MISC

Remove.Config config = 2;


[LanguageTool] reported by reviewdog 🐶
Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION[1])
Suggestions: ``
Rule: https://community.languagetool.org/rule/show/UNLIKELY_OPENING_PUNCTUATION?lang=en-US&subId=1
Category: PUNCTUATION


[LanguageTool] reported by reviewdog 🐶
Possible typo: you repeated a word (ENGLISH_WORD_REPEAT_RULE)
Suggestions: Config
Rule: https://community.languagetool.org/rule/show/ENGLISH_WORD_REPEAT_RULE?lang=en-US
Category: MISC

Search.Config config = 2;


[LanguageTool] reported by reviewdog 🐶
Possible typo: you repeated a word (ENGLISH_WORD_REPEAT_RULE)
Suggestions: Config
Rule: https://community.languagetool.org/rule/show/ENGLISH_WORD_REPEAT_RULE?lang=en-US
Category: MISC

Search.Config config = 2;


[LanguageTool] reported by reviewdog 🐶
Possible typo: you repeated a word (ENGLISH_WORD_REPEAT_RULE)
Suggestions: Config
Rule: https://community.languagetool.org/rule/show/ENGLISH_WORD_REPEAT_RULE?lang=en-US
Category: MISC

Search.Config config = 2;


[LanguageTool] reported by reviewdog 🐶
Possible typo: you repeated a word (ENGLISH_WORD_REPEAT_RULE)
Suggestions: Response
Rule: https://community.languagetool.org/rule/show/ENGLISH_WORD_REPEAT_RULE?lang=en-US
Category: MISC

Search.Response response = 1;


[LanguageTool] reported by reviewdog 🐶
Possible typo: you repeated a word (ENGLISH_WORD_REPEAT_RULE)
Suggestions: Status
Rule: https://community.languagetool.org/rule/show/ENGLISH_WORD_REPEAT_RULE?lang=en-US
Category: MISC

google.rpc.Status status = 2;


[LanguageTool] reported by reviewdog 🐶
Possible typo: you repeated a word (ENGLISH_WORD_REPEAT_RULE)
Suggestions: Config
Rule: https://community.languagetool.org/rule/show/ENGLISH_WORD_REPEAT_RULE?lang=en-US
Category: MISC

Search.Config config = 2;


[LanguageTool] reported by reviewdog 🐶
Possible typo: you repeated a word (ENGLISH_WORD_REPEAT_RULE)
Suggestions: Response
Rule: https://community.languagetool.org/rule/show/ENGLISH_WORD_REPEAT_RULE?lang=en-US
Category: MISC

Search.Response response = 1;


[LanguageTool] reported by reviewdog 🐶
Possible typo: you repeated a word (ENGLISH_WORD_REPEAT_RULE)
Suggestions: Status
Rule: https://community.languagetool.org/rule/show/ENGLISH_WORD_REPEAT_RULE?lang=en-US
Category: MISC

google.rpc.Status status = 2;


[LanguageTool] reported by reviewdog 🐶
Possible typo: you repeated a word (ENGLISH_WORD_REPEAT_RULE)
Suggestions: Config
Rule: https://community.languagetool.org/rule/show/ENGLISH_WORD_REPEAT_RULE?lang=en-US
Category: MISC

Search.Config config = 2;


[LanguageTool] reported by reviewdog 🐶
Possible typo: you repeated a word (ENGLISH_WORD_REPEAT_RULE)
Suggestions: Config
Rule: https://community.languagetool.org/rule/show/ENGLISH_WORD_REPEAT_RULE?lang=en-US
Category: MISC

Search.Config config = 2;


[LanguageTool] reported by reviewdog 🐶
Possible typo: you repeated a word (ENGLISH_WORD_REPEAT_RULE)
Suggestions: Config
Rule: https://community.languagetool.org/rule/show/ENGLISH_WORD_REPEAT_RULE?lang=en-US
Category: MISC

Search.Config config = 2;


[LanguageTool] reported by reviewdog 🐶
Possible typo: you repeated a word (ENGLISH_WORD_REPEAT_RULE)
Suggestions: Config
Rule: https://community.languagetool.org/rule/show/ENGLISH_WORD_REPEAT_RULE?lang=en-US
Category: MISC

Search.Config config = 2;


[LanguageTool] reported by reviewdog 🐶
Possible typo: you repeated a word (ENGLISH_WORD_REPEAT_RULE)
Suggestions: Config
Rule: https://community.languagetool.org/rule/show/ENGLISH_WORD_REPEAT_RULE?lang=en-US
Category: MISC

Search.Config config = 2;


[LanguageTool] reported by reviewdog 🐶
Possible typo: you repeated a word (ENGLISH_WORD_REPEAT_RULE)
Suggestions: Response
Rule: https://community.languagetool.org/rule/show/ENGLISH_WORD_REPEAT_RULE?lang=en-US
Category: MISC

Search.Response response = 1;


[LanguageTool] reported by reviewdog 🐶
Possible typo: you repeated a word (ENGLISH_WORD_REPEAT_RULE)
Suggestions: Status
Rule: https://community.languagetool.org/rule/show/ENGLISH_WORD_REPEAT_RULE?lang=en-US
Category: MISC

google.rpc.Status status = 2;


[LanguageTool] reported by reviewdog 🐶
Possible typo: you repeated a word (ENGLISH_WORD_REPEAT_RULE)
Suggestions: Config
Rule: https://community.languagetool.org/rule/show/ENGLISH_WORD_REPEAT_RULE?lang=en-US
Category: MISC

Search.Config config = 2;


[LanguageTool] reported by reviewdog 🐶
Possible typo: you repeated a word (ENGLISH_WORD_REPEAT_RULE)
Suggestions: Response
Rule: https://community.languagetool.org/rule/show/ENGLISH_WORD_REPEAT_RULE?lang=en-US
Category: MISC

Search.Response response = 1;


[LanguageTool] reported by reviewdog 🐶
Possible typo: you repeated a word (ENGLISH_WORD_REPEAT_RULE)
Suggestions: Status
Rule: https://community.languagetool.org/rule/show/ENGLISH_WORD_REPEAT_RULE?lang=en-US
Category: MISC

google.rpc.Status status = 2;


[LanguageTool] reported by reviewdog 🐶
Possible typo: you repeated a word (ENGLISH_WORD_REPEAT_RULE)
Suggestions: Config
Rule: https://community.languagetool.org/rule/show/ENGLISH_WORD_REPEAT_RULE?lang=en-US
Category: MISC

Search.Config config = 2;


[LanguageTool] reported by reviewdog 🐶
Possible typo: you repeated a word (ENGLISH_WORD_REPEAT_RULE)
Suggestions: Config
Rule: https://community.languagetool.org/rule/show/ENGLISH_WORD_REPEAT_RULE?lang=en-US
Category: MISC

Search.Config config = 2;


[LanguageTool] reported by reviewdog 🐶
Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION[1])
Suggestions: ``
Rule: https://community.languagetool.org/rule/show/UNLIKELY_OPENING_PUNCTUATION?lang=en-US&subId=1
Category: PUNCTUATION


[LanguageTool] reported by reviewdog 🐶
Possible typo: you repeated a word (ENGLISH_WORD_REPEAT_RULE)
Suggestions: Vector
Rule: https://community.languagetool.org/rule/show/ENGLISH_WORD_REPEAT_RULE?lang=en-US
Category: MISC

Object.Vector vector = 1;


[LanguageTool] reported by reviewdog 🐶
Possible typo: you repeated a word (ENGLISH_WORD_REPEAT_RULE)
Suggestions: Config
Rule: https://community.languagetool.org/rule/show/ENGLISH_WORD_REPEAT_RULE?lang=en-US
Category: MISC

Update.Config config = 2;


[LanguageTool] reported by reviewdog 🐶
An article may be missing. (BUNCH_OF[6])
Suggestions: a pair of
Rule: https://community.languagetool.org/rule/show/BUNCH_OF?lang=en-US&subId=6
Category: GRAMMAR

| ALREADY_EXISTS | Request pair of ID and vector is already inserted. | Change request ID. |


[LanguageTool] reported by reviewdog 🐶
Possible typo: you repeated a word (ENGLISH_WORD_REPEAT_RULE)
Suggestions: Vector
Rule: https://community.languagetool.org/rule/show/ENGLISH_WORD_REPEAT_RULE?lang=en-US
Category: MISC

Object.Vector vector = 1;


[LanguageTool] reported by reviewdog 🐶
Possible typo: you repeated a word (ENGLISH_WORD_REPEAT_RULE)
Suggestions: Config
Rule: https://community.languagetool.org/rule/show/ENGLISH_WORD_REPEAT_RULE?lang=en-US
Category: MISC

Update.Config config = 2;


[LanguageTool] reported by reviewdog 🐶
Possible typo: you repeated a word (ENGLISH_WORD_REPEAT_RULE)
Suggestions: Location
Rule: https://community.languagetool.org/rule/show/ENGLISH_WORD_REPEAT_RULE?lang=en-US
Category: MISC

Object.Location location = 1;


[LanguageTool] reported by reviewdog 🐶
Possible typo: you repeated a word (ENGLISH_WORD_REPEAT_RULE)
Suggestions: Status
Rule: https://community.languagetool.org/rule/show/ENGLISH_WORD_REPEAT_RULE?lang=en-US
Category: MISC

google.rpc.Status status = 2;


[LanguageTool] reported by reviewdog 🐶
An article may be missing. (BUNCH_OF[6])
Suggestions: a pair of
Rule: https://community.languagetool.org/rule/show/BUNCH_OF?lang=en-US&subId=6
Category: GRAMMAR

| ALREADY_EXISTS | Request pair of ID and vector is already inserted. | Change request ID. |


[LanguageTool] reported by reviewdog 🐶
Possible typo: you repeated a word (ENGLISH_WORD_REPEAT_RULE)
Suggestions: Vector
Rule: https://community.languagetool.org/rule/show/ENGLISH_WORD_REPEAT_RULE?lang=en-US
Category: MISC

Object.Vector vector = 1;


[LanguageTool] reported by reviewdog 🐶
Possible typo: you repeated a word (ENGLISH_WORD_REPEAT_RULE)
Suggestions: Config
Rule: https://community.languagetool.org/rule/show/ENGLISH_WORD_REPEAT_RULE?lang=en-US
Category: MISC

Update.Config config = 2;


[LanguageTool] reported by reviewdog 🐶
An article may be missing. (BUNCH_OF[6])
Suggestions: a pair of
Rule: https://community.languagetool.org/rule/show/BUNCH_OF?lang=en-US&subId=6
Category: GRAMMAR

| ALREADY_EXISTS | Request pair of ID and vector is already inserted. | Change request ID. |


[LanguageTool] reported by reviewdog 🐶
Loose punctuation mark. (UNLIKELY_OPENING_PUNCTUATION[1])
Suggestions: ``
Rule: https://community.languagetool.org/rule/show/UNLIKELY_OPENING_PUNCTUATION?lang=en-US&subId=1
Category: PUNCTUATION


[LanguageTool] reported by reviewdog 🐶
Possible typo: you repeated a word (ENGLISH_WORD_REPEAT_RULE)
Suggestions: Vector
Rule: https://community.languagetool.org/rule/show/ENGLISH_WORD_REPEAT_RULE?lang=en-US
Category: MISC

Object.Vector vector = 1;


[LanguageTool] reported by reviewdog 🐶
Possible typo: you repeated a word (ENGLISH_WORD_REPEAT_RULE)
Suggestions: Config
Rule: https://community.languagetool.org/rule/show/ENGLISH_WORD_REPEAT_RULE?lang=en-US
Category: MISC

Upsert.Config config = 2;


[LanguageTool] reported by reviewdog 🐶
Specify a number, remove phrase, or simply use “many” or “numerous” (LARGE_NUMBER_OF[1])
Suggestions: many, numerous
URL: https://languagetool.org/insights/post/wordiness/
Rule: https://community.languagetool.org/rule/show/LARGE_NUMBER_OF?lang=en-US&subId=1
Category: REDUNDANCY

It’s the recommended method to upsert a large number of vectors.


[LanguageTool] reported by reviewdog 🐶
Possible typo: you repeated a word (ENGLISH_WORD_REPEAT_RULE)
Suggestions: Vector
Rule: https://community.languagetool.org/rule/show/ENGLISH_WORD_REPEAT_RULE?lang=en-US
Category: MISC

Object.Vector vector = 1;


[LanguageTool] reported by reviewdog 🐶
Possible typo: you repeated a word (ENGLISH_WORD_REPEAT_RULE)
Suggestions: Config
Rule: https://community.languagetool.org/rule/show/ENGLISH_WORD_REPEAT_RULE?lang=en-US
Category: MISC

Upsert.Config config = 2;


[LanguageTool] reported by reviewdog 🐶
Possible typo: you repeated a word (ENGLISH_WORD_REPEAT_RULE)
Suggestions: Location
Rule: https://community.languagetool.org/rule/show/ENGLISH_WORD_REPEAT_RULE?lang=en-US
Category: MISC

Object.Location location = 1;


[LanguageTool] reported by reviewdog 🐶
Possible typo: you repeated a word (ENGLISH_WORD_REPEAT_RULE)
Suggestions: Status
Rule: https://community.languagetool.org/rule/show/ENGLISH_WORD_REPEAT_RULE?lang=en-US
Category: MISC

google.rpc.Status status = 2;


[LanguageTool] reported by reviewdog 🐶
Possible typo: you repeated a word (ENGLISH_WORD_REPEAT_RULE)
Suggestions: Vector
Rule: https://community.languagetool.org/rule/show/ENGLISH_WORD_REPEAT_RULE?lang=en-US
Category: MISC

Object.Vector vector = 1;


[LanguageTool] reported by reviewdog 🐶
Possible typo: you repeated a word (ENGLISH_WORD_REPEAT_RULE)
Suggestions: Config
Rule: https://community.languagetool.org/rule/show/ENGLISH_WORD_REPEAT_RULE?lang=en-US
Category: MISC

Upsert.Config config = 2;

@vankichi vankichi merged commit 7c25316 into release/v1.7 Dec 13, 2024
183 of 184 checks passed
@vankichi vankichi deleted the backport/release/v1.7/documentation/api/change-directory-structure branch December 13, 2024 08:39
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.

3 participants