Introducing the Open-Source Hasura Data Dictionary
Tags: announcements, graphql
Published: 2020-12-04 10:07:48

---
title: Introducing the Open-Source Hasura Data Dictionary
published: true
date: 2020-11-24 13:01:01 UTC
tags: Announcements,GraphQL
canonical_url: https://hasura.io/blog/hasura-data-dictionary/
---

![Introducing the Open-Source Hasura Data Dictionary](https://hasura.io/blog/content/images/2020/11/introducing_data_dictionary-1-.png)

We’re excited to release the initial version of the [Hasura Data Dictionary](https://github.com/hasura/data-dictionary), an open-source project to make it easy to understand your data graph - which includes your database relationships, and GraphQL schemas.

It also helps you easily create complex GraphQL queries.  Clone the code from this Github [repo](https://github.com/hasura/data-dictionary), which even includes a Docker compose file to get started in minutes on your local machine or infrastructure.

Gavin Ray, Technical Evangelist at Hasura, took me through how it works in this short video interview.

<iframe width="480" height="270" src="https://www.youtube.com/embed/aQ6Sl7EyyXo?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen=""></iframe>

We created this project for three reasons:

1. Help developers and teams quickly reference and understand the tables and relationships of the databases they work with, _and_ the generated GraphQL schemas in their Hasura projects
2. Quickly build complex GraphQL queries through an intuitive, easy to use interface
3. Create a resource for the community to contribute, and use as a starting point to extend for their own specific needs, such as for content management.

### Quickly Understand Entity & Schema Relationships  

![Introducing the Open-Source Hasura Data Dictionary](https://lh4.googleusercontent.com/-boBq2fFEbK7bPMxl7173_ayz5sqLiwENbTnuBP6CfkA5G1NL8WNKJA6HtjISWaQjwKUe-ukCaSuSrrKmzjCYGeY4xGruW9CfZip8fG10HjX7pCNU1Y5KJBVtFQo1gWfhnbo6Xsw)

In the Data Dictionary, the Data Models gives you a view of the tables in your databases and also includes search capability.  

![Introducing the Open-Source Hasura Data Dictionary](https://lh5.googleusercontent.com/Tmiq0ucrKxdxkKDcgCSPxWW27_RgM-XScWU1JV4qAtLaReGZRatyMYhSu82_vh1puV_gq_GYDqeskWW0LHzjFxETeXccQfNMGc7C-85A6Ak9cxHSSpCc0jGOnsoQbtyHALv_XRS1)

Selecting a table will take you to the detail view, showing the table columns, field data types and indexes.  You’ll also see the Query and Mutate GraphQL operations available to execute on that table - fetch, delete, insert, and update.

![Introducing the Open-Source Hasura Data Dictionary](https://lh6.googleusercontent.com/dtA5c5qDRidk_YDOaoBHdvqfZG7wKwXP9M2naNxKYmwuIBDzqqxL60wVo0XafdHHo8R9HH1JHHAfa6efyHhwN3Bt6-lS41e1c9JoGV2Ly5N0twpY5cWz87EPPRROL2eC2LHrFPp5)

At the bottom of the Data Models view, you also get a visual entity-relationship view that illustrates the table relationships, making it easier to understand how the database is structured.  The Data Graph view shows the entire macro view of all data relationships:

![Introducing the Open-Source Hasura Data Dictionary](https://lh4.googleusercontent.com/Im-nI9A4wxIy2tU1YGlbMftbLJsmyqJk_5Le2W0IFBh2IGGT9Edxs68KoMK6BbNonLbnJvSZPpL0D_XZFvkCYOQwkCfOy-bzjiBjNj734kH3UJsInF9kXCWz8qIscoSES81tGe1S)

### Build Complex GraphQL Queries

The GraphiQL tab makes it easy to experiment and create complex queries that would otherwise be difficult to do by hand.  In the example below, we’ve constructed a GraphQL query that aggregates all the invoices for a specific customer and sums the total simply by checking the fields to report on and the available operations.  

In this example we selected invoices\_aggregate, and selected the sum of the total to generate our query - we didn’t need to memorize the exact GraphQL syntax to get it right.

![Introducing the Open-Source Hasura Data Dictionary](https://lh4.googleusercontent.com/2Se40gTAzbJwI7bx2jl2mTNl4bbvCvrtPY6P2LAGtPHU2HL1YeIEsVrSFdhlW5y7FMxVOWO1PYOiFpyzLlxFniHHy9Xvn9MNc0mM_56m8PdOHftC5BfWGQ3_XPbC-iw7WtHDhR1Z)

### Extend and Contribute

We hope you find the Data Dictionary useful and accelerates your development, or even embedded in your apps to help with configuration and administration.  Contribute to the project if you think of any great features!  There are two components to the Data Dictionary - the front end which we’ve shown you here, and a backend API that provides the metadata information.  

Right now the Data Dictionary supports Postgres databases, but in the near future there will be support for MySQL and SQL Server.  

### Get Started!

Download the code in our Github [repo](https://github.com/hasura/data-dictionary) to get started, which includes setup instructions and a Docker compose file to quickly get started!

If you’re not on [Hasura Cloud](https://hasura.io/cloud/) yet, get a [free account](https://hasura.io/pricing/) and follow this easy [tutorial](https://hasura.io/docs/1.0/graphql/cloud/getting-started/index.html) to create a GraphQL endpoint in minutes.