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
>
>
>

Reply via email to