# Plugin Management Likwid uses a plugin architecture for extensibility. ## Plugin Types ### Core Plugins (Cannot Disable) - `core.auth` - Authentication system - `core.communities` - Community management - `core.proposals` - Proposal system ### Voting Plugins - `voting.approval` - Approval voting - `voting.ranked_choice` - Instant runoff - `voting.schulze` - Condorcet method - `voting.star` - STAR voting - `voting.quadratic` - Quadratic voting ### Feature Plugins - `feature.delegation` - Liquid delegation - `feature.deliberation` - Structured discussion ### Integration Plugins - `integration.gitlab` - GitLab integration - `integration.matrix` - Matrix chat integration ## Managing Plugins ### Via Admin Panel 1. Go to **Admin** → **Plugins** 2. View installed plugins 3. Enable/disable as needed 4. Configure plugin settings ### Via API ```bash # List plugins curl -H "Authorization: Bearer $TOKEN" \ http://localhost:3000/api/plugins/defaults # Enable plugin curl -X POST -H "Authorization: Bearer $TOKEN" \ http://localhost:3000/api/plugins/instance/voting.quadratic # Disable plugin curl -X DELETE -H "Authorization: Bearer $TOKEN" \ http://localhost:3000/api/plugins/instance/voting.quadratic ``` ## Voting Method Configuration ### Platform Level Enable/disable voting methods for the entire instance: ```bash # List available methods curl http://localhost:3000/api/voting-methods # Enable a method curl -X PUT -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ -d '{"is_active": true}' \ http://localhost:3000/api/voting-methods/quadratic ``` ### Community Level Communities can configure which enabled methods they use: ```bash # Set community voting methods curl -X PUT -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ -d '{"methods": ["schulze", "approval"]}' \ http://localhost:3000/api/communities/{id}/voting-methods ``` ## Plugin Security ### Signed Plugins For third-party plugins, require signatures: - Instance setting: `require_signed_plugins: true` - Validates plugin authenticity ### Capabilities Plugins request specific capabilities: - Database access (read/write) - Outbound HTTP - Background jobs - UI components ## Developing Plugins See the [Plugin Development Guide](../reference/plugin-development.md) for creating custom plugins.