I'm so sorry for that! new issue created at https://github.com/apache/incubator-apisix/issues/1593
Ming Wen <wenm...@apache.org> 于2020年5月14日周四 下午5:37写道: > Hi,Damon, > The mailing list does not support images. > Can you put the image in the github issue? thanks > > Thanks, > Ming Wen, Apache APISIX & Apache SkyWalking > Twitter: _WenMing > > > Damon Chen <net...@gmail.com> 于2020年5月12日周二 上午10:20写道: > > > Hi, all: > > > > If the plugin has a security problem or a bug which must be fixed at that > > time, > > > > the user who use the APISIX also must upgrade to the newest version. The > > problem is that > > > > if you upgrade the plugin, you should also upgrade the APISIX core. If > the > > > > new version of the APISIX core is not compatible of the old > > > > APISIX core. How would you do it? > > > > > > > > When you are in a company and want to write a plugin for your privacy > > service. > > > > You should more careful to maintain you plugin about how to install, > > upgrade, etc. > > > > Everyone who writes the plugin for privacy service also will do what you > > have done. > > > > There are many duplicate works. > > > > > > > > When the user of the APISIX need some features, which may be developed by > > some other developer, > > > > how can we found in the web? cloning the APISIX repository and then > search > > the plugin > > > > are not very effective and intuitive. > > > > > > > > What we should to do is separating the APISIX core implement and the > > plugin implement, introducing > > > > a plugin center registry, adding a new cli tool for managing plugin for > > installing, upgrading, removing, > > > > searching, etc, and must be in accordance with the sematic version rule > > both of the APISIX core and > > > > the plugin. If we do this, we could solved the above problems. > > > > > > *Detail* > > > > The following image show how to separate the APISIX core and the plugin. > > > > > > [image: image.png] > > > > > > > > 1. All the plugins will be placed the APISIX core subdirectory named > > "plugins", eg: If we install the APISIX in the path /opt/apisix, then > > all the plugins will be found in /opt/apisix/plugins > > 2. Every plugin has a unique directory name. > > 3. The plugin directory name should be in the form of > > {company|person}.{name}. {company|person} will be replaced with the > > company name or person developer name, *and the **{name}** is the > > current plugin name.* eg, current version of the APISIX have a plugin > > named basic-auth,which will be changed to apisix.basic-auth if > > applying the above rule. > > 4. Every plugin have an entry file for APISIX core searching, which > > named index.lua.The file index.lua will export _M table ,which is the > > same as before. > > 5. Extends the _M table description of the plugin. > > > > > > *The CLI* > > > > The system will be introduced a new command named a6. The following shows > > all subcommands and describes functions: > > > > - a6 install {company|person}.{name}: which will download > > {company|person}.{name} from the center registry and install the > > {company|person}.{name} to the plugins directory. > > - a6 search name will show all plugin's names and descriptions that is > > matched name > > - a6 list will list all installed plugins in the local system. > > - a6 init [{company|person}.{name}] will create a plugin directory > > with some templates file. > > - a6 push will push the current plugin directory to the remote center > > registry with an authenticated account. > > > > > > *The Center Registry* > > > > The center registry will have a public domain, so the a6 command will > > download the plugin from the domain by default. > > > > The center registry will have a search page, which may be shown as below: > > > > [image: image.png] > > > > > > > > If click the box, then show the detail page as below: > > > > [image: image.png] > > > > > > > > > > -- > > DamonChen > > > > > > > -- DamonChen