diff --git a/app/client/docker/templates/nginx-linux.conf.template b/app/client/docker/templates/nginx-linux.conf.template index ad70d138c3..7142c4355e 100644 --- a/app/client/docker/templates/nginx-linux.conf.template +++ b/app/client/docker/templates/nginx-linux.conf.template @@ -31,6 +31,8 @@ server { sub_filter __APPSMITH_CLIENT_LOG_LEVEL__ '${APPSMITH_CLIENT_LOG_LEVEL}'; sub_filter __APPSMITH_GOOGLE_MAPS_API_KEY__ '${APPSMITH_GOOGLE_MAPS_API_KEY}'; sub_filter __APPSMITH_TNC_PP__ '${APPSMITH_TNC_PP}'; + sub_filter __APPSMITH_SENTRY_RELEASE__ '${APPSMITH_SENTRY_RELEASE}'; + sub_filter __APPSMITH_SENTRY_ENVIRONMENT__ '${APPSMITH_SENTRY_ENVIRONMENT}'; } location /f { @@ -93,6 +95,8 @@ server { sub_filter __APPSMITH_CLIENT_LOG_LEVEL__ '${APPSMITH_CLIENT_LOG_LEVEL}'; sub_filter __APPSMITH_GOOGLE_MAPS_API_KEY__ '${APPSMITH_GOOGLE_MAPS_API_KEY}'; sub_filter __APPSMITH_TNC_PP__ '${APPSMITH_TNC_PP}'; + sub_filter __APPSMITH_SENTRY_RELEASE__ '${APPSMITH_SENTRY_RELEASE}'; + sub_filter __APPSMITH_SENTRY_ENVIRONMENT__ '${APPSMITH_SENTRY_ENVIRONMENT}'; } location /f { diff --git a/app/client/docker/templates/nginx-mac.conf.template b/app/client/docker/templates/nginx-mac.conf.template index bbef205cd5..39ec75fd7b 100644 --- a/app/client/docker/templates/nginx-mac.conf.template +++ b/app/client/docker/templates/nginx-mac.conf.template @@ -31,6 +31,8 @@ server { sub_filter __APPSMITH_CLIENT_LOG_LEVEL__ '${APPSMITH_CLIENT_LOG_LEVEL}'; sub_filter __APPSMITH_GOOGLE_MAPS_API_KEY__ '${APPSMITH_GOOGLE_MAPS_API_KEY}'; sub_filter __APPSMITH_TNC_PP__ '${APPSMITH_TNC_PP}'; + sub_filter __APPSMITH_SENTRY_RELEASE__ '${APPSMITH_SENTRY_RELEASE}'; + sub_filter __APPSMITH_SENTRY_ENVIRONMENT__ '${APPSMITH_SENTRY_ENVIRONMENT}'; } location /f { @@ -94,6 +96,8 @@ server { sub_filter __APPSMITH_CLIENT_LOG_LEVEL__ '${APPSMITH_CLIENT_LOG_LEVEL}'; sub_filter __APPSMITH_GOOGLE_MAPS_API_KEY__ '${APPSMITH_GOOGLE_MAPS_API_KEY}'; sub_filter __APPSMITH_TNC_PP__ '${APPSMITH_TNC_PP}'; + sub_filter __APPSMITH_SENTRY_RELEASE__ '${APPSMITH_SENTRY_RELEASE}'; + sub_filter __APPSMITH_SENTRY_ENVIRONMENT__ '${APPSMITH_SENTRY_ENVIRONMENT}'; } diff --git a/app/client/public/index.html b/app/client/public/index.html index c24a1fd079..1df3d5fcc9 100755 --- a/app/client/public/index.html +++ b/app/client/public/index.html @@ -53,7 +53,11 @@ const CONFIG_LOG_LEVEL_INDEX = LOG_LEVELS.indexOf(parseConfig("__APPSMITH_CLIENT_LOG_LEVEL__")); window.SENTRY_CONFIG = parseConfig("__APPSMITH_SENTRY_DSN__"); window.APPSMITH_FEATURE_CONFIGS = { - sentry: parseConfig("__APPSMITH_SENTRY_DSN__"), + sentry: { + dsn: parseConfig("__APPSMITH_SENTRY_DSN__"), + release: parseConfig("__APPSMITH_SENTRY_RELEASE__"), + environment: parseConfig("__APPSMITH_SENTRY_ENVIRONMENT__"), + }, hotjar: { id: parseConfig("__APPSMITH_HOTJAR_HJID__"), sv: parseConfig("__APPSMITH_HOTJAR_HJSV__"), diff --git a/app/client/src/configs/index.ts b/app/client/src/configs/index.ts index 1ad9d0ba7a..24ba7f7a3a 100644 --- a/app/client/src/configs/index.ts +++ b/app/client/src/configs/index.ts @@ -1,6 +1,10 @@ import { AppsmithUIConfigs, FeatureFlagConfig } from "./types"; type INJECTED_CONFIGS = { - sentry: string; + sentry: { + dsn: string; + release: string; + environment: string; + }; hotjar: { id: string; sv: string; @@ -27,9 +31,19 @@ declare global { } } +const capitalizeText = (text: string) => { + const rest = text.slice(1); + const first = text[0].toUpperCase(); + return `${first}${rest}`; +}; + const getConfigsFromEnvVars = (): INJECTED_CONFIGS => { return { - sentry: process.env.REACT_APP_SENTRY_DSN || "", + sentry: { + dsn: process.env.REACT_APP_SENTRY_DSN || "", + release: process.env.REACT_APP_SENTRY_RELEASE || "", + environment: capitalizeText(process.env.NODE_ENV), + }, hotjar: { id: process.env.REACT_APP_HOTJAR_HJID || "", sv: process.env.REACT_APP_HOTJAR_HJSV || "", @@ -92,7 +106,19 @@ export const getAppsmithConfigs = (): AppsmithUIConfigs => { return; }; - const sentry = getConfig(ENV_CONFIG.sentry, APPSMITH_FEATURE_CONFIGS.sentry); + // const sentry = getConfig(ENV_CONFIG.sentry, APPSMITH_FEATURE_CONFIGS.sentry); + const sentryDSN = getConfig( + ENV_CONFIG.sentry.dsn, + APPSMITH_FEATURE_CONFIGS.sentry.dsn, + ); + const sentryRelease = getConfig( + ENV_CONFIG.sentry.release, + APPSMITH_FEATURE_CONFIGS.sentry.release, + ); + const sentryENV = getConfig( + APPSMITH_FEATURE_CONFIGS.sentry.environment, + ENV_CONFIG.sentry.environment, + ); const segment = getConfig( ENV_CONFIG.segment, APPSMITH_FEATURE_CONFIGS.segment, @@ -124,7 +150,12 @@ export const getAppsmithConfigs = (): AppsmithUIConfigs => { ); return { - sentry: { enabled: sentry.enabled, apiKey: sentry.value }, + sentry: { + enabled: sentryDSN.enabled && sentryRelease.enabled && sentryENV.enabled, + dsn: sentryDSN.value, + release: sentryRelease.value, + environment: sentryENV.value, + }, hotjar: { enabled: hotjarId.enabled && hotjarSV.enabled, id: hotjarId.value, diff --git a/app/client/src/configs/types.ts b/app/client/src/configs/types.ts index 03e62bef6a..7fbd8178c3 100644 --- a/app/client/src/configs/types.ts +++ b/app/client/src/configs/types.ts @@ -26,7 +26,9 @@ export type FeatureFlagConfig = { export type AppsmithUIConfigs = { sentry: { enabled: boolean; - apiKey: string; + dsn: string; + release: string; + environment: string; }; hotjar: { enabled: boolean; diff --git a/app/client/src/utils/AppsmithUtils.tsx b/app/client/src/utils/AppsmithUtils.tsx index 0e1199435c..643a4611b4 100644 --- a/app/client/src/utils/AppsmithUtils.tsx +++ b/app/client/src/utils/AppsmithUtils.tsx @@ -31,7 +31,7 @@ export const appInitializer = () => { FeatureFlag.initialize(appsmithConfigs.featureFlag); if (appsmithConfigs.sentry.enabled) { - Sentry.init({ dsn: appsmithConfigs.sentry.apiKey }); + Sentry.init(appsmithConfigs.sentry); } if (appsmithConfigs.hotjar.enabled) { const { id, sv } = appsmithConfigs.hotjar;