Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Schema urgent fixes #179

Merged
merged 13 commits into from
Nov 11, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,13 @@ There is a set of tools in [`/bin`](./bin/) to facilitate the conversion. ATM, a

### Changelog

## 2.1.1

*Released, October, 8, 2024*

* Changed uri for uri-template in Endpoint.singleEntryUrl


## 2.1.0

*Released, July, 19, 2024*
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
15 changes: 0 additions & 15 deletions bin/yamlerRunner.sh
Original file line number Diff line number Diff line change
@@ -1,28 +1,13 @@
BASEDIR=$(dirname $0)
UNITYPATH=$BASEDIR/..

# initial conversion from separate schemas
# DEPRECATED
# BEACONMODELPATH=$BASEDIR/../../beacon-v2-Models/BEACON-V2-Model
# BEACONFRAMEWORKPATH=$BASEDIR/../../beacon-framework-v2

BEACONMODELNAME=beacon-v2-default-model

# for UPSTREAM in $BEACONMODELPATH $BEACONFRAMEWORKPATH
# do
# echo "pulling $UPSTREAM"
# git -C $UPSTREAM pull
# done

for KIND in src json
do
mkdir -p $UNITYPATH/models/$KIND/$BEACONMODELNAME
mkdir -p $UNITYPATH/framework/$KIND
done

# $BASEDIR/beaconYamler.py -i $BEACONMODELPATH -t json -x yaml -o $UNITYPATH/models/src/$BEACONMODELNAME
# $BASEDIR/beaconYamler.py -i $BEACONFRAMEWORKPATH -t json -x yaml -o $UNITYPATH/framework/src

# recurring conversion from the source files to the exported versions
$BASEDIR/beaconYamler.py -i $UNITYPATH/models/src/$BEACONMODELNAME -t yaml -x json -o $UNITYPATH/models/json/$BEACONMODELNAME
$BASEDIR/beaconYamler.py -i $UNITYPATH/framework/src -t yaml -x json -o $UNITYPATH/framework/json
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
Loading
Loading