bzp2010 opened a new issue #2148:
URL: https://github.com/apache/apisix-dashboard/issues/2148


   # Feature request
   
   ## Background
   At present, some plugins in Apache APISIX have metadata configuration items. 
The current dashboard project cannot support setting these contents. We need to 
support it. This requires adding APIs at the backend and pages at the frontend.
   
   ### About metadata
   Metadata is a mechanism provided by Apache APISIX to store some global 
configuration content for plugins. It is different from plugin configuration on 
route or other entities. It is globally effective for plugins and takes plugins 
as dimensions. (for example, after configuring the metadata of `authz-caspin` 
plugin, the plugin on any route or service can obtain the content stored in the 
metadata)
   
   ### A plugin can support metadata?
   We can easily distinguish whether a plugin needs metadata configuration. 
Plugins with the following structure in the plugin list of the built-in 
schema.json file in dashboard can support metadata configuration.
   <img 
src="https://user-images.githubusercontent.com/8078418/134772532-e20aaec2-4655-4642-99a9-ea56910625db.png"/>
   
   ## Proposal
   ### Backend
   1. Plugin List API
   Read the metadata in the plugin information by traversing schema.json‘s 
schema property to generate a list of plugins that need metadata configuration 
and the property rules of plugins.
       - URI: `/apisix/admin/plugin_metadata`
       - Method: `GET`
   
   2. Plugin Metadata Update API
   According to the characteristics of plugin metadata, I think we only need to 
obtain and update APIs, rather than create API. When users want to create 
metadata, they can directly update the data JSON and store it in etcd
       - URI: `/apisix/admin/plugin_metadata/{plugin_name}`
       - Method: `PUT`
   
   3. Plugin Metadata Delete API
   Provides the function of clearing metadata data of plugin
       - URI: `/apisix/admin/plugin_metadata/{plugin_name}`
       - Method: `DELETE`
   
   ### Frontend
   1. Plugin List page
   Obtain plugins and their data from the plugin list API (the effect is shown 
below, but only the plugins that need to configure metadata are displayed)
   
![image](https://user-images.githubusercontent.com/8078418/134772915-85e0e402-fd8f-4d4b-84ee-8eb350c59ad1.png)
   
   2. Plugin Metadata Setting page
   Provide an input box that supports JSON and YAML, run users to input 
metadata data, and support input prompts.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to