feat: add support for bulk resource ID filtering in ReadRelationships#2551
Open
THE-BRAHMA wants to merge 4 commits intoauthzed:mainfrom
Open
feat: add support for bulk resource ID filtering in ReadRelationships#2551THE-BRAHMA wants to merge 4 commits intoauthzed:mainfrom
THE-BRAHMA wants to merge 4 commits intoauthzed:mainfrom
Conversation
Member
|
@THE-BRAHMA Is the intention to add support to the API layer itself as well? |
Author
|
Yes, the API layer already supports it! No new API endpoint needed - the existing one handles both single and bulk resource IDs. Clients can now pass either a optional_resource_id or optional_resource_ids in the same RelationshipFilter |
Contributor
|
api-level support added here: authzed/api#145 |
Author
|
@josephschorr & @tstirrat15 Let me know if there is any improvement needed in this PR or is there a better way to solve this task. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR introduces
optional_resource_idsfield toRelationshipFilter, enabling bulk relationship reads in a single API call.After: Single bulk call
Implementation Details
Changes Made
Validation Layer: Added counter-based mutual exclusion validation ensuring only one of
optional_resource_id,optional_resource_id_prefix, oroptional_resource_idscan be specifiedFilter Conversion: Updated
RelationshipsFilterFromPublicFilter()to handle the new bulk field and convert it to internalOptionalResourceIds []stringDatabase Optimization: Leverages existing
FilterToResourceIDs()function that generates optimizedINclause queriesComprehensive Testing: Added test cases covering single IDs, multiple IDs, error scenarios, and mutual exclusion validation
Compatibility
optional_resource_idusage unchangedTesting
Related Issues
Addresses the bulk relationship reading capability discussed in #2160
Checklist