diff --git a/.env.example b/.env.example index 6dfdfab187..56b022b62b 100644 --- a/.env.example +++ b/.env.example @@ -62,4 +62,7 @@ APPSMITH_MAIL_SMTP_TLS_ENABLED= # Google Recaptcha Config APPSMITH_RECAPTCHA_SITE_KEY= APPSMITH_RECAPTCHA_SECRET_KEY= -APPSMITH_RECAPTCHA_ENABLED= \ No newline at end of file +APPSMITH_RECAPTCHA_ENABLED= + +# Intercom +APPSMITH_DISABLE_INTERCOM= diff --git a/app/client/docker/templates/nginx-app.conf.template b/app/client/docker/templates/nginx-app.conf.template index 6b8ed93474..5302393107 100644 --- a/app/client/docker/templates/nginx-app.conf.template +++ b/app/client/docker/templates/nginx-app.conf.template @@ -49,6 +49,7 @@ server { sub_filter __APPSMITH_DISABLE_TELEMETRY__ '${APPSMITH_DISABLE_TELEMETRY}'; sub_filter __APPSMITH_CLOUD_SERVICES_BASE_URL__ '${APPSMITH_CLOUD_SERVICES_BASE_URL}'; sub_filter __APPSMITH_RECAPTCHA_SITE_KEY__ '${APPSMITH_RECAPTCHA_SITE_KEY}'; + sub_filter __APPSMITH_DISABLE_INTERCOM__ '${APPSMITH_DISABLE_INTERCOM}'; } location /f { diff --git a/app/client/public/index.html b/app/client/public/index.html index a2a59ed6d7..6041467fa5 100755 --- a/app/client/public/index.html +++ b/app/client/public/index.html @@ -160,9 +160,10 @@ const INTERCOM_APP_ID = parseConfig("%REACT_APP_INTERCOM_APP_ID%") || parseConfig("__APPSMITH_INTERCOM_APP_ID__"); const CLOUD_HOSTING = parseConfig("__APPSMITH_CLOUD_HOSTING__"); const DISABLE_TELEMETRY = parseConfig("__APPSMITH_DISABLE_TELEMETRY__"); + const DISABLE_INTERCOM = parseConfig("__APPSMITH_DISABLE_INTERCOM__"); // Initialize the Intercom library - if (INTERCOM_APP_ID.length) { + if (INTERCOM_APP_ID.length && !DISABLE_INTERCOM) { (function () { var w = window; var ic = w.Intercom; if (typeof ic === "function") { ic('reattach_activator'); ic('update', w.intercomSettings); } else { var d = document; var i = function () { i.c(arguments); }; i.q = []; i.c = function (args) { i.q.push(args); }; w.Intercom = i; var l = function () { var s = d.createElement('script'); s.type = 'text/javascript'; s.async = true; s.src = 'https://widget.intercom.io/widget/' + INTERCOM_APP_ID; var x = d.getElementsByTagName('script')[0]; x.parentNode.insertBefore(s, x); }; if (document.readyState === 'complete') { l(); } else if (w.attachEvent) { w.attachEvent('onload', l); } else { w.addEventListener('load', l, false); } } })(); } diff --git a/app/client/src/components/designSystems/appsmith/help/DocumentationSearch.tsx b/app/client/src/components/designSystems/appsmith/help/DocumentationSearch.tsx index 9266b308d7..d24157d21e 100644 --- a/app/client/src/components/designSystems/appsmith/help/DocumentationSearch.tsx +++ b/app/client/src/components/designSystems/appsmith/help/DocumentationSearch.tsx @@ -333,7 +333,7 @@ const HELP_MENU_ITEMS: HelpItem[] = [ }, ]; -if (intercomAppID) { +if (intercomAppID && window.Intercom) { HELP_MENU_ITEMS.push({ icon: , label: "Chat with us", diff --git a/deploy/ansible/appsmith_playbook/appsmith-vars.yml b/deploy/ansible/appsmith_playbook/appsmith-vars.yml index bca918e2f0..1f1d28a4f7 100644 --- a/deploy/ansible/appsmith_playbook/appsmith-vars.yml +++ b/deploy/ansible/appsmith_playbook/appsmith-vars.yml @@ -42,4 +42,4 @@ intercom_app_id: '' google_recaptcha_site_key: '' google_recaptcha_secret_key: '' google_recaptcha_enabled: 'false' - +disable_intercom: 'false' diff --git a/deploy/ansible/appsmith_playbook/roles/generate_template/templates/docker.env.j2 b/deploy/ansible/appsmith_playbook/roles/generate_template/templates/docker.env.j2 index 7bd7a504fc..352173e032 100644 --- a/deploy/ansible/appsmith_playbook/roles/generate_template/templates/docker.env.j2 +++ b/deploy/ansible/appsmith_playbook/roles/generate_template/templates/docker.env.j2 @@ -51,3 +51,7 @@ APPSMITH_RECAPTCHA_SITE_KEY= {{ google_recaptcha_site_key }} APPSMITH_RECAPTCHA_SECRET_KEY= {{ google_recaptcha_secrete_key }} APPSMITH_RECAPTCHA_ENABLED= {{ google_recaptcha_enabled }} # ******************************** + +# ******** Intercom ************** +APPSMITH_DISABLE_INTERCOM= {{ disable_intercom }} +# ******************************** diff --git a/deploy/ansible/appsmith_playbook/roles/generate_template/templates/nginx-app.conf.j2 b/deploy/ansible/appsmith_playbook/roles/generate_template/templates/nginx-app.conf.j2 index 0436cadb49..1a1cdbaf2b 100644 --- a/deploy/ansible/appsmith_playbook/roles/generate_template/templates/nginx-app.conf.j2 +++ b/deploy/ansible/appsmith_playbook/roles/generate_template/templates/nginx-app.conf.j2 @@ -40,6 +40,7 @@ sub_filter __APPSMITH_RECAPTCHA_SITE_KEY__ '{{ google_recaptcha_site_key }}'; sub_filter __APPSMITH_RECAPTCHA_SECRET_KEY__ '{{ google_recaptcha_secrete_key }}'; sub_filter __APPSMITH_RECAPTCHA_ENABLED__ '{{ google_recaptcha_enabled }}'; + sub_filter __APPSMITH_DISABLE_INTERCOM__ '{{ disable_intercom }}'; } location /f { @@ -99,6 +100,7 @@ {{ ssl_cmt }} sub_filter __APPSMITH_RECAPTCHA_SITE_KEY__ '{{ google_recaptcha_site_key }}'; {{ ssl_cmt }} sub_filter __APPSMITH_RECAPTCHA_SECRET_KEY__ '{{ google_recaptcha_secrete_key }}'; {{ ssl_cmt }} sub_filter __APPSMITH_RECAPTCHA_ENABLED__ '{{ google_recaptcha_enabled }}'; +{{ ssl_cmt }} sub_filter __APPSMITH_DISABLE_INTERCOM__ '{{ disable_intercom }}'; {{ ssl_cmt }} } {{ ssl_cmt }} location /f { diff --git a/deploy/heroku/README.MD b/deploy/heroku/README.MD index 552bb15245..2be6c11b33 100644 --- a/deploy/heroku/README.MD +++ b/deploy/heroku/README.MD @@ -37,6 +37,8 @@ Quickly set up Appsmith to explore product functionality using Heroku. - `APPSMITH_RECAPTCHA_SITE_KEY`: Google reCAPTCHA v3 site key, it is required if you wish to enable protection against spam/abusive users. Read more at: https://developers.google.com/recaptcha/docs/v3 - `APPSMITH_RECAPTCHA_SECRET_KEY`: Google reCAPTCHA v3 verification secret key, it is required if you wish to enable spam protection in your backend server. - `APPSMITH_RECAPTCHA_ENABLED`: Boolean config to enable or disable Google reCAPTCHA v3 verification feature. If set to true, both site key and secret key should be provided. + - Intercom: + - `APPSMITH_DISABLE_INTERCOM`: Set this value to true to disable intercom (value should be `true/false` only) After Heroku finishes setting up the app, click “View” and your Appsmith should be up and running. You will be taken to the account creation page, where you can enter credentials to create an account and get started. diff --git a/deploy/heroku/default.conf.template b/deploy/heroku/default.conf.template index 490cacb32d..0519516293 100644 --- a/deploy/heroku/default.conf.template +++ b/deploy/heroku/default.conf.template @@ -35,6 +35,7 @@ server { sub_filter __APPSMITH_RECAPTCHA_SITE_KEY__ '${APPSMITH_RECAPTCHA_SITE_KEY}'; sub_filter __APPSMITH_RECAPTCHA_SECRET_KEY__ '${APPSMITH_RECAPTCHA_SECRET_KEY}'; sub_filter __APPSMITH_RECAPTCHA_ENABLED__ '${APPSMITH_RECAPTCHA_ENABLED}'; + sub_filter __APPSMITH_DISABLE_INTERCOM__ '${APPSMITH_DISABLE_INTERCOM}'; } location /f { diff --git a/deploy/k8s/scripts/appsmith-configmap.yaml.sh b/deploy/k8s/scripts/appsmith-configmap.yaml.sh index beb60f4194..7c11a6cb43 100644 --- a/deploy/k8s/scripts/appsmith-configmap.yaml.sh +++ b/deploy/k8s/scripts/appsmith-configmap.yaml.sh @@ -33,4 +33,5 @@ data: APPSMITH_RECAPTCHA_SITE_KEY: "" APPSMITH_RECAPTCHA_SECRET_KEY: "" APPSMITH_RECAPTCHA_ENABLED: "false" + APPSMITH_DISABLE_INTERCOM: "false" EOF diff --git a/deploy/k8s/scripts/nginx-configmap.yaml b/deploy/k8s/scripts/nginx-configmap.yaml index eef8665258..17fd10fb94 100644 --- a/deploy/k8s/scripts/nginx-configmap.yaml +++ b/deploy/k8s/scripts/nginx-configmap.yaml @@ -40,6 +40,7 @@ data: sub_filter __APPSMITH_RECAPTCHA_SITE_KEY__ '${APPSMITH_RECAPTCHA_SITE_KEY}'; sub_filter __APPSMITH_RECAPTCHA_SECRET_KEY__ '${APPSMITH_RECAPTCHA_SECRET_KEY}'; sub_filter __APPSMITH_RECAPTCHA_ENABLED__ '${APPSMITH_RECAPTCHA_ENABLED}'; + sub_filter __APPSMITH_DISABLE_INTERCOM__ '${APPSMITH_DISABLE_INTERCOM}'; } location /f { diff --git a/deploy/template/docker.env.sh b/deploy/template/docker.env.sh index 3dc68b6b82..88533c8909 100644 --- a/deploy/template/docker.env.sh +++ b/deploy/template/docker.env.sh @@ -69,4 +69,8 @@ APPSMITH_DISABLE_TELEMETRY=$disable_telemetry # APPSMITH_RECAPTCHA_ENABLED= # ************************************ +# ******** INTERCOM ************* +# APPSMITH_DISABLE_INTERCOM= +# ******************************* + EOF diff --git a/deploy/template/nginx_app.conf.sh b/deploy/template/nginx_app.conf.sh index 0e56aa3361..39321abb52 100644 --- a/deploy/template/nginx_app.conf.sh +++ b/deploy/template/nginx_app.conf.sh @@ -52,6 +52,7 @@ $NGINX_SSL_CMNT server_name $custom_domain ; sub_filter __APPSMITH_RECAPTCHA_SITE_KEY__ '\${APPSMITH_RECAPTCHA_SITE_KEY}'; sub_filter __APPSMITH_RECAPTCHA_SECRET_KEY__ '\${APPSMITH_RECAPTCHA_SECRET_KEY}'; sub_filter __APPSMITH_RECAPTCHA_ENABLED__ '\${APPSMITH_RECAPTCHA_ENABLED}'; + sub_filter __APPSMITH_DISABLE_INTERCOM__ '\${APPSMITH_DISABLE_INTERCOM}'; } location /f { @@ -112,6 +113,7 @@ $NGINX_SSL_CMNT sub_filter __APPSMITH_DISABLE_TELEMETRY__ '\${APPSMITH_DI $NGINX_SSL_CMNT sub_filter __APPSMITH_RECAPTCHA_SITE_KEY__ '\${APPSMITH_RECAPTCHA_SITE_KEY}'; $NGINX_SSL_CMNT sub_filter __APPSMITH_RECAPTCHA_SECRET_KEY__ '\${APPSMITH_RECAPTCHA_SECRET_KEY}'; $NGINX_SSL_CMNT sub_filter __APPSMITH_RECAPTCHA_ENABLED__ '\${APPSMITH_RECAPTCHA_ENABLED}'; +$NGINX_SSL_CMNT sub_filter __APPSMITH_DISABLE_INTERCOM__ '\${APPSMITH_DISABLE_INTERCOM}'; $NGINX_SSL_CMNT } $NGINX_SSL_CMNT $NGINX_SSL_CMNT location /f {