seahaven-ap/terraform/locals.tf

74 lines
2.4 KiB
HCL

locals {
project = "seahaven-ap"
account_id = "710827005802"
hcp_project = "seahaven-dev"
hcp_workspace = "seahaven-ap-dev"
apply_role = "hcptf-seahaven-ap"
plan_role = "hcptf-seahaven-ap-plan"
deploy_role = "githubdeploy-seahaven-ap"
web_bucket_name = "seahaven-ap-web-${local.account_id}"
artifacts_bucket_name = "seahaven-ap-artifacts-${local.account_id}"
documents_bucket_name = "seahaven-ap-documents-${local.account_id}"
ssm_prefix = "/seahaven-ap"
manage_vpc = var.existing_vpc_id == ""
vpc_cidr = "10.63.0.0/16"
public_subnet_cidrs = ["10.63.0.0/24", "10.63.1.0/24"]
private_subnet_cidrs = ["10.63.10.0/24", "10.63.11.0/24"]
github_oidc_provider_arn = "arn:aws:iam::${local.account_id}:oidc-provider/token.actions.githubusercontent.com"
cache_policy_caching_optimized = "658327ea-f89d-4fab-a63d-7e88639e58f6"
cache_policy_caching_disabled = "4135ea2d-6df8-44a3-9df3-4b5a84be39ad"
origin_request_all_viewer_except_host = "b689b0a8-53d0-40ab-baf2-68738e2966ac"
response_headers_security_headers = "67f7725c-6f97-4210-82d7-5512b31e9d03"
s3_origin_id = "S3WebOrigin"
api_origin_id = "ApiOrigin"
spa_csp = join(" ", [
"default-src 'self';",
"script-src 'self';",
"style-src 'self' 'unsafe-inline';",
"img-src 'self' data:;",
"font-src 'self';",
"connect-src 'self';",
"object-src 'none';",
"base-uri 'self';",
"form-action 'self';",
"frame-ancestors 'none';",
"upgrade-insecure-requests;",
])
spa_permissions_policy = join(", ", [
"accelerometer=()",
"camera=()",
"geolocation=()",
"gyroscope=()",
"magnetometer=()",
"microphone=()",
"payment=()",
"usb=()",
])
spa_rewrite_code = join("\n", [
"function handler(event) {",
" var request = event.request;",
" var uri = request.uri;",
" if (uri.lastIndexOf('.') <= uri.lastIndexOf('/')) {",
" request.uri = '/index.html';",
" }",
" return request;",
"}",
])
spa_security_headers_code = join("\n", [
"function handler(event) {",
" var headers = event.response.headers;",
" headers['content-security-policy'] = { value: ${jsonencode(local.spa_csp)} };",
" headers['permissions-policy'] = { value: ${jsonencode(local.spa_permissions_policy)} };",
" return event.response;",
"}",
])
}