@@ -32,16 +32,25 @@ before Terraform can run. Do this in the ZITADEL Cloud console and 1Password:
3232 seeds stub items in ` yucca_tf_${env}_manual ` with ` REPLACE_ME ` passwords
3333 for:
3434 - ` CUSTOMER_ZITADEL_DOMAIN `
35+ - ` CUSTOMER_ZITADEL_BASE_DOMAIN `
3536 - ` CUSTOMER_ZITADEL_PROFILE_JSON `
3637 - ` CUSTOMER_ZITADEL_SMTP_HOST `
3738 - ` CUSTOMER_ZITADEL_SMTP_USER `
3839 - ` CUSTOMER_ZITADEL_SMTP_PASSWORD `
3940 - ` CUSTOMER_ZITADEL_SMTP_SENDER_ADDRESS `
4041
4142 Replace each stub password in ` yucca_tf_${env}_manual ` with the real value
42- (` CUSTOMER_ZITADEL_DOMAIN ` = the instance URL ` <name>.zitadel.cloud ` , profile
43- JSON from step 3, SMTP credentials for the chosen provider, and sender
44- address e.g. ` no-reply@futo.cloud ` ).
43+ (` CUSTOMER_ZITADEL_DOMAIN ` = the public-facing auth URL — prod: the
44+ ` auth.futo.cloud ` vanity domain, dev/staging: the generated
45+ ` <name>.zitadel.cloud ` URL — consumed by app-side config, not this module;
46+ ` CUSTOMER_ZITADEL_BASE_DOMAIN ` = the generated ` <name>.zitadel.cloud ` instance
47+ host as a ** bare hostname** (no ` https:// ` , no trailing slash) in every env,
48+ which this module both connects through (provider + hosted login) and targets
49+ with the ` auth.futo.cloud ` CNAME, so the connection never depends on the
50+ mutable vanity domain. Stored bare to match the internal instance's
51+ ` FUTO_ZITADEL_BASE_DOMAIN ` . Profile JSON from step 3, SMTP
52+ credentials for the chosen provider, and sender address e.g.
53+ ` no-reply@futo.cloud ` ).
4554 Re-apply ` shared/1password/futo-account ` so the copy-secrets module
4655 mirrors each value into the ` yucca_tf_${env} ` vault that this module
4756 reads from via ` data "onepassword_item" ` lookups at plan/apply time. No
0 commit comments