What's New in API7 Enterprise 3.2.9: Custom Plugin Management
Published: 2024-04-10 09:57:47

## Introduction

To meet the personalized and efficient [API management](https://api7.ai/blog/api7-enterprise-for-full-api-lifecycle-management) needs of enterprises, [API7 Enterprise](https://api7.ai/enterprise) has carefully introduced the custom plugin management feature. Through custom plugins, enterprises and developers can precisely extend the functionality of the API gateway according to business requirements, effectively addressing diverse business scenarios, and thus enhancing development efficiency and system flexibility.

## Feature Overview

### 1. Concept of Custom Plugin Management

In the API7 Enterprise's dashboard, users can easily upload or delete custom plugins and integrate them with [ADC (APISIX Declarative CLI)](https://api7.ai/blog/adc-0.7-and-api7). The source code management of these plugins is organized at the organizational level. Once uploaded, all gateway groups and services can directly reference them, greatly enhancing the flexibility and efficiency of API management.

### 2. Plugin Usage Rules

Regarding the usage of plugins, we have established a set of rigorous rules. Custom plugins are only issued when referenced by a service and first published to a specific gateway group. This design ensures precise deployment and efficient utilization of plugins. Additionally, to ensure system stability and security, users must ensure that no service is using a custom plugin before deleting it.

### 3. Access Control

Access control for the custom plugin management feature adopts a strict [RBAC (Role-Based Access Control)](https://api7.ai/blog/rbac-for-permission-control) mechanism. `Super Admin` has the highest authority, capable of viewing and editing all plugins; the `API Provider` can only view plugin information; while `Runtime Admin` and `Viewer` can only perform viewing operations. Such permission settings ensure that users with different roles can only execute operations they are authorized to, effectively maintaining system security and stability.

![Plugins](https://static.apiseven.com/uploads/2024/04/10/tfSytVoA_13683685_Team%20of%20tiny%20people%20connecting%20giant%20puzzle%20elements.jpg)

## Usage Guidelines

### 1. Custom Plugin Development

The plugin development process encompasses requirements analysis, design planning, coding implementation, and comprehensive testing. Developers need to design the functionality and interfaces of plugins according to actual requirements, write code, and conduct thorough testing to ensure the stability and reliability of plugins. For a more in-depth understanding of plugin development steps, you can refer to [this blog](https://api7.ai/blog/how-to-build-an-apache-apisix-plugin-from-0-to-1) to build a plugin from 0 to 1.

### 2. Custom Plugin Upload, Editing, and Reference

`Super Admin` has the privilege to upload custom plugins in gateway settings. During the upload process, the system conducts security checks on plugins to ensure no potential risks.

![Upload custom plugins](https://static.apiseven.com/uploads/2024/04/10/603fEryJ_plugin-1.png)

Upon uploading a plugin, users can provide the following information: plugin category, detailed description, relevant documentation link, and author name. The plugin's name and version will be automatically parsed by the system, aiding other users in understanding and utilizing the custom plugin effectively. These details serve as crucial clues for issue tracing and resolution.

![Add custom plugins](https://static.apiseven.com/uploads/2024/04/10/QM4BfsDV_plugin-2.png)

Uploaded plugins appear in both the custom plugin list and the pending plugin list for Service/Route/Global rules, facilitating easy reference for other users. Editing plugins is unrestricted, allowing immediate effect on changes.

![Edit plugins](https://static.apiseven.com/uploads/2024/04/10/nWS2Iprk_plugin-3.png)

### 3. Custom Plugin Deletion

`API Provider`s can easily add and select custom plugins in the `Service Template`, flexibly applying them to specific API services. When a plugin is deleted, the system synchronously removes all relevant references from service templates or history services using that plugin, ensuring data consistency and integrity. This design not only simplifies the operation process but also effectively avoids data chaos caused by misoperations.

## Conclusion

The introduction of custom plugin management enhances the flexibility and extensibility of API7 Enterprise. This innovative feature empowers enterprises to customize and integrate plugins according to their specific business needs, thereby better addressing particular business scenarios. With custom plugins, enterprises can seamlessly extend the functionality of API7 Enterprise, achieving more refined management and efficient operational processes.