Skip to content

Commit

Permalink
Merge branch 'schema-urgent-fixes' into endpoints-description-fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
costero-e authored Oct 8, 2024
2 parents a6fe8ad + ba16137 commit 7443dd2
Show file tree
Hide file tree
Showing 127 changed files with 443 additions and 411 deletions.
24 changes: 23 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,29 @@ As with other schema projects, here we separate between the schema source files

There is a set of tools in [`/bin`](./bin/) to facilitate the conversion. ATM, after editing `...yaml` schema files somewhere in the `/src` tree, a (local) run of `bin/yamlerRunner.sh` - which re-generates the `....json` files in the `/json` tree) has to be performed before pushing changes.

### Changes
### Changelog

## 2.1.0

*Released, July, 19, 2024*

* Relocated TypedQuantity required to proper level of the schema for complexValue
* Added end and start entities for ageRange and iso8601duration for age
* Filtering terms scopes changed from string to array of strings

## 2.0.1

*Released July, 16, 2024*

* Replaced ENSGLOSSARY for SO ontology family in documentation examples
* Moved CURIE to beaconCommonComponents
* Created filtering terms entity
* Removed validation directories
* Several fixes to entity types, typos and other non-breaking changes

## 2.0.0

*Released June, 21, 2022*

* change notes with respect to the repository & documentation are now in [docs.genomebeacons.org](https://docs.genomebeacons.org/changes-todo/)
* NOTE: on 2022-06-20 the previous development repositories have been archived:
Expand Down
2 changes: 1 addition & 1 deletion bin/beaconYamler.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#!/usr/local/bin/python3
#!/usr/bin/env python3

import sys, re, json
import pathlib
Expand Down
4 changes: 2 additions & 2 deletions bin/deref_schemas/biosamples/defaultSchema.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -260,7 +260,7 @@ properties:
title: Value
type: object
- $schema: https://json-schema.org/draft/2020-12/schema
definitions:
$defs:
TypedQuantity:
properties:
quantity:
Expand Down Expand Up @@ -1064,7 +1064,7 @@ properties:
description: List of phenotypic abnormalities of the sample. RECOMMENDED.
items:
$schema: https://json-schema.org/draft/2020-12/schema
definitions: {}
$defs: {}
description: Used to describe a phenotype that characterizes the subject or biosample.
properties:
evidence:
Expand Down
8 changes: 4 additions & 4 deletions bin/deref_schemas/cohorts/defaultSchema.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
$comment: 'version: ga4gh-beacon-cohort-v2.0.0'
$schema: https://json-schema.org/draft/2020-12/schema
additionalProperties: &1 !!perl/scalar:JSON::PP::Boolean 1
definitions:
$defs:
CohortCriteria:
description: Criteria used for defining the cohort. It is assumed that all cohort participants will match or NOT match such criteria.
properties:
Expand Down Expand Up @@ -366,7 +366,7 @@ definitions:
description: Phenotypic condition(s) in cohort inclusion criteria
items:
$schema: https://json-schema.org/draft/2020-12/schema
definitions: {}
$defs: {}
description: Used to describe a phenotype that characterizes the subject or biosample.
properties:
evidence:
Expand Down Expand Up @@ -1660,7 +1660,7 @@ properties:
description: Phenotypic condition(s) in cohort inclusion criteria
items:
$schema: https://json-schema.org/draft/2020-12/schema
definitions: {}
$defs: {}
description: Used to describe a phenotype that characterizes the subject or biosample.
properties:
evidence:
Expand Down Expand Up @@ -2406,7 +2406,7 @@ properties:
description: Phenotypic condition(s) in cohort inclusion criteria
items:
$schema: https://json-schema.org/draft/2020-12/schema
definitions: {}
$defs: {}
description: Used to describe a phenotype that characterizes the subject or biosample.
properties:
evidence:
Expand Down
2 changes: 1 addition & 1 deletion bin/deref_schemas/datasets/defaultSchema.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ properties:
dataUseConditions:
$schema: https://json-schema.org/draft/2020-12/schema
additionalProperties: 1
definitions:
$defs:
DUODataUse:
allOf:
- description: 'Data Use Ontology codes and additional information associated with a data object (e.g. sample, dataset).'
Expand Down
2 changes: 1 addition & 1 deletion bin/deref_schemas/genomicVariations/defaultSchema.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
$comment: 'version: ga4gh-beacon-variant-v2.0.0'
$schema: https://json-schema.org/draft/2020-12/schema
additionalProperties: &1 !!perl/scalar:JSON::PP::Boolean 1
definitions:
$defs:
CaseLevelVariant:
description: ''
properties:
Expand Down
6 changes: 3 additions & 3 deletions bin/deref_schemas/individuals/defaultSchema.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -739,7 +739,7 @@ properties:
title: Value
type: object
- $schema: https://json-schema.org/draft/2020-12/schema
definitions:
$defs:
TypedQuantity:
properties:
quantity:
Expand Down Expand Up @@ -1299,7 +1299,7 @@ properties:
items:
$schema: https://json-schema.org/draft/2020-12/schema
additionalProperties: 1
definitions:
$defs:
pedigreeMember:
examples:
- membersInProband:
Expand Down Expand Up @@ -1696,7 +1696,7 @@ properties:
phenotypicFeatures:
items:
$schema: https://json-schema.org/draft/2020-12/schema
definitions: {}
$defs: {}
description: Used to describe a phenotype that characterizes the subject or biosample.
properties:
evidence:
Expand Down
2 changes: 1 addition & 1 deletion bin/deref_schemas/obj/Complex Value.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
Complex Value:
$schema: https://json-schema.org/draft/2020-12/schema
definitions:
$defs:
TypedQuantity:
properties:
quantity:
Expand Down
2 changes: 1 addition & 1 deletion bin/deref_schemas/obj/dataUseConditions.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
dataUseConditions:
$schema: https://json-schema.org/draft/2020-12/schema
additionalProperties: 1
definitions:
$defs:
DUODataUse:
allOf:
- description: Data Use Ontology codes and additional information associated
Expand Down
2 changes: 1 addition & 1 deletion bin/deref_schemas/obj/exclusionCriteria.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -413,7 +413,7 @@ exclusionCriteria:
description: Phenotypic condition(s) in cohort inclusion criteria
items:
$schema: https://json-schema.org/draft/2020-12/schema
definitions: {}
$defs: {}
description: Used to describe a phenotype that characterizes the subject or
biosample.
properties:
Expand Down
2 changes: 1 addition & 1 deletion bin/deref_schemas/obj/inclusionCriteria.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -413,7 +413,7 @@ inclusionCriteria:
description: Phenotypic condition(s) in cohort inclusion criteria
items:
$schema: https://json-schema.org/draft/2020-12/schema
definitions: {}
$defs: {}
description: Used to describe a phenotype that characterizes the subject or
biosample.
properties:
Expand Down
2 changes: 1 addition & 1 deletion bin/deref_schemas/obj/measurementValue.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ measurementValue:
properties:
Complex Value:
$schema: https://json-schema.org/draft/2020-12/schema
definitions:
$defs:
TypedQuantity:
properties:
quantity:
Expand Down
2 changes: 1 addition & 1 deletion bin/deref_schemas/obj/measurements.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -168,7 +168,7 @@ measurements:
title: Value
type: object
- $schema: https://json-schema.org/draft/2020-12/schema
definitions:
$defs:
TypedQuantity:
properties:
quantity:
Expand Down
2 changes: 1 addition & 1 deletion bin/deref_schemas/obj/measures.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -166,7 +166,7 @@ measures:
title: Value
type: object
- $schema: https://json-schema.org/draft/2020-12/schema
definitions:
$defs:
TypedQuantity:
properties:
quantity:
Expand Down
2 changes: 1 addition & 1 deletion bin/deref_schemas/obj/pedigrees.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ pedigrees:
items:
$schema: https://json-schema.org/draft/2020-12/schema
additionalProperties: 1
definitions:
$defs:
pedigreeMember:
examples:
- membersInProband:
Expand Down
2 changes: 1 addition & 1 deletion bin/deref_schemas/obj/phenotypicConditions.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ phenotypicConditions:
description: Phenotypic condition(s) in cohort inclusion criteria
items:
$schema: https://json-schema.org/draft/2020-12/schema
definitions: {}
$defs: {}
description: Used to describe a phenotype that characterizes the subject or biosample.
properties:
evidence:
Expand Down
2 changes: 1 addition & 1 deletion bin/deref_schemas/obj/phenotypicFeatures.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
phenotypicFeatures:
items:
$schema: https://json-schema.org/draft/2020-12/schema
definitions: {}
$defs: {}
description: Used to describe a phenotype that characterizes the subject or biosample.
properties:
evidence:
Expand Down
20 changes: 10 additions & 10 deletions framework/json/common/beaconCommonComponents.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"definitions": {
"$defs": {
"$schema": {
"$comment": "TO REVIEW: adding a `format` or `regex` attribute that validates correctly against a file path (relative).",
"description": "Refers to the JSON Schema which describes the set of valid attributes for this particular document type. This attribute is mostly used in schemas that should be tested in Beacon implementations.",
Expand Down Expand Up @@ -88,7 +87,7 @@
"description": "A handover is a typed link for attaching actionable links to results, non purely informational, requests. The goal of the handovers is to list the different actions available, e.g.:\n* a link to a request access page * linking to a file for download, e.g. a VCF file\nAnother common scenario is to provide a fast summary response (e.g. BeconCountResponse) and to provide access to different endpoints for the entities matched by the query using temporary access tokens in the handover URLs.",
"properties": {
"handoverType": {
"$ref": "#/definitions/HandoverType"
"$ref": "#/$defs/HandoverType"
},
"note": {
"description": "An optional text including considerations on the handover link provided.",
Expand Down Expand Up @@ -157,15 +156,15 @@
"ListOfHandovers": {
"description": "Set of handovers to be added in one section the response.",
"items": {
"$ref": "#/definitions/Handover",
"$ref": "#/$defs/Handover",
"description": "Requested schema to be used for individuals in the response."
},
"type": "array"
},
"ListOfSchemas": {
"description": "Set of schemas to be used in the response to a request.",
"items": {
"$ref": "#/definitions/SchemasPerEntity"
"$ref": "#/$defs/SchemasPerEntity"
},
"type": "array"
},
Expand All @@ -191,22 +190,22 @@
"description": "Pagination to apply or that has been applied on the results.",
"properties": {
"currentPage": {
"$ref": "#/definitions/PageToken",
"$ref": "#/$defs/PageToken",
"description": "Token of the returned page. To be used only in the response to allow the client to check if the returned page is the one requested."
},
"limit": {
"$ref": "#/definitions/Limit"
"$ref": "#/$defs/Limit"
},
"nextPage": {
"$ref": "#/definitions/PageToken",
"$ref": "#/$defs/PageToken",
"description": "Token of the next page. Used to navigate forward. If empty, it is assumed that no more pages are available"
},
"previousPage": {
"$ref": "#/definitions/PageToken",
"$ref": "#/$defs/PageToken",
"description": "Token of the previous page. Used to navigate backwards. If empty, it is assumed that the current page is the first one."
},
"skip": {
"$ref": "#/definitions/Skip"
"$ref": "#/$defs/Skip"
}
},
"type": "object"
Expand Down Expand Up @@ -243,6 +242,7 @@
"type": "boolean"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"description": "Definition of relatively simple components used in different points of the Beacon specification, both in requests and responses, therefore not associated exclusively with one or the other. Separate schema documents are provided for complex components.",
"title": "Beacon Common Components",
"type": "object"
Expand Down
2 changes: 1 addition & 1 deletion framework/json/common/ontologyTerm.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"description": "Definition of an ontology term.",
"properties": {
"id": {
"$ref": "./beaconCommonComponents.json#/definitions/CURIE"
"$ref": "./beaconCommonComponents.json#/$defs/CURIE"
},
"label": {
"description": "The text that describes the term. By default it could be the preferred text of the term, but is it acceptable to customize it for a clearer description and understanding of the term in an specific context.",
Expand Down
12 changes: 6 additions & 6 deletions framework/json/configuration/beaconConfigurationSchema.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": true,
"definitions": {
"$defs": {
"EntryTypes": {
"additionalProperties": {
"$ref": "./entryTypeDefinition.json",
Expand All @@ -12,13 +10,15 @@
"type": "object"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": true,
"description": "Files complaint with this schema are the configuration ones. The details returned in `service-info` are mirroring the ones in this configuration file.",
"properties": {
"$schema": {
"$ref": "../common/beaconCommonComponents.json#/definitions/$schema"
"$ref": "../common/beaconCommonComponents.json#/$defs/$schema"
},
"entryTypes": {
"$ref": "#/definitions/EntryTypes"
"$ref": "#/$defs/EntryTypes"
},
"maturityAttributes": {
"description": "Declares the level of maturity of the Beacon instance.",
Expand All @@ -39,7 +39,7 @@
"description": "Configuration of the security aspects of the Beacon. By default, a Beacon that does not declare the configuration settings would return `boolean` (true/false) responses, and only if the user is authenticated and explicitly authorized to access the Beacon resources. Although this is the safest set of settings, it is not recommended unless the Beacon shares very sensitive information. Non sensitive Beacons should preferably opt for a `record` and `PUBLIC` combination.",
"properties": {
"defaultGranularity": {
"$ref": "../common/beaconCommonComponents.json#/definitions/Granularity",
"$ref": "../common/beaconCommonComponents.json#/$defs/Granularity",
"description": "Default granularity. Some responses could return higher detail, but this would be the granularity by default."
},
"securityLevels": {
Expand Down
12 changes: 6 additions & 6 deletions framework/json/configuration/beaconMapSchema.json
Original file line number Diff line number Diff line change
@@ -1,12 +1,10 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": true,
"definitions": {
"$defs": {
"Endpoint": {
"properties": {
"endpoints": {
"additionalProperties": {
"$ref": "#/definitions/RelatedEndpoint"
"$ref": "#/$defs/RelatedEndpoint"
},
"description": "Optional. A list describing additional endpoints implemented by this Beacon instance for that entry type. Additional details on the endpoint parameters, supported HTTP verbs, etc. could be obtained by parsing the OpenAPI definition referenced in the `openAPIEndpointsDefinition` attribute.",
"minProperties": 0,
Expand Down Expand Up @@ -61,14 +59,16 @@
"type": "object"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": true,
"description": "Map of a Beacon, its entry types and endpoints. It isconceptually similar to a website sitemap.",
"properties": {
"$schema": {
"$ref": "../common/beaconCommonComponents.json#/definitions/$schema"
"$ref": "../common/beaconCommonComponents.json#/$defs/$schema"
},
"endpointSets": {
"additionalProperties": {
"$ref": "#/definitions/Endpoint"
"$ref": "#/$defs/Endpoint"
},
"description": "List of enpoints included in this Beacon instance. This is list is meant to inform Beacon clients, e.g. a Beacon Network, about the available endpoints, it is not used to generate any automatic list, but could be used for Beacon validation purposes.",
"minProperties": 1,
Expand Down
4 changes: 2 additions & 2 deletions framework/json/configuration/entryTypeDefinition.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
"description": "Definition of an element or entry type including the Beacon v2 required and suggested attributes. This schema purpose is to describe each type of entities included in a Beacon, hence Beacon clients could have some metadata about such entities.\n\nThe `id` attribute is the key that should be used in other parts of the Beacon Model to allow Beacon clients to identify the different parts (e.g. endpoints, filteringTerms, request parameters, etc.) that fully describe an entry type.",
"properties": {
"$schema": {
"$ref": "../common/beaconCommonComponents.json#/definitions/$schema"
"$ref": "../common/beaconCommonComponents.json#/$defs/$schema"
},
"aCollectionOf": {
"description": "If the entry type is a collection of other entry types, (e.g. a Dataset is a collection of Records), then this attribute must list the entry types that could be included. One collection type could be defined as included more than one entry type (e.g. a Dataset could include Individuals or Genomic Variants), in such cases the entries are alternative, meaning that a given instance of this entry type could be of only one of the types (e.g. a given Dataset contains Individuals, while another Dataset could contain Genomic Variants, but not both at once).",
Expand Down Expand Up @@ -44,7 +44,7 @@
"type": "string"
},
"nonFilteredQueriesAllowed": {
"$ref": "../common/beaconCommonComponents.json#/definitions/NonFilteredQueriesAllowed"
"$ref": "../common/beaconCommonComponents.json#/$defs/NonFilteredQueriesAllowed"
},
"ontologyTermForThisType": {
"$comments": "++++++ THIS IS THE END OF THE ontologized element ++++++",
Expand Down
Loading

0 comments on commit 7443dd2

Please sign in to comment.