praval.storage.storage_registry๏
Storage Registry System
Provides centralized registration, discovery, and management of storage providers available to Praval agents. This follows the same pattern as the tool registry for consistent framework design.
Functions
|
Get a storage provider from the global registry. |
Get the global storage registry instance. |
|
|
List available storage providers from the global registry. |
|
Register a storage provider in the global registry. |
Classes
Central registry for managing storage providers available to agents. |
- class praval.storage.storage_registry.StorageRegistry[source]๏
Bases:
objectCentral registry for managing storage providers available to agents.
Features: - Provider registration and discovery - Type-based organization (relational, object, vector, etc.) - Access control and permissions - Connection pooling and lifecycle management - Usage statistics and health monitoring - Multi-provider query routing
- async register_provider(provider, replace_existing=False, permissions=None, auto_connect=None)[source]๏
Register a storage provider in the registry.
- Parameters:
- Return type:
- Returns:
True if registration successful, False otherwise
- get_provider(provider_name, agent_name=None)[source]๏
Get a provider by name with permission checking.
- Parameters:
- Return type:
- Returns:
BaseStorageProvider instance
- Raises:
StorageNotFoundError โ If provider not found
StoragePermissionError โ If agent lacks permission
- list_providers(storage_type=None, agent_name=None, connected_only=False)[source]๏
List available providers with optional filtering.
- get_providers_by_type(storage_type)[source]๏
Get all providers of a specific storage type.
- Return type:
- Parameters:
storage_type (StorageType)
- async execute_query(provider_name, query, agent_name=None)[source]๏
Execute a query on a specific provider.
- Parameters:
provider_name (
str) โ Name of provider to queryquery (
StorageQuery) โ Query to execute
- Return type:
- Returns:
StorageResult with query outcome
- remove_permission(provider_name, agent_name)[source]๏
Remove permission for an agent to use a provider.
- block_provider(provider_name)[source]๏
Block a provider from being used.
- Parameters:
provider_name (str)
- praval.storage.storage_registry.get_storage_registry()[source]๏
Get the global storage registry instance.
- Return type:
- async praval.storage.storage_registry.register_storage_provider(provider, **kwargs)[source]๏
Register a storage provider in the global registry.
- Return type:
- Parameters:
provider (BaseStorageProvider)