Closed pcdion closed 8 months ago
Thank you for reporting. We will do further investigation. Is there a test service available we can use to reproduce the behavior?
@dstenger not at the moment, sorry. This experimental version of our GNOSIS Map Server has not yet been integrated into our deployed software.
This should be fixed in the current master branch.
@jerstlouis Can you please check if this problem is still occurring when using the current status of master branch?
@dstenger This confusing error is still happening with the latest master branch.
We get two such reports for Test Process and Test Process Success.
The resource is /ogcapi/processes/echo
and the echo process description looks fine.
body.outputs.schema: Field '$ref' is required. (code: 1026) From: body.<allOf>.outputs.<additionalProperties>.<outputDescription.yaml>.<allOf>.schema.<schema.yaml>.<oneOf>.<reference.yaml>.<required> body.outputs.schema.oneOf.1: Field '$ref' is required. (code: 1026) From: body.<allOf>.outputs.<additionalProperties>.<outputDescription.yaml>.<allOf>.schema.<schema.yaml>.<oneOf>.oneOf.1.<items>.<oneOf>.<schema.yaml>.<oneOf>.<reference.yaml>.<required> body.outputs.schema.oneOf.1.allOf.1: More than 1 schema is valid. (code: 1023) From: body.<allOf>.outputs.<additionalProperties>.<outputDescription.yaml>.<allOf>.schema.<schema.yaml>.<oneOf>.oneOf.1.<items>.<oneOf>.<schema.yaml>.<oneOf>.allOf.1.<items>.<oneOf> body.outputs.schema.oneOf.1: Field '$ref' is required. (code: 1026) From: body.<allOf>.outputs.<additionalProperties>.<outputDescription.yaml>.<allOf>.schema.<schema.yaml>.<oneOf>.oneOf.1.<items>.<oneOf>.<reference.yaml>.<required> body.outputs.schema: Field '$ref' is required. (code: 1026) From: body.<allOf>.outputs.<additionalProperties>.<outputDescription.yaml>.<allOf>.schema.<schema.yaml>.<oneOf>.<reference.yaml>.<required> body.outputs.schema.allOf.1.$ref: Value '../../openapi/schemas/bbox.yaml' does not match format 'uri-reference'. (code: 1007) From: body.<allOf>.outputs.<additionalProperties>.<outputDescription.yaml>.<allOf>.schema.<schema.yaml>.<oneOf>.allOf.1.<items>.<oneOf>.<schema.yaml>.<oneOf>.<reference.yaml>.$ref.<format> body.outputs.schema.allOf.1: Additional property '$ref' is not allowed. (code: 1000) From: body.<allOf>.outputs.<additionalProperties>.<outputDescription.yaml>.<allOf>.schema.<schema.yaml>.<oneOf>.allOf.1.<items>.<oneOf>.<schema.yaml>.<oneOf>.<additionalProperties> body.outputs.schema.allOf.1.$ref: Value '../../openapi/schemas/bbox.yaml' does not match format 'uri-reference'. (code: 1007) From: body.<allOf>.outputs.<additionalProperties>.<outputDescription.yaml>.<allOf>.schema.<schema.yaml>.<oneOf>.allOf.1.<items>.<oneOf>.<reference.yaml>.$ref.<format> body.outputs.schema: Field '$ref' is required. (code: 1026) From: body.<allOf>.outputs.<additionalProperties>.<outputDescription.yaml>.<allOf>.schema.<schema.yaml>.<oneOf>.<reference.yaml>.<required> body.outputs.schema.oneOf.2: Field '$ref' is required. (code: 1026) From: body.<allOf>.outputs.<additionalProperties>.<outputDescription.yaml>.<allOf>.schema.<schema.yaml>.<oneOf>.oneOf.2.<items>.<oneOf>.<schema.yaml>.<oneOf>.<reference.yaml>.<required> body.outputs.schema.oneOf.2.allOf.1: More than 1 schema is valid. (code: 1023) From: body.<allOf>.outputs.<additionalProperties>.<outputDescription.yaml>.<allOf>.schema.<schema.yaml>.<oneOf>.oneOf.2.<items>.<oneOf>.<schema.yaml>.<oneOf>.allOf.1.<items>.<oneOf> body.outputs.schema.oneOf.2: Field '$ref' is required. (code: 1026) From: body.<allOf>.outputs.<additionalProperties>.<outputDescription.yaml>.<allOf>.schema.<schema.yaml>.<oneOf>.oneOf.2.<items>.<oneOf>.<reference.yaml>.<required> body.inputs.schema: Field '$ref' is required. (code: 1026) From: body.<allOf>.inputs.<additionalProperties>.<inputDescription.yaml>.<allOf>.schema.<schema.yaml>.<oneOf>.<reference.yaml>.<required> body.inputs.schema.oneOf.1: Field '$ref' is required. (code: 1026) From: body.<allOf>.inputs.<additionalProperties>.<inputDescription.yaml>.<allOf>.schema.<schema.yaml>.<oneOf>.oneOf.1.<items>.<oneOf>.<schema.yaml>.<oneOf>.<reference.yaml>.<required> body.inputs.schema.oneOf.1.allOf.1: More than 1 schema is valid. (code: 1023) From: body.<allOf>.inputs.<additionalProperties>.<inputDescription.yaml>.<allOf>.schema.<schema.yaml>.<oneOf>.oneOf.1.<items>.<oneOf>.<schema.yaml>.<oneOf>.allOf.1.<items>.<oneOf> body.inputs.schema.oneOf.1: Field '$ref' is required. (code: 1026) From: body.<allOf>.inputs.<additionalProperties>.<inputDescription.yaml>.<allOf>.schema.<schema.yaml>.<oneOf>.oneOf.1.<items>.<oneOf>.<reference.yaml>.<required> body.inputs.schema: Field '$ref' is required. (code: 1026) From: body.<allOf>.inputs.<additionalProperties>.<inputDescription.yaml>.<allOf>.schema.<schema.yaml>.<oneOf>.<reference.yaml>.<required> body.inputs.schema.allOf.1.$ref: Value '../../openapi/schemas/bbox.yaml' does not match format 'uri-reference'. (code: 1007) From: body.<allOf>.inputs.<additionalProperties>.<inputDescription.yaml>.<allOf>.schema.<schema.yaml>.<oneOf>.allOf.1.<items>.<oneOf>.<schema.yaml>.<oneOf>.<reference.yaml>.$ref.<format> body.inputs.schema.allOf.1: Additional property '$ref' is not allowed. (code: 1000) From: body.<allOf>.inputs.<additionalProperties>.<inputDescription.yaml>.<allOf>.schema.<schema.yaml>.<oneOf>.allOf.1.<items>.<oneOf>.<schema.yaml>.<oneOf>.<additionalProperties> body.inputs.schema.allOf.1.$ref: Value '../../openapi/schemas/bbox.yaml' does not match format 'uri-reference'. (code: 1007) From: body.<allOf>.inputs.<additionalProperties>.<inputDescription.yaml>.<allOf>.schema.<schema.yaml>.<oneOf>.allOf.1.<items>.<oneOf>.<reference.yaml>.$ref.<format> body.inputs.schema: Field '$ref' is required. (code: 1026) From: body.<allOf>.inputs.<additionalProperties>.<inputDescription.yaml>.<allOf>.schema.<schema.yaml>.<oneOf>.<reference.yaml>.<required> body.inputs.schema.oneOf.2: Field '$ref' is required. (code: 1026) From: body.<allOf>.inputs.<additionalProperties>.<inputDescription.yaml>.<allOf>.schema.<schema.yaml>.<oneOf>.oneOf.2.<items>.<oneOf>.<schema.yaml>.<oneOf>.<reference.yaml>.<required> body.inputs.schema.oneOf.2.allOf.1: More than 1 schema is valid. (code: 1023) From: body.<allOf>.inputs.<additionalProperties>.<inputDescription.yaml>.<allOf>.schema.<schema.yaml>.<oneOf>.oneOf.2.<items>.<oneOf>.<schema.yaml>.<oneOf>.allOf.1.<items>.<oneOf> body.inputs.schema.oneOf.2: Field '$ref' is required. (code: 1026) From: body.<allOf>.inputs.<additionalProperties>.<inputDescription.yaml>.<allOf>.schema.<schema.yaml>.<oneOf>.oneOf.2.<items>.<oneOf>.<reference.yaml>.<required>
cc @pcdion
@dstenger @ghobona @bpross-52n
I was somewhat doubting whether my docker was really up to date since this should have been fixed, so I double-checked, but it definitely is. Our latest Processes conformance test is now integrated and this failure can be tested directly from https://maps.gnosis.earth/ogcapi (Gerald's workaround is needed -- sorry for taking so long to provide this)
Gerald's workaround of the ETS is out of date. Please use the ETS provided by the master branch of this repo.
@ghobona With the latest from master, Gerald's workaround is no longer necessary. However, this same issue persists on test Process Success and test Process:
java.lang.AssertionError: body.outputs.schema: Field '$ref' is required. (code: 1026) From: body.<allOf>.outputs.<additionalProperties>.<outputDescription.yaml>.<allOf>.schema.<schema.yaml>.<oneOf>.<reference.yaml>.<required> body.outputs.schema.allOf.1: More than 1 schema is valid. (code: 1023) From: body.<allOf>.outputs.<additionalProperties>.<outputDescription.yaml>.<allOf>.schema.<schema.yaml>.<oneOf>.allOf.1.<items>.<oneOf> body.outputs.schema: Field '$ref' is required. (code: 1026) From: body.<allOf>.outputs.<additionalProperties>.<outputDescription.yaml>.<allOf>.schema.<schema.yaml>.<oneOf>.<reference.yaml>.<required> body.outputs.schema.allOf.1: More than 1 schema is valid. (code: 1023) From: body.<allOf>.outputs.<additionalProperties>.<outputDescription.yaml>.<allOf>.schema.<schema.yaml>.<oneOf>.allOf.1.<items>.<oneOf> body.outputs.schema: Field '$ref' is required. (code: 1026) From: body.<allOf>.outputs.<additionalProperties>.<outputDescription.yaml>.<allOf>.schema.<schema.yaml>.<oneOf>.<reference.yaml>.<required> body.outputs.schema.allOf.1: More than 1 schema is valid. (code: 1023) From: body.<allOf>.outputs.<additionalProperties>.<outputDescription.yaml>.<allOf>.schema.<schema.yaml>.<oneOf>.allOf.1.<items>.<oneOf> body.inputs.schema: Field '$ref' is required. (code: 1026) From: body.<allOf>.inputs.<additionalProperties>.<inputDescription.yaml>.<allOf>.schema.<schema.yaml>.<oneOf>.<reference.yaml>.<required> body.inputs.schema.allOf.1: More than 1 schema is valid. (code: 1023) From: body.<allOf>.inputs.<additionalProperties>.<inputDescription.yaml>.<allOf>.schema.<schema.yaml>.<oneOf>.allOf.1.<items>.<oneOf> body.inputs.schema: Field '$ref' is required. (code: 1026) From: body.<allOf>.inputs.<additionalProperties>.<inputDescription.yaml>.<allOf>.schema.<schema.yaml>.<oneOf>.<reference.yaml>.<required> body.inputs.schema.allOf.1: More than 1 schema is valid. (code: 1023) From: body.<allOf>.inputs.<additionalProperties>.<inputDescription.yaml>.<allOf>.schema.<schema.yaml>.<oneOf>.allOf.1.<items>.<oneOf> body.inputs.schema: Field '$ref' is required. (code: 1026) From: body.<allOf>.inputs.<additionalProperties>.<inputDescription.yaml>.<allOf>.schema.<schema.yaml>.<oneOf>.<reference.yaml>.<required> body.inputs.schema.allOf.1: More than 1 schema is valid. (code: 1023) From: body.<allOf>.inputs.<additionalProperties>.<inputDescription.yaml>.<allOf>.schema.<schema.yaml>.<oneOf>.allOf.1.<items>.<oneOf> expected [true] but found [false]
java.lang.AssertionError: body.outputs.schema: Field '$ref' is required. (code: 1026) From: body.<allOf>.outputs.<additionalProperties>.<outputDescription.yaml>.<allOf>.schema.<schema.yaml>.<oneOf>.<reference.yaml>.<required> body.outputs.schema.allOf.1: More than 1 schema is valid. (code: 1023) From: body.<allOf>.outputs.<additionalProperties>.<outputDescription.yaml>.<allOf>.schema.<schema.yaml>.<oneOf>.allOf.1.<items>.<oneOf> body.outputs.schema: Field '$ref' is required. (code: 1026) From: body.<allOf>.outputs.<additionalProperties>.<outputDescription.yaml>.<allOf>.schema.<schema.yaml>.<oneOf>.<reference.yaml>.<required> body.outputs.schema.allOf.1: More than 1 schema is valid. (code: 1023) From: body.<allOf>.outputs.<additionalProperties>.<outputDescription.yaml>.<allOf>.schema.<schema.yaml>.<oneOf>.allOf.1.<items>.<oneOf> body.outputs.schema: Field '$ref' is required. (code: 1026) From: body.<allOf>.outputs.<additionalProperties>.<outputDescription.yaml>.<allOf>.schema.<schema.yaml>.<oneOf>.<reference.yaml>.<required> body.outputs.schema.allOf.1: More than 1 schema is valid. (code: 1023) From: body.<allOf>.outputs.<additionalProperties>.<outputDescription.yaml>.<allOf>.schema.<schema.yaml>.<oneOf>.allOf.1.<items>.<oneOf> body.inputs.schema: Field '$ref' is required. (code: 1026) From: body.<allOf>.inputs.<additionalProperties>.<inputDescription.yaml>.<allOf>.schema.<schema.yaml>.<oneOf>.<reference.yaml>.<required> body.inputs.schema.allOf.1: More than 1 schema is valid. (code: 1023) From: body.<allOf>.inputs.<additionalProperties>.<inputDescription.yaml>.<allOf>.schema.<schema.yaml>.<oneOf>.allOf.1.<items>.<oneOf> body.inputs.schema: Field '$ref' is required. (code: 1026) From: body.<allOf>.inputs.<additionalProperties>.<inputDescription.yaml>.<allOf>.schema.<schema.yaml>.<oneOf>.<reference.yaml>.<required> body.inputs.schema.allOf.1: More than 1 schema is valid. (code: 1023) From: body.<allOf>.inputs.<additionalProperties>.<inputDescription.yaml>.<allOf>.schema.<schema.yaml>.<oneOf>.allOf.1.<items>.<oneOf> body.inputs.schema: Field '$ref' is required. (code: 1026) From: body.<allOf>.inputs.<additionalProperties>.<inputDescription.yaml>.<allOf>.schema.<schema.yaml>.<oneOf>.<reference.yaml>.<required> body.inputs.schema.allOf.1: More than 1 schema is valid. (code: 1023) From: body.<allOf>.inputs.<additionalProperties>.<inputDescription.yaml>.<allOf>.schema.<schema.yaml>.<oneOf>.allOf.1.<items>.<oneOf> expected [true] but found [false]
One thing I just noticed is that "More than 1 schema is valid" message. I wonder if this is another case of a oneOf that should rather be an anyOf? That bit us recently in the OGC API - Tiles schemas.
It seems these particular issues were caused by the external references to JSON Schema for feature collections and geometry inputs in the Echo process description:
"featureCollectionInput": {
"title": "Feature Collection Input Example.",
"description": "This is an example of an input that is a feature collection that can be encoded in GeoJSON.",
"schema": {
"allOf": [
{
"format": "geojson-feature-collection"
},
{
"$ref": "http://geojson.org/schema/FeatureCollection.json"
}
]
}
}
Removing these from the process description gets rid of the errors.
This should not cause these issues.
@jerstlouis Could you try to add the external references again and test again? There were some updates to the test suite that might have solved the issue.
@jerstlouis We will close this PR on the 15th of February if there is no objection.
Uncertain whether this error occurs. The body is as follows, for Test Process and Test Process Success:
body.outputs.schema: Field '$ref' is required. (code: 1026) From: body..outputs....schema.... body.outputs.schema.oneOf