# Plugin Service **Level**: Intermediate
**Prerequisites**: Familiarity with AITBC plugin architecture
**Estimated Time**: 10 minutes
**Last Updated**: 2026-05-03
**Version**: 1.0 ## 🧭 **Navigation Path:** **🏠 [Documentation Home](../../README.md)** → **📦 Apps** → **🔌 Plugins** → *You are here* **breadcrumb**: Home → Apps → Plugins → Plugin Service --- ## 🎯 **See Also:** - **📖 [About Documentation](../../about/README.md)** - Template standard and audit checklist - **🧭 [Master Index](../../MASTER_INDEX.md)** - Full documentation catalog - **🔌 [Plugins Overview](./README.md)** - Plugin system overview --- ## Overview The Plugin Service provides the infrastructure for managing and executing plugins in the AITBC ecosystem. It handles plugin registration, lifecycle management, and provides a secure execution environment for third-party extensions. ## Features - **Plugin Registry**: Central registry for all plugins - **Lifecycle Management**: Install, enable, disable, and remove plugins - **Sandboxed Execution**: Secure plugin execution environment - **Dependency Management**: Automatic dependency resolution - **Version Control**: Support for multiple plugin versions - **API Gateway**: Plugin API endpoints for external integration ## Architecture The Plugin Service consists of: - **Registry**: Stores plugin metadata and configurations - **Loader**: Dynamically loads plugin code - **Executor**: Runs plugin code in sandboxed environment - **API Server**: Exposes plugin endpoints - **Dependency Manager**: Handles plugin dependencies - **Version Manager**: Manages plugin versions ## Installation ```bash cd /opt/aitbc poetry install --with plugin-service ``` ## Configuration Configuration is managed through environment variables: ```bash # Plugin Storage PLUGIN_STORAGE_PATH=/var/lib/aitbc/plugins # Registry PLUGIN_REGISTRY_URL=http://localhost:9002 # Security PLUGIN_SANDBOX_ENABLED=true PLUGIN_SIGNATURE_VERIFICATION=true # API PLUGIN_API_PORT=9003 ``` ## Running ### Development ```bash cd apps/plugin-service python -m plugin_service.main ``` ### Production (systemd) ```bash sudo systemctl start plugin-service sudo systemctl enable plugin-service ``` ## Endpoints - `GET /health` - Health check - `GET /plugins` - List all plugins - `POST /plugins/install` - Install plugin from repository - `POST /plugins/{plugin_id}/enable` - Enable plugin - `POST /plugins/{plugin_id}/disable` - Disable plugin - `DELETE /plugins/{plugin_id}` - Remove plugin - `GET /plugins/{plugin_id}/info` - Get plugin information - `GET /plugins/{plugin_id}/versions` - List plugin versions ## Plugin Development ### Plugin Structure ``` my-plugin/ ├── plugin.yaml # Plugin metadata ├── src/ │ ├── __init__.py │ └── main.py # Plugin entry point ├── requirements.txt # Plugin dependencies └── tests/ # Plugin tests ``` ### plugin.yaml Example ```yaml name: my-plugin version: 1.0.0 description: My custom plugin author: Your Name license: MIT entry_point: src.main:main dependencies: - aitbc-core>=1.0.0 permissions: - blockchain:read - marketplace:read ``` ### Installing a Plugin ```bash # From local directory curl -X POST http://localhost:9003/plugins/install \ -F "plugin=@/path/to/plugin.tar.gz" # From repository curl -X POST http://localhost:9003/plugins/install \ -H "Content-Type: application/json" \ -d '{"repository": "https://repo.example.com/my-plugin", "version": "1.0.0"}' ``` ### Managing Plugins ```bash # Enable plugin curl -X POST http://localhost:9003/plugins/my-plugin/enable # Disable plugin curl -X POST http://localhost:9003/plugins/my-plugin/disable # Remove plugin curl -X DELETE http://localhost:9003/plugins/my-plugin # Get plugin info curl http://localhost:9003/plugins/my-plugin/info ``` ## Security - **Sandboxed Execution**: Plugins run in isolated environment - **Signature Verification**: Plugin signatures verified before installation - **Permission System**: Granular permission controls - **Dependency Isolation**: Plugin dependencies isolated from core system - **Resource Limits**: CPU and memory limits for plugin execution ## Built-in Plugins - **Plugin Analytics**: Analytics and metrics collection - **Plugin Marketplace**: Plugin marketplace integration - **Plugin Registry**: Plugin registry management - **Plugin Security**: Security scanning and validation ## Troubleshooting ### Plugin Installation Fails 1. Verify plugin signature is valid 2. Check plugin dependencies are available 3. Review plugin logs for specific errors ### Plugin Won't Enable 1. Check plugin permissions are granted 2. Verify plugin dependencies are satisfied 3. Review plugin configuration ### Plugin Execution Errors 1. Check resource limits are not exceeded 2. Verify plugin code is compatible with current version 3. Review sandbox logs for errors ## Monitoring ### Health Check ```bash curl http://localhost:9003/health ``` ### Plugin Status ```bash curl http://localhost:9003/plugins ``` ### Plugin Logs ```bash journalctl -u plugin-service -f ``` ## Related Documentation - [Plugin Analytics](./plugin-analytics.md) - [Plugin Marketplace](./plugin-marketplace.md) - [Plugin Registry](./plugin-registry.md) - [Plugin Security](./plugin-security.md) --- *Last updated: 2026-05-03*
*Version: 1.0*
*Status: Active service*
*Tags: plugins, extensions, service, management*