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:
provider (
BaseStorageProvider) – Provider instance to registerreplace_existing (
bool) – Whether to replace existing provider with same namepermissions (
Optional[List[str]]) – List of agent names allowed to use this providerauto_connect (
bool) – Whether to auto-connect the provider
- Return type:
bool- Returns:
True if registration successful, False otherwise
- async unregister_provider(provider_name)[source]
Unregister a provider from the registry.
- Parameters:
provider_name (
str) – Name of provider to unregister- Return type:
bool- Returns:
True if unregistration successful, False if provider not found
- get_provider(provider_name, agent_name=None)[source]
Get a provider by name with permission checking.
- Parameters:
provider_name (
str) – Name of the provider to retrieveagent_name (
str) – Name of the agent requesting the provider
- 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.
- Parameters:
storage_type (
Optional[StorageType]) – Filter by storage typeagent_name (
Optional[str]) – Filter by agent permissionsconnected_only (
bool) – Only return connected providers
- Return type:
List[str]- Returns:
List of provider names
- get_providers_by_type(storage_type)[source]
Get all providers of a specific storage type.
- Return type:
List[str]- Parameters:
storage_type (StorageType)
- get_storage_types()[source]
Get list of all available storage types.
- Return type:
List[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 executeagent_name (
Optional[str]) – Name of requesting agent
- Return type:
- Returns:
StorageResult with query outcome
- async health_check_all()[source]
Perform health checks on all registered providers.
- Return type:
Dict[str,Dict[str,Any]]
- get_usage_stats(provider_name=None)[source]
Get usage statistics for providers.
- Return type:
Union[Dict[str,Any],Dict[str,Dict[str,Any]]]- Parameters:
provider_name (str | None)
- get_registry_info()[source]
Get comprehensive information about the registry.
- Return type:
Dict[str,Any]
- set_permissions(provider_name, agent_names)[source]
Set permissions for a provider.
- Parameters:
provider_name (str)
agent_names (List[str])
- add_permission(provider_name, agent_name)[source]
Add permission for an agent to use a provider.
- Parameters:
provider_name (str)
agent_name (str)
- remove_permission(provider_name, agent_name)[source]
Remove permission for an agent to use a provider.
- Parameters:
provider_name (str)
agent_name (str)
- 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:
bool- Parameters:
provider (BaseStorageProvider)