1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101variable "project_name" {
type = string
}
variable "environment" {
type = string
}
variable "vpc_id" {
type = string
}
variable "public_subnet_ids" {
description = "Subnets for the internet-facing ALB."
type = list(string)
}
variable "private_subnet_ids" {
description = "Subnets for the Fargate tasks."
type = list(string)
}
variable "alb_security_group_id" {
type = string
}
variable "task_security_group_id" {
type = string
}
variable "hasura_image" {
description = "Hasura GraphQL Engine image. Pin to a specific version, not :latest, for reproducible deploys."
type = string
default = "hasura/graphql-engine:v2.42.0"
}
variable "database_url" {
description = "Full postgres:// connection string for HASURA_GRAPHQL_DATABASE_URL."
type = string
sensitive = true
}
variable "admin_secret" {
description = "HASURA_GRAPHQL_ADMIN_SECRET value (from the secrets module)."
type = string
sensitive = true
}
variable "aws_region" {
description = "Used to build the Cognito JWKS/issuer URLs for HASURA_GRAPHQL_JWT_SECRET."
type = string
}
variable "user_pool_id" {
description = "Cognito user pool ID — HASURA_GRAPHQL_JWT_SECRET validates tokens against this pool's JWKS."
type = string
}
variable "web_client_id" {
description = "Cognito app client ID — used as the expected `audience` in HASURA_GRAPHQL_JWT_SECRET."
type = string
}
variable "cpu" {
type = number
default = 512
}
variable "memory" {
type = number
default = 1024
}
variable "desired_count" {
type = number
default = 1
}
variable "domain_name" {
description = "Custom domain for Hasura (e.g. graphql.example.com). Leave null to use the ALB's default DNS name."
type = string
default = null
}
variable "acm_certificate_arn" {
description = "ACM certificate ARN for domain_name's HTTPS listener, required if domain_name is set. Must be in the same region as the ALB."
type = string
default = null
}
variable "log_retention_in_days" {
type = number
default = 30
}
variable "cors_allowed_origins" {
description = "Value for HASURA_GRAPHQL_CORS_DOMAIN, comma-separated origins allowed to call the GraphQL API (the frontend's domain)."
type = string
default = "*"
}