This is an old revision of the document!
Limitations
There are several features of the GraphQL language that are not fully supported at this time. If you find yourself in need of these features, please contact us - we may be able to add them to our development timeline.
Unsupported Functions
Queries Only
At the current time, GraphQL is only intended for queries. Mutations and Subscriptions are not available.
Fragments
We currently do not support Fragments in GraphQL queries.
Directives
Currently, directives such as @skip and @include are not supported. Note that the system only includes property values if they exist on the asset and does not raise errors if a property you're asking for doesn't exist.
Differences in Behaviour
Typename
As ARDI has multiple types, the __typename metadata property returns a list of results rather than a single string. Results are in the natural (ie. ARDI) case, instead of camelCase.
Nested Queries
If you ask for related assets without specifying the properties you want to see, the system will use the properties used in the parent query.
This means that the system will loop over all children, creating a nested query that will continue down through children, grand-children, great grand-children etc.
Historical Parameter Duplication
The range, from, to and sample variables are copied to all children.
Let's look at this in the following query.
query MyQuery {
machine(id: 46,range: "20 minutes") {
name
temperature
inside {
name
speedActual
}
}
}
This searches for the machine with the ID number '46'. It reads the temperature, then finds all of the assets inside it.
For each of those child assets, it reads the name and actual speed.
Processing this in the traditional way, you'll have history for the temperature, but none for the speed, because you haven't specified a range on 'inside'.
But because we copy these properties from parent to child (unless they're specifically overridden), all of the points will have history, since it's implied that the 'inside' assets have the same range and number of samples as the parent.