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 assets each have 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.