Skip to content

Update from 1.0.81 to 1.0.83 causes schema validation failure #814

@stephen-crawford

Description

@stephen-crawford

Hi all,

I am reaching out with an issue I have encountered.

I am trying to upgrade the dependency from 1.0.81 to 1.0.83 however after updating my schema validation tests now fail:

[validate JSON][ERROR][delete_by_query.json][$.delete_by_query.params.search_type.options[0]: does not match the regex pattern ^\d*|[a-zA-Z_]+$]
[validate JSON][ERROR][delete_by_query.json][$.delete_by_query.params.search_type.options[1]: does not match the regex pattern ^\d*|[a-zA-Z_]+$]
[validate JSON][ERROR][delete_by_query.json][$.delete_by_query.params.slices.type: does not match the regex pattern ^list|date|time|string|enum|int|double|long|boolean|number$]
[validate JSON][ERROR][exists.json][$.exists.params.version_type.options[0]: does not match the regex pattern ^\d*|[a-zA-Z_]+$]
[validate JSON][ERROR][exists.json][$.exists.params.version_type.options[1]: does not match the regex pattern ^\d*|[a-zA-Z_]+$]
[validate JSON][ERROR][exists.json][$.exists.params.version_type.options[2]: does not match the regex pattern ^\d*|[a-zA-Z_]+$]
[validate JSON][ERROR][exists.json][$.exists.params.version_type.options[3]: does not match the regex pattern ^\d*|[a-zA-Z_]+$]

From looking at the CHANGELOG it does not look like there were any changes between the versions that should cause a break in the regex matching or the the schema to be parsed differently.

Is this something you have seen before?

Here is an example doc:

{
  "exists":{
    "documentation":{
      "url":"https://www.elastic.co/guide/en/elasticsearch/reference/master/docs-get.html",
      "description":"Returns information about whether a document exists in an index."
    },
    "stability":"stable",
    "url":{
      "paths":[
        {
          "path":"/{index}/_doc/{id}",
          "methods":[
            "HEAD"
          ],
          "parts":{
            "id":{
              "type":"string",
              "description":"The document ID"
            },
            "index":{
              "type":"string",
              "description":"The name of the index"
            }
          }
        }
      ]
    },
    "params":{
      "stored_fields":{
        "type":"list",
        "description":"A comma-separated list of stored fields to return in the response"
      },
      "preference":{
        "type":"string",
        "description":"Specify the node or shard the operation should be performed on (default: random)"
      },
      "realtime":{
        "type":"boolean",
        "description":"Specify whether to perform the operation in realtime or search mode"
      },
      "refresh":{
        "type":"boolean",
        "description":"Refresh the shard containing the document before performing the operation"
      },
      "routing":{
        "type":"string",
        "description":"Specific routing value"
      },
      "_source":{
        "type":"list",
        "description":"True or false to return the _source field or not, or a list of fields to return"
      },
      "_source_excludes":{
        "type":"list",
        "description":"A list of fields to exclude from the returned _source field"
      },
      "_source_includes":{
        "type":"list",
        "description":"A list of fields to extract and return from the _source field"
      },
      "version":{
        "type":"number",
        "description":"Explicit version number for concurrency control"
      },
      "version_type":{
        "type":"enum",
        "options":[
          "internal",
          "external",
          "external_gte",
          "force"
        ],
        "description":"Specific version type"
      }
    }
  }
}

And the related SCHEMA:

},
            "title": "API url parts",
            "description": "Variable parts that make up an API url path"
        },
        "ParamPart": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
                "type": {
                    "type": "string",
                    "pattern": "^list|date|time|string|enum|int|double|long|boolean|number$",
                    "title": "The type of the parameter."
                },
                "options": {
                    "type": "array",
                    "items": {
                        "type": "string",
                        "pattern": "^\\d*|[a-zA-Z_]+$"
                    },
                    "title": "Valid options when type is an enum"
                },
                "default": {
                    "type": ["string", "number", "boolean"],
                    "title": "Default value"
                },
                "deprecated": {
                    "oneOf": [
                      { "$ref": "#/definitions/Deprecated" },
                      { "type": "boolean" }
                    ]
                },
                "description": {
                    "type": "string",
                    "title": "A description for the parameter"
                },
                "required": {
                    "type": "boolean",
                    "title": "Whether the parameter is required"
                }
            },
            "required": [
                "description",
                "type"
            ],
            "allOf": [
                {
                    "if": {
                        "properties": { "type": { "const": "enum" } }
                    },
                    "then": {
                        "required": ["options"]
                    }
                }
            ],
            "title": "API parameter or part",
            "description": "The properties of an API parameter or part"
        },
        "Path": {

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions