/search-schema

JSON Schema for documents in HuBMAP Elasticsearch

Primary LanguagePythonMIT LicenseMIT

💥 Deprecated and archived 💥

As of 2020-08-10, this code was integrated into search-api.

search-schema

JSON Schemas for documents from the HuBMAP Search API: The HuBMAP Portal depends on there being a consistent document structure.

The wrapped metadata elements in these documents come from metadata TSVs submitted along with the data; Their structure is described by ingest-validation-tools.

Usage

JSON Schemas (as YAML) are in data/schemas. This repo is incorporated as a git submodule in portal-ui.

Maintenance Plan

As we see see validation warnings in the Portal, we should update the schemas here to tolerate these variations, but for each tweak, we should also file an issue here to follow-up with PSC:

  • Is the variation something intentional, or a bug?
  • If intentional, what are the semantics?
  • Are there other variations we should be aware of?

Development

After checkout and cd:

pip install -r requirements.txt
pip install -r requirements-dev.txt
./test.sh
  • Schemas begin as YAML files.
  • The information is then consolidated into a single YAML by consolidate-yaml.py.
  • And from that single YAML, JSON Schemas are generated by definitions-yaml-to-schema.py.

Update

The schemas are derived from TSVs in data/definitions. If updates are needed, please make the changes there, and Chuck will regenerate the schemas.

Tag and release

For now, we're just using git tags. When it's time to tag a version, checkout a new branch, and

./push.sh

Update the CHANGELOG, adding the date for the current tag, and stubbing the new "in progress" version, and make a PR from the branch.