GraphQL server main entrypoint for external services
Hasura GraphQL Engine is configured via a generated, fully-annotated env file:
- Source file:
config/hasura/hasura.env - Kubernetes ConfigMap:
manifests/hasura-configmap.yaml(key:hasura.env)
The Hasura Deployment (manifests/hasura.yaml) mounts this ConfigMap at /etc/hasura/hasura.env and sources it before starting graphql-engine.
Env vars set directly on the container in manifests/hasura.yaml take precedence over values in /etc/hasura/hasura.env (the file provides defaults).
The template is generated from the exact hasura/graphql-engine image pinned in manifests/hasura.yaml:
python3 scripts/hasura/generate_hasura_config.pyNotes:
- The generator inventories supported env vars by inspecting the
graphql-enginebinary in the image, so it stays aligned with the version you run. - Secrets/connection strings are intentionally left commented out because the file is stored in a ConfigMap. This repo currently injects
HASURA_GRAPHQL_DATABASE_URLandHASURA_GRAPHQL_ADMIN_SECRETvia Vault inmanifests/hasura.yaml. - Redis connection env vars (
HASURA_GRAPHQL_*_REDIS_*) are configured via Vault injection inmanifests/hasura.yamland are intentionally omitted from the generated ConfigMap to avoid accidental override.