如何使用cuelang对json文件进行验证



我正在评估cuelang.org,以定义数据约束,例如在进一步处理之前,对提交给azure devops管道的不受信任的json有效载荷进行类型或值检查。

当针对无效数据测试我的定义时,我没有返回任何错误。

我想同时进行类型和值检查:

rules.cue:


#LoggingLinuxVM: {
resource_id:  #NonEmptyString
version:      =~"2020-07-21"
type:         =~"Linux"
properties:   #LoggingPropertiesLinuxVM
}
#LoggingPropertiesLinuxVM: {
CustomLogFiles: [...#NonEmptyString]
}
#NonEmptyString: string & !=""

有效载荷无效(类型缺失(


{
"resource_id": "/subscription/.../...",
"version": "2020-07-21",
"properties": {
"custom_log_files": [
"/var/log/dmesg",
"/var/log/messages"
]
}
}

当尝试使用:cue vet payload.json rules.cue对此进行验证时,我希望看到验证错误,但没有引发任何错误,退出状态为0。有没有人以类似的方式使用cuelang,可以看出我哪里错了?

事实证明,您必须提供--schema标志才能以预期的方式进行操作。对于本例,如果json在payload.json中,则完整命令为:

cue vet --schema '#LoggingLinuxVM' payload.json rules.cue

相关内容

  • 没有找到相关文章

最新更新