From eea6389a5a9a4fb68bc22e3a07a43e9d0d24a4b3 Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 6 Nov 2026 20:27:43 -0500 Subject: [PATCH] www: pass listmonk newsletter settings to membership Co-Authored-By: Claude Opus 5.5 --- defaults/main.yml | 5 +++++ tasks/membership.yml | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/defaults/main.yml b/defaults/main.yml index a7b0b95..7f75eab 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -131,6 +131,11 @@ www_membership_environment: SHKEEPER_URL: "" SHKEEPER_CURRENCIES: "" SHKEEPER_CA_CERT_FILE: "" + # Newsletter opt-in at signup and on the profile. Enabled only when the + # LISTMONK_API_TOKEN Secret key is also present. + LISTMONK_URL: "" + LISTMONK_API_USER: "" + LISTMONK_LIST_NAME: eom.dev # Existing LIVE Stripe prices. Level 0 is free and is not configured as a paid tier. # Provision the dedicated paid-group DNs separately. diff --git a/tasks/membership.yml b/tasks/membership.yml index 1411520..cfba9bc 100755 --- a/tasks/membership.yml +++ b/tasks/membership.yml @@ -34,6 +34,7 @@ - not www_membership_shkeeper_enabled or (www_membership_environment.SHKEEPER_URL is match('^https://[^/@]+') and www_membership_environment.SHKEEPER_CURRENCIES | length > 0) - www_membership_shkeeper_enabled or (www_membership_environment.SHKEEPER_URL | length == 0 and www_membership_environment.SHKEEPER_CURRENCIES | length == 0) - not www_membership_stripe_enabled or www_membership_environment.STRIPE_PORTAL_CONFIGURATION | length > 0 + - (www_membership_environment.LISTMONK_URL | default('')) | length == 0 or www_membership_environment.LISTMONK_URL is match('^https://[^/@]+$') - not www_membership_postgres_managed or www_membership_environment.POSTGRES_HOST == 'membership-db' - www_membership_postgres_managed or www_membership_environment.POSTGRES_SSLMODE == 'verify-full' - not www_membership_postgres_managed or www_membership_environment.POSTGRES_PORT | string == '5432' @@ -61,7 +62,7 @@ - name: Define secret-only settings tags: [membership_validate] ansible.builtin.set_fact: - _www_secret_keys: [MEMBERSHIP_SECRET_KEY, POSTGRES_PASSWORD, DEX_CLIENT_SECRET, LDAP_BIND_PASSWORD, EMAIL_HOST_PASSWORD, STRIPE_SECRET_KEY, STRIPE_WEBHOOK_SECRET, SHKEEPER_API_KEY] + _www_secret_keys: [MEMBERSHIP_SECRET_KEY, POSTGRES_PASSWORD, DEX_CLIENT_SECRET, LDAP_BIND_PASSWORD, EMAIL_HOST_PASSWORD, STRIPE_SECRET_KEY, STRIPE_WEBHOOK_SECRET, SHKEEPER_API_KEY, LISTMONK_API_TOKEN] _www_required_secret_keys: "{{ ['MEMBERSHIP_SECRET_KEY', 'POSTGRES_PASSWORD', 'DEX_CLIENT_SECRET', 'LDAP_BIND_PASSWORD'] + (['STRIPE_SECRET_KEY', 'STRIPE_WEBHOOK_SECRET'] if www_membership_stripe_enabled else []) + (['SHKEEPER_API_KEY'] if www_membership_shkeeper_enabled else []) }}" - name: Prevent secrets in public ConfigMaps