Skip to content

EBIBioSamples/json-schema-store

Repository files navigation

License

json-schema-store

A repository for storing versioned JSON Schema

Table of Content

  • Software
  • [Build and run](#Build and run)
  • [APIs and usage](#APIs and usage)
  • Notes

Software

  • Java OpenJdk-11
  • Apache Maven 3.6.3
  • Docker 19.03.8
  • docker-compose:1.25.5
  • MongoDB 4.2.6

Build and run

  • Build and run with all dependencies using docker-compose
    $ mvn clean install
    $ docker-compose up -d --build
  • Go to http://localhost:8085

APIs and usage

There were significant changes to the structure of the schema-store during checklist-editor development. The UI is no longer available, and some APIs have changed significantly. The following is a list of APIs that are used by checklist-editor and biosamples. Schema-store uses rest repositories. Therefore, most of the repository methods are available via the API. Pagnination available for list resources via page & size parameters.

Rest repository exposed API examples

  • /api/v2/schemas/search/findAttributeValues?attributeName=group
  • /api/v2/fields/search/findByUsedBySchemas?schemaId=ERC000060%3A1.18&size=300

Notes

Started as a GSoC 2020 project under GA4GH

GSoC Project Motivation

JSON Schema is a vocabulary to specify the structure of a JSON document. JSON Schema is widely used and well-supported and sees a growing use for many GA4GH standard representation e.g. through the “SchemaBlocks” project. At the moment we are missing a way to manage this growing collection of schemas. This project would like to address the following concerns:

  • How can we search for a specific schema?
  • How can we improve reuse of schemas that already exist?
  • How to create, modify schemas? Can untrained users define schemas easily?
  • What are the best practices for schema usage and how can we encourage them?

To address the above concerns, we would like to develop a repository for storing versioned JSON Schema. The repository should have an intuitive user interface for searching, browsing, creating and modifying schema documents.

The project will be comprised of the following tasks:

  • Define a GA4GH JSON Meta-schema that can be used to validate GA4GH JSON Schemas. These schema need to be compatible with the current JSON schema validator and SchemaBlocks
  • Develop a mechanism for storing and updating versioned JSON Schemas
  • Develop/adapt an editor to create and edit GA4GH schemas
  • Develop a mechanism allowing submission of external JSON schemas to the repository. This should include validation of the schemas.
  • From schema, generate sample data file for deposition in different formats (JSON, CSV, ..)
  • Developing a web client for browsing/searching schemas

About

A repository for storing versioned JSON Schema

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages