99import httpx
1010from cryptography .fernet import InvalidToken
1111
12- from infragpt .config import CONFIG_DIR , console
12+ from infragpt .config import CONFIG_DIR , console , get_console_base_url
1313from infragpt .encryption import (
1414 encrypt_data ,
1515 decrypt_data ,
3535TOKEN_REFRESH_THRESHOLD_HOURS = 1
3636
3737
38- def _get_api_base_url (api_base_url : Optional [str ]) -> str :
39- DEFAULT = "https://api.infragpt.io"
40- if api_base_url :
41- return api_base_url .rstrip ("/" )
42- return DEFAULT
43-
44-
45- def _get_console_base_url (console_base_url : Optional [str ]) -> str :
46- DEFAULT = "https://app.infragpt.io"
47- if console_base_url :
48- return console_base_url .rstrip ("/" )
49- return DEFAULT
50-
51-
5238@dataclass
5339class AuthStatus :
5440 authenticated : bool
@@ -57,7 +43,6 @@ class AuthStatus:
5743 access_token : Optional [str ] = None
5844 refresh_token : Optional [str ] = None
5945 expires_at : Optional [str ] = None
60- api_base_url : Optional [str ] = None
6146
6247
6348def _load_auth_data () -> Optional [dict ]:
@@ -108,7 +93,6 @@ def get_auth_status() -> AuthStatus:
10893 access_token = data .get ("access_token" ),
10994 refresh_token = data .get ("refresh_token" ),
11095 expires_at = data .get ("expires_at" ),
111- api_base_url = data .get ("api_base_url" ),
11296 )
11397
11498
@@ -150,8 +134,7 @@ def refresh_token_if_needed() -> bool:
150134 return True
151135
152136 try :
153- api_base_url = data .get ("api_base_url" )
154- client = InfraGPTClient (api_base_url = api_base_url )
137+ client = InfraGPTClient ()
155138 result = client .refresh_token (refresh_token )
156139
157140 from datetime import timedelta
@@ -171,12 +154,9 @@ def refresh_token_if_needed() -> bool:
171154 return False
172155
173156
174- def login (
175- api_base_url : Optional [str ] = None , console_base_url : Optional [str ] = None
176- ) -> None :
157+ def login () -> None :
177158 """Authenticate with InfraGPT platform using device flow."""
178- api_url = _get_api_base_url (api_base_url )
179- client = InfraGPTClient (api_base_url = api_url )
159+ client = InfraGPTClient ()
180160
181161 console .print ("\n [bold]Authenticating with InfraGPT...[/bold]\n " )
182162
@@ -190,7 +170,7 @@ def login(
190170 if flow .verification_url .startswith ("http" ):
191171 verification_url = flow .verification_url
192172 else :
193- console_url = _get_console_base_url ( console_base_url )
173+ console_url = get_console_base_url ( )
194174 path = flow .verification_url .lstrip ("/" )
195175 verification_url = f"{ console_url } /{ path } "
196176
@@ -238,7 +218,6 @@ def login(
238218 "organization_id" : result .organization_id ,
239219 "user_id" : result .user_id ,
240220 "expires_at" : expires_at .isoformat (),
241- "api_base_url" : api_base_url or InfraGPTClient .DEFAULT_SERVER_URL ,
242221 }
243222 _save_auth_data (auth_data )
244223
@@ -264,8 +243,7 @@ def logout() -> None:
264243
265244 if data and data .get ("access_token" ):
266245 try :
267- api_base_url = data .get ("api_base_url" )
268- client = InfraGPTClient (api_base_url = api_base_url )
246+ client = InfraGPTClient ()
269247 client .revoke_token (data ["access_token" ])
270248 except (InfraGPTAPIError , httpx .RequestError ):
271249 pass # Token may already be invalid; don't fail logout
@@ -285,7 +263,7 @@ def fetch_gcp_credentials() -> Optional[GCPCredentials]:
285263 return None
286264
287265 try :
288- client = InfraGPTClient (api_base_url = status . api_base_url )
266+ client = InfraGPTClient ()
289267 return client .get_gcp_credentials (status .access_token )
290268 except InfraGPTAPIError :
291269 return None
@@ -298,7 +276,7 @@ def fetch_gke_cluster_info() -> Optional[GKEClusterInfo]:
298276 return None
299277
300278 try :
301- client = InfraGPTClient (api_base_url = status . api_base_url )
279+ client = InfraGPTClient ()
302280 return client .get_gke_cluster_info (status .access_token )
303281 except InfraGPTAPIError :
304282 return None
@@ -326,7 +304,7 @@ def validate_token_with_api() -> None:
326304 raise AuthValidationError ("Not authenticated" )
327305
328306 try :
329- client = InfraGPTClient (api_base_url = status . api_base_url )
307+ client = InfraGPTClient ()
330308 client .validate_token (status .access_token )
331309 except InfraGPTAPIError as e :
332310 if e .status_code == 401 :
@@ -365,8 +343,7 @@ def refresh_token_strict() -> None:
365343 return
366344
367345 try :
368- api_base_url = data .get ("api_base_url" )
369- client = InfraGPTClient (api_base_url = api_base_url )
346+ client = InfraGPTClient ()
370347 result = client .refresh_token (refresh_token )
371348
372349 from datetime import timedelta
@@ -394,7 +371,7 @@ def fetch_gcp_credentials_strict() -> GCPCredentials:
394371 raise GCPCredentialError ("Not authenticated" )
395372
396373 try :
397- client = InfraGPTClient (api_base_url = status . api_base_url )
374+ client = InfraGPTClient ()
398375 return client .get_gcp_credentials (status .access_token )
399376 except InfraGPTAPIError as e :
400377 if e .status_code == 404 :
@@ -413,7 +390,7 @@ def fetch_gke_cluster_info_strict() -> GKEClusterInfo:
413390 raise GKEClusterError ("Not authenticated" )
414391
415392 try :
416- client = InfraGPTClient (api_base_url = status . api_base_url )
393+ client = InfraGPTClient ()
417394 return client .get_gke_cluster_info (status .access_token )
418395 except InfraGPTAPIError as e :
419396 if e .status_code == 404 :
0 commit comments