• Services
  • Migration Topics
  • Integration
  • Best Practices
  • Concepts
  • Api
    • DomainObjectApi
    • Bardioc API Overview
    • Bardioc Audit API
    • Bardioc Graph - Gremlin Query
    • Bardioc Graph Action API
    • Bardioc Graph Auth API
    • Bardioc Graph List API
    • Bardioc Graph WebSocket API
    • Changelog
    • Refresh Token

Gremlin Query Documentation

One of the supported query modes in Bardioc™ uses the Gremlin query language for graph traversals.

The official documentation of the Gremlin query language can be found at GremlinDocs. The support version is tinkerpop ´3.2.6´.

Limitations in Bardioc Graph

The Gremlin query interface in Bardioc has been implemented with the following limitations:

  1. Gremlin queries are read-only.

  2. All Gremlin queries are filtered according to the user’s access control permissions (see below).

  3. Queries have to start with a root vertex. One cannot query the graph with E() or V().

  4. The following syntax elements cannot be used and end in an error message: V(), E(), addV(), addE(), addOutE(), addInE(), drop(), property(…​)

  5. The following is a list of the allowed steps:
    aggregate, and, as, barrier, both, bothE, bothV, by, cap, choose, coalesce, coin, constant, count, cyclicPath, dedup, emit, explain, fill, filter, flatMap, fold, group, groupCount, has, hasId, hasKey, hasLabel, hasNext, hasNot, hasValue, id, identity, in, inE, inV, inject, is, iterate, key, label, limit, local, loops, map, mapKeys, mapValues, max, mean, min, next, option, optional, or, order, otherV, out, outE, outV, pageRank, path, peerPressure, profile, program, project, promise, properties, propertyMap, range, repeat, sack, sample, select, simplePath, store, subgraph, sum, tail, timeLimit, times, to, toBulkSet, toE, toList, toSet, toV, tree, unfold, union, value, valueMap, values, where

  6. Closures are restricted to default tinkerpop classes as well as java fundamentals e.g. Integer, Long, String

Data Access Control

In the Bardioc™ Graph database, vertices and edges are authorized on a per vertex granularity. For Gremlin queries, all vertices on the traversal path are checked for proper data access permissions. Vertices, for which the user does not have proper permissions, are ignored by the query. That means these vertices are neither returned in query result set, nor can there be graph traversals via these vertices.