Skip to main content

Get

Takes dataset entity unique identifier and arguments to pinpoint target row, selection that specifies which attributes and relations selections should be returned. Each entity will have generic get query in camelCase entity name prefixed by "get". For example datasetfollowing get methods are generated:

Datasets Get Methods#

  • getDataset(euuid:UUID, name:String)
  • getDatasetVersion(euuid:UUID)
  • getDatasetRelation(euuid:UUID)
  • getDatasetEntity(euuid:UUID, name:String)
  • getDatasetEntityAttribute(euuid:UUID)

Entity records can be located by specifying euuid or if unique key/s are defined for that entity than those argument fields are are also valid (getDataset, getDatasetEntity). Lets make some queries. I.E. we'll query Dataset Entity to return Dataset Entity record.

{  getDatasetEntity(name:"Dataset Entity") {    configuration    euuid    height    modified_on    name    position    type    width  }}

And response should be:

{  "data": {    "getDatasetEntity": {      "configuration": "{\"~:constraints\":{\"~:unique\":[[\"~u48631c43-1a57-4ed2-9d8e-57a286142a23\"]]}}",      "euuid": "a0d304a7-afe3-4d9f-a2e1-35e174bb5d5b",      "height": 152.7505645751953,      "modified_on": "2020-07-09T08:26:25Z",      "name": "Dataset Entity",      "position": {        "x": -880,        "y": 630      },      "type": "STRONG",      "width": 178.97463989257812    }  }}

"Wou, this is so cool. What else can I do?"

It is possible to pull data from related entities by specifying directed relation label and fields. Let's pull all attribute name and types and all dataset versions where this entity is used.

{  getDatasetEntity(name:"Dataset Entity") {    configuration    euuid    height    modified_on    name    position    type    width    attributes {      name      type    }    dataset_versions {      name      modified_by {        name      }      modified_on    }  }}

Response#

{  "data": {    "getDatasetEntity": {      "configuration": "{\"~:constraints\":{\"~:unique\":[[\"~u48631c43-1a57-4ed2-9d8e-57a286142a23\"]]}}",      "euuid": "a0d304a7-afe3-4d9f-a2e1-35e174bb5d5b",      "height": 152.7505645751953,      "modified_on": "2020-07-24T22:30:30Z",      "name": "Dataset Entity",      "position": {        "x": -880,        "y": 630      },      "type": "STRONG",      "width": 178.97463989257812,      "attributes": [        {          "name": "Name",          "type": "string"        },        {          "name": "Width",          "type": "float"        },        {          "name": "Height",          "type": "float"        },        {          "name": "Position",          "type": "json"        },        {          "name": "Type",          "type": "enum"        },        {          "name": "Configuration",          "type": "transit"        }      ],      "dataset_versions": [        {          "name": "1",          "modified_by": {            "name": "rgersak"          },          "modified_on": "2020-07-24T22:30:28Z"        }      ]    }  }}

"I'm actually crying now... Are you saying that I can just ask what I wan't and it will be provided. It's like best religion ever!"

It is possible to pull data for related entites by referencing labels on modeled Relations This is not restricted to one model. ALL models are combined in one big data model with all entities and relations reconciled and available through single GraphQL endpoint. Everything is connected!

"Don't play smart with me! Is there anything else?"

To narrow subselection search, user can set parameters for relation. Lets try to find all attributes that are of type string or float.

Query#

{  getDatasetEntity(name:"Dataset Entity") {    name    type    attributes(_where:{_or:[{type:{_eq:string}} {type:{_eq:float}}]} _order_by:[{name:desc}]) {      name      type    }  }}

Response#

{  "data": {    "getDatasetEntity": {      "name": "Dataset Entity",      "type": "STRONG",      "attributes": [        {          "name": "Width",          "type": "float"        },        {          "name": "Name",          "type": "string"        },        {          "name": "Height",          "type": "float"        }      ]    }  }}

User can specify limit or offset, as well as order_by. More about this in Search.