diff --git a/google-login-plugin/src/com/google/gct/login/LoginContext.java b/google-login-plugin/src/com/google/gct/login/LoginContext.java
index 9772baf..6ce72f7 100644
--- a/google-login-plugin/src/com/google/gct/login/LoginContext.java
+++ b/google-login-plugin/src/com/google/gct/login/LoginContext.java
@@ -16,14 +16,22 @@
 package com.google.gct.login;
 
 public class LoginContext {
+
+  private static final String DEFAULT_ID = "73723532827-bbn1q3u70e1711t3a6ngm0pkgt9ictjq.apps.googleusercontent.com";
+  private static final String DEFAULT_INFO = "ejfLik02xkOoWwOOt13UN4oC";
+
+  // TODO(b/236141170): Remove properties once bug reporting completed
+  private static final String LOGIN_ID_KEY = "studio.login.id.override";
+  private static final String LOGIN_INFO_KEY = "studio.login.info.override";
+
   public LoginContext() {
   }
 
   public static String getId() {
-    return "73723532827-bbn1q3u70e1711t3a6ngm0pkgt9ictjq.apps.googleusercontent.com";
+    return System.getProperty(LOGIN_ID_KEY, DEFAULT_ID);
   }
 
   public static String getInfo() {
-    return "ejfLik02xkOoWwOOt13UN4oC";
+    return System.getProperty(LOGIN_INFO_KEY, DEFAULT_INFO);
   }
 }
diff --git a/google-login-plugin/src/com/google/gct/login/OAuthScopeRegistry.java b/google-login-plugin/src/com/google/gct/login/OAuthScopeRegistry.java
index afaa0fe..1463b62 100644
--- a/google-login-plugin/src/com/google/gct/login/OAuthScopeRegistry.java
+++ b/google-login-plugin/src/com/google/gct/login/OAuthScopeRegistry.java
@@ -15,6 +15,7 @@
  */
 package com.google.gct.login;
 
+import java.util.Arrays;
 import org.jetbrains.annotations.NotNull;
 
 import java.util.Collections;
@@ -26,14 +27,25 @@
  */
 class OAuthScopeRegistry {
   private static final SortedSet<String> SCOPES;
+  private static final String[] DEFAULT_SCOPES = new String[]{
+    "https://www.googleapis.com/auth/userinfo#email",
+    "https://www.googleapis.com/auth/appengine.admin",
+    "https://www.googleapis.com/auth/cloud-platform",
+    "https://www.googleapis.com/auth/firebase",
+    "https://www.googleapis.com/auth/actions.builder",
+  };
+
+  // TODO(b/236141170): Remove properties once bug reporting completed
+  private static final String SCOPES_KEY = "studio.login.scopes.override";
 
   static {
-    SortedSet<String> scopes = new TreeSet<String>();
-    scopes.add("https://www.googleapis.com/auth/userinfo#email");
-    scopes.add("https://www.googleapis.com/auth/appengine.admin");
-    scopes.add("https://www.googleapis.com/auth/cloud-platform");
-    scopes.add("https://www.googleapis.com/auth/firebase");
-    scopes.add("https://www.googleapis.com/auth/actions.builder");
+    String[] array = DEFAULT_SCOPES;
+    String override = System.getProperty(SCOPES_KEY);
+    if (override != null) {
+      array = override.split(",");
+    }
+
+    SortedSet<String> scopes = new TreeSet<String>(Arrays.asList(array));
     SCOPES = Collections.unmodifiableSortedSet(scopes);
   }
 
