Hasura table of content

  1. Introduction
  2. Installation
  3. Schema
  4. Mutation
  5. Query
  6. Action
  7. Subscription
  8. Triggers
  9. Authentication & Authorization
  10. Deploying



Subscribe To Our Newsletter
You will receive our latest post and tutorial.
Thank you for subscribing!

required
required


Hasura – Action

Actions are a way to extend Hasura’s schema with custom business logic using custom queries and mutations. Actions can be added to Hasura to handle various use cases such as data validation, data enrichment from external sources and any other complex business logic.

How it works

  • Hasura receives the action GraphQL query or mutation and converts this request into an event payload.
  • The event is captured, persisted and then delivered to the action handler with the appropriate retry/delivery guarantees.
  • The action handler runs and returns a response that is captured as an event and again persisted to the event store.
  • The action response is returned to the client synchronously or asynchronously based on the kind.

 

February 23, 2020

Hasura – Mutation

GraphQL mutations are used to modify(insert, update, delete) data on your database. Hasura GraphQL engine auto-generates mutations as part of the GraphQL schema from your Postgres schema model. Data of all tables in the database tracked by the GraphQL engine can be modified over the GraphQL endpoint. If you have a tracked table in your database, its insert/update/delete mutation fields are added as nested fields under the mutation_root root level type.

Insert Mutation

 

February 23, 2020

Hasura – Installation

Local Installation

Hasura depends on Postgresql so make sure you have Postgresql installed on your local computer.

Run locally with existing Postgresql

Hasura with docker

# pull latest image
docker pull hasura/graphql-engine:latest

# run in container
docker run -d -p 8080:8080 \
  -e HASURA_GRAPHQL_DATABASE_URL=postgres://<username>:<password>@hostname:<port>/<dbname> \
  -e HASURA_GRAPHQL_ENABLE_CONSOLE=true \
  hasura/graphql-engine:latest

Hasura with docker compose

version: '3.6'
services:
  postgres:
    image: postgres:12
    restart: always
    volumes:
    - db_data:/var/lib/postgresql/data
    environment:
      POSTGRES_PASSWORD: postgrespassword
  graphql-engine:
    image: hasura/graphql-engine:v1.3.3
    ports:
    - "8080:8080"
    depends_on:
    - "postgres"
    restart: always
    environment:
      HASURA_GRAPHQL_DATABASE_URL: postgres://postgres:postgrespassword@postgres:5432/postgres
      ## enable the console served by server
      HASURA_GRAPHQL_ENABLE_CONSOLE: "true" # set to "false" to disable console
      ## enable debugging mode. It is recommended to disable this in production
      HASURA_GRAPHQL_DEV_MODE: "true"
      HASURA_GRAPHQL_ENABLED_LOG_TYPES: startup, http-log, webhook-log, websocket-log, query-log
      ## uncomment next line to set an admin secret
      # HASURA_GRAPHQL_ADMIN_SECRET: myadminsecretkey
volumes:
  db_data:

 

Hasura in aws ecs

 

 

 

February 18, 2020

Hasura – Authentication and Authorization

 

February 17, 2020

Hasura – Introduction

Hasura is a GraphQL engine that makes your data instantly accessible over a real-time GraphQL API, so you can build and ship modern apps and APIs faster. Hasura connects to your databases, REST servers, GraphQL servers, and third party APIs to provide a unified realtime GraphQL API across all your data sources.

Hasura is great for performing CRUD against your Postgresql database. It also has webhook triggers for business logic.

As of now 02/18/2021, Hasura only supports Postgresql but Mysql is in the works.

February 17, 2020