Glossary
Docker
Docker is a system which allows the packaging up of code and all its dependencies so the an application runs quickly and reliably from one computing environment to another.
Docker container
A Docker container image is a lightweight, standalone, executable package of software that includes everything needed to run an application: code, runtime, system tools, system libraries and settings. Hasura can be run as a Docker container.
Docker image
Docker images become containers at runtime and in the case of Docker containers – images become containers when they run on Docker Engine which is available for both Linux and Windows-based applications, containerized software will always run the same, regardless of the infrastructure. Containers isolate software from its environment and ensure that it works uniformly despite differences for instance between development and staging. Hasura is distributed as a Docker image for the Community Edition at DockerHub.
GraphQL schema
Every GraphQL service defines a set of types which completely describe the set of possible data you can query on that service. This is called the GraphQL schema. Hasura automatically generates a GraphQL Schema for you from the tables in your connected databases, Hasura Actions you've defined, and other connected GraphQL or REST endpoints. When queries come in, they are validated and executed against that schema.
GraphQL query type
Every GraphQL service has a query
type and may or may not have a mutation type. These types are the same as a regular
object type, but they are special because they define the entry point of every GraphQL query. In Hasura the query type
is generated for you in order to get data from your schema.
GraphQL mutation type
The GraphQL mutation
type is an optional type in the GraphQL specification but will be available to you on every
configured Hasura endpoint in order to change or "mutate" data on your database, action or Remote Schema endpoints.
GraphQL Data Plane for Hasura Enterprise Edition
The container(s) serving the GraphQL API and in the critical path of every request/response.
Hasura account
An account on hasura.io in which multiple instances of Hasura Cloud can be created.
Hasura GraphQL Engine
The Docker container(s) serving the GraphQL API and in the critical path of every request/response.
Hasura CE (Community Edition)
The open-source Community Edition of the Hasura GraphQL Engine.
Hasura Client Name
Hasura-Client-Name
will be set to hasura-console
by default. It is used to identify the client who is making the
request in Hasura Pro metrics and monitoring tools.
Hasura Cloud
The cloud-managed, optimized and massively scalable version of Hasura with the option to add the Hasura Enterprise Edition package and runs as a managed service. Hasura Cloud includes extra reliability, monitoring, caching, tracing, security and deployment features which aren't available in Hasura Community Edition.
Hasura Cloud IP
A Hasura Cloud IP will be listed on the Hasura Cloud Dashboard for each project. Hasura will be connecting to your database from this IP address. If your database is not exposed to the internet, you must allow connections from this IP address on your firewall settings for Hasura Cloud Project to function properly. Otherwise, Hasura will not be able to connect to your database and the GraphQL API will not be available.
Hasura Cloud Project
A Project is an individual GraphQL API hosted by Hasura Cloud. You can create a Project by going to the Hasura Cloud dashboard and then connecting a database from the Hasura Console. You can also provision a database on cloud platforms like Heroku from the Hasura Console itself.
Each project is allocated a unique auto-generated name and an ID. You can use this name or ID while communicating to
Hasura team regarding this project. Each project is also assigned a GraphQL API endpoint of the format
https://<project-name>.hasura.app/v1/graphql
.
For example, a project might be called usable-cobra-29
with ID bf0ea856-76a2-42c2-8a91-66ca9b9206e8
.
Hasura Collaborator Token
When you open the Hasura Console on a Cloud Project, you will not be asked to enter the admin secret like Hasura Community Edition version. Instead, if you are an admin, the Console will be accessible with the admin secret already set, or if you are a collaborator with limited access you will be automatically logged into the Console via an OAuth2.0 based authorization flow. You will be given the right access based on your permissions for the particular Hasura Cloud Project.
After the login process is complete, you'll see a new header called Hasura-Collaborator-Token
in the "Request Headers"
section of GraphiQL. This token is used instead of admin secret to authenticate and authorize all the requests made from
the Console. The token is only valid for 5mins and is refreshed silently by the Console. It is to be used only from
Console.
For accessing the API from other clients, use the admin secret or create a Personal Access Token.
Hasura Enterprise Edition
A self-hosted version of Hasura that includes enterprise specific features for observability, security and more.
Lux or Control Plane (Enterprise Edition)
A set of services that powers the Hasura Enterprise Edition Control Plane that allows for user/team management, managing Hasura GraphQL configuration and includes a monitoring plane that ingests Hasura & GraphQL API metrics and makes it available over a UI and an API.
Rolling Deployment
A rolling deployment is a deployment strategy that progressively replaces previous versions of an application with new versions. Rather than updating all servers or tiers simultaneously, the organization installs the updated software package on one server or subset of servers at a time. A rolling deployment helps reduce application downtime and prevent unforeseen consequences or errors in software updates.