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.
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
Local Installation
Hasura depends on Postgresql so make sure you have Postgresql installed on your local computer.
Run locally with existing Postgresql
# 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
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
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.