Creating a new auth provider#

User can easily create and integrate Auth Provider for tools.

Creating Token Auth Provider#

  1. Generate boilerplate codes for token-based auth services. It will generate boilerplate code lines for a new token-based auth service.

# service_name should be lowercase including underscore
uv run hyperpocket devtool create-token-auth-template {service_name}
  1. Extend AuthProvider enum to add your new auth provider.

class AuthProvider(Enum):
    SERVICE = 'service'
  1. Specify auth provider for tools.

    1. github repo or local

    [auth]
    auth_provider = "{service_name}"
    auth_handler = "{service_name}-token"
    scopes = []
    
    1. function_tool

    @function_tool(
        auth_provider=AuthProvider.SERVICE
    )
    def my_function(**kwargs):
    

Creating OAuth2 Auth Provider#

  1. Generate boilerplate codes for oauth2-based auth services. It will generate boilerplate code lines for a new oauth2-based auth service.

# service_name should be lowercase including underscore
uv run hyperpocket devtool create-oauth2-auth-template {service_name}
  1. Modify created files into your auth provider requirements.

  • Files to be considered:

    • hyperpocket/server/auth/{service_name}.py

    • hyperpocket/auth/{service_name}/__init__.py

    • hyperpocket/auth/{service_name}/context.py

    • hyperpocket/auth/{service_name}/oauth2_context.py

    • hyperpocket/auth/{service_name}/oauth2_handler.py

    • hyperpocket/auth/{service_name}/oauth2_schema.py

  1. Extend AuthProvider enum to add your new auth provider.

class AuthProvider(Enum):
    SERVICE = 'service'
  1. Specify auth provider for tools.

    1. github repo or local

    [auth]
    auth_provider = "{service_name}"
    auth_handler = "{service_name}-oauth2"
    scopes = []
    
    1. function_tool

    @function_tool(
        auth_provider=AuthProvider.SERVICE
    )
    def my_function(**kwargs):
     ...