Denodo GraphQL Service

GraphQL is a data query language, and a runtime for executing those queries against your data.

  • It gives clients the power to ask for exactly what they need.

  • It gets many resources in a single request, reducing the number of API requests.

Denodo GraphQL Service enables the execution of GraphQL queries against the Denodo virtual data model, allowing graphQL-like queries on top of any data source.

To access the GraphQL service, go to<database>/schema.json

This service is always available once you start Virtual DataPort.


Indicating <database> in the URL is mandatory.

Denodo GraphQL Service overview

Denodo GraphQL Service overview

Denodo GraphQL Service follows a bottom-up approach where the API specifications are automatically generated from the metadata of the Denodo views and stored procedures.

The GraphQL Service creates a query type for each view and stored procedure of a Denodo database. The view fields appear as children of the view object, and the same occurs for the parameters, in the case of stored procedure objects. Associations in Denodo are mapped to nested relationships between the different objects, so the GraphQL queries will fetch related objects and their fields in one request.

Denodo GraphQL schema for the Denodo view ‘order’
type Query {
    order(order_id: Int, cust_id: Int, total_price: BigInteger, order_desc: String, order_date: Timestamp, last_updated_time: Timestamp, _first: Int, _offset: Int): [order]!

type order {
  order_id: Int
  cust_id: Int
  total_price: BigInteger
  order_desc: String
  order_date: Timestamp
  last_updated_time: Timestamp
  order_detail: [order_detail]!    # Denodo Association

# Custom Scalar for Timestamp.
# Its format is:yyyy-MM-dd hh:mm:ss[.sss]
scalar Timestamp

Denodo GraphQL Service responses are given in JSON format.

The privilege system of Denodo is enforced, so users see only the views and stored procedures they are authorized to access.


The Denodo GraphQL Service provides:

  • Read-only access to Denodo databases

  • Pagination

  • Filtering (when property graphql.enable.filtering is true)

  • Sorting (when property graphql.enable.filtering is true)

  • Group by and aggregation functions (when property graphql.enable.filtering is true)

  • HTTP Authentication

    • Basic

    • SPNEGO (Kerberos)

    • OAuth 2.0

  • Cross-Origin Resource Sharing (CORS) enabled by default, as the typical use for the GraphQL service is querying from the JavaScript ecosystem. Therefore before using it, you have to tweak the cors.allowed-origins property.

Check the Configuration section for more details.

Add feedback