PAIG Authorizer Core
Project description
paig-authorizer-core
Overview
paig-authorizer-core
is a Python library designed to provide a framework of interfaces and abstract classes for building custom authorization implementations. This library allows developers to define their own authorization logic while ensuring consistency and structure.
Features
- Provides a set of interfaces and abstract classes.
- Customizable implementations for various authorization scenarios.
- Easy to extend and integrate into existing applications.
Installation
You can install the library using pip:
pip install paig-authorizer-core
Usage
To use the paig-authorizer-core
library, follow these steps:
-
Import the required classes:
from paig_authorizer_core import BasePAIGAuthorizer from paig_authorizer_core.models.request_models import AuthzRequest, VectorDBAuthzRequest
-
Create a custom authorizer class: Implement your own authorizer by extending the
BasePAIGAuthorizer
class:class MyCustomAuthorizer(BasePAIGAuthorizer): def get_user_id_by_email(self, email: str) -> Optional[str]: # Implementation to retrieve user ID by email pass def get_user_groups(self, user: str) -> List[str]: # Implementation to retrieve user groups pass # Implement other abstract methods...
-
Instantiate your custom authorizer:
authorizer = MyCustomAuthorizer()
-
Create an authorization request:
authz_request = AuthzRequest( user_id="user@example.com", application_key="MyApp", traits=["trait1"], request_type="access" )
-
Authorize the request: Call the
authorize
method to check if the request is authorized:response = authorizer.authorize(authz_request) print(f"Authorization response: {response}")
-
Create a VectorDB authorization request:
vector_db_request = VectorDBAuthzRequest( user_id="admin@example.com", application_key="MyApp" )
-
Authorize the VectorDB request: Call the
authorize_vector_db
method to check VectorDB access:vector_db_response = authorizer.authorize_vector_db(vector_db_request) print(f"VectorDB authorization response: {vector_db_response}")
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.