fix CI
Deploy Beta / unit-tests (push) Successful in 30s
Deploy Beta / docker (push) Successful in 30s
Deploy Beta / deploy-beta (push) Successful in 15m19s

This commit is contained in:
2026-09-06 20:48:00 -05:00
parent 1ca5a757d9
commit 04e75ec7a3
+23 -11
View File
@@ -128,19 +128,31 @@ CSRF_TRUSTED_ORIGINS = build_csrf_trusted_origins(
from django.core.exceptions import ImproperlyConfigured from django.core.exceptions import ImproperlyConfigured
# Catalog feature flags. Secret env is the source of truth. # Catalog feature flags. Secret env is the source of truth.
# Dev/test default ON so the template is a working seed; prod/beta secrets # Dev default ON so the template is a working seed; prod/beta secrets
# must set each flag explicitly (see scripts/validate-env.sh). # must set each flag explicitly (see scripts/validate-env.sh).
# Tests always enable the full catalog. compose / .env pin this client's
# purchased add-ons (FEATURE_BLOG=false, ...); leaving those in place would
# omit apps from INSTALLED_APPS and break discovery of blog.tests, etc.
_testing = "test" in sys.argv
_feature_default = os.environ.get("DJANGO_ENV", "dev").lower() not in {"prod", "beta"} _feature_default = os.environ.get("DJANGO_ENV", "dev").lower() not in {"prod", "beta"}
FEATURE_EMAIL_SMS = env_bool("FEATURE_EMAIL_SMS", _feature_default)
FEATURE_DIRECT_MAIL = env_bool("FEATURE_DIRECT_MAIL", _feature_default)
FEATURE_BLOG = env_bool("FEATURE_BLOG", _feature_default) def _feature_flag(key: str) -> bool:
FEATURE_PAYMENTS = env_bool("FEATURE_PAYMENTS", _feature_default) if _testing:
FEATURE_SOCIAL = env_bool("FEATURE_SOCIAL", _feature_default) return True
FEATURE_SOCIAL_AI = env_bool("FEATURE_SOCIAL_AI", _feature_default) return env_bool(key, _feature_default)
FEATURE_SHOP = env_bool("FEATURE_SHOP", _feature_default)
FEATURE_POS_SYNC = env_bool("FEATURE_POS_SYNC", _feature_default)
FEATURE_EVENTS = env_bool("FEATURE_EVENTS", _feature_default) FEATURE_EMAIL_SMS = _feature_flag("FEATURE_EMAIL_SMS")
FEATURE_SHIPPING = env_bool("FEATURE_SHIPPING", _feature_default) FEATURE_DIRECT_MAIL = _feature_flag("FEATURE_DIRECT_MAIL")
FEATURE_BLOG = _feature_flag("FEATURE_BLOG")
FEATURE_PAYMENTS = _feature_flag("FEATURE_PAYMENTS")
FEATURE_SOCIAL = _feature_flag("FEATURE_SOCIAL")
FEATURE_SOCIAL_AI = _feature_flag("FEATURE_SOCIAL_AI")
FEATURE_SHOP = _feature_flag("FEATURE_SHOP")
FEATURE_POS_SYNC = _feature_flag("FEATURE_POS_SYNC")
FEATURE_EVENTS = _feature_flag("FEATURE_EVENTS")
FEATURE_SHIPPING = _feature_flag("FEATURE_SHIPPING")
if FEATURE_PAYMENTS and not FEATURE_EMAIL_SMS: if FEATURE_PAYMENTS and not FEATURE_EMAIL_SMS:
raise ImproperlyConfigured("FEATURE_PAYMENTS requires FEATURE_EMAIL_SMS") raise ImproperlyConfigured("FEATURE_PAYMENTS requires FEATURE_EMAIL_SMS")