api icon indicating copy to clipboard operation
api copied to clipboard

feat: add optional_resource_ids field to RelationshipFilter for bulk …

Open THE-BRAHMA opened this issue 5 months ago • 0 comments

🚀 Feature: Add Bulk Resource ID Support to RelationshipFilter

Summary

This PR adds support for bulk operations in RelationshipFilter by introducing a new optional_resource_ids field that allows filtering relationships by multiple resource IDs in a single request.

Github Issue: https://github.com/authzed/spicedb/issues/2160

Changes

  • Added optional_resource_ids field (field 6) to RelationshipFilter message
  • Type: repeated string for bulk operations
  • Validation: Up to 100 resource IDs with pattern validation
  • Performance: Enables efficient SQL IN clause queries

Technical Details

repeated string optional_resource_ids = 6 [(validate.rules).repeated = {
  max_items: 100,
  items: {
    string: {
      pattern: "^([a-zA-Z0-9/_|\\-=+]{1,})?$"
      max_bytes: 1024
    }
  }
}];

Usage

This field cannot be used simultaneously with optional_resource_id or optional_resource_id_prefix to maintain clear filtering semantics.

Breaking Changes

None - this is a purely additive change.

Testing

  • [x] Proto compilation successful
  • [x] Validation rules working correctly
  • [x] Backward compatibility maintained

THE-BRAHMA avatar Sep 05 '25 11:09 THE-BRAHMA