RO-Crate Validation Service
The RO-Crate Validation Service provides a REST API for evaluating whether an RO-Crate conforms to a given RO-Crate profile. The service wraps the rocrate-validator library, enabling pipelines, other services, and Trusted Research Environments (TREs) to validate an RO-Crate over HTTP without having to install the validator themselves.
RO-Crates and profiles in brief
An RO-Crate packages research data together with structured, machine-readable metadata: a JSON-LD file named ro-crate-metadata.json. Validating an RO-Crate involves evaluating that metadata against a given profile. A profile is a set of requirements the RO-Crate must satisfy, either the base requirements of the RO-Crate specification itself, or a community profile that adds domain-specific rules to the base specification. An example of a community profile is the Five Safes RO-Crate profile, designed for researchers working with sensitive data in Trusted Research Environments (TREs).
Whilst the validation checks themselves are performed by the rocrate-validator, this service is a deployable HTTP wrapper around that tool: it adds a web API, asynchronous processing, and object-storage integration. The base RO-Crate specification, as well as several community profiles, are provided with the validator itself. We additionally package our own Five Safes RO-Crate profile rules with the service for working in TREs.
Validation methods
-
Metadata-only. Send the contents of an
ro-crate-metadata.jsonfile and receive the validation result in the response. This is synchronous and stateless, so nothing is stored, and no object store or worker is required. This approach is simpler to use, and is intended for quick evaluations whilst metadata is being written, or before a full crate has been assembled. -
Storage-backed. The service reads complete RO-Crates (zip or directory) from an S3-compatible object store, such as RustFS, AWS S3, MinIO, and others. Validation runs asynchronously on a worker process; the result is stored for later retrieval and can optionally be delivered to a webhook. This is more suited to pipelines and workflows.
Documentation
- To run the service yourself, start with Installation & Setup, or with the Upgrade Guide if you already run a 1.x version.
- The API Reference documents the endpoints for anyone integrating against a running instance.
- The Five Safes RO-Crate page walks through validating RO-Crates in a TRE.
- To help contribute to the service, please see the Contribution Guide.
About
The RO-Crate Validation Service is developed by the eScience Lab at The University of Manchester, and available on GitHub under the MIT licence.