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

Allow passing query between egress filter and filter gateway. #2097

Open
wants to merge 77 commits into
base: main
Choose a base branch
from

Conversation

kevindiu
Copy link
Contributor

@kevindiu kevindiu commented Jun 29, 2023

Description:

This PR updated the following changes:

  • Allow passing query to egress filter through FilterDistance and FilterVector API
    • See apis/proto/v1/filter/egress/egress_filter.proto
  • Update Search APIs to allow filter searching result using query
    • For the logic, see pkg/gateway/filter/handler/grpc/handler.go
  • Updated existing Insert, Update, Upsert, GetObject API to allow filter object before corresponding operation
    • Updated to allow passing different query through multiple filtering target
  • Add example code, including example egress filter implementation, and example client code to connect to filter gateway using query filter feature.
    • See example/client/gateway/filter/README.md
  • Update related document about above changes.

Related Issue:

Versions:

  • Go Version: 1.20.3
  • Docker Version: 23.0.5
  • Kubernetes Version: 1.27.1
  • NGT Version: 2.0.9

Checklist:

Special notes for your reviewer:

You can check the behavior after this modification by reading the example/client/gateway/filter/README.md .

You may also need to edit the below file to enable filter gateway and setting the image tag to validate the implementation.

vim example/helm/values.yaml

gateway:
  filter:
    enabled: true
    image:
      tag: pr-2097

Please do not merge this PR, unless the target merge branch is updated.

Summary by CodeRabbit

  • New Features

    • Added support for new filter payload types: DistanceRequest, DistanceResponse, Query, VectorRequest, and VectorResponse.
    • Introduced query fields in filter configurations for enhanced filtering capabilities.
    • Implemented new methods for filtering distances and vectors.
    • Enhanced search functionality to support multiple ingress and egress filters.
    • Added aggregation algorithm options in search configurations.
  • Documentation

    • Updated API documentation to reflect new filter payload types and query fields.
    • Enhanced user guides with new filter configuration options and examples, including details on ingress and egress filters.

@vdaas-ci
Copy link
Collaborator

[CHATOPS:HELP] ChatOps commands.

  • 🙆‍♀️ /approve - approve
  • 💌 /changelog - replace the PR body by changelog details
  • 🍱 /format - format codes and add licenses
  • /gen-test - generate test codes
  • 🏷️ /label - add labels
  • /rebase - rebase main
  • 🔚 2️⃣ 🔚 /label actions/e2e-deploy - run E2E deploy & integration test

@kevindiu kevindiu closed this Jun 29, 2023
@kevindiu kevindiu force-pushed the feature/egress-gateway/add-egress-query branch from f25941c to c05ffa7 Compare June 29, 2023 05:34
@kevindiu kevindiu reopened this Jun 29, 2023
@cloudflare-workers-and-pages
Copy link

cloudflare-workers-and-pages bot commented Jun 29, 2023

Deploying vald with  Cloudflare Pages  Cloudflare Pages

Latest commit: 2e308e9
Status: ✅  Deploy successful!
Preview URL: https://eb314004.vald.pages.dev
Branch Preview URL: https://feature-egress-gateway-add-e.vald.pages.dev

View logs

@vdaas-ci
Copy link
Collaborator

[WARNING:INTCFG] Changes in interal/config may require you to change Helm charts. Please check.

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

docs/user-guides/client-api-config.md|647 col 39| This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Message
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING
example/client/gateway/filter/README.md|8 col 4| This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Gateway
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING
example/client/gateway/filter/README.md|11 col 4| This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Filter
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING
example/client/gateway/filter/README.md|13 col 4| This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Agent
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING
example/client/gateway/filter/README.md|22 col 13| Possible typo: you repeated a word (ENGLISH_WORD_REPEAT_RULE)
Suggestions: vald
Rule: https://community.languagetool.org/rule/show/ENGLISH_WORD_REPEAT_RULE?lang=en-US
Category: MISC
example/client/gateway/filter/README.md|47 col 61| This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Go
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING

docs/overview/component/filter-gateway.md Show resolved Hide resolved
docs/overview/component/filter-gateway.md Show resolved Hide resolved
docs/overview/component/filter-gateway.md Show resolved Hide resolved
docs/overview/component/filter-gateway.md Show resolved Hide resolved
docs/overview/component/filter-gateway.md Show resolved Hide resolved
docs/user-guides/client-api-config.md Show resolved Hide resolved
docs/user-guides/client-api-config.md Outdated Show resolved Hide resolved
docs/user-guides/client-api-config.md Show resolved Hide resolved
docs/user-guides/client-api-config.md Outdated Show resolved Hide resolved
docs/user-guides/client-api-config.md Show resolved Hide resolved
docs/user-guides/client-api-config.md Outdated Show resolved Hide resolved
docs/user-guides/client-api-config.md Outdated Show resolved Hide resolved
docs/user-guides/client-api-config.md Outdated Show resolved Hide resolved
docs/user-guides/client-api-config.md Outdated Show resolved Hide resolved
docs/user-guides/client-api-config.md Outdated Show resolved Hide resolved
example/client/gateway/filter/README.md Outdated Show resolved Hide resolved
example/client/gateway/filter/README.md Outdated Show resolved Hide resolved
example/client/gateway/filter/README.md Outdated Show resolved Hide resolved
example/client/gateway/filter/README.md Outdated Show resolved Hide resolved
example/client/gateway/filter/README.md Outdated Show resolved Hide resolved
docs/user-guides/client-api-config.md Show resolved Hide resolved
docs/user-guides/client-api-config.md Show resolved Hide resolved
docs/user-guides/client-api-config.md Show resolved Hide resolved
docs/user-guides/client-api-config.md Show resolved Hide resolved
docs/user-guides/client-api-config.md Show resolved Hide resolved
@github-actions github-actions bot removed the size/S label Jun 29, 2023
@codecov
Copy link

codecov bot commented Jun 29, 2023

Codecov Report

Attention: Patch coverage is 1.92926% with 610 lines in your changes missing coverage. Please review.

Project coverage is 23.93%. Comparing base (da0ac80) to head (2e308e9).

Files with missing lines Patch % Lines
pkg/gateway/filter/handler/grpc/handler.go 0.00% 463 Missing ⚠️
example/server/egress-filter/main.go 0.00% 53 Missing ⚠️
example/server/ingress-filter/main.go 0.00% 35 Missing ⚠️
pkg/tools/benchmark/job/service/object.go 0.00% 19 Missing ⚠️
internal/client/v1/client/filter/egress/client.go 0.00% 14 Missing ⚠️
internal/config/benchmark.go 0.00% 14 Missing ⚠️
pkg/gateway/filter/handler/grpc/option.go 0.00% 8 Missing ⚠️
pkg/gateway/filter/usecase/vald.go 0.00% 4 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #2097      +/-   ##
==========================================
- Coverage   23.99%   23.93%   -0.06%     
==========================================
  Files         539      541       +2     
  Lines       47179    47329     +150     
==========================================
+ Hits        11319    11330      +11     
- Misses      35090    35229     +139     
  Partials      770      770              

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@kevindiu kevindiu requested a review from hlts2 June 29, 2023 08:52
@kevindiu kevindiu force-pushed the feature/egress-gateway/add-egress-query branch from 0d131ad to 114385d Compare June 29, 2023 08:55
@kevindiu kevindiu force-pushed the feature/egress-gateway/add-egress-query branch from dfdb51d to 21df055 Compare June 30, 2023 03:15
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: 2

Outside diff range and nitpick comments (2)
example/client/go.mod.default (1)

9-9: Specify a version for the gache library.

The addition of the gache library is a good choice for enhancing caching functionality. However, it's recommended to specify a specific version instead of using the latest version to ensure stability and reproducibility of the application.

Consider applying this change:

-	github.com/kpango/gache/v2 => github.com/kpango/gache/v2 latest
+	github.com/kpango/gache/v2 => github.com/kpango/gache/v2 v2.1.0
example/server/egress-filter/main.go (1)

94-102: Improve the FilterVector method placeholder to provide better guidance for users.

The current placeholder implementation of the FilterVector method simply returns the input vector without any filtering logic. While the comment indicates that users should write their own logic, it may be helpful to provide more guidance or a clear extension point for users to implement the filtering logic without modifying the server code directly.

Consider the following suggestions:

  1. Add a more descriptive comment explaining what kind of filtering logic users should implement and what the expected inputs and outputs are.
  2. Provide a separate interface or function type that users can implement to define their custom filtering logic, and then call that function from within the FilterVector method.
  3. Include an example implementation of the filtering logic in the comments or documentation to guide users.

By providing clearer guidance and extension points, you can make it easier for users to customize the filtering behavior without modifying the server code directly.

Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits

Files that changed from the base of the PR and between 844c7cb and b406be6.

Files ignored due to path filters (7)
  • apis/grpc/v1/agent/sidecar/sidecar_vtproto.pb.go is excluded by !**/*.pb.go, !**/*.pb.go
  • apis/grpc/v1/filter/egress/egress_filter.pb.go is excluded by !**/*.pb.go, !**/*.pb.go
  • apis/grpc/v1/filter/egress/egress_filter_vtproto.pb.go is excluded by !**/*.pb.go, !**/*.pb.go
  • apis/grpc/v1/payload/payload.pb.go is excluded by !**/*.pb.go, !**/*.pb.go
  • apis/grpc/v1/payload/payload.pb.json.go is excluded by !**/*.pb.json.go
  • apis/grpc/v1/payload/payload_vtproto.pb.go is excluded by !**/*.pb.go, !**/*.pb.go
  • apis/grpc/v1/rpc/errdetails/error_details.pb.go is excluded by !**/*.pb.go, !**/*.pb.go
Files selected for processing (23)
  • apis/docs/v1/docs.md (9 hunks)
  • apis/proto/v1/payload/payload.proto (6 hunks)
  • apis/swagger/v1/vald/filter.swagger.json (6 hunks)
  • apis/swagger/v1/vald/object.swagger.json (2 hunks)
  • apis/swagger/v1/vald/search.swagger.json (3 hunks)
  • apis/swagger/v1/vald/update.swagger.json (3 hunks)
  • charts/vald-benchmark-operator/schemas/job-values.yaml (1 hunks)
  • charts/vald-helm-operator/crds/valdrelease.yaml (1 hunks)
  • charts/vald/values.schema.json (1 hunks)
  • charts/vald/values.yaml (1 hunks)
  • docs/api/filter-gateway.md (45 hunks)
  • docs/api/insert.md (6 hunks)
  • docs/api/object.md (4 hunks)
  • docs/api/search.md (24 hunks)
  • docs/api/update.md (6 hunks)
  • docs/api/upsert.md (6 hunks)
  • example/client/gateway/filter/egress-filter/main.go (1 hunks)
  • example/client/gateway/filter/ingress-filter/main.go (1 hunks)
  • example/client/gateway/filter/main.go (1 hunks)
  • example/client/go.mod.default (2 hunks)
  • example/client/mirror/main.go (2 hunks)
  • example/server/egress-filter/main.go (1 hunks)
  • example/server/ingress-filter/main.go (1 hunks)
Additional context used
Markdownlint
apis/docs/v1/docs.md

1020-1020: null
Link fragments should be valid

(MD051, link-fragments)

Additional comments not posted (101)
charts/vald/values.schema.json (2)

7094-7094: Verify the impact of the distance_filters property change.

Changing the distance_filters property from an array of strings to an array of objects allows for a more complex structure for the distance filters. This can enable specifying additional attributes or configurations for each distance filter target.

Please ensure that the code interacting with this property is updated to handle the new object structure appropriately.


7099-7099: Verify the impact of the object_filters property change.

Changing the object_filters property from an array of strings to an array of objects allows for a more complex structure for the object filters. This can enable specifying additional attributes or configurations for each object filter target.

Please ensure that the code interacting with this property is updated to handle the new object structure appropriately.

example/client/go.mod.default (1)

22-22: Verify the reason for using a relative path for the vald library.

Using a relative path for the vald library could potentially cause issues when the code is run in different environments or when the directory structure changes.

Please provide more context on the reason for this change. Is the project transitioning to a local version of the vald library or restructuring its dependency management for local development or testing scenarios?

Additionally, consider using a specific version or commit hash of the vald library to ensure consistency across different environments. For example:

-	github.com/vdaas/vald => ../../../vald
+	github.com/vdaas/vald => github.com/vdaas/vald v1.2.3
example/server/ingress-filter/main.go (3)

36-44: LGTM!

The init function correctly initializes the command-line flags for the server port and vector dimension with reasonable default values.


50-63: LGTM!

The GenVector method correctly generates a random vector for a given blob using the vector package. It returns the generated vector with the same ID as the input blob and handles errors appropriately.


73-92: LGTM!

The main function correctly sets up and starts the gRPC server for the ingress filter service. It uses the ingressServerPort flag to determine the server port, registers the myIngressServer instance with the gRPC server, and handles graceful shutdown of the server on receiving an interrupt signal.

example/client/gateway/filter/ingress-filter/main.go (5)

1-13: License header looks good!

The license header correctly uses the Apache License 2.0 and matches the format used in other files of the project.


16-33: Imports look good!

The imports are correctly used. The comment provides a clear explanation for the temporary usage of the root module instead of the released vald-client-go module due to the unavailability of the filter query changes in the released version.


35-40: Global variable definitions look good!

The global variables for the ingress filter client, server host, server port, and vector dimension are appropriately defined. They will be initialized using command-line flags in the init function.


42-52: init function looks good!

The init function correctly initializes the global variables using command-line flags with appropriate default values. The comments provide clear explanations for each flag.


54-80: main function looks good!

The main function provides a clear and concise example of how to use the ingress filter client. It demonstrates the following steps:

  1. Establishing a gRPC connection to the ingress filter server using the provided host and port.
  2. Calling the GenVector method with an example blob object.
  3. Calling the FilterVector method with an example vector object.

The error handling is implemented correctly, and the example data used in the method calls is appropriate.

example/client/gateway/filter/egress-filter/main.go (5)

16-33: Temporary workaround for importing packages.

The comments provide a clear explanation for using the root module instead of the released "vald-client-go" module. This is a reasonable temporary workaround until the changes are released.

Please ensure to update the import path and go.mod file after the release, as mentioned in the comments.


35-40: Global variable declarations look good.

The global variables for the gRPC client, server host, server port, and vector dimension are declared appropriately. The names and types of the variables are suitable for their intended purpose.


42-52: Proper usage of command-line flags.

The init function properly utilizes the flag package to parse command-line flags for configuring the server host, port, and vector dimension. The default values are set appropriately, providing sensible fallbacks if the flags are not specified.

Using command-line flags allows easy configuration of the client without modifying the code.


54-108: Proper implementation of the main function.

The main function correctly establishes a gRPC connection to the specified server host and port, and creates a gRPC client for the egress filter using the established connection.

The code demonstrates the usage of the egress filter gRPC client by constructing sample Filter_DistanceRequest and Filter_VectorRequest objects and sending them to the server using the respective RPC methods (FilterDistance and FilterVector). The responses from the server are appropriately logged using the glg package.

Error handling is performed for the gRPC connection and RPC method calls, ensuring proper error management.

Overall, the implementation of the main function is correct and serves as a good example of using the egress filter gRPC client.


1-108: File is well-structured and serves its purpose.

The file follows a clear structure with appropriate comments and error handling. The code is readable and adheres to Go conventions.

It serves as a good example of using the egress filter gRPC client and effectively demonstrates the usage of the new filter query functionality.

There are no major issues or improvements needed in the code.

example/server/egress-filter/main.go (1)

104-123: LGTM!

The main function follows a standard pattern for setting up and running a gRPC server. It listens on the configured port, registers the server implementation, and gracefully handles shutdown. The code looks good to me!

example/client/mirror/main.go (1)

72-72: LGTM!

The change from grpc.WithInsecure() to grpc.WithTransportCredentials(insecure.NewCredentials()) aligns with current best practices for establishing secure gRPC client-server communications. It provides a more explicit way to mark the connection as insecure, compared to the deprecated WithInsecure() method.

example/client/gateway/filter/main.go (4)

16-23: Consider using a stable version of the Vald client library.

The comments indicate that a temporary module is being used due to the absence of the required features in the current stable release of vald-client-go. This could lead to issues with maintainability and compatibility in the future. It would be beneficial to expedite the stable release that includes the necessary features or find an alternative stable version that meets the current requirements.


71-213: Refactor error handling to avoid program exit within loops.

The current implementation uses return statements within loops to exit the program upon encountering errors. This approach prevents the execution of subsequent iterations and might skip necessary cleanup or logging steps. Consider aggregating errors and handling them after the loops complete to ensure that all iterations are attempted and appropriate actions are taken even when some operations fail.

+ var errs []error
- return
+ errs = append(errs, err)
+ continue
// After loops
+ if len(errs) > 0 {
+     for _, err := range errs {
+         glg.Error(err)
+     }
+     return
+ }

106-114: Optimize the handling of repeated code patterns.

The configuration setup for payload.Filter_Target is repeated multiple times with the same hosts and ports. Consider abstracting this configuration into a function or a variable to reduce redundancy and improve maintainability.

+ func defaultFilterTarget(host string, port uint32) *payload.Filter_Target {
+     return &payload.Filter_Target{
+         Host: host,
+         Port: port,
+     }
+ }
- Host: ingressServerHost,
- Port: uint32(ingressServerPort),
+ defaultFilterTarget(ingressServerHost, uint32(ingressServerPort)),

215-242: LGTM!

The function is correctly implemented and there are no issues or suggestions for improvement.

apis/swagger/v1/vald/object.swagger.json (2)

134-143: The past review comment is still applicable. Please refer to the comment by @coderabbitai[bot] and ensure that the FilterQuery definition accurately reflects the implementation in the Go codebase.


240-246: LGTM!

The modifications to the v1FilterConfig object definition are beneficial for the following reasons:

  1. Replacing the targets array with a single target property simplifies the configuration by allowing only one filter target per configuration. This promotes a cleaner and more focused configuration structure.

  2. Adding the query property enables passing filter queries through the configuration object. This enhances the API's ability to represent filter configurations in a more structured and expressive manner.

These changes align with the overall goal of improving the API's filtering capabilities and provide a more intuitive way to configure filters.

docs/api/object.md (2)

98-98: LGTM!

The change to make the filters field repeated allows for more complex queries by specifying multiple filter configurations in a single request. This enhances the flexibility and usability of the API.


109-112: Documentation looks good!

The table accurately describes the filters field type as repeated(Array[Filter.Config]), which aligns with the code change to make it a repeated field. This clarifies that multiple filter configurations can be specified.

apis/swagger/v1/vald/update.swagger.json (3)

113-122: LGTM!

The FilterQuery definition is correctly defined and the description clearly explains its purpose.


210-216: LGTM!

The changes to v1FilterConfig definition are correctly defined. Replacing the targets array with a single target object simplifies the configuration. The addition of query property enhances the capability to specify filter queries.


265-269: LGTM!

Modifying the filters property to be an array of v1FilterConfig objects is a good change. It allows specifying multiple filter configurations, enhancing the flexibility of the API's filtering capabilities.

apis/swagger/v1/vald/search.swagger.json (4)

273-282: LGTM!

The FilterQuery definition is a valuable addition to the schema, providing a structured way to represent filter queries. The query property is appropriately defined as a string type, and the description provides clarity on the purpose of the object.


403-409: Excellent update to the v1FilterConfig definition!

The modifications to the v1FilterConfig definition improve its structure and functionality:

  • Replacing the targets property with a single target property simplifies the configuration.
  • Adding the query property allows for the inclusion of a filter query, enhancing the filtering capabilities.

The references to the v1FilterTarget and FilterQuery definitions are correct.


457-461: Great enhancement to the ingressFilters property!

Modifying the ingressFilters property to be an array of v1FilterConfig objects is a significant improvement. It allows for multiple filter configurations to be specified for ingress, enhancing the flexibility of the ingress filter configurations.

The reference to the v1FilterConfig definition is correct.


465-469: Fantastic update to the egressFilters property!

Similar to the ingressFilters property, modifying the egressFilters property to be an array of v1FilterConfig objects is a valuable improvement. It allows for multiple filter configurations to be specified for egress, enhancing the flexibility of the egress filter configurations.

The reference to the v1FilterConfig definition is correct.

docs/api/insert.md (4)

34-34: LGTM!

The change from Filter.Config to repeated Filter.Config for the filters field in Insert.Config message enhances the flexibility by allowing multiple filter configurations. Please ensure the corresponding documentation table is updated to reflect this change.


60-60: This is a duplicate of the past review comment regarding the redundant use of repeated keyword in the type description.

As per the user's response, we'll maintain the existing documentation style and skip suggesting the simplification.


138-138: LGTM!

The changes to the filters field and the corresponding documentation table for the StreamInsert RPC are consistent with the updates made for the Insert RPC.

As per the user's response to the past review comment, we'll maintain the existing documentation style for the table.

Also applies to: 164-164


269-269: LGTM!

The changes to the filters field and the corresponding documentation table for the MultiInsert RPC are consistent with the updates made for the Insert and StreamInsert RPCs.

As per the user's response to the past review comment, we'll maintain the existing documentation style for the table.

Also applies to: 301-301

docs/api/upsert.md (4)

38-38: LGTM!

The change to the filters field type in the Config message from Filter.Config to repeated Filter.Config is a good enhancement. It allows users to specify multiple filter configurations, providing more flexibility in the Upsert RPC.


64-64: Skipping comment on the filters field type in the Upsert.Config table, as per the user's preference to maintain consistency with the existing documentation style.


143-143: Skipping comment on the filters field type change in the Config message for the StreamUpsert RPC, as it is a duplicate of the change at line 38.


275-275: Skipping comment on the filters field type change in the Config message for the MultiUpsert RPC, as it is a duplicate of the changes at lines 38 and 143.

docs/api/update.md (7)

34-34: LGTM!

The change from Filter.Config to repeated Filter.Config for the filters field enhances flexibility by allowing multiple filter configurations to be specified.


60-60: The past comment about clarifying the use of repeated(Array[Filter.Config]) for the filters field is still valid and applicable here.


56-61: Documentation update looks good!

The table describing the Update.Config message has been appropriately updated to reflect the changes in the filters field type and the addition of the disable_balanced_update field.


167-167: The past comment about ensuring consistency in the description of the filters field across different sections is still valid and applicable here.


163-168: Documentation update is consistent!

The changes to the Update.Config message definition and the corresponding table for the StreamUpdate RPC are consistent with the modifications made for the Update RPC.


307-307: The past comment about reviewing the application of filters in the MultiUpdate RPC is still valid and applicable here.


303-308: Documentation update is consistent!

The changes to the Update.Config message definition and the corresponding table for the MultiUpdate RPC are consistent with the modifications made for the Update and StreamUpdate RPCs.

apis/proto/v1/payload/payload.proto (11)

90-92: LGTM!

The change from Filter.Config to repeated Filter.Config for the ingress_filters and egress_filters fields in the Search.Config message enhances the flexibility of the search functionality by allowing the specification of multiple filter configurations. This aligns with the overall goal of improving the API's filtering capabilities.


147-151: LGTM!

The introduction of the Filter.Query message type provides a structured way to encapsulate the raw query string. This change improves the clarity and maintainability of the codebase by explicitly defining the query as a separate entity.


156-159: LGTM!

The change from repeated Target to a single Target simplifies the configuration structure by focusing on a single target. The addition of the query field allows associating a query with the filter configuration, enhancing the flexibility of the filtering mechanism.


161-167: LGTM!

The introduction of the Filter.DistanceRequest message type provides a structured way to represent a request for filtering based on distance. It encapsulates the distance information and the associated query, enabling more precise filtering capabilities.


169-173: LGTM!

The introduction of the Filter.DistanceResponse message type provides a structured way to represent the response for a distance-based filtering request. It encapsulates the filtered distance information, enabling a clear and consistent response format.


175-181: LGTM!

The introduction of the Filter.VectorRequest message type provides a structured way to represent a request for filtering based on a vector. It encapsulates the vector information and the associated query, enabling more precise filtering capabilities.


183-186: LGTM!

The introduction of the Filter.VectorResponse message type provides a structured way to represent the response for a vector-based filtering request. It encapsulates the filtered vector information, enabling a clear and consistent response format.


227-227: LGTM!

The change from Filter.Config to repeated Filter.Config for the filters field in the Insert.Config message enhances the flexibility of the insert functionality by allowing the specification of multiple filter configurations. This aligns with the overall goal of improving the API's filtering capabilities.


280-280: LGTM!

The change from Filter.Config to repeated Filter.Config for the filters field in the Update.Config message enhances the flexibility of the update functionality by allowing the specification of multiple filter configurations. This aligns with the overall goal of improving the API's filtering capabilities.


326-326: LGTM!

The change from Filter.Config to repeated Filter.Config for the filters field in the Upsert.Config message enhances the flexibility of the upsert functionality by allowing the specification of multiple filter configurations. This aligns with the overall goal of improving the API's filtering capabilities.


404-404: LGTM!

The change from Filter.Config to repeated Filter.Config for the filters field in the Object.VectorRequest message enhances the flexibility of the vector request functionality by allowing the specification of multiple filter configurations. This aligns with the overall goal of improving the API's filtering capabilities.

apis/swagger/v1/vald/filter.swagger.json (4)

273-282: LGTM!

The FilterQuery definition is correctly defined with a single query property of type string to represent the raw query string. The description is also accurate.


417-423: The changes to v1FilterConfig definition look good!

  • Replacing the targets array property with a single target property referencing v1FilterTarget simplifies the configuration.
  • Adding the new query property referencing FilterQuery allows specifying a query for each filter configuration.

The changes align with the list of alterations provided.


547-551: The updates to ingressFilters and egressFilters in v1SearchConfig definition are valid.

Changing ingressFilters and egressFilters properties to be arrays of v1FilterConfig objects instead of a single reference enhances the flexibility by allowing multiple filter configurations to be specified for ingress and egress filters in the search configuration.

Also applies to: 555-559


451-455: The filters property is consistently updated in v1InsertConfig, v1UpdateConfig, and v1UpsertConfig definitions.

Modifying the filters property to be an array of v1FilterConfig objects in all three definitions allows specifying multiple filter configurations for insert, update, and upsert operations. This provides more flexibility in configuring filters for these operations.

The changes are consistently applied across the definitions and look good.

Also applies to: 643-647, 702-706

charts/vald-benchmark-operator/schemas/job-values.yaml (1)

140-147: LGTM! The changes enhance flexibility and query passing capabilities.

The introduction of the filter_configs array under object_config is a great improvement. It allows specifying multiple filter targets, each with its own host, port, and query. This change aligns perfectly with the PR objective of enabling query passing between the egress filter and filter gateway.

The structure and indentation of the new configuration look correct, and the data types used for the fields are appropriate.

docs/api/filter-gateway.md (12)

39-39: LGTM!

The changes to the Insert RPC are consistent with the overall modifications to the Filter service configuration. The usage of repeated Filter.Config and the addition of the Query message look good.

Also applies to: 57-63, 85-96


Line range hint 173-197: LGTM!

The changes to the StreamInsert RPC are consistent with the overall modifications to the Filter service configuration. The usage of repeated Filter.Config and the addition of the Query message look good.

Also applies to: 219-230


Line range hint 334-358: LGTM!

The changes to the MultiInsert RPC are consistent with the overall modifications to the Filter service configuration. The usage of repeated Filter.Config and the addition of the Query message look good.

Also applies to: 386-397


Line range hint 483-507: LGTM!

The changes to the Update RPC are consistent with the overall modifications to the Filter service configuration. The usage of repeated Filter.Config and the addition of the Query message look good.

Also applies to: 529-541


Line range hint 617-641: LGTM!

The changes to the StreamUpdate RPC are consistent with the overall modifications to the Filter service configuration. The usage of repeated Filter.Config and the addition of the Query message look good.

Also applies to: 663-675


Line range hint 784-808: LGTM!

The changes to the MultiUpdate RPC are consistent with the overall modifications to the Filter service configuration. The usage of repeated Filter.Config and the addition of the Query message look good.

Also applies to: 836-848


Line range hint 934-958: LGTM!

The changes to the Upsert RPC are consistent with the overall modifications to the Filter service configuration. The usage of repeated Filter.Config and the addition of the Query message look good.

Also applies to: 980-992


Line range hint 1065-1089: LGTM!

The changes to the StreamUpsert RPC are consistent with the overall modifications to the Filter service configuration. The usage of repeated Filter.Config and the addition of the Query message look good.

Also applies to: 1111-1123


Line range hint 1232-1256: LGTM!

The changes to the MultiUpsert RPC are consistent with the overall modifications to the Filter service configuration. The usage of repeated Filter.Config and the addition of the Query message look good.

Also applies to: 1284-1296


Line range hint 1386-1404: LGTM!

The changes to the Search RPC are consistent with the overall modifications to the Filter service configuration. The usage of repeated Filter.Config for both ingress_filters and egress_filters, along with the addition of the Query message, look good.

Also applies to: 1419-1435


Line range hint 1526-1544: LGTM!

The changes to the StreamSearch RPC are consistent with the overall modifications to the Filter service configuration. The usage of repeated Filter.Config for both ingress_filters and egress_filters, along with the addition of the Query message, look good.

Also applies to: 1559-1575


Line range hint 1692-1710: LGTM!

The changes to the MultiSearch RPC are consistent with the overall modifications to the Filter service configuration. The usage of repeated Filter.Config for both ingress_filters and egress_filters, along with the addition of the Query message, look good.

Also applies to: 1731-1747

docs/api/search.md (12)

66-67: LGTM!

The ingress_filters and egress_filters fields have been correctly updated to repeated Filter.Config in both the Search.Config message definition and the corresponding documentation table. The changes accurately reflect the new types.

Also applies to: 91-101


187-188: LGTM!

The ingress_filters and egress_filters fields have been correctly updated to repeated Filter.Config in both the Search.Config message definition and the corresponding documentation table. The changes accurately reflect the new types.

Also applies to: 212-222


309-310: LGTM!

The ingress_filters and egress_filters fields have been correctly updated to repeated Filter.Config in both the Search.Config message definition and the corresponding documentation table. The changes accurately reflect the new types.

Also applies to: 334-344


445-446: LGTM!

The ingress_filters and egress_filters fields have been correctly updated to repeated Filter.Config in both the Search.Config message definition and the corresponding documentation table. The changes accurately reflect the new types.

Also applies to: 470-480


588-589: LGTM!

The ingress_filters and egress_filters fields have been correctly updated to repeated Filter.Config in both the Search.Config message definition and the corresponding documentation table. The changes accurately reflect the new types.

Also applies to: 619-629


734-735: LGTM!

The ingress_filters and egress_filters fields have been correctly updated to repeated Filter.Config in both the Search.Config message definition and the corresponding documentation table. The changes accurately reflect the new types.

Also applies to: 765-775


868-869: LGTM!

The ingress_filters and egress_filters fields have been correctly updated to repeated Filter.Config in both the Search.Config message definition and the corresponding documentation table. The changes accurately reflect the new types.

Also applies to: 893-901


986-987: LGTM!

The ingress_filters and egress_filters fields have been correctly updated to repeated Filter.Config in both the Search.Config message definition and the corresponding documentation table. The changes accurately reflect the new types.

Also applies to: 1011-1019


1104-1105: LGTM!

The ingress_filters and egress_filters fields have been correctly updated to repeated Filter.Config in both the Search.Config message definition and the corresponding documentation table. The changes accurately reflect the new types.

Also applies to: 1129-1137


1236-1237: LGTM!

The ingress_filters and egress_filters fields have been correctly updated to repeated Filter.Config in both the Search.Config message definition and the corresponding documentation table. The changes accurately reflect the new types.

Also applies to: 1261-1269


1375-1376: LGTM!

The ingress_filters and egress_filters fields have been correctly updated to repeated Filter.Config in both the Search.Config message definition and the corresponding documentation table. The changes accurately reflect the new types.

Also applies to: 1406-1414


1517-1518: LGTM!

The ingress_filters and egress_filters fields have been correctly updated to repeated Filter.Config in both the Search.Config message definition and the corresponding documentation table. The changes accurately reflect the new types.

Also applies to: 1548-1556

apis/docs/v1/docs.md (9)

225-235: LGTM!

The new Filter.DistanceRequest message, with distance and query fields, is a useful addition for specifying a distance request along with a query. The message structure looks good.


236-245: Looks good!

The new Filter.DistanceResponse message, with the distance field, nicely complements the Filter.DistanceRequest message for returning the distance response. The message structure is appropriate.


246-254: Approve the new Filter.Query message.

The new Filter.Query message, with the query field for specifying the raw query string, provides a clean way to represent a filter query. The message structure is well-defined.


267-277: The new Filter.VectorRequest message looks good.

The addition of the Filter.VectorRequest message, with vector and query fields, is a useful enhancement for specifying a vector request along with a query. The message structure is well-defined.


278-287: Approve the new Filter.VectorResponse message.

The new Filter.VectorResponse message, with the vector field, nicely complements the Filter.VectorRequest message for returning the vector response. The message structure is appropriate.


664-668: The enhancements to the Insert.Config message look good.

The changes to the Insert.Config message, including marking the filters field as repeated and adding the timestamp field, are useful enhancements. They allow specifying multiple filter configurations and associating a timestamp with the insert operation.


923-926: Approve marking the filters field as repeated.

Updating the Object.VectorRequest message to mark the filters field as repeated is a useful enhancement. It allows specifying multiple filter configurations when requesting a vector.


1009-1021: The enhancements to the Search.Config message significantly improve search flexibility.

The additions to the Search.Config message, including the ingress_filters, egress_filters, min_num, aggregation_algorithm, ratio, and nprobe fields, provide a wide range of configuration options to enhance the search process. These fields allow fine-grained control over filtering, result aggregation, and search parameters, making the search API more flexible and powerful.

Tools
Markdownlint

1020-1020: null
Link fragments should be valid

(MD051, link-fragments)


1131-1136: The enhancements to the Update.Config message improve update flexibility.

The changes to the Update.Config message, including marking the filters field as repeated, adding the timestamp field, and introducing the disable_balanced_update field, provide useful configuration options for update operations. These enhancements allow specifying multiple filter configurations, associating a timestamp, and controlling the balanced update behavior, making the update process more flexible.

charts/vald/values.yaml (2)

1516-1518: LGTM! The type change enables more detailed filter configurations.

Changing the type of object_filters from an array of strings to an array of objects allows associating more complex structures and attributes with each filter. This could enhance the flexibility and granularity of the gateway's object filtering capabilities.


1519-1521: Looks good! The type change allows for more granular distance filter setups.

Modifying the type of distance_filters from an array of strings to an array of objects enables associating more complex structures and attributes with each distance filter. This change enhances the expressiveness and flexibility of configuring distance-based filtering in the gateway.

charts/vald-helm-operator/crds/valdrelease.yaml (2)

4279-4280: LGTM: The changes to the distance_filters property enhance flexibility.

Modifying the distance_filters property from an array of strings to an array of objects, along with the x-kubernetes-preserve-unknown-fields: true directive, allows for more complex filter configurations and extensibility. This is a positive change that improves the robustness of the filter system.


4284-4285: LGTM: The changes to the object_filters property enhance flexibility.

Similar to the distance_filters changes, modifying the object_filters property to an array of objects with the x-kubernetes-preserve-unknown-fields: true directive enables more advanced filter setups and future extensions. This change aligns with the goal of a more capable and adaptable filter configuration.

example/server/ingress-filter/main.go Show resolved Hide resolved
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 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Rpc
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING

rpc FilterVector(payload.v1.Filter.VectorRequest)


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Message
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING

message DistanceRequest {


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

repeated Object.Distance distance = 1;


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Message
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING

message DistanceResponse {


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

repeated Object.Distance distance = 1;


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Message
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING

message VectorRequest {


[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 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Message
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING

message VectorResponse {


[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 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Message
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING

// Represent insert configurations.


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Repeated
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING

repeated Filter.Config filters = 2;


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Message
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: String
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING

string query = 1;


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

Target target = 1;


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


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Message
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING

// Represent the update configuration.


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Repeated
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING

repeated Filter.Config filters = 2;


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Bool
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING

bool disable_balanced_update = 4;


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Message
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: String
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING

string query = 1;


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

Target target = 1;


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


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Message
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING

// Represent the upsert configuration.


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Repeated
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING

repeated Filter.Config filters = 2;


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Bool
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING

bool disable_balanced_update = 4;


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Message
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: String
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING

string query = 1;


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

Target target = 1;


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


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Repeated
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING

repeated Filter.Config ingress_filters = 6;


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Repeated
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING

repeated Filter.Config egress_filters = 7;


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Message
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: String
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING

string query = 1;


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

Target target = 1;


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


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Message
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: String
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING

string query = 1;


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

Target target = 1;


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


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Message
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING

// Represent the remove configuration.


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Gateway
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Filter
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Agent
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING


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

helm install vald vald/vald --values example/helm/values.yaml


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Go
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING

go run ./example/client/gateway/filter/main.go -addr "localhost:8081" -ingresshost "vald-ingress-filter.default.svc.cluster.local" -ingressport 8082 -egresshost "vald-egress-filter.default.svc.cluster.local" -egressport 8083

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

documents testlint

🚫 [documents testlint] <eslint.rules.en-spell> reported by reviewdog 🐶
nfig => fig (en-spell)

| filters | repeated(Array[Filter.Config]) | | | Configuration for filter. |


🚫 [documents testlint] <eslint.rules.en-spell> reported by reviewdog 🐶
nfig => fig (en-spell)

| filters | repeated(Array[Filter.Config]) | | | Configuration for filter. |


🚫 [documents testlint] <eslint.rules.en-spell> reported by reviewdog 🐶
nfig => fig (en-spell)

| filters | repeated(Array[Filter.Config]) | | | Configuration for filter. |


🚫 [documents testlint] <eslint.rules.en-spell> reported by reviewdog 🐶
nfig => fig (en-spell)

| filters | repeated(Array[Filter.Config] | | | Configuration for filter. |


🚫 [documents testlint] <eslint.rules.en-spell> reported by reviewdog 🐶
nfig => fig (en-spell)

| filters | repeated(Array[Filter.Config]) | | | Configuration for the filter targets. |


🚫 [documents testlint] <eslint.rules.en-spell> reported by reviewdog 🐶
nfig => fig (en-spell)

| ingress_filters | repeated(Array[Filter.Config]) | | | Ingress Filter configuration. |


🚫 [documents testlint] <eslint.rules.en-spell> reported by reviewdog 🐶
nfig => fig (en-spell)

| egress_filters | repeated(Array[Filter.Config]) | | | Egress Filter configuration. |


🚫 [documents testlint] <eslint.rules.en-spell> reported by reviewdog 🐶
nfig => fig (en-spell)

| ingress_filters | repeated(Array[Filter.Config]) | | | Ingress Filter configuration. |


🚫 [documents testlint] <eslint.rules.en-spell> reported by reviewdog 🐶
nfig => fig (en-spell)

| egress_filters | repeated(Array[Filter.Config]) | | | Egress Filter configuration. |


🚫 [documents testlint] <eslint.rules.en-spell> reported by reviewdog 🐶
nfig => fig (en-spell)

| ingress_filters | repeated(Array[Filter.Config]) | | | Ingress Filter configuration. |


🚫 [documents testlint] <eslint.rules.en-spell> reported by reviewdog 🐶
nfig => fig (en-spell)

| egress_filters | repeated(Array[Filter.Config]) | | | Egress Filter configuration. |


🚫 [documents testlint] <eslint.rules.en-spell> reported by reviewdog 🐶
nfig => fig (en-spell)

| ingress_filters | repeated(Array[Filter.Config]) | | | Ingress Filter configuration. |


🚫 [documents testlint] <eslint.rules.en-spell> reported by reviewdog 🐶
nfig => fig (en-spell)

| egress_filters | repeated(Array[Filter.Config]) | | | Egress Filter configuration. |


🚫 [documents testlint] <eslint.rules.en-spell> reported by reviewdog 🐶
nfig => fig (en-spell)

| ingress_filters | repeated(Array[Filter.Config]) | | | Ingress Filter configuration. |


🚫 [documents testlint] <eslint.rules.en-spell> reported by reviewdog 🐶
nfig => fig (en-spell)

| egress_filters | repeated(Array[Filter.Config]) | | | Egress Filter configuration. |


🚫 [documents testlint] <eslint.rules.en-spell> reported by reviewdog 🐶
nfig => fig (en-spell)

| ingress_filters | repeated(Array[Filter.Config]) | | | Ingress Filter configuration. |


🚫 [documents testlint] <eslint.rules.en-spell> reported by reviewdog 🐶
nfig => fig (en-spell)

| egress_filters | repeated(Array[Filter.Config]) | | | Egress Filter configuration. |


🚫 [documents testlint] <eslint.rules.en-spell> reported by reviewdog 🐶
nfig => fig (en-spell)

| ingress_filters | repeated(Array[Filter.Config]) | | | Ingress Filter configuration. |


🚫 [documents testlint] <eslint.rules.en-spell> reported by reviewdog 🐶
nfig => fig (en-spell)

| egress_filters | repeated(Array[Filter.Config]) | | | Egress Filter configuration. |


🚫 [documents testlint] <eslint.rules.en-spell> reported by reviewdog 🐶
nfig => fig (en-spell)

| ingress_filters | repeated(Array[Filter.Config]) | | | Ingress Filter configuration. |


🚫 [documents testlint] <eslint.rules.en-spell> reported by reviewdog 🐶
nfig => fig (en-spell)

| egress_filters | repeated(Array[Filter.Config]) | | | Egress Filter configuration. |


🚫 [documents testlint] <eslint.rules.en-spell> reported by reviewdog 🐶
nfig => fig (en-spell)

| ingress_filters | repeated(Array[Filter.Config]) | | | Ingress Filter configuration. |


🚫 [documents testlint] <eslint.rules.en-spell> reported by reviewdog 🐶
nfig => fig (en-spell)

| egress_filters | repeated(Array[Filter.Config]) | | | Egress Filter configuration. |


🚫 [documents testlint] <eslint.rules.en-spell> reported by reviewdog 🐶
nfig => fig (en-spell)

| ingress_filters | repeated(Array[Filter.Config]) | | | Ingress Filter configuration. |


🚫 [documents testlint] <eslint.rules.en-spell> reported by reviewdog 🐶
nfig => fig (en-spell)

| egress_filters | repeated(Array[Filter.Config]) | | | Egress Filter configuration. |


🚫 [documents testlint] <eslint.rules.en-spell> reported by reviewdog 🐶
nfig => fig (en-spell)

| ingress_filters | repeated(Array[Filter.Config]) | | | Ingress Filter configuration. |


🚫 [documents testlint] <eslint.rules.en-spell> reported by reviewdog 🐶
nfig => fig (en-spell)

| egress_filters | repeated(Array[Filter.Config]) | | | Egress Filter configuration. |


🚫 [documents testlint] <eslint.rules.en-spell> reported by reviewdog 🐶
nfig => fig (en-spell)

| ingress_filters | repeated(Array[Filter.Config]) | | | Ingress Filter configuration. |


🚫 [documents testlint] <eslint.rules.en-spell> reported by reviewdog 🐶
nfig => fig (en-spell)

| egress_filters | repeated(Array[Filter.Config]) | | | Egress Filter configuration. |


🚫 [documents testlint] <eslint.rules.en-spell> reported by reviewdog 🐶
nfig => fig (en-spell)

| filters | repeated(Array[Filter.Config]) | | | Configuration for filter. |


🚫 [documents testlint] <eslint.rules.en-spell> reported by reviewdog 🐶
nfig => fig (en-spell)

| filters | repeated(Array[Filter.Config]) | | | Configuration for filter. |


🚫 [documents testlint] <eslint.rules.en-spell> reported by reviewdog 🐶
nfig => fig (en-spell)

| filters | repeated(Array[Filter.Config]) | | | Configuration for filter. |


🚫 [documents testlint] <eslint.rules.en-spell> reported by reviewdog 🐶
nfig => fig (en-spell)

| filters | repeated(Array[Filter.Config]) | | | Configuration for filter. |


🚫 [documents testlint] <eslint.rules.en-spell> reported by reviewdog 🐶
nfig => fig (en-spell)

| filters | repeated(Array[Filter.Config]) | | | Configuration for filter. |


🚫 [documents testlint] <eslint.rules.en-spell> reported by reviewdog 🐶
nfig => fig (en-spell)

| filters | repeated(Array[Filter.Config]) | | | Configuration for filter. |

docs/api/filter-gateway.md Show resolved Hide resolved
docs/api/filter-gateway.md Show resolved Hide resolved
docs/api/filter-gateway.md Show resolved Hide resolved
| timestamp | int64 | | | the timestamp of the vector inserted.<br>if it is N/A, the current time will be used. |
| filters | repeated(Array[Filter.Config]) | | | configuration for filter |

- Filter.Config
Copy link
Contributor

Choose a reason for hiding this comment

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

🚫 [documents testlint] <eslint.rules.en-spell> reported by reviewdog 🐶
nfig => fig (en-spell)

| :---------------------: | :----------------------------- | :---- | :------: | :--------------------------------------------------------------------------------------------------- |
| skip_strict_exist_check | bool | | | check the same vector is already inserted or not.<br>the ID should be unique if the value is `true`. |
| timestamp | int64 | | | the timestamp of the vector inserted.<br>if it is N/A, the current time will be used. |
| filters | repeated(Array[Filter.Config]) | | | configuration for filter |
Copy link
Contributor

Choose a reason for hiding this comment

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

🚫 [documents testlint] <eslint.rules.en-spell> reported by reviewdog 🐶
nfig => fig (en-spell)


| field | type | label | required | desc. |
| :---: | :----- | :---- | :------: | :------------------ |
| host | string | | \* | the target hostname |
Copy link
Contributor

Choose a reason for hiding this comment

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

🚫 [documents testlint] <eslint.rules.en-spell> reported by reviewdog 🐶
hostname => hostage (en-spell)

| radius | float | | \* | the search radius |
| epsilon | float | | \* | the search coefficient (default value is `0.1`) |
| timeout | int64 | | | Search timeout in nanoseconds (default value is `5s`) |
| ingress_filters | repeated(Array[Filter.Config]) | | | Ingress Filter configuration |
Copy link
Contributor

Choose a reason for hiding this comment

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

🚫 [documents testlint] <eslint.rules.en-spell> reported by reviewdog 🐶
nfig => fig (en-spell)

| epsilon | float | | \* | the search coefficient (default value is `0.1`) |
| timeout | int64 | | | Search timeout in nanoseconds (default value is `5s`) |
| ingress_filters | repeated(Array[Filter.Config]) | | | Ingress Filter configuration |
| egress_filters | repeated(Array[Filter.Config]) | | | Egress Filter configuration |
Copy link
Contributor

Choose a reason for hiding this comment

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

🚫 [documents testlint] <eslint.rules.en-spell> reported by reviewdog 🐶
nfig => fig (en-spell)

| egress_filters | repeated(Array[Filter.Config]) | | | Egress Filter configuration |
| min_num | uint32 | | | the minimum number of result to be returned |

- Filter.Config
Copy link
Contributor

Choose a reason for hiding this comment

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

🚫 [documents testlint] <eslint.rules.en-spell> reported by reviewdog 🐶
nfig => fig (en-spell)


| field | type | label | required | desc. |
| :---: | :----- | :---- | :------: | :------------------ |
| host | string | | \* | the target hostname |
Copy link
Contributor

Choose a reason for hiding this comment

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

🚫 [documents testlint] <eslint.rules.en-spell> reported by reviewdog 🐶
hostname => hostage (en-spell)

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: Query
Rule: https://community.languagetool.org/rule/show/ENGLISH_WORD_REPEAT_RULE?lang=en-US
Category: MISC


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Message
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING

// Represent the update configuration.


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Repeated
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING

repeated Filter.Config filters = 2;


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Bool
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING

bool disable_balanced_update = 4;


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Message
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: String
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING

string query = 1;


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

Target target = 1;


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


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Message
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING

// Represent the upsert configuration.


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Repeated
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING

repeated Filter.Config filters = 2;


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Bool
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING

bool disable_balanced_update = 4;


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Message
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: String
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING

string query = 1;


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

Target target = 1;


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


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Repeated
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING

repeated Filter.Config ingress_filters = 6;


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Repeated
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING

repeated Filter.Config egress_filters = 7;


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Message
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: String
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING

string query = 1;


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

Target target = 1;


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


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Message
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: String
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING

string query = 1;


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

Target target = 1;


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


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Message
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING

// Represent the remove configuration.


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Gateway
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Filter
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Agent
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING


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

helm install vald vald/vald --values example/helm/values.yaml


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Go
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING

go run ./example/client/gateway/filter/main.go -addr "localhost:8081" -ingresshost "vald-ingress-filter.default.svc.cluster.local" -ingressport 8082 -egresshost "vald-egress-filter.default.svc.cluster.local" -egressport 8083

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

documents testlint

🚫 [documents testlint] <eslint.rules.en-spell> reported by reviewdog 🐶
nfig => fig (en-spell)

| filters | repeated(Array[Filter.Config]) | | | Configuration for filter. |


🚫 [documents testlint] <eslint.rules.en-spell> reported by reviewdog 🐶
nfig => fig (en-spell)

| filters | repeated(Array[Filter.Config]) | | | Configuration for filter. |


🚫 [documents testlint] <eslint.rules.en-spell> reported by reviewdog 🐶
nfig => fig (en-spell)

| filters | repeated(Array[Filter.Config]) | | | Configuration for filter. |


🚫 [documents testlint] <eslint.rules.en-spell> reported by reviewdog 🐶
nfig => fig (en-spell)

| filters | repeated(Array[Filter.Config]) | | | Configuration for filter. |


🚫 [documents testlint] <eslint.rules.en-spell> reported by reviewdog 🐶
nfig => fig (en-spell)

| filters | repeated(Array[Filter.Config]) | | | Configuration for filter. |

| :---------------------: | :----------------------------- | :---- | :------: | :------------------------------------------------------------------------------------------------------------ |
| skip_strict_exist_check | bool | | | Check whether the same vector is already inserted or not.<br> The ID should be unique if the value is `true`. |
| timestamp | int64 | | | The timestamp of the vector inserted.<br>If it is N/A, the current time will be used. |
| filters | repeated(Array[Filter.Config]) | | | Configuration for filter. |
Copy link
Contributor

Choose a reason for hiding this comment

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

🚫 [documents testlint] <eslint.rules.en-spell> reported by reviewdog 🐶
nfig => fig (en-spell)

| :---------------------: | :----------------------------- | :---- | :------: | :------------------------------------------------------------------------------------------------------------ |
| skip_strict_exist_check | bool | | | Check whether the same vector is already inserted or not.<br> The ID should be unique if the value is `true`. |
| timestamp | int64 | | | The timestamp of the vector inserted.<br>If it is N/A, the current time will be used. |
| filters | repeated(Array[Filter.Config]) | | | Configuration for filter. |
Copy link
Contributor

Choose a reason for hiding this comment

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

🚫 [documents testlint] <eslint.rules.en-spell> reported by reviewdog 🐶
nfig => fig (en-spell)

| :---------------------: | :----------------------------- | :---- | :------: | :------------------------------------------------------------------------------------------------------------ |
| skip_strict_exist_check | bool | | | Check whether the same vector is already inserted or not.<br> The ID should be unique if the value is `true`. |
| timestamp | int64 | | | The timestamp of the vector inserted.<br>If it is N/A, the current time will be used. |
| filters | repeated(Array[Filter.Config]) | | | Configuration for filter. |
Copy link
Contributor

Choose a reason for hiding this comment

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

🚫 [documents testlint] <eslint.rules.en-spell> reported by reviewdog 🐶
nfig => fig (en-spell)

| field | type | label | required | description |
| :-----: | :---------------------------- | :---- | :------: | :------------------------------------------------------------- |
| id | Object.ID | | \* | The ID of a vector. ID should consist of 1 or more characters. |
| filters | repeated(Array[Filter.Config] | | | Configuration for filter. |
Copy link
Contributor

Choose a reason for hiding this comment

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

🚫 [documents testlint] <eslint.rules.en-spell> reported by reviewdog 🐶
nfig => fig (en-spell)

| field | type | label | required | description |
| :-----: | :----------------------------- | :---- | :------: | :------------------------------------------------------------- |
| id | Object.ID | | \* | The ID of a vector. ID should consist of 1 or more characters. |
| filters | repeated(Array[Filter.Config]) | | | Configuration for the filter targets. |
Copy link
Contributor

Choose a reason for hiding this comment

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

🚫 [documents testlint] <eslint.rules.en-spell> reported by reviewdog 🐶
nfig => fig (en-spell)

| request_id | string | | | Unique request ID. |
| num | uint32 | | \* | The maximum number of results to be returned. |
| timeout | int64 | | | Search timeout in nanoseconds (default value is `5s`). |
| ingress_filters | repeated(Array[Filter.Config]) | | | Ingress Filter configuration. |
Copy link
Contributor

Choose a reason for hiding this comment

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

🚫 [documents testlint] <eslint.rules.en-spell> reported by reviewdog 🐶
nfig => fig (en-spell)

| num | uint32 | | \* | The maximum number of results to be returned. |
| timeout | int64 | | | Search timeout in nanoseconds (default value is `5s`). |
| ingress_filters | repeated(Array[Filter.Config]) | | | Ingress Filter configuration. |
| egress_filters | repeated(Array[Filter.Config]) | | | Egress Filter configuration. |
Copy link
Contributor

Choose a reason for hiding this comment

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

🚫 [documents testlint] <eslint.rules.en-spell> reported by reviewdog 🐶
nfig => fig (en-spell)

| request_id | string | | | Unique request ID. |
| num | uint32 | | \* | The maximum number of results to be returned. |
| timeout | int64 | | | Search timeout in nanoseconds (default value is `5s`). |
| ingress_filters | repeated(Array[Filter.Config]) | | | Ingress Filter configuration. |
Copy link
Contributor

Choose a reason for hiding this comment

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

🚫 [documents testlint] <eslint.rules.en-spell> reported by reviewdog 🐶
nfig => fig (en-spell)

| num | uint32 | | \* | The maximum number of results to be returned. |
| timeout | int64 | | | Search timeout in nanoseconds (default value is `5s`). |
| ingress_filters | repeated(Array[Filter.Config]) | | | Ingress Filter configuration. |
| egress_filters | repeated(Array[Filter.Config]) | | | Egress Filter configuration. |
Copy link
Contributor

Choose a reason for hiding this comment

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

🚫 [documents testlint] <eslint.rules.en-spell> reported by reviewdog 🐶
nfig => fig (en-spell)

| :---------------------: | :----------------------------- | :---- | :------: | :------------------------------------------------------------------------------------------------------------ |
| skip_strict_exist_check | bool | | | Check whether the same vector is already inserted or not.<br> The ID should be unique if the value is `true`. |
| timestamp | int64 | | | The timestamp of the vector inserted.<br>If it is N/A, the current time will be used. |
| filters | repeated(Array[Filter.Config]) | | | Configuration for filter. |
Copy link
Contributor

Choose a reason for hiding this comment

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

🚫 [documents testlint] <eslint.rules.en-spell> reported by reviewdog 🐶
nfig => fig (en-spell)

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 (10)
apis/docs/v1/docs.md (2)

1044-1056: Approve new fields in Search.Config, but suggest additional documentation.

The new fields added to the Search.Config message (ingress_filters, egress_filters, min_num, aggregation_algorithm, ratio, and nprobe) significantly enhance the search configuration options, aligning with the PR objectives.

However, given the number of new fields, it would be beneficial to provide more detailed documentation for each new field, explaining their purpose and usage.

Consider adding more detailed descriptions for each new field in the Search.Config message. For example:

 | ingress_filters       | [Filter.Config](#payload-v1-Filter-Config)                             | repeated | Ingress filter configurations.               |
+| egress_filters        | [Filter.Config](#payload-v1-Filter-Config)                             | repeated | Egress filter configurations applied after the search operation. |
+| min_num               | [uint32](#uint32)                                                      |          | Minimum number of results to be returned. |
+| aggregation_algorithm | [Search.AggregationAlgorithm](#payload-v1-Search-AggregationAlgorithm) |          | Algorithm used for aggregating search results. |
+| ratio                 | [google.protobuf.FloatValue](#google-protobuf-FloatValue)              |          | Ratio used to determine the number of results returned by each agent. |
+| nprobe                | [uint32](#uint32)                                                      |          | Number of probes to use in the search operation. |
🧰 Tools
🪛 Markdownlint

1055-1055: null
Link fragments should be valid

(MD051, link-fragments)


1166-1171: Approve new fields in Update.Config, but suggest clarification for 'disable_balanced_update'.

The addition of the filters field to the Update.Config message aligns with the PR objectives of enhancing filtering capabilities. The new disable_balanced_update field introduces an interesting feature for controlling the update process.

However, the purpose and implications of the disable_balanced_update field may not be immediately clear to all users.

Consider providing a more detailed explanation for the disable_balanced_update field. For example:

-| disable_balanced_update | [bool](#bool)                              |          | A flag to disable balanced update (split remove -&gt; insert operation) during update operation. |
+| disable_balanced_update | [bool](#bool)                              |          | A flag to disable balanced update during the update operation. When set to true, it prevents the update from being split into separate remove and insert operations, which may affect performance or consistency depending on the use case. Default is false. |
apis/proto/v1/payload/payload.proto (3)

162-169: Clarify the message comment for 'DistanceRequest'

The comment // Represent the ID and distance pair may not accurately reflect the contents of DistanceRequest, which includes a list of distances and a query. Consider updating the comment to better describe the purpose of this message, such as:

-// Represent the ID and distance pair.
+// Represents a request containing distances and an optional query for filtering.

170-175: Clarify the message comment for 'DistanceResponse'

The comment // Represent the ID and distance pair might not match the structure of DistanceResponse, which contains a list of distances without an associated ID. Consider updating the comment to:

-// Represent the ID and distance pair.
+// Represents a response containing filtered distances.

176-183: Clarify the message comment for 'VectorRequest'

The comment // Represent the ID and vector pair does not fully describe the VectorRequest message, which includes a vector and an optional query. To enhance clarity, consider revising the comment:

-// Represent the ID and vector pair.
+// Represents a request containing a vector and an optional query for filtering.
rust/libs/proto/src/payload.v1.rs (5)

262-273: Consider renaming the Query struct to avoid potential naming conflicts

Introducing a struct named Query within the Filter module may lead to naming conflicts or confusion with other Query types in the codebase or external libraries. Consider renaming it to something more specific, such as FilterQuery, to improve clarity and avoid ambiguity.


289-299: Update documentation comments for DistanceRequest

The documentation for DistanceRequest states "Represent the ID and distance pair," but the struct contains a list of distances and an optional query. Consider updating the comment to more accurately reflect the purpose of DistanceRequest, such as "Represent a request containing distances and an optional query for filtering."


304-315: Update documentation comments for DistanceResponse

The documentation for DistanceResponse states "Represent the ID and distance pair," but the struct contains a list of distances. Consider updating the comment to reflect that this struct represents a response containing distances after filtering.


316-326: Update documentation comments for VectorRequest

The documentation for VectorRequest states "Represent the ID and vector pair," but the struct contains a vector and an optional query. Consider updating the comment to more accurately describe the purpose of VectorRequest, such as "Represent a request containing a vector and an optional query for filtering."


331-342: Update documentation comments for VectorResponse

The documentation for VectorResponse states "Represent the ID and vector pair," but the struct contains a vector. Consider updating the comment to accurately describe VectorResponse, such as "Represent a response containing a filtered vector."

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Files that changed from the base of the PR and between b406be6 and d9ca20c.

⛔ Files ignored due to path filters (3)
  • apis/grpc/v1/payload/payload.pb.go is excluded by !**/*.pb.go, !**/*.pb.go
  • apis/grpc/v1/payload/payload.pb.json.go is excluded by !**/*.pb.json.go
  • apis/grpc/v1/payload/payload_vtproto.pb.go is excluded by !**/*.pb.go, !**/*.pb.go
📒 Files selected for processing (3)
  • apis/docs/v1/docs.md (9 hunks)
  • apis/proto/v1/payload/payload.proto (6 hunks)
  • rust/libs/proto/src/payload.v1.rs (6 hunks)
🧰 Additional context used
🪛 Markdownlint
apis/docs/v1/docs.md

1055-1055: null
Link fragments should be valid

(MD051, link-fragments)

🔇 Additional comments (12)
apis/docs/v1/docs.md (4)

16-17: New message types for distance filtering look good.

The addition of Filter.DistanceRequest and Filter.DistanceResponse message types enhances the API's capabilities for distance-related filtering operations. This is in line with the PR objectives.


18-18: New Filter.Query message type is appropriate.

The addition of the Filter.Query message type aligns with the PR objectives, enabling more complex filtering configurations in the API.


20-21: New message types for vector filtering are well-placed.

The addition of Filter.VectorRequest and Filter.VectorResponse message types enhances the API's vector filtering capabilities, which is consistent with the PR objectives.


958-961: Addition of filters field to Object.VectorRequest is appropriate.

The inclusion of the filters field in the Object.VectorRequest message allows for filtering configurations when fetching vectors, which aligns with the PR objectives of enhancing filtering capabilities.

apis/proto/v1/payload/payload.proto (2)

148-153: Addition of 'Filter.Query' message looks good

The new Filter.Query message appropriately encapsulates a raw query string for filter configurations. This enhances flexibility by allowing queries to be passed between egress filters and the filter gateway.


157-160: Addition of 'query' field to 'Filter.Config'

Adding the Query query = 2; field to Filter.Config is a valid extension that enables passing query parameters to filters. The new field uses a unique tag number, ensuring compatibility with existing Protobuf conventions.

rust/libs/proto/src/payload.v1.rs (6)

279-283: Addition of query field to Filter.Config appears correct

The query field has been added to Filter.Config. The implementation and documentation are appropriate.


525-526: ⚠️ Potential issue

Ensure that multiple filters are handled correctly in Update.Config

The filters field in Update.Config has been changed from an optional filter::Config to a repeated Vec<filter::Config>. Ensure that all related code is updated to handle multiple filters during update operations.

Run the following script to find usages of Update.Config and check for potential issues:

#!/bin/bash
# Description: Find all usages of `filters` in `Update.Config`
rg --type rust -A 3 'Update.Config' | rg 'filters'

420-421: ⚠️ Potential issue

Ensure that multiple filters are handled correctly in Insert.Config

The filters field in Insert.Config has been changed from an optional filter::Config to a repeated Vec<filter::Config>. Verify that all code constructing or using Insert.Config is updated to handle multiple filters. This may affect insertion logic and data validation.

Run the following script to find usages of Insert.Config and check for potential issues:

#!/bin/bash
# Description: Find all usages of `filters` in `Insert.Config`
rg --type rust -A 3 'Insert.Config' | rg 'filters'

616-617: ⚠️ Potential issue

Ensure that multiple filters are handled correctly in Upsert.Config

The filters field in Upsert.Config has been changed from an optional filter::Config to a repeated Vec<filter::Config>. Verify that all code constructing or using Upsert.Config is updated to handle multiple filters during upsert operations.

Run the following script to find usages of Upsert.Config and check for potential issues:

#!/bin/bash
# Description: Find all usages of `filters` in `Upsert.Config`
rg --type rust -A 3 'Upsert.Config' | rg 'filters'

802-803: ⚠️ Potential issue

Ensure that multiple filters are handled correctly in Object.VectorRequest

The filters field in Object.VectorRequest has been changed from an optional filter::Config to a repeated Vec<filter::Config>. Make sure all usages of Object.VectorRequest handle multiple filters appropriately, and that requesting vectors works correctly with multiple filters.

Run the following script to find usages of Object.VectorRequest and check for potential issues:

#!/bin/bash
# Description: Find all usages of `filters` in `Object.VectorRequest`
rg --type rust -A 3 'Object.VectorRequest' | rg 'filters'

126-127: ⚠️ Potential issue

Ensure that multiple filters are handled correctly in Search.Config

The ingress_filters and egress_filters fields in Search.Config have been changed from optional single filter::Config to repeated Vec<filter::Config>. Verify that all code that constructs or uses Search.Config is updated to handle multiple ingress and egress filters. This might affect serialization/deserialization and any logic that assumes a single filter.

Run the following script to find usages of Search.Config and check for potential issues:

Also applies to: 129-130

apis/docs/v1/docs.md Show resolved Hide resolved
apis/proto/v1/payload/payload.proto Show resolved Hide resolved
apis/proto/v1/payload/payload.proto Show resolved Hide resolved
apis/proto/v1/payload/payload.proto Show resolved Hide resolved
apis/proto/v1/payload/payload.proto Show resolved Hide resolved
apis/proto/v1/payload/payload.proto Show resolved Hide resolved
apis/proto/v1/payload/payload.proto Show resolved Hide resolved
Signed-off-by: hlts2 <hiroto.funakoshi.hiroto@gmail.com>
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 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Message
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING

// Represent insert configurations.


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

Target target = 1;


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


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Message
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING

// Represent the update configuration.


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Repeated
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING

repeated Filter.Config filters = 2;


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Bool
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING

bool disable_balanced_update = 4;


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Message
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: String
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING

string query = 1;


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

Target target = 1;


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


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Message
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING

// Represent the upsert configuration.


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Repeated
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING

repeated Filter.Config filters = 2;


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Bool
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING

bool disable_balanced_update = 4;


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Message
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: String
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING

string query = 1;


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

Target target = 1;


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


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Repeated
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING

repeated Filter.Config ingress_filters = 6;


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Repeated
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING

repeated Filter.Config egress_filters = 7;


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Message
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: String
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING

string query = 1;


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

Target target = 1;


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


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Message
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: String
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING

string query = 1;


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

Target target = 1;


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


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Message
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING

// Represent the remove configuration.


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Gateway
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Filter
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Agent
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING


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

helm install vald vald/vald --values example/helm/values.yaml


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Go
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING

go run ./example/client/gateway/filter/main.go -addr "localhost:8081" -ingresshost "vald-ingress-filter.default.svc.cluster.local" -ingressport 8082 -egresshost "vald-egress-filter.default.svc.cluster.local" -egressport 8083

| :---------------------: | :----------------------------- | :---- | :------: | :------------------------------------------------------------------------------------------------------------ |
| skip_strict_exist_check | bool | | | Check whether the same vector is already inserted or not.<br> The ID should be unique if the value is `true`. |
| timestamp | int64 | | | The timestamp of the vector inserted.<br>If it is N/A, the current time will be used. |
| filters | repeated(Array[Filter.Config]) | | | Configuration for filter. |
Copy link
Contributor

Choose a reason for hiding this comment

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

🚫 [documents testlint] <eslint.rules.en-spell> reported by reviewdog 🐶
nfig => fig (en-spell)

| :---------------------: | :----------------------------- | :---- | :------: | :------------------------------------------------------------------------------------------------------------ |
| skip_strict_exist_check | bool | | | Check whether the same vector is already inserted or not.<br> The ID should be unique if the value is `true`. |
| timestamp | int64 | | | The timestamp of the vector inserted.<br>If it is N/A, the current time will be used. |
| filters | repeated(Array[Filter.Config]) | | | Configuration for filter. |
Copy link
Contributor

Choose a reason for hiding this comment

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

🚫 [documents testlint] <eslint.rules.en-spell> reported by reviewdog 🐶
nfig => fig (en-spell)

| :---------------------: | :----------------------------- | :---- | :------: | :------------------------------------------------------------------------------------------------------------ |
| skip_strict_exist_check | bool | | | Check whether the same vector is already inserted or not.<br> The ID should be unique if the value is `true`. |
| timestamp | int64 | | | The timestamp of the vector inserted.<br>If it is N/A, the current time will be used. |
| filters | repeated(Array[Filter.Config]) | | | Configuration for filter. |
Copy link
Contributor

Choose a reason for hiding this comment

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

🚫 [documents testlint] <eslint.rules.en-spell> reported by reviewdog 🐶
nfig => fig (en-spell)

| :---------------------: | :----------------------------- | :---- | :------: | :------------------------------------------------------------------------------------------------------------ |
| skip_strict_exist_check | bool | | | Check whether the same vector is already inserted or not.<br> The ID should be unique if the value is `true`. |
| timestamp | int64 | | | The timestamp of the vector inserted.<br>If it is N/A, the current time will be used. |
| filters | repeated(Array[Filter.Config]) | | | Configuration for filter. |
Copy link
Contributor

Choose a reason for hiding this comment

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

🚫 [documents testlint] <eslint.rules.en-spell> reported by reviewdog 🐶
nfig => fig (en-spell)

| :---------------------: | :----------------------------- | :---- | :------: | :------------------------------------------------------------------------------------------------------------ |
| skip_strict_exist_check | bool | | | Check whether the same vector is already inserted or not.<br> The ID should be unique if the value is `true`. |
| timestamp | int64 | | | The timestamp of the vector inserted.<br>If it is N/A, the current time will be used. |
| filters | repeated(Array[Filter.Config]) | | | Configuration for filter. |
Copy link
Contributor

Choose a reason for hiding this comment

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

🚫 [documents testlint] <eslint.rules.en-spell> reported by reviewdog 🐶
nfig => fig (en-spell)

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

🧹 Outside diff range and nitpick comments (2)
internal/client/v1/client/filter/egress/client.go (2)

Line range hint 156-169: Refactor duplicated code in FilterDistance and FilterVector methods

The implementations of FilterDistance and FilterVector in the specificAddrClient type are similar in structure and logic. Consider refactoring the shared code into a helper function or method to reduce duplication and improve maintainability.

Also applies to: 226-239


Line range hint 178-195: Refactor duplicated code in multiple address client methods

The FilterDistance and FilterVector methods in the multipleAddrsClient type also contain duplicated code. Refactoring the common logic into shared helper functions can enhance code readability and maintainability.

Also applies to: 248-265

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Files that changed from the base of the PR and between d9ca20c and a19e8e6.

📒 Files selected for processing (1)
  • internal/client/v1/client/filter/egress/client.go (12 hunks)
🔇 Additional comments (2)
internal/client/v1/client/filter/egress/client.go (2)

134-135: Method signature updated to use new request type

The FilterDistance method now correctly accepts *payload.Filter_DistanceRequest, aligning with the updated API changes. This ensures consistency with the new request and response types.


Line range hint 153-199: Duplicate code detected in client methods

There is significant code duplication between the methods in lines 153-199 and 221-267. This issue has been previously flagged by static analysis tools. Refactoring the duplicated code into shared functions would reduce redundancy and improve code quality.

Also applies to: 221-267

coderabbitai[bot]
coderabbitai bot previously approved these changes Sep 30, 2024
Copy link
Contributor

Signed-off-by: hlts2 <hiroto.funakoshi.hiroto@gmail.com>
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

🧹 Outside diff range and nitpick comments (19)
example/client/gateway/filter/ingress-filter/main.go (2)

35-52: LGTM: Well-structured global variables and init function.

The global variables and init function are well-structured and provide a good setup for the example program. The command-line flags are properly set up with sensible default values.

Consider formatting the flag description comments as proper Go doc comments for better consistency:

-	/**
-	  Ingresshost option specifies grpc server host of your ingress filter. Default value is `127.0.0.1`.
-	  Ingressport option specifies grpc server port of your ingress filter. Default value is `8082`.
-	  Dimension option specifies dimension size of vectors. Default value is  `784`.
-	  **/
+	// Ingresshost option specifies grpc server host of your ingress filter. Default value is `127.0.0.1`.
+	// Ingressport option specifies grpc server port of your ingress filter. Default value is `8082`.
+	// Dimension option specifies dimension size of vectors. Default value is `784`.

54-80: Main function structure is good, but consider improving example inputs.

The main function is well-structured with proper error handling and demonstrates basic usage of the ingress filter client. However, the example inputs for GenVector and FilterVector might not represent realistic scenarios.

Consider using more realistic example inputs:

-	res, err := client.GenVector(context.Background(), &payload.Object_Blob{Id: "1", Object: make([]byte, 0)})
+	res, err := client.GenVector(context.Background(), &payload.Object_Blob{Id: "1", Object: []byte("example input data")})
 	if err != nil {
 		glg.Error(err)
 		return
 	}
 	glg.Info("GenVector Vector: ", res.GetVector())

-	res, err = client.FilterVector(context.Background(), &payload.Object_Vector{Id: "1", Vector: make([]float32, dimension)})
+	res, err = client.FilterVector(context.Background(), &payload.Object_Vector{Id: "1", Vector: res.GetVector()})
 	if err != nil {
 		glg.Error(err)
 		return
 	}
 	glg.Info("FilterVector Id: ", res.GetId())

This change uses the vector generated by GenVector as input for FilterVector, providing a more realistic example flow.

example/client/gateway/filter/egress-filter/main.go (4)

35-52: LGTM with a minor suggestion.

The global variables and init function are well-structured and provide good flexibility for users. The use of command-line flags is a good practice for configuration.

Consider using a configuration struct instead of global variables for better encapsulation and testability. For example:

type Config struct {
    EgressServerHost string
    EgressServerPort uint
    Dimension        uint
}

var cfg Config

func init() {
    flag.StringVar(&cfg.EgressServerHost, "host", "127.0.0.1", "ingress server host")
    flag.UintVar(&cfg.EgressServerPort, "port", 8083, "ingress server port")
    flag.UintVar(&cfg.Dimension, "dimension", 784, "dimension size of vectors")
    flag.Parse()
}

54-62: Improve error handling for gRPC connection.

While the error handling for the gRPC connection is present, it could be more robust. Consider using a helper function for error logging and program termination.

Here's a suggestion for improvement:

func logFatalErr(msg string, err error) {
    if err != nil {
        glg.Fatalf("%s: %v", msg, err)
    }
}

// In main():
conn, err := grpc.NewClient(addr, grpc.WithTransportCredentials(insecure.NewCredentials()))
logFatalErr("Failed to connect to gRPC server", err)

This approach provides more consistent error handling and ensures the program terminates on critical errors.


90-95: Implement consistent error handling.

The error handling for the FilterDistance and FilterVector calls is present but inconsistent with the connection error handling. Consider using the same error handling pattern throughout the code for consistency.

Here's a suggestion for improvement:

res, err := client.FilterDistance(context.Background(), fdr)
logFatalErr("Failed to filter distance", err)
glg.Info("FilterDistance Distance: ", res.GetDistance())

r, err := client.FilterVector(context.Background(), &payload.Filter_VectorRequest{
    Vector: &payload.Object_Vector{
        Id: "1", Vector: make([]float32, dimension),
    },
    Query: &payload.Filter_Query{},
})
logFatalErr("Failed to filter vector", err)
glg.Info("FilterVector Vector: ", r.GetVector())

Also applies to: 103-107


97-102: Consider using a more meaningful vector in the FilterVector call.

The current implementation uses a zero-filled vector, which might not be the most illustrative example. Consider using a vector with some non-zero values to better demonstrate the filtering capabilities.

Here's a suggestion:

vector := make([]float32, dimension)
for i := range vector {
    vector[i] = float32(i) // or use some other meaningful values
}

r, err := client.FilterVector(context.Background(), &payload.Filter_VectorRequest{
    Vector: &payload.Object_Vector{
        Id: "1", Vector: vector,
    },
    Query: &payload.Filter_Query{},
})
docs/user-guides/filtering-configuration.md (1)

75-76: Great addition, consider using an absolute URL.

The addition of a link to more sample filters is valuable for users. However, to ensure the link remains valid across different contexts (e.g., when viewed on GitHub or a documentation website), consider using an absolute URL instead of a relative path.

Replace the relative path with an absolute URL:

-You can also find other samples [here](../../example/client/gateway/filter).
+You can also find other samples [here](https://github.com/vdaas/vald/tree/main/example/client/gateway/filter).
example/client/mirror/main.go (1)

Line range hint 1-270: LGTM! Consider adding error handling for deferred operations.

The overall structure and functionality of the file are well-implemented. The code is well-commented, follows Go best practices, and provides a comprehensive example of interacting with a Vald cluster.

Consider adding error handling for deferred operations, especially for conn.Close(). You can do this by wrapping the defer statement in a function:

defer func() {
    err := conn.Close()
    if err != nil {
        log.Printf("Error closing connection: %v", err)
    }
}()

This ensures that any errors during connection closure are logged and not silently ignored.

docs/user-guides/client-api-config.md (11)

23-24: Update comment for the filters field

The filters field has been changed to a repeated field, allowing multiple filter configurations. Consider updating the comment to reflect this change:

-  // Filter configurations.
+  // Filter configurations. Multiple filters can be applied sequentially.

This change will provide clearer documentation for users of the API.


69-75: Improve the sample code for Filter_Config

The sample code has been updated to reflect the changes in the Config message structure. However, the Query field is left empty, which might not be the most informative example for users. Consider adding a sample query string:

 Filters: []*payload.Filter_Config{
   {
     Target: &payload.Filter_Target{
       Host: "vald-ingress-filter",
       Port: 8081,
     },
-    Query: &payload.Filter_Query{},
+    Query: &payload.Filter_Query{
+      Query: "sample query string",
+    },
   },
 },

This change will provide a more comprehensive example of how to use the Filter_Config in practice.

🧰 Tools
🪛 Markdownlint

69-69: Column: 1
Hard tabs

(MD010, no-hard-tabs)


70-70: Column: 1
Hard tabs

(MD010, no-hard-tabs)


71-71: Column: 1
Hard tabs

(MD010, no-hard-tabs)


72-72: Column: 1
Hard tabs

(MD010, no-hard-tabs)


73-73: Column: 1
Hard tabs

(MD010, no-hard-tabs)


74-74: Column: 1
Hard tabs

(MD010, no-hard-tabs)


75-75: Column: 1
Hard tabs

(MD010, no-hard-tabs)


148-149: Update comment for the filters field

The filters field has been changed to a repeated field, allowing multiple filter configurations. Consider updating the comment to reflect this change:

-  // Filter configuration.
+  // Filter configurations. Multiple filters can be applied sequentially.

This change will provide clearer documentation for users of the API.


152-153: Add explanation for the disable_balanced_update field

A new field disable_balanced_update has been added to the Config message. Consider adding a brief explanation of its purpose and default value in the documentation below the code block. For example:

#### disable_balanced_update

`disable_balanced_update` is a flag to disable the balanced update process during the update operation. When set to `true`, it prevents the update from being split into separate remove and insert operations. The default value is `false`.

This addition will help users understand the purpose and implications of this new configuration option.


283-284: Update comment for the filters field

The filters field has been changed to a repeated field, allowing multiple filter configurations. Consider updating the comment to reflect this change:

-  // Filter configuration.
+  // Filter configurations. Multiple filters can be applied sequentially.

This change will provide clearer documentation for users of the API.


287-288: Add explanation for the disable_balanced_update field

A new field disable_balanced_update has been added to the Config message. Consider adding a brief explanation of its purpose and default value in the documentation below the code block. For example:

#### disable_balanced_update

`disable_balanced_update` is a flag to disable the balanced update process during the upsert operation. When set to `true`, it prevents the upsert from being split into separate remove and insert operations. The default value is `false`.

This addition will help users understand the purpose and implications of this new configuration option.


446-446: Update validation rule for num field

The num field now has a validation rule to ensure it's greater than or equal to 1. This is a good practice to prevent invalid input. Consider adding a comment to explain this constraint:

-  uint32 num = 2 [ (validate.rules).uint32.gte = 1 ];
+  // Must be a positive integer.
+  uint32 num = 2 [ (validate.rules).uint32.gte = 1 ];

This addition will help users understand the valid range for this field.


455-457: Update comments for the ingress_filters and egress_filters fields

The ingress_filters and egress_filters fields have been changed to repeated fields, allowing multiple filter configurations. Consider updating the comments to reflect this change:

-  // Ingress filter configurations.
+  // Ingress filter configurations. Multiple filters can be applied sequentially.
   repeated Filter.Config ingress_filters = 6;
-  // Egress filter configurations.
+  // Egress filter configurations. Multiple filters can be applied sequentially.
   repeated Filter.Config egress_filters = 7;

These changes will provide clearer documentation for users of the API.


458-458: Add explanation for the min_num validation rule

The min_num field now has a validation rule to ensure it's greater than or equal to 0. Consider adding a comment to explain this constraint:

-  uint32 min_num = 8 [ (validate.rules).uint32.gte = 0 ];
+  // Must be a non-negative integer.
+  uint32 min_num = 8 [ (validate.rules).uint32.gte = 0 ];

This addition will help users understand the valid range for this field.


529-544: Improve the sample code for Search Configuration

The sample code has been updated to reflect the changes in the Config message structure. However, there are a few improvements that could make the example more informative:

  1. The Query fields are left empty. Consider adding sample query strings:
 IngressFilters: []*payload.Filter_Config{
   {
     Target: &payload.Filter_Target{
       Host: "vald-ingress-filter",
       Port: 8081,
     },
-    Query: &payload.Filter_Query{},
+    Query: &payload.Filter_Query{
+      Query: "sample ingress query",
+    },
   },
 },
 EgressFilters: []*payload.Filter_Config{
   {
     Target: &payload.Filter_Target{
       Host: "vald-egress-filter",
       Port: 8081,
     },
-    Query: &payload.Filter_Query{},
+    Query: &payload.Filter_Query{
+      Query: "sample egress query",
+    },
   },
 },
  1. Add a comment explaining the chosen AggregationAlgorithm:
-AggregationAlgorithm: payload.Search_PairingHeap,
+// Choose the appropriate aggregation algorithm based on your use case
+AggregationAlgorithm: payload.Search_PairingHeap,

These changes will provide a more comprehensive and informative example of how to use the Search Configuration in practice.

🧰 Tools
🪛 Markdownlint

529-529: Column: 1
Hard tabs

(MD010, no-hard-tabs)


530-530: Column: 1
Hard tabs

(MD010, no-hard-tabs)


531-531: Column: 1
Hard tabs

(MD010, no-hard-tabs)


532-532: Column: 1
Hard tabs

(MD010, no-hard-tabs)


533-533: Column: 1
Hard tabs

(MD010, no-hard-tabs)


534-534: Column: 1
Hard tabs

(MD010, no-hard-tabs)


535-535: Column: 1
Hard tabs

(MD010, no-hard-tabs)


536-536: Column: 1
Hard tabs

(MD010, no-hard-tabs)


537-537: Column: 1
Hard tabs

(MD010, no-hard-tabs)


538-538: Column: 1
Hard tabs

(MD010, no-hard-tabs)


539-539: Column: 1
Hard tabs

(MD010, no-hard-tabs)


540-540: Column: 1
Hard tabs

(MD010, no-hard-tabs)


541-541: Column: 1
Hard tabs

(MD010, no-hard-tabs)


542-542: Column: 1
Hard tabs

(MD010, no-hard-tabs)


543-543: Column: 1
Hard tabs

(MD010, no-hard-tabs)


544-544: Column: 1
Hard tabs

(MD010, no-hard-tabs)


677-681: Improve consistency in Remove Service configuration

The Config message for the Remove service has been updated with a new timestamp field, which is consistent with other service configurations. However, there are a couple of improvements that could be made for better consistency:

  1. Update the comment for skip_strict_exist_check to match other services:
-  // A flag to skip exist check during upsert operation.
+  // A flag to skip exist check during remove operation.
   bool skip_strict_exist_check = 1;
  1. Add a comment for the new timestamp field:
+  // Remove timestamp. If not set, the current time will be used.
   int64 timestamp = 3;

These changes will improve the consistency of the documentation across different service configurations.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

📥 Commits

Files that changed from the base of the PR and between a19e8e6 and 927d897.

📒 Files selected for processing (6)
  • charts/vald/values.yaml (1 hunks)
  • docs/user-guides/client-api-config.md (15 hunks)
  • docs/user-guides/filtering-configuration.md (1 hunks)
  • example/client/gateway/filter/egress-filter/main.go (1 hunks)
  • example/client/gateway/filter/ingress-filter/main.go (1 hunks)
  • example/client/mirror/main.go (2 hunks)
🧰 Additional context used
🪛 Markdownlint
docs/user-guides/client-api-config.md

69-69: Column: 1
Hard tabs

(MD010, no-hard-tabs)


70-70: Column: 1
Hard tabs

(MD010, no-hard-tabs)


71-71: Column: 1
Hard tabs

(MD010, no-hard-tabs)


72-72: Column: 1
Hard tabs

(MD010, no-hard-tabs)


73-73: Column: 1
Hard tabs

(MD010, no-hard-tabs)


74-74: Column: 1
Hard tabs

(MD010, no-hard-tabs)


75-75: Column: 1
Hard tabs

(MD010, no-hard-tabs)


196-196: Column: 1
Hard tabs

(MD010, no-hard-tabs)


197-197: Column: 1
Hard tabs

(MD010, no-hard-tabs)


198-198: Column: 1
Hard tabs

(MD010, no-hard-tabs)


199-199: Column: 1
Hard tabs

(MD010, no-hard-tabs)


200-200: Column: 1
Hard tabs

(MD010, no-hard-tabs)


201-201: Column: 1
Hard tabs

(MD010, no-hard-tabs)


202-202: Column: 1
Hard tabs

(MD010, no-hard-tabs)


330-330: Column: 1
Hard tabs

(MD010, no-hard-tabs)


331-331: Column: 1
Hard tabs

(MD010, no-hard-tabs)


332-332: Column: 1
Hard tabs

(MD010, no-hard-tabs)


333-333: Column: 1
Hard tabs

(MD010, no-hard-tabs)


334-334: Column: 1
Hard tabs

(MD010, no-hard-tabs)


335-335: Column: 1
Hard tabs

(MD010, no-hard-tabs)


336-336: Column: 1
Hard tabs

(MD010, no-hard-tabs)


529-529: Column: 1
Hard tabs

(MD010, no-hard-tabs)


530-530: Column: 1
Hard tabs

(MD010, no-hard-tabs)


531-531: Column: 1
Hard tabs

(MD010, no-hard-tabs)


532-532: Column: 1
Hard tabs

(MD010, no-hard-tabs)


533-533: Column: 1
Hard tabs

(MD010, no-hard-tabs)


534-534: Column: 1
Hard tabs

(MD010, no-hard-tabs)


535-535: Column: 1
Hard tabs

(MD010, no-hard-tabs)


536-536: Column: 1
Hard tabs

(MD010, no-hard-tabs)


537-537: Column: 1
Hard tabs

(MD010, no-hard-tabs)


538-538: Column: 1
Hard tabs

(MD010, no-hard-tabs)


539-539: Column: 1
Hard tabs

(MD010, no-hard-tabs)


540-540: Column: 1
Hard tabs

(MD010, no-hard-tabs)


541-541: Column: 1
Hard tabs

(MD010, no-hard-tabs)


542-542: Column: 1
Hard tabs

(MD010, no-hard-tabs)


543-543: Column: 1
Hard tabs

(MD010, no-hard-tabs)


544-544: Column: 1
Hard tabs

(MD010, no-hard-tabs)

🔇 Additional comments (9)
example/client/gateway/filter/ingress-filter/main.go (2)

1-14: LGTM: Proper license header and package declaration.

The file starts with the correct Apache 2.0 license header, and the package is appropriately declared as main for an executable Go program.


16-33: Imports look good, but note the temporary workaround.

The imports are appropriate for the file's functionality. However, there's a temporary workaround using root module imports instead of the vald-client-go module due to unreleased changes.

To ensure this workaround is addressed in the future, let's create a TODO comment and search for similar workarounds:

✅ Verification successful

Import section approved and TODO comment added.

The import section is appropriate, and the temporary workaround has been addressed by adding a TODO comment. No other similar workarounds were found in the codebase.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Add a TODO comment to remind about updating imports after release
sed -i '22i // TODO: Update import paths to use vald-client-go after release' example/client/gateway/filter/ingress-filter/main.go

# Search for similar workarounds in other files
rg --type go "vald-client-go.*current version is"

Length of output: 184

example/client/gateway/filter/egress-filter/main.go (2)

67-89: LGTM: Well-structured Filter_DistanceRequest.

The construction of the Filter_DistanceRequest is clear and demonstrates the new query feature effectively. The use of predefined distance values for various objects provides a good example of how to use this API.


54-108: LGTM: Well-structured main function demonstrating API usage.

The main function effectively demonstrates the usage of the FilterDistance and FilterVector APIs. It provides a good example of how to construct requests and handle responses from the egress filter service.

docs/user-guides/filtering-configuration.md (1)

Line range hint 1-146: Excellent documentation update.

The document has been comprehensively updated to reflect the changes mentioned in the PR objectives. It now provides clear instructions on enabling and configuring filtering features in the Vald cluster, including:

  1. Detailed explanations of ingress and egress filters
  2. RPC definitions for both filter types
  3. Links to official filter components and additional samples
  4. Configuration examples for both Helm charts and client-side setup

The structure is logical and easy to follow, making it a valuable resource for users implementing filtering in their Vald deployments.

example/client/mirror/main.go (1)

72-72: ⚠️ Potential issue

Consider using secure gRPC connections in production environments.

The change from grpc.WithInsecure() to grpc.WithTransportCredentials(insecure.NewCredentials()) updates the code to use the newer gRPC API, which is good. However, both options create an insecure connection, which is fine for testing but not recommended for production use.

For production environments, consider implementing secure connections using TLS. You can do this by replacing the current line with:

creds, err := credentials.NewClientTLSFromFile(certFile, serverNameOverride)
if err != nil {
    log.Fatalf("Failed to create TLS credentials: %v", err)
}
conn, err := grpc.Dial(addr, grpc.WithTransportCredentials(creds))

Make sure to import the necessary package: "google.golang.org/grpc/credentials"

To ensure that the gRPC package supports the new API, run the following command:

This will show the current version of the gRPC package used in the project. Ensure it's up-to-date to support the new API.

✅ Verification successful

Review Comment Verified Successfully.

The project is using google.golang.org/grpc version v1.67.0, which supports the updated grpc.WithTransportCredentials(insecure.NewCredentials()) method. However, as highlighted, both the old and new methods establish insecure connections and are not recommended for production environments.

For enhanced security in production, consider implementing TLS credentials as follows:

creds, err := credentials.NewClientTLSFromFile(certFile, serverNameOverride)
if err != nil {
    log.Fatalf("Failed to create TLS credentials: %v", err)
}
conn, err := grpc.Dial(addr, grpc.WithTransportCredentials(creds))

Ensure to import the necessary package:

"google.golang.org/grpc/credentials"
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

go list -m google.golang.org/grpc

Length of output: 105


Script:

#!/bin/bash
# Extracting the version of google.golang.org/grpc from go.mod
grep "google.golang.org/grpc" go.mod

Length of output: 478

docs/user-guides/client-api-config.md (1)

Line range hint 1-681: Overall assessment of changes to client API configuration

The updates to the client API configuration documentation are comprehensive and align well with the PR objectives. The changes introduce more flexibility in filter configurations across various services (Insert, Update, Upsert, Search, and Remove) by allowing multiple filters to be applied sequentially. The addition of new fields like disable_balanced_update and aggregation_algorithm provides users with more control over the operations.

Key improvements:

  1. Consistent updates across all relevant service configurations.
  2. Introduction of repeated filter configurations for increased flexibility.
  3. Addition of new control flags and options (e.g., disable_balanced_update, aggregation_algorithm).
  4. Updated sample code to reflect the new structure of configurations.

While the changes are generally well-documented, there are opportunities for minor improvements in the comments and sample code to provide even clearer guidance to users. These suggestions have been outlined in the individual review comments.

Overall, these changes enhance the capabilities of the Vald client API and provide users with more fine-grained control over various operations. The documentation updates will help users understand and utilize these new features effectively.

🧰 Tools
🪛 Markdownlint

526-526: Column: 1
Hard tabs

(MD010, no-hard-tabs)


527-527: Column: 1
Hard tabs

(MD010, no-hard-tabs)


528-528: Column: 1
Hard tabs

(MD010, no-hard-tabs)


529-529: Column: 1
Hard tabs

(MD010, no-hard-tabs)


530-530: Column: 1
Hard tabs

(MD010, no-hard-tabs)


531-531: Column: 1
Hard tabs

(MD010, no-hard-tabs)


532-532: Column: 1
Hard tabs

(MD010, no-hard-tabs)


533-533: Column: 1
Hard tabs

(MD010, no-hard-tabs)


534-534: Column: 1
Hard tabs

(MD010, no-hard-tabs)


535-535: Column: 1
Hard tabs

(MD010, no-hard-tabs)


536-536: Column: 1
Hard tabs

(MD010, no-hard-tabs)


537-537: Column: 1
Hard tabs

(MD010, no-hard-tabs)


538-538: Column: 1
Hard tabs

(MD010, no-hard-tabs)


539-539: Column: 1
Hard tabs

(MD010, no-hard-tabs)


540-540: Column: 1
Hard tabs

(MD010, no-hard-tabs)


541-541: Column: 1
Hard tabs

(MD010, no-hard-tabs)


542-542: Column: 1
Hard tabs

(MD010, no-hard-tabs)


543-543: Column: 1
Hard tabs

(MD010, no-hard-tabs)


544-544: Column: 1
Hard tabs

(MD010, no-hard-tabs)


545-545: Column: 1
Hard tabs

(MD010, no-hard-tabs)


546-546: Column: 1
Hard tabs

(MD010, no-hard-tabs)

charts/vald/values.yaml (2)

1519-1520: Approved: Enhanced flexibility for object filters

The change from an array of strings to an array of objects for object_filters provides more flexibility in configuring filters. This aligns with the PR objective of enhancing filtering capabilities.


1522-1523: Approved: Improved distance filter configuration

Similar to the object filters, the distance_filters have been updated from an array of strings to an array of objects. This change allows for more detailed and flexible distance filter configurations, supporting the PR's goal of enhancing filtering capabilities.

Comment on lines +16 to +33
import (
// NOTE:
// The correct approach is to use "github.com/vdaas/vald-client-go/v1/payload" and "github.com/vdaas/vald-client-go/v1/vald" in the "example/client".
// However, the "vald-client-go" module is not available in the filter client example
// because the changes to the filter query have not been released. (current version is v1.7.12)
// Therefore, the root module is used until it is released.
// The import path and go.mod will be changed after release.
"context"
"flag"
"net"
"strconv"

"github.com/kpango/glg"
"github.com/vdaas/vald/apis/grpc/v1/filter/egress"
"github.com/vdaas/vald/apis/grpc/v1/payload"
"google.golang.org/grpc"
"google.golang.org/grpc/credentials/insecure"
)
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

Consider using secure credentials for production environments.

The import of "google.golang.org/grpc/credentials/insecure" suggests that this client is using insecure credentials. While this is acceptable for development or testing purposes, it's not recommended for production environments.

For production use, consider implementing TLS certificates for secure communication. You can use grpc.WithTransportCredentials(credentials.NewClientTLSFromCert(...)) instead of grpc.WithTransportCredentials(insecure.NewCredentials()).

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 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Message
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: String
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING

string query = 1;


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

Target target = 1;


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


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Message
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING

// Represent the update configuration.


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Repeated
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING

repeated Filter.Config filters = 2;


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Bool
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING

bool disable_balanced_update = 4;


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Message
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: String
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING

string query = 1;


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

Target target = 1;


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


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Message
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING

// Represent the upsert configuration.


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Repeated
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING

repeated Filter.Config filters = 2;


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Bool
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING

bool disable_balanced_update = 4;


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Message
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: String
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING

string query = 1;


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

Target target = 1;


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


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Repeated
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING

repeated Filter.Config ingress_filters = 6;


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Repeated
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING

repeated Filter.Config egress_filters = 7;


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Message
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: String
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING

string query = 1;


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

Target target = 1;


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


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Message
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: String
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING

string query = 1;


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

Target target = 1;


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


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Message
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING

// Represent the remove configuration.


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Gateway
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Filter
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Agent
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING


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

helm install vald vald/vald --values example/helm/values.yaml


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Go
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING

go run ./example/client/gateway/filter/main.go -addr "localhost:8081" -ingresshost "vald-ingress-filter.default.svc.cluster.local" -ingressport 8082 -egresshost "vald-egress-filter.default.svc.cluster.local" -egressport 8083

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 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Message
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING

// Represent the update configuration.


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Repeated
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING

repeated Filter.Config filters = 2;


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Bool
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING

bool disable_balanced_update = 4;


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Message
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: String
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING

string query = 1;


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

Target target = 1;


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


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Message
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING

// Represent the upsert configuration.


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Repeated
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING

repeated Filter.Config filters = 2;


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Bool
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING

bool disable_balanced_update = 4;


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Message
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: String
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING

string query = 1;


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

Target target = 1;


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


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Repeated
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING

repeated Filter.Config ingress_filters = 6;


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Repeated
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING

repeated Filter.Config egress_filters = 7;


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Message
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: String
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING

string query = 1;


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

Target target = 1;


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


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Message
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: String
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING

string query = 1;


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

Target target = 1;


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


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Message
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING

// Represent the remove configuration.


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Gateway
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Filter
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Agent
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING


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

helm install vald vald/vald --values example/helm/values.yaml


[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Go
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING

go run ./example/client/gateway/filter/main.go -addr "localhost:8081" -ingresshost "vald-ingress-filter.default.svc.cluster.local" -ingressport 8082 -egresshost "vald-egress-filter.default.svc.cluster.local" -egressport 8083

message Config {
repeated Target targets = 1;
Target target = 1;
Query query = 2;
Copy link
Contributor

Choose a reason for hiding this comment

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

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

message Config {
repeated Target targets = 1;
Target target = 1;
Copy link
Contributor

Choose a reason for hiding this comment

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

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

message Config {
repeated Target targets = 1;
Target target = 1;
Query query = 2;
Copy link
Contributor

Choose a reason for hiding this comment

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

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

message Config {
repeated Target targets = 1;
Target target = 1;
Query query = 2;
Copy link
Contributor

Choose a reason for hiding this comment

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

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

message Config {
repeated Target targets = 1;
Target target = 1;
Copy link
Contributor

Choose a reason for hiding this comment

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

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

Filter.Config filters = 2;
// The timestamp when the vector was inserted.
// Filter configurations.
repeated Filter.Config filters = 2;
Copy link
Contributor

Choose a reason for hiding this comment

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

[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Repeated
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING

@@ -111,10 +112,18 @@ message Filter {
uint32 port = 2;
}

// Represent the filter query.
message Query {
Copy link
Contributor

Choose a reason for hiding this comment

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

[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: Message
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING

// Represent the filter query.
message Query {
// The raw query string.
string query = 1;
Copy link
Contributor

Choose a reason for hiding this comment

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

[LanguageTool] reported by reviewdog 🐶
This sentence does not start with an uppercase letter. (UPPERCASE_SENTENCE_START)
Suggestions: String
URL: https://languagetool.org/insights/post/spelling-capital-letters/
Rule: https://community.languagetool.org/rule/show/UPPERCASE_SENTENCE_START?lang=en-US
Category: CASING

// Represent filter configuration.
message Config {
// Represent the filter target configuration.
repeated Target targets = 1;
Target target = 1;
Copy link
Contributor

Choose a reason for hiding this comment

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

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

repeated Target targets = 1;
Target target = 1;
// The target query.
Query query = 2;
Copy link
Contributor

Choose a reason for hiding this comment

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

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

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.

7 participants