【问题标题】:Arango schema validation for Edge collection with false additionalProperties not working带有错误附加属性的边缘集合的 Arango 模式验证不起作用
【发布时间】:2023-04-04 05:56:02
【问题描述】:

我正在使用 3.7 版本中发布的 ArangoDB 模式验证。 Schema 验证按预期对 Document 集合进行。但是对于 Edge 集合,会出现以下问题。

  • 边缘要求:边缘应具有 id 属性或根本没有属性(因此不使用 required 键),并且没有任何其他属性(因此 additionalProperties 设置为 false)。

我使用了以下架构和边缘实例。但是由于架构验证失败,无法创建以下边缘实例。

使用的架构:

{
  "message": "Schema validation error",
  "level": "strict",
  "rule": {
    "properties": {
      "id": {
        "type": "string"
      }
    },
    "additionalProperties": false
  }
}

尝试使用 ArangoDB Web 界面创建边缘实例:

  • _from: DocCollection1/t1
  • _to: DocCollection2/t2
  • _key:e1
  • 文档正文:{}

如果我将 additionalProperties 更改为 true,则可以创建边缘,但它也可以使用我不需要的任何名称的属性创建边缘。

我在 Arango 文档中进行了搜索,但无法弄清楚为什么 Edge 集合中这种场景的架构验证失败。相同的场景在 Document 集合中运行良好。

环境:单节点,v3.7.2,社区版

【问题讨论】:

    标签: arangodb


    【解决方案1】:

    这是在 3.7.5 中修复的错误:

    https://github.com/arangodb/arangodb/issues/12778 https://github.com/arangodb/arangodb/pull/12967

    不幸的是,对于 3.7.4 及更早版本似乎没有解决方法 - 明确添加 _from 作为属性并没有帮助,我想这是因为它是一个需要内部翻译的特殊字段。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-23
      • 2014-01-13
      • 1970-01-01
      • 2014-03-16
      • 2022-01-09
      • 2017-07-18
      相关资源
      最近更新 更多