We use JWT as our token format -> you are required to get short lived access tokens to access our services. We use OIDC to provide the necessary handshakes for linking accounts and getting long lived tokens. Standard oauth2 libraries should be compatible with Gen3.
You need to provide a redirect (callback) url to the data commons you wish to build an app for and they will give you a client id & client secret.
We use
http://graphql.org
as the language for querying Gen3 data commons. In addition, we also have a few convenience endpoints which make specific queries easier. For example, the GraphQL introspection query which returns the schema for the GraphQL queries is easily obtained through the GET endpoint available at /api/v0/submission/getschema
.
The standard GraphQL endpoint for a Gen3 commons is available via POST at /api/v0/submission/graphql
.
{"query":"query { project(first:0) {code, project_id, availability_type}}"}
{
count1: _case_count
count2: _study_count
count3: _aliquot_count
fileCount1: _aggregated_snp_array_count
}
{
fileData_submitted_unaligned_reads: submitted_unaligned_reads(first: 100) {
project_id
id
file_name
data_category
data_format
data_type
file_size
}
}
While the GraphQL introspection endpoint returns useful information necessary for executing queries, it does not contain the complete data model and dictionary schema. That schema may be accessed via a GET to /api/v0/submission/_dictionary/_all
.