Closed jmfernandez closed 2 years ago
We should check the consistency against the public database. At this moment, we just check the consistency at the local level. Remote references are validated via REST.
strict versioning is required to keep people happy and transparently evolve the API and the underlying data-model. I vote for introducing a version string ("V1") into the Rest API: https://dev-openebench.bsc.es/openebench/rest/breed/V1/openapi.json
It is possible to check the object reference with HEAD instead of GET https://dev-openebench.bsc.es/openebench/rest/breed/Reference/10.1002/prot.10381
The API version should be synchronized with data model (and not be in "dev-"). Also we have to agree better URL ("/rest/breed" was just my ad-hoc invention).
It is possible to get a list of identifiers for the collection: curl-H "Accept: text/uri-list" https://dev-openebench.bsc.es/openebench/rest/breed/Reference/
+1 for this! Currently starting to work in a 'tool' to upload data automatically from a VRE workflow to OEB Mongo. For now I am only able to validate local objects independently, but would be extremely useful to add capability to validate foreign keys against remote OEB data.
I apologize in advance, I have realized I left behind this issue, related to the python implementation of the extended JSON validator.
As the development around this validator was spread through forks over several repositories, I was working in October on the reunification of all the improvements in a common place (https://github.com/inab/python-extended-json-schema-validator/), and publishing the developments in PyPI (https://pypi.org/project/extended-json-schema-validator/).
I have re-read the issue, and the enhancement was implemented in a different repo, and inherited by the "re-unified" code. Through command line it is possible to tell a configuration file which can set up remote endpoints where to fetch already valid public identifiers related to the different JSON Schemas used to validate the contents. It is described at https://github.com/inab/python-extended-json-schema-validator/blob/main/README-extensions.md , under "Primary key values check".
Unless anyone has hesitations, I'm closing this issue.
As the benchmarking API is approaching a beta state, sooner than later benchmarking communities are going to be involved in the data uploading process. So, when the reference validation programs apply the consistency checks, like primary key uniqueness or foreign keys not dangled, they should also ask the benchmarking API about this.