-
-
Notifications
You must be signed in to change notification settings - Fork 10.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
能否增加格式校验的hook #1517
Comments
很好的建议,不过更倾向于通过spi的方式实现hook,在hook中可以调用url或者是运行自定义的校验逻辑 |
spi也可以,但这样的话所有的配置都只能用一个相同的校验器。apollo的话主要是用的team比较多,每个项目,每个配置文件的校验规则也不太一样。用一个会比较麻烦,需要大家共同维护这个校验器。 |
可以在spi这一层根据appid, namespace之类的做分发,本质上和每个项目上配hook地址一个意思,只是说apollo可以不用关心这一层的细节 |
这个我明白,但问题是这样的话hook的地址就要有地方单独管理,如果写死的话每次增加hook都要重新发布一下。我自己先想想怎么做比较合适,谢谢指教。 |
ConfigTextResolver 把这个处理逻辑与实际业务拆分开来?目前看是硬编码的,如果需要扩展,需要改动业务代码; |
any update? |
请教下,这个功能后面你们是怎么实现呢 |
我们最后没有在apollo中实现,利用openapi搭了一个新服务,写入apollo前会先在新服务进行校验,然后再利用OpenAPI写入到apollo中。因为公司的原因,apollo的原生管理平台被我们给弃用了,所有的写入操作在外部处理完之后才进入apollo。 |
用户配置的所有写入都是通过openAPI来操作,完全不用管理界面? |
新搭了一个管理平台(对静态配置、动态配置统一管理入口),接入了公司的审批流,对部分功能做了增强。校验、审批后通过openapi写入Apollo。不过只提供了Apollo管理平台的部分核心功能,目前看还是够用的。 |
openapi写入Apollo前===》,是提供给用户类似hook的方式,让用户填写一个URL地址,在写入时增加调用check这种方式吗 |
我们的配置管理平台,支持定制配置模板(会根据规则生成前端界面),创建namespace的时候可以绑定一个配置模板,通过模板界面生成我们想要的配置。你可以认为通过模板生成的配置,已经是规范化的配置了(模板本身也有一些校验参数,比如required之类的选项) |
This sounds like a great feature. |
能否提供最基础的类型校验,比如配置一个key的时候,默认值是String。 |
I think it's a good idea to start by adding some basic types and attach some basic validation with it. |
问题描述
目前apollo只能做一些简单的格式校验,但很多时候,数据本身是带有一定的格式要求的,特别是一些复杂的json、xml配置等等。目前只是对json、xml本身进行了校验,但是没有对内容进行校验。如果内容不符合要求,只有运行时才能发现,无法确定配置是否生效了(可能内容有问题,直接被抛弃了)。如果不及时回滚,甚至会发生服务无法重启之类的问题。
对于这种配置文件,目前的方案是使用open-api,单独搭建一个服务,但这样做略麻烦,而且配置地址会比较分散。
建议
增加类似git hook的机制,可以给每个namespace增加一个hook(url 地址)。如果发现有hook,在执行保存前调用一次做一个预校验。还可以增加一个post hook,比如把数据做加密什么的。
The text was updated successfully, but these errors were encountered: