vipr_api.web.routers.plugins package

Submodules

vipr_api.web.routers.plugins.config_manager module

Configuration management for plugins.

async vipr_api.web.routers.plugins.config_manager.batch_update_plugin_configs(operations) PluginBatchToggleResponse

Update multiple plugin configurations in a single operation.

vipr_api.web.routers.plugins.config_manager.ensure_plugin_in_config(plugin_name: str, enabled: bool = True) bool

Ensure plugin is in runtime config.

vipr_api.web.routers.plugins.config_manager.get_runtime_config_path() Path

Get runtime config path from environment or default.

vipr_api.web.routers.plugins.config_manager.remove_plugin_from_config(plugin_name: str) bool

Remove plugin from runtime config.

vipr_api.web.routers.plugins.config_manager.update_plugin_config(plugin_name: str, enabled: bool) bool

Update plugin enabled status in runtime config.

vipr_api.web.routers.plugins.constants module

Constants and configuration for plugin management.

vipr_api.web.routers.plugins.exceptions module

Custom exceptions for plugin management.

exception vipr_api.web.routers.plugins.exceptions.PluginAlreadyExistsError

Bases: PluginError

Plugin already exists.

exception vipr_api.web.routers.plugins.exceptions.PluginConfigError

Bases: PluginError

Plugin configuration error.

exception vipr_api.web.routers.plugins.exceptions.PluginError

Bases: Exception

Base exception for plugin operations.

exception vipr_api.web.routers.plugins.exceptions.PluginNotFoundError

Bases: PluginError

Plugin not found.

exception vipr_api.web.routers.plugins.exceptions.PluginValidationError

Bases: PluginError

Plugin validation failed.

vipr_api.web.routers.plugins.plugin_service module

Plugin discovery and lifecycle management.

async vipr_api.web.routers.plugins.plugin_service.batch_delete_runtime_plugins(plugin_names) PluginBatchDeleteResponse

Delete multiple runtime plugins in a single operation.

async vipr_api.web.routers.plugins.plugin_service.delete_runtime_plugin(plugin_name: str) PluginDeleteResponse

Delete a runtime plugin (builtin plugins cannot be deleted).

async vipr_api.web.routers.plugins.plugin_service.get_plugin_list_from_cement() PluginListResponse

Get plugin list from Cement controller.

vipr_api.web.routers.plugins.upload_handlers module

Plugin upload handlers.

async vipr_api.web.routers.plugins.upload_handlers.handle_plugin_upload(file: UploadFile, overwrite: bool) PluginUploadResponse

Main upload handler that routes to appropriate handler.

Parameters:
  • file – Uploaded file

  • overwrite – Whether to overwrite existing plugin

Returns:

PluginUploadResponse with upload result

vipr_api.web.routers.plugins.validators module

Plugin validation utilities.

vipr_api.web.routers.plugins.validators.validate_plugin_code(plugin_code: str, plugin_name: str) ValidationResult

Validate Python plugin code for syntax and security.

Parameters:
  • plugin_code – Python source code

  • plugin_name – Name of the plugin

Returns:

ValidationResult with validation details

vipr_api.web.routers.plugins.validators.validate_plugin_name(name: str) bool

Validate plugin name format.

Parameters:

name – Plugin name to validate

Returns:

True if valid, False otherwise

vipr_api.web.routers.plugins.validators.validate_plugin_zip(zip_content: bytes) Tuple[ValidationResult, str | None, Path | None]

Validate a ZIP file containing a plugin.

Parameters:

zip_content – ZIP file content as bytes

Returns:

(validation_result, plugin_name, temp_dir_path)

Return type:

tuple

Module contents

Plugin Management Router for FastAPI.

This router provides endpoints for managing runtime plugins.

async vipr_api.web.routers.plugins.batch_delete_plugins(plugin_names: List[str] = Body(PydanticUndefined))

Delete multiple runtime plugins in a single operation.

async vipr_api.web.routers.plugins.batch_toggle_plugins(operations: List[PluginBatchOperation] = Body(PydanticUndefined))

Enable or disable multiple runtime plugins in a single operation.

async vipr_api.web.routers.plugins.delete_plugin(plugin_name: str)

Delete a runtime plugin (builtin plugins cannot be deleted).

async vipr_api.web.routers.plugins.list_plugins()

List all builtin and runtime plugins with their status.

async vipr_api.web.routers.plugins.toggle_plugin(plugin_name: str, request: PluginToggleRequest)

Enable or disable a runtime plugin.

async vipr_api.web.routers.plugins.upload_plugin(file: UploadFile = File(PydanticUndefined), overwrite: bool = False)

Upload and validate a new runtime plugin.