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!


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> \

Hasura with docker compose

version: '3.6'
    image: postgres:12
    restart: always
    - db_data:/var/lib/postgresql/data
      POSTGRES_PASSWORD: postgrespassword
    image: hasura/graphql-engine:v1.3.3
    - "8080:8080"
    - "postgres"
    restart: always
      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_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


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