From 872f799778bd05854abda5103541753512e30dd7 Mon Sep 17 00:00:00 2001 From: Sangeeth Sivan <74818788+berzerkeer@users.noreply.github.com> Date: Mon, 20 Feb 2023 22:29:06 +0530 Subject: [PATCH] feat: usage and billing ce (#20653) ### Description - Removes feature flags for usage & billing. - moves pricing url to constant. --------- Co-authored-by: Vishnu Gp --- .../src/ce/pages/AdminSettings/LeftPane.tsx | 31 ++++++++----------- .../Upgrade/AccessControlUpgradePage.tsx | 2 +- .../ce/pages/Upgrade/AuditLogsUpgradePage.tsx | 2 +- app/client/src/ce/utils/signupHelpers.ts | 1 - .../src/constants/ThirdPartyConstants.tsx | 2 ++ app/client/src/pages/setup/SignupSuccess.tsx | 5 +-- app/client/src/utils/AnalyticsUtil.tsx | 2 ++ app/client/src/utils/hooks/useOnUpgrade.ts | 29 +++-------------- .../server/featureflags/FeatureFlagEnum.java | 1 - .../main/resources/features/init-flags.yml | 9 ------ 10 files changed, 24 insertions(+), 60 deletions(-) diff --git a/app/client/src/ce/pages/AdminSettings/LeftPane.tsx b/app/client/src/ce/pages/AdminSettings/LeftPane.tsx index 285772a235..c48708f94b 100644 --- a/app/client/src/ce/pages/AdminSettings/LeftPane.tsx +++ b/app/client/src/ce/pages/AdminSettings/LeftPane.tsx @@ -8,8 +8,6 @@ import { useParams } from "react-router"; import { Icon, IconSize } from "design-system-old"; import { createMessage } from "design-system-old/build/constants/messages"; import { UPGRADE } from "@appsmith/constants/messages"; -import { useSelector } from "react-redux"; -import { selectFeatureFlags } from "selectors/usersSelectors"; import AnalyticsUtil from "utils/AnalyticsUtil"; import camelCase from "lodash/camelCase"; @@ -136,7 +134,6 @@ export function Categories({ } export default function LeftPane() { - const features = useSelector(selectFeatureFlags); const categories = getSettingsCategory(); const { category, selected: subCategory } = useParams() as any; @@ -184,21 +181,19 @@ export default function LeftPane() {
Audit logs
- {features.USAGE_AND_BILLING && ( - - triggerAnalytics("BusinessEdition")} - to="/settings/business-edition" - > -
- -
-
{camelCase(createMessage(UPGRADE))}
-
-
- )} + + triggerAnalytics("BusinessEdition")} + to="/settings/business-edition" + > +
+ +
+
{camelCase(createMessage(UPGRADE))}
+
+
diff --git a/app/client/src/ce/pages/Upgrade/AccessControlUpgradePage.tsx b/app/client/src/ce/pages/Upgrade/AccessControlUpgradePage.tsx index 8bf05ffcd1..c89a3e3046 100644 --- a/app/client/src/ce/pages/Upgrade/AccessControlUpgradePage.tsx +++ b/app/client/src/ce/pages/Upgrade/AccessControlUpgradePage.tsx @@ -22,7 +22,7 @@ import useOnUpgrade from "utils/hooks/useOnUpgrade"; export function AccessControlUpgradePage() { const { onUpgrade } = useOnUpgrade({ - logEventName: "ADMIN_SETTINGS_UPGRADE_HOOK", + logEventName: "GAC_UPGRADE_CLICK_ADMIN_SETTINGS", logEventData: { source: "Granular Access Control" }, intercomMessage: createMessage( UPGRADE_TO_EE_FEATURE, diff --git a/app/client/src/ce/pages/Upgrade/AuditLogsUpgradePage.tsx b/app/client/src/ce/pages/Upgrade/AuditLogsUpgradePage.tsx index dbf916018b..114a3eee93 100644 --- a/app/client/src/ce/pages/Upgrade/AuditLogsUpgradePage.tsx +++ b/app/client/src/ce/pages/Upgrade/AuditLogsUpgradePage.tsx @@ -23,7 +23,7 @@ import useOnUpgrade from "utils/hooks/useOnUpgrade"; export function AuditLogsUpgradePage() { const { onUpgrade } = useOnUpgrade({ - logEventName: "ADMIN_SETTINGS_UPGRADE_HOOK", + logEventName: "AUDIT_LOGS_UPGRADE_ADMIN_SETTINGS", logEventData: { source: "AuditLogs" }, intercomMessage: createMessage(UPGRADE_TO_EE_FEATURE, "Audit Logs"), }); diff --git a/app/client/src/ce/utils/signupHelpers.ts b/app/client/src/ce/utils/signupHelpers.ts index ef2da1c244..d9b1a17c89 100644 --- a/app/client/src/ce/utils/signupHelpers.ts +++ b/app/client/src/ce/utils/signupHelpers.ts @@ -15,7 +15,6 @@ import history from "utils/history"; export const redirectUserAfterSignup = ( redirectUrl: string, shouldEnableFirstTimeUserOnboarding: string | null, - _isUsageAndBillingEnabled: boolean | undefined, _validLicense?: boolean, dispatch?: any, ): any => { diff --git a/app/client/src/constants/ThirdPartyConstants.tsx b/app/client/src/constants/ThirdPartyConstants.tsx index d5a2cab331..6f3b5c2b78 100644 --- a/app/client/src/constants/ThirdPartyConstants.tsx +++ b/app/client/src/constants/ThirdPartyConstants.tsx @@ -21,3 +21,5 @@ export const EMAIL_SETUP_DOC = "https://docs.appsmith.com/getting-started/setup/instance-configuration/email"; export const SIGNUP_RESTRICTION_DOC = "https://docs.appsmith.com/getting-started/setup/instance-configuration/disable-user-signup#disable-sign-up"; +export const PRICING_PAGE_URL = (source: string, instanceId: string) => + `https://www.appsmith.com/pricing?source=${source}&instance=${instanceId}`; diff --git a/app/client/src/pages/setup/SignupSuccess.tsx b/app/client/src/pages/setup/SignupSuccess.tsx index 12db344e42..f47a828690 100644 --- a/app/client/src/pages/setup/SignupSuccess.tsx +++ b/app/client/src/pages/setup/SignupSuccess.tsx @@ -5,7 +5,7 @@ import React from "react"; import { useCallback } from "react"; import { useEffect } from "react"; import { useDispatch, useSelector } from "react-redux"; -import { getCurrentUser, selectFeatureFlags } from "selectors/usersSelectors"; +import { getCurrentUser } from "selectors/usersSelectors"; import PerformanceTracker, { PerformanceTransactionName, } from "utils/PerformanceTracker"; @@ -22,8 +22,6 @@ export function SignupSuccess() { const shouldEnableFirstTimeUserOnboarding = urlObject?.searchParams.get( "enableFirstTimeUserExperience", ); - const isUsageAndBillingEnabled = useSelector(selectFeatureFlags) - ?.USAGE_AND_BILLING; const validLicense = useSelector(isValidLicense); useEffect(() => { PerformanceTracker.stopTracking(PerformanceTransactionName.SIGN_UP); @@ -34,7 +32,6 @@ export function SignupSuccess() { redirectUserAfterSignup( redirectUrl, shouldEnableFirstTimeUserOnboarding, - isUsageAndBillingEnabled, validLicense, dispatch, ), diff --git a/app/client/src/utils/AnalyticsUtil.tsx b/app/client/src/utils/AnalyticsUtil.tsx index 4d99eb6dd1..f836fb021d 100644 --- a/app/client/src/utils/AnalyticsUtil.tsx +++ b/app/client/src/utils/AnalyticsUtil.tsx @@ -229,6 +229,8 @@ export type EventName = | "ADMIN_SETTINGS_ENABLE_AUTH_METHOD" | "ADMIN_SETTINGS_UPGRADE_HOOK" | "BILLING_UPGRADE_ADMIN_SETTINGS" + | "AUDIT_LOGS_UPGRADE_ADMIN_SETTINGS" + | "GAC_UPGRADE_CLICK_ADMIN_SETTINGS" | "REFLOW_BETA_FLAG" | "CONTAINER_JUMP" | "CONNECT_GIT_CLICK" diff --git a/app/client/src/utils/hooks/useOnUpgrade.ts b/app/client/src/utils/hooks/useOnUpgrade.ts index ee8c7ae838..cc30b376ee 100644 --- a/app/client/src/utils/hooks/useOnUpgrade.ts +++ b/app/client/src/utils/hooks/useOnUpgrade.ts @@ -1,15 +1,8 @@ -import { getAppsmithConfigs } from "@appsmith/configs"; -import { - createMessage, - UPGRADE_TO_EE_GENERIC, -} from "@appsmith/constants/messages"; -import { getInstanceId } from "@appsmith/selectors/tenantSelectors"; import { useSelector } from "react-redux"; -import { selectFeatureFlags } from "selectors/usersSelectors"; +import { getInstanceId } from "@appsmith/selectors/tenantSelectors"; +import { PRICING_PAGE_URL } from "constants/ThirdPartyConstants"; import AnalyticsUtil, { EventName } from "utils/AnalyticsUtil"; -const { intercomAppID } = getAppsmithConfigs(); - type Props = { intercomMessage?: string; logEventName?: EventName; @@ -17,29 +10,15 @@ type Props = { }; const useOnUpgrade = (props: Props) => { - const { intercomMessage, logEventData, logEventName } = props; - const features = useSelector(selectFeatureFlags); + const { logEventData, logEventName } = props; const instanceId = useSelector(getInstanceId); - const triggerIntercom = (message: string) => { - if (intercomAppID && window.Intercom) { - window.Intercom("showNewMessage", message); - } - }; - const onUpgrade = () => { AnalyticsUtil.logEvent( logEventName || "ADMIN_SETTINGS_UPGRADE", logEventData, ); - if (features.USAGE_AND_BILLING) { - window.open( - `https://www.appsmith.com/api/preview?secret=8JPsJRnSkt6Va8FzxUPFhZezxZuHRnSU&slug=pricing-preview?source=CE&instance=${instanceId}`, - "_blank", - ); - } else { - triggerIntercom(intercomMessage || createMessage(UPGRADE_TO_EE_GENERIC)); - } + window.open(PRICING_PAGE_URL("CE", instanceId), "_blank"); }; return { onUpgrade }; diff --git a/app/server/appsmith-server/src/main/java/com/appsmith/server/featureflags/FeatureFlagEnum.java b/app/server/appsmith-server/src/main/java/com/appsmith/server/featureflags/FeatureFlagEnum.java index 9fab84269c..9ce70f89b9 100644 --- a/app/server/appsmith-server/src/main/java/com/appsmith/server/featureflags/FeatureFlagEnum.java +++ b/app/server/appsmith-server/src/main/java/com/appsmith/server/featureflags/FeatureFlagEnum.java @@ -37,5 +37,4 @@ public enum FeatureFlagEnum { // Put EE flags below this line, to avoid conflicts. RBAC, - USAGE_AND_BILLING, } diff --git a/app/server/appsmith-server/src/main/resources/features/init-flags.yml b/app/server/appsmith-server/src/main/resources/features/init-flags.yml index db41fae950..3bc48ba912 100644 --- a/app/server/appsmith-server/src/main/resources/features/init-flags.yml +++ b/app/server/appsmith-server/src/main/resources/features/init-flags.yml @@ -108,15 +108,6 @@ ff4j: - name: emailDomains value: appsmith.com - - uid: USAGE_AND_BILLING - enable: true - description: Enable usage and billing - flipstrategy: - class: com.appsmith.server.featureflags.strategies.EmailBasedRolloutStrategy - param: - - name: emails - value: usage@appsmith.com,usage1@appsmith.com - - uid: LAZY_CANVAS_RENDERING enable: true description: Enable Canvas to lazily render widgets below the fold