diff --git a/app/client/cypress/e2e/Regression/ServerSide/QueryPane/GoogleSheets_spec.ts b/app/client/cypress/e2e/Regression/ServerSide/QueryPane/GoogleSheets_spec.ts index 0c81622a80..22db9f0dc7 100644 --- a/app/client/cypress/e2e/Regression/ServerSide/QueryPane/GoogleSheets_spec.ts +++ b/app/client/cypress/e2e/Regression/ServerSide/QueryPane/GoogleSheets_spec.ts @@ -1,3 +1,4 @@ +import { featureFlagIntercept } from "../../../../support/Objects/FeatureFlags"; import { dataSources, deployMode, @@ -23,6 +24,13 @@ describe( function () { let pluginName = "Google Sheets"; + before(() => { + // intercept features call gsheet all sheets disabled + featureFlagIntercept({ + release_gs_all_sheets_options_enabled: false, + }); + }); + it("1. Verify GSheets dropdown options", function () { dataSources.NavigateToDSCreateNew(); dataSources.CreatePlugIn("Google Sheets"); diff --git a/app/client/cypress/support/Pages/IDE/BottomTabs/Response.ts b/app/client/cypress/support/Pages/IDE/BottomTabs/Response.ts index 2e74183375..c42006861c 100644 --- a/app/client/cypress/support/Pages/IDE/BottomTabs/Response.ts +++ b/app/client/cypress/support/Pages/IDE/BottomTabs/Response.ts @@ -24,6 +24,7 @@ class Response { } public openResponseTypeMenu() { + this.switchToResponseTab(); cy.get(this.locators.responseDataContainer).realHover(); cy.get(this.locators.responseTypeMenuTrigger).click({ force: true }); } @@ -46,6 +47,7 @@ class Response { } public validateResponseStatus(status: string): void { + this.switchToResponseTab(); cy.get(this.locators.responseStatusInfo).trigger("mouseover"); cy.get(this.locators.responseStatusInfoTooltip).should( "include.text", diff --git a/app/client/src/ce/entities/FeatureFlag.ts b/app/client/src/ce/entities/FeatureFlag.ts index 0782223bca..de41ab8013 100644 --- a/app/client/src/ce/entities/FeatureFlag.ts +++ b/app/client/src/ce/entities/FeatureFlag.ts @@ -46,6 +46,8 @@ export const FEATURE_FLAG = { release_evaluation_scope_cache: "release_evaluation_scope_cache", release_table_html_column_type_enabled: "release_table_html_column_type_enabled", + release_gs_all_sheets_options_enabled: + "release_gs_all_sheets_options_enabled", } as const; export type FeatureFlag = keyof typeof FEATURE_FLAG; @@ -86,6 +88,7 @@ export const DEFAULT_FEATURE_FLAG_VALUE: FeatureFlags = { ab_request_new_integration_enabled: false, release_evaluation_scope_cache: false, release_table_html_column_type_enabled: false, + release_gs_all_sheets_options_enabled: false, }; export const AB_TESTING_EVENT_KEYS = { diff --git a/app/client/src/components/formControls/RadioButtonControl.tsx b/app/client/src/components/formControls/RadioButtonControl.tsx index ecee054f58..bba45c049a 100644 --- a/app/client/src/components/formControls/RadioButtonControl.tsx +++ b/app/client/src/components/formControls/RadioButtonControl.tsx @@ -44,7 +44,10 @@ function renderComponent(props: renderComponentProps) { }; const options = props.options || []; - const defaultValue = props.initialValue as string; + const selectedValue = props.input?.value; + const defaultValue = !!selectedValue + ? selectedValue + : (props.initialValue as string); return ( @@ -148,7 +151,7 @@ export function renderDatasourceSection( isHidden( datasource.datasourceStorages[currentEnvironment], section.hidden, - undefined, + featureFlags, viewMode, ) ) @@ -168,6 +171,7 @@ export function renderDatasourceSection( currentEnvironment, datasource, viewMode, + featureFlags, ); } else { try { @@ -320,6 +324,7 @@ class RenderDatasourceInformation extends React.Component { ? false : isMultipleEnvEnabled(selectFeatureFlags(state)); const currentEnvironmentId = getCurrentEnvironmentId(state); + const featureFlags = selectFeatureFlags(state); return { currentEnv: isEnvEnabled ? currentEnvironmentId : getDefaultEnvId(), isEnvEnabled, + featureFlags, }; }; diff --git a/app/server/appsmith-interfaces/src/main/java/com/appsmith/external/enums/FeatureFlagEnum.java b/app/server/appsmith-interfaces/src/main/java/com/appsmith/external/enums/FeatureFlagEnum.java index 9849422cd5..0e47bb43b8 100644 --- a/app/server/appsmith-interfaces/src/main/java/com/appsmith/external/enums/FeatureFlagEnum.java +++ b/app/server/appsmith-interfaces/src/main/java/com/appsmith/external/enums/FeatureFlagEnum.java @@ -15,6 +15,7 @@ public enum FeatureFlagEnum { release_embed_hide_share_settings_enabled, rollout_datasource_test_rate_limit_enabled, release_google_sheets_shared_drive_support_enabled, + release_gs_all_sheets_options_enabled, // Deprecated CE flags over here release_git_autocommit_feature_enabled, diff --git a/app/server/appsmith-plugins/googleSheetsPlugin/src/main/resources/form.json b/app/server/appsmith-plugins/googleSheetsPlugin/src/main/resources/form.json index 8e9fe67783..9d8c67c9ff 100644 --- a/app/server/appsmith-plugins/googleSheetsPlugin/src/main/resources/form.json +++ b/app/server/appsmith-plugins/googleSheetsPlugin/src/main/resources/form.json @@ -38,11 +38,48 @@ { "label": "Read / Write / Delete | Selected google sheets", "value": "https://www.googleapis.com/auth/drive.file" + }, + { + "label": "Read / Write / Delete | All google sheets", + "value": "https://www.googleapis.com/auth/spreadsheets,https://www.googleapis.com/auth/drive" + }, + { + "label": "Read / Write | All google sheets", + "value": "https://www.googleapis.com/auth/spreadsheets,https://www.googleapis.com/auth/drive.readonly" + }, + { + "label": "Read | All google sheets", + "value": "https://www.googleapis.com/auth/spreadsheets.readonly,https://www.googleapis.com/auth/drive.readonly" } ], "initialValue": "https://www.googleapis.com/auth/drive.file", "customStyles": { "width": "340px" + }, + "hidden": { + "flagValue": "release_gs_all_sheets_options_enabled", + "comparison": "FEATURE_FLAG", + "value": false + } + }, + { + "label": "Permissions | Scope", + "configProperty": "datasourceConfiguration.authentication.scopeString", + "controlType": "RADIO_BUTTON", + "options": [ + { + "label": "Read / Write / Delete | Selected google sheets", + "value": "https://www.googleapis.com/auth/drive.file" + } + ], + "initialValue": "https://www.googleapis.com/auth/drive.file", + "customStyles": { + "width": "340px" + }, + "hidden": { + "flagValue": "release_gs_all_sheets_options_enabled", + "comparison": "FEATURE_FLAG", + "value": true } } ]