具有错误附加属性的边缘集合的 Arango 模式验证不起作用
Arango schema validation for Edge collection with false additionalProperties not working
我正在使用 3.7 版本中发布的 ArangoDB 模式验证。模式验证按文档集合的预期进行。但是对于 Edge collections 下面的问题来了。
- 边的要求:边应该有 id 属性 或根本没有属性(因此 required 关键是未使用),并且没有任何其他属性(因此 additionalProperties 设置为 false)。
我使用了以下架构和边缘实例。但是由于架构验证失败,无法创建以下边缘实例。
使用的架构:
{
"message": "Schema validation error",
"level": "strict",
"rule": {
"properties": {
"id": {
"type": "string"
}
},
"additionalProperties": false
}
}
尝试使用 ArangoDB Web 界面创建边缘实例:
- _来自: DocCollection1/t1
- _to: DocCollection2/t2
- _key: e1
- 文档正文:{}
如果我将 additionalProperties 更改为 true,则可以创建边,但它也可以创建具有任意名称属性的边,我不需要。
我在 Arango 文档中进行了搜索,但无法弄清楚为什么 Edge 集合中的这种情况下模式验证失败。同样的场景在文档集合中工作正常。
环境:单节点,v3.7.2,社区版
这是一个已在 3.7.5 中修复的错误:
https://github.com/arangodb/arangodb/issues/12778
https://github.com/arangodb/arangodb/pull/12967
不幸的是,似乎没有针对 3.7.4 和更早版本的解决方法 - 明确添加 _from
作为属性没有帮助,我想是因为它是一个需要内部翻译的特殊字段。
我正在使用 3.7 版本中发布的 ArangoDB 模式验证。模式验证按文档集合的预期进行。但是对于 Edge collections 下面的问题来了。
- 边的要求:边应该有 id 属性 或根本没有属性(因此 required 关键是未使用),并且没有任何其他属性(因此 additionalProperties 设置为 false)。
我使用了以下架构和边缘实例。但是由于架构验证失败,无法创建以下边缘实例。
使用的架构:
{
"message": "Schema validation error",
"level": "strict",
"rule": {
"properties": {
"id": {
"type": "string"
}
},
"additionalProperties": false
}
}
尝试使用 ArangoDB Web 界面创建边缘实例:
- _来自: DocCollection1/t1
- _to: DocCollection2/t2
- _key: e1
- 文档正文:{}
如果我将 additionalProperties 更改为 true,则可以创建边,但它也可以创建具有任意名称属性的边,我不需要。
我在 Arango 文档中进行了搜索,但无法弄清楚为什么 Edge 集合中的这种情况下模式验证失败。同样的场景在文档集合中工作正常。
环境:单节点,v3.7.2,社区版
这是一个已在 3.7.5 中修复的错误:
https://github.com/arangodb/arangodb/issues/12778 https://github.com/arangodb/arangodb/pull/12967
不幸的是,似乎没有针对 3.7.4 和更早版本的解决方法 - 明确添加 _from
作为属性没有帮助,我想是因为它是一个需要内部翻译的特殊字段。