Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
67 commits
Select commit Hold shift + click to select a range
66145ab
fixed errors in JSON schema
Jan 28, 2026
c2a39c1
updated schema tools version
Jan 28, 2026
34e593a
updated schema tools version
Jan 29, 2026
9696a78
added controlledVocabulary for attributeCategory and study
Feb 3, 2026
7ce168f
Update JSON schemas to reflect changes in request parameters and add …
Mar 13, 2026
b9faeb8
Update JSON schemas to correct naming conventions and descriptions fo…
Mar 13, 2026
c54076e
Update JSON schemas to correct naming conventions and descriptions fo…
Mar 31, 2026
f504a4a
revert description changes
Mar 31, 2026
2da8003
removed fromSeedLotTransactions and toSeedLotTransactions, revert to …
Apr 20, 2026
12ef2ed
Add missing responses pt1
Apr 28, 2026
7abaaa7
add nullable on ref
Apr 28, 2026
6cef657
missing require properties
Apr 28, 2026
6eb1dc1
update brapiSchemaToolsVersion to 0.63.0
Apr 28, 2026
10c98f8
update brapiSchemaToolsVersion to 0.64.0
Apr 28, 2026
e6d06aa
add '-r' option to the schema generation command
Apr 28, 2026
d977b9a
add '-r' option to the schema generation command
Apr 28, 2026
ad63def
add '-c' option for component specification and include '-r' in markd…
Apr 28, 2026
9096c4d
add '-c' option for component specification in schema generation comm…
Apr 28, 2026
74b7764
update schema generation command to include a trailing comma for impr…
Apr 28, 2026
98e0856
add automatic commit action for generated files in schema generation
Apr 29, 2026
a43d4af
set environment variable to enforce Node.js 24 for JavaScript actions
Apr 29, 2026
b5c1460
update generate-schema.yml to handle commit messages based on trigger…
Apr 29, 2026
59aa4d8
Generate specifications (manually triggered)
guydavenport Apr 29, 2026
7acb116
Fix compareOpenAPI to use correct OpenAPI-Components directory
Apr 30, 2026
059084c
Update JSON schema and Gradle tasks for improved validation and respo…
May 1, 2026
1cda315
Generate specifications (manually triggered)
guydavenport May 1, 2026
00b6d09
Merge branch '662-update-the-json-schema-due-to-changes-in-the-schema…
May 1, 2026
bcc17dc
Generate specifications (manually triggered)
guydavenport May 2, 2026
f053775
Update title in GenomeMap.json from 'observationUnits' to 'linkageGro…
May 2, 2026
9dee0df
Update AlleleMatrixRequest.json to allow null values for array types
May 7, 2026
f4b6d89
Update JSON schemas to allow null values for array types
May 7, 2026
d8ea281
Update JSON schemas to allow null values for various types
May 8, 2026
241dc67
Update SearchRequestParametersGermplasm.yaml to allow null values for…
May 8, 2026
bd31d1d
Generate specifications (manually triggered)
guydavenport May 8, 2026
273461e
Add 404 response handling to various search result endpoints
May 11, 2026
12b29a2
Generate specifications (manually triggered)
guydavenport May 11, 2026
f89d0d4
Add 404 response handling to various search result endpoints
May 13, 2026
56a8dea
Add new parameter schemas
May 13, 2026
f9cd4d9
change nullables
May 15, 2026
1a4ba80
change non-nullable for external refs
May 15, 2026
1dcccdf
change non-nullable for external refs
May 15, 2026
e2a92e2
Generate specifications (manually triggered)
guydavenport May 15, 2026
d3b14a0
change non-nullable for external refs, fixed other nullables
May 15, 2026
fb5a90a
fixed various
May 17, 2026
b1c5c2a
fixed various
May 19, 2026
a011f9e
removed OWL generation
May 19, 2026
e032b8c
Generate specifications (manually triggered)
guydavenport May 19, 2026
8a7264a
Add script to check and fix nullable consistency between YAML and JSO…
May 20, 2026
7c9a6f1
changed schema tool version to 0.69
May 20, 2026
fe79bbe
Generate specifications (manually triggered)
guydavenport May 20, 2026
3e3406f
changed schema tool version to 0.72, fixed other issues.
May 21, 2026
c72821e
t :wMerge branch '662-update-the-json-schema-due-to-changes-in-the-sc…
May 21, 2026
53c1217
Generate specifications (manually triggered)
guydavenport May 21, 2026
3c6e348
changed schema tool version to 0.73, fixed other issues.
May 23, 2026
89778ff
Merge branch 'brapi-V2.1' into 662-update-the-json-schema-due-to-chan…
Jun 1, 2026
56d5263
changed schema tool version to 0.75
Jun 1, 2026
7c1b33c
add commonCropName as CV on Program.json
Jun 4, 2026
e25dc6b
various changes to get the comparison working
Jun 4, 2026
70e8bbb
added table schemas, image content, seed lot transaction request
Jun 6, 2026
ad1a119
added observationLevels as control vocabulary on study
Jun 6, 2026
0e20943
added extract to VariantSet as an action
Jun 6, 2026
85a3c40
Merge branch 'brapi-V2.1' into 662-update-the-json-schema-due-to-chan…
Jun 7, 2026
81a4417
Generate specifications (manually triggered)
guydavenport Jun 7, 2026
a86e013
fixed the BrAPI-Core → BrAPI.yaml issue
Jun 7, 2026
2ce3fc7
Generate specifications (manually triggered)
guydavenport Jun 7, 2026
d66caa6
fixed the BrAPI-Core → BrAPI.yaml issue
Jun 7, 2026
5cdc9a4
Merge remote-tracking branch 'origin/662-update-the-json-schema-due-t…
Jun 7, 2026
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
Original file line number Diff line number Diff line change
Expand Up @@ -79,12 +79,6 @@ paths:
schema:
type: string
deprecated: true
- description: Permanent unique identifier which references the search results
in: query
name: searchResultsDbId
required: false
schema:
type: string
- description: Timestamp range start
in: query
name: observationTimeStampRangeStart
Expand Down
4 changes: 3 additions & 1 deletion Specification/BrAPI-Schema/BrAPI-Common/GeoJSONGeometry.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
{
"$defs": {
"GeoJSONGeometry": {
"nullable": true,
"brapi-metadata": {
"discriminatorPropertyName": "type"
},
"oneOf": [
{
"description": "Copied from RFC 7946 Section 3.1.1\n\nA position is an array of numbers. There MUST be two or more elements. The first two elements are longitude and latitude, or\neasting and northing, precisely in that order and using decimal numbers. Altitude or elevation MAY be included as an optional third element.",
Expand Down
5 changes: 4 additions & 1 deletion Specification/BrAPI-Schema/BrAPI-Core/Program.json
Original file line number Diff line number Diff line change
Expand Up @@ -179,7 +179,10 @@
"description": "A BrAPI Program represents the high level organization or group who is responsible for conducting trials and studies. Things like Breeding Programs and Funded Projects are considered BrAPI Programs. A Program can contain multiple Trials. A Trial can contain multiple Studies.",
"type": "object",
"brapi-metadata": {
"primaryModel": true
"primaryModel": true,
"controlledVocabularyProperties": [
"commonCropName"
]
}
}
},
Expand Down
1 change: 1 addition & 0 deletions Specification/BrAPI-Schema/BrAPI-Core/Study.json
Original file line number Diff line number Diff line change
Expand Up @@ -347,6 +347,7 @@
"brapi-metadata": {
"primaryModel": true,
"controlledVocabularyProperties": [
"observationLevels",
"studyType"
]
}
Expand Down
9 changes: 8 additions & 1 deletion Specification/BrAPI-Schema/BrAPI-Genotyping/VariantSet.json
Original file line number Diff line number Diff line change
Expand Up @@ -161,6 +161,10 @@
"null",
"array"
]
},
"extract": {
"description": "Will perform a search for `Calls` which match the search criteria in `variantSetsExtractRequest`. The results of the search will be used to create a new `VariantSet` on the server. The new `VariantSet` will be returned.",
"$ref": "VariantSet.json#/$defs/VariantSet"
}
},
"required": [
Expand All @@ -170,7 +174,10 @@
"description": "A VariantSet is a collection of variants and variant calls intended to be analyzed together.",
"type": "object",
"brapi-metadata": {
"primaryModel": true
"primaryModel": true,
"actionProperties": [
"extract"
]
}
},
"Analysis": {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@
"description": "The record of an event where material was moved in or out of a particular SeedLot",
"type": "object",
"brapi-metadata": {
"primaryModel": false
"primaryModel": true
}
}
},
Expand Down
9 changes: 7 additions & 2 deletions Specification/BrAPI-Schema/BrAPI-Phenotyping/Image.json
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,11 @@
"title": "ExternalReferences",
"type": "array"
},
"imageContent": {
"description": "The unique identifier of an image",
"type": "string",
"format": "binary"
},
"imageDbId": {
"description": "The unique identifier of an image",
"type": "string"
Expand Down Expand Up @@ -128,8 +133,8 @@
"$ref": "Observation.json#/$defs/Observation"
},
"referencedAttribute": "images",
"relationshipType": "many-to-many",
"type": "array"
"relationshipType": "one-to-many",
"type": ["null", "array"]
}
},
"required": [
Expand Down
294 changes: 294 additions & 0 deletions Specification/BrAPI-Schema/BrAPI-Phenotyping/Observation.json
Original file line number Diff line number Diff line change
Expand Up @@ -154,6 +154,300 @@
"brapi-metadata": {
"primaryModel": true
}
},
"ObservationTable": {
"type": "object",
"properties": {
"data": {
"description": "The 2D matrix of observation data. ObservationVariables and other metadata are the columns, ObservationUnits are the rows.",
"type": "array",
"items": {
"type": "array",
"items": {
"type": "string"
}
},
"example": [
[
"2019-09-10T18:13:27.223Z",
"f3a8a3db",
"Plant Alpha",
"0fe3e48b",
"2017 Plant Study",
"06307ec0",
"A0043001",
"76.50106681",
"42.44409301",
"2017",
"Field_1",
"Plot_11",
"SubPlot_111",
"Plant_1111",
"Pot_1111",
"Block_11",
"Entry_11",
"Rep_11",
"25.3",
"",
"",
""
],
[
"2019-09-10T18:14:27.223Z",
"f3a8a3db",
"Plant Alpha",
"0fe3e48b",
"2017 Plant Study",
"06307ec0",
"A0043001",
"76.50106681",
"42.44409301",
"2017",
"Field_1",
"Plot_11",
"SubPlot_111",
"Plant_1111",
"Pot_1111",
"Block_11",
"Entry_11",
"Rep_11",
"",
"3",
"",
""
],
[
"2019-09-10T18:15:54.868Z",
"05d1b011",
"Plant Beta",
"0fe3e48b",
"2017 Plant Study",
"59d435cd",
"A0043002",
"76.50106683",
"42.44409301",
"2017",
"Field_1",
"Plot_11",
"SubPlot_112",
"Plant_1122",
"Pot_1122",
"Block_11",
"Entry_11",
"Rep_12",
"27.9",
"",
"",
""
],
[
"2019-09-10T18:16:54.868Z",
"05d1b011",
"Plant Beta",
"0fe3e48b",
"2017 Plant Study",
"59d435cd",
"A0043002",
"76.50106683",
"42.44409301",
"2017",
"Field_1",
"Plot_11",
"SubPlot_112",
"Plant_1122",
"Pot_1122",
"Block_11",
"Entry_11",
"Rep_12",
"",
"1",
"",
""
],
[
"2019-09-10T18:17:34.433Z",
"67e2d87c",
"Plant Gamma",
"0fe3e48b",
"2017 Plant Study",
"06307ec0",
"A0043001",
"76.50106681",
"42.44409356",
"2017",
"Field_1",
"Plot_12",
"SubPlot_123",
"Plant_1233",
"Pot_1233",
"Block_12",
"Entry_12",
"Rep_11",
"",
"3",
"",
""
],
[
"2019-09-10T18:18:34.433Z",
"67e2d87c",
"Plant Gamma",
"0fe3e48b",
"2017 Plant Study",
"06307ec0",
"A0043001",
"76.50106681",
"42.44409356",
"2017",
"Field_1",
"Plot_12",
"SubPlot_123",
"Plant_1233",
"Pot_1233",
"Block_12",
"Entry_12",
"Rep_11",
"25.5",
"",
"",
""
],
[
"2019-09-10T18:19:15.629Z",
"d98d0d4c",
"Plant Epsilon",
"0fe3e48b",
"2017 Plant Study",
"59d435cd",
"A0043002",
"76.50106683",
"42.44409356",
"2017",
"Field_1",
"Plot_12",
"SubPlot_124",
"Plant_1244",
"Pot_1244",
"Block_12",
"Entry_12",
"Rep_12",
"28.9",
"",
"",
""
],
[
"2019-09-10T18:20:15.629Z",
"d98d0d4c",
"Plant Epsilon",
"0fe3e48b",
"2017 Plant Study",
"59d435cd",
"A0043002",
"76.50106683",
"42.44409356",
"2017",
"Field_1",
"Plot_12",
"SubPlot_124",
"Plant_1244",
"Pot_1244",
"Block_12",
"Entry_12",
"Rep_12",
"",
"0",
"",
""
]
]
},
"headerRow": {
"description": "<p>The table is REQUIRED to have the following columns</p>\n<ul>\n <li>observationUnitDbId - Each row is related to one Observation Unit</li>\n <li>observationTimeStamp - Each row is has a time stamp for when the observation was taken</li>\n <li>At least one column with an observationVariableDbId</li>\n</ul>\n<p>The table may have any or all of the following OPTIONAL columns. Included columns are decided by the server developer</p>\n<ul>\n <li>observationUnitName</li>\n <li>studyDbId</li>\n <li>studyName</li>\n <li>germplasmDbId</li>\n <li>germplasmName</li>\n <li>positionCoordinateX</li>\n <li>positionCoordinateY</li>\n <li>year</li>\n</ul>\n<p>The table also may have any number of Observation Unit Hierarchy Level columns. For example:</p>\n<ul>\n <li>field</li>\n <li>plot</li>\n <li>sub-plot</li>\n <li>plant</li>\n <li>pot</li>\n <li>block</li>\n <li>entry</li>\n <li>rep</li>\n</ul>\n<p>The JSON representation provides a pair of extra arrays for defining the headers of the table. \nThe first array \"headerRow\" will always contain \"observationUnitDbId\" and any or all of the OPTIONAL column header names. \nThe second array \"observationVariables\" contains the names and DbIds for the Observation Variables represented in the table. \nBy appending the two arrays, you can construct the complete header row of the table. </p>",
"items": {
"description": "valid header fields",
"enum": [
"observationTimeStamp",
"observationUnitDbId",
"observationUnitName",
"studyDbId",
"studyName",
"germplasmDbId",
"germplasmName",
"positionCoordinateX",
"positionCoordinateY",
"year",
"field",
"plot",
"sub-plot",
"plant",
"pot",
"block",
"entry",
"rep"
],
"type": "string"
},
"type": "array",
"example": [
"observationTimeStamp",
"observationUnitDbId",
"observationUnitName",
"studyDbId",
"studyName",
"germplasmDbId",
"germplasmName",
"positionCoordinateX",
"positionCoordinateY",
"year",
"field",
"plot",
"sub-plot",
"plant",
"pot",
"block",
"entry",
"rep"
]
},
"observationVariables": {
"description": "The list of observation variables which have values recorded for them in the data matrix. Append to the 'headerRow' for complete header row of the table.",
"type": "array",
"items": {
"type": "object",
"properties": {
"observationVariableDbId": {
"description": "Variable unique identifier",
"type": "string",
"example": "367aa1a9"
},
"observationVariableName": {
"description": "Variable name (usually a short name)",
"type": "string",
"example": "Plant height"
}
}
},
"example": [
{
"observationVariableDbId": "367aa1a9",
"observationVariableName": "Plant height"
},
{
"observationVariableDbId": "2acb934c",
"observationVariableName": "Carotenoid"
},
{
"observationVariableDbId": "85a21ce1",
"observationVariableName": "Root color"
},
{
"observationVariableDbId": "46f590e5",
"observationVariableName": "Virus severity"
}
]
}
}
}
},
"$id": "https://brapi.org/Specification/BrAPI-Schema/BrAPI-Phenotyping/Observation.json",
Expand Down
Loading
Loading