All Projects → hasura → data-dictionary

hasura / data-dictionary

Licence: MIT license
No description, website, or topics provided.

Programming Languages

typescript
32286 projects
javascript
184084 projects - #8 most used programming language
CSS
56736 projects

Hasura Data Dictionary


Introduction

The Data Dictionary is a set of tools which allow users and organizations to explore & collaborate on their data.

There are two pieces to the Data Dictionary:

  1. A GraphQL endpoint that provides information on Hasura Metadata and the Database schema
  2. A client-side layer which consumes this API to provide the visualization of that data

In this repository, there is a Next.js reference application which showcases bringing these pieces together. You can use this reference application as the base for building your own tooling, or use just the GraphQL service, or whichever bits-and-pieces you might prefer.

Demo

Architecture

At a high-level, here are some of the tools and libraries used to build this experience:

The folder structure of the application and descriptions is as below:

├── hasura // Contains docker-compose.yaml to run PG + Hasura, and migrations + seeds for Chinook
└── react-app // Contains Next.js app with frontend web app and backend GraphQL API

Setup Instructions

  • Clone this repo
  • cd hasura, then docker-compose up -d
    • This exposes Hasura on localhost:8085 and Postgres is on localhost:5430 (to not conflict with potential other running apps)
    • Hasura has the Chinook schema + rows as a migration, along with the Metadata, and uses the .cli-migrations variant so it will auto-apply these for you
  • From the root of the project
    • cd react-app
    • yarn install or npm install
    • yarn dev or npm run dev
    • This starts Next.js on localhost:3000
    • It contains the GraphQL API under the /pages/api/graphql.ts
    • GraphQL Playground is available at localhost:3000/api/graphql
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].