You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@apisix.apache.org by vincixu <vi...@apache.org> on 2020/12/04 08:32:31 UTC

Re: [Discuss] Merge plugin metadata and config

I had an online meeting with YuanShen, Zexuan, WenMing to clarify the needs.
Here are the meeting minutes:
- Adjust the default value of the plugin configuration via API
- Optimization of metadata usage in plugins

We can gradually implement them in future

王三 <tz...@gmail.com> 于2020年11月30日周一 上午1:18写道:

> Maybe we need to define the metadata and schema of plugin.
> Here are my thoughts.
>
> 1. The data shared by all instances of a plugin, put it  in the metadata.
> 2. The data don't  shared by all between instances of a plugin,  put it in
> the schema.
>
> YuanSheng Wang <me...@apache.org> 于2020年11月29日周日 下午2:23写道:
>
> > @vincixu
> >
> > I think you can provide a real use case.
> >
> > `plugin option's specified value` > `metadata` > `default value`
> >
> > It is better than the current way.
> >
> >
> > On Fri, Nov 13, 2020 at 10:46 PM YuanSheng Wang <me...@apache.org>
> > wrote:
> >
> > > Let me think about this and reply in detail later.
> > >
> > > On Thu, Nov 12, 2020 at 8:37 PM vincixu <vi...@apache.org> wrote:
> > >
> > >> Recently, when I was reviewing some pr, I had trouble with plugins:
> > which
> > >> parameters should we put in the metadata?
> > >> Some people may say: when you need to modify it through adminapi, put
> it
> > >> in
> > >> the metadata.
> > >> Well, I also know this rule, but in fact, when we are developing a
> > plugin,
> > >> we are actually not sure which parameters really only need to be
> > >> configured
> > >> separately in the plugin instead of being put into the metadata.
> > >> So here I suggest merging the configuration of the plugin with the
> > >> metadata, so that the metadata and the plugin configuration use the
> same
> > >> schema, and the priority order of values is as follows:
> > >> plugin option's specified value> metadata >default value.
> > >> In this way, we can get the following benefits:
> > >> 1. Reduce complexity and learning costs. Plugin developers still only
> > need
> > >> to care about the option schema, and no longer need to call additional
> > >> functions to get metadata.
> > >> 2. No need to consider which parameters should be placed in metadata
> and
> > >> which parameters should be placed in option
> > >>
> > >> In fact, usually the content of metadata is also required by plugins.
> We
> > >> should reduce the burden on plugin development.
> > >> What do you think?
> > >>
> > >
> > >
> > > --
> > >
> > > *MembPhis*
> > > My GitHub: https://github.com/membphis
> > > Apache APISIX: https://github.com/apache/apisix
> > >
> >
> >
> > --
> >
> > *MembPhis*
> > My GitHub: https://github.com/membphis
> > Apache APISIX: https://github.com/apache/apisix
> >
>