Collection Management
Manage collections in R2R
Occasionally this SDK documentation falls out of date, cross-check with the automatcially generated API Reference documentation for the latest parameters.
A collection in R2R is a logical grouping of users and documents that allows for efficient access control and organization. Collections enable you to manage permissions and access to documents at a collection level, rather than individually.
R2R provides a comprehensive set of collection features, allowing you to implement efficient access control and organization of users and documents in your applications.
Collection permissioning in R2R is still under development and as a result the API will likely evolve.
Collection creation and Management
Create a Collection
Create a new collection with a name and optional description:
create_collection_response = client.create_collection("Marketing Team", "Collection for marketing department")
collection_id = create_collection_response["results"]["collection_id] # '123e4567-e89b-12d3-a456-426614174000'
Get Collection details
Retrieve details about a specific collection:
collection_details = client.get_collection(collection_id)
Update a Collection
Update a collection’s name or description:
update_result = client.update_collection(
collection_id,
name="Updated Marketing Team",
description="New description for marketing team"
)
List Collections
Get a list of all collections:
collections_list = client.list_collections()
User Management in Collections
Add User to Collection
Add a user to a collection:
user_id = '456e789f-g01h-34i5-j678-901234567890' # This should be a valid user ID
add_user_result = client.add_user_to_collection(user_id, collection_id)
Remove User from Collection
Remove a user from a collection:
remove_user_result = client.remove_user_from_collection(user_id, collection_id)
List Users in Collection
Get a list of all users in a specific collection:
users_in_collection = client.get_users_in_collection(collection_id)
Get User’s Collections
Get all collections that a user is a member of:
user_collections = client.user_collections(user_id)
Document Management in Collections
Assign Document to Collection
Assign a document to a collection:
document_id = '789g012j-k34l-56m7-n890-123456789012' # must be a valid document id
assign_doc_result = client.assign_document_to_collection(document_id, collection_id)
Remove Document from Collection
Remove a document from a collection:
remove_doc_result = client.remove_document_from_collection(document_id, collection_id)
List Documents in Collection
Get a list of all documents in a specific collection:
docs_in_collection = client.documents_in_collection(collection_id)
Get Document’s Collections
Get all collections that a document is assigned to:
document_collections = client.document_collections(document_id)
Advanced Collection Management
Collection Overview
Get an overview of collections, including user and document counts:
collections_overview = client.collections_overview()
Delete a Collection
Delete a collection:
delete_result = client.delete_collection(collection_id)
Pagination and Filtering
Many collection-related methods support pagination and filtering:
# List collections with pagination
paginated_collection = client.list_collections(offset=10, limit=20)
# Get users in a collection with pagination
paginated_users = client.get_users_in_collection(collection_id, offset=5, limit=10)
# Get documents in a collection with pagination
paginated_docs = client.documents_in_collection(collection_id, offset=0, limit=50)
# Get collections overview with specific collection IDs
specific_collections_overview = client.collections_overview(collection_ids=['id1', 'id2', 'id3'])
Security Considerations
When implementing collection permissions, consider the following security best practices:
- Always use HTTPS in production to encrypt data in transit.
- Implement the principle of least privilege by assigning the minimum necessary permissions to users and collections.
- Regularly audit collection memberships and document assignments.
- Ensure that only authorized users (e.g., admins) can perform collection management operations.
- Implement comprehensive logging for all collection-related actions.
- Consider implementing additional access controls or custom roles within your application logic for more fine-grained permissions.
For more advanced use cases or custom implementations, refer to the R2R documentation or reach out to the community for support.
Was this page helpful?