Update app/main.py
Browse files- app/main.py +4 -21
app/main.py
CHANGED
|
@@ -179,39 +179,25 @@ def init_vertex_ai():
|
|
| 179 |
credentials_json_str = os.environ.get("GOOGLE_CREDENTIALS_JSON")
|
| 180 |
if credentials_json_str:
|
| 181 |
try:
|
| 182 |
-
print(f"Found GOOGLE_CREDENTIALS_JSON environment variable, length: {len(credentials_json_str)} characters")
|
| 183 |
# Try to parse the JSON
|
| 184 |
try:
|
| 185 |
credentials_info = json.loads(credentials_json_str)
|
| 186 |
-
print(f"Successfully parsed JSON from GOOGLE_CREDENTIALS_JSON")
|
| 187 |
# Check if the parsed JSON has the expected structure
|
| 188 |
if not isinstance(credentials_info, dict):
|
| 189 |
-
print(f"ERROR: Parsed JSON is not a dictionary, type: {type(credentials_info)}")
|
| 190 |
raise ValueError("Credentials JSON must be a dictionary")
|
| 191 |
-
|
| 192 |
# Check for required fields in the service account JSON
|
| 193 |
required_fields = ["type", "project_id", "private_key_id", "private_key", "client_email"]
|
| 194 |
missing_fields = [field for field in required_fields if field not in credentials_info]
|
| 195 |
if missing_fields:
|
| 196 |
-
print(f"ERROR: Missing required fields in credentials JSON: {missing_fields}")
|
| 197 |
raise ValueError(f"Credentials JSON missing required fields: {missing_fields}")
|
| 198 |
-
|
| 199 |
-
print(f"Credentials JSON contains all required fields")
|
| 200 |
except json.JSONDecodeError as json_err:
|
| 201 |
print(f"ERROR: Failed to parse GOOGLE_CREDENTIALS_JSON as JSON: {json_err}")
|
| 202 |
-
# Print a small sample of the string for debugging (avoid printing the whole thing for security)
|
| 203 |
-
safe_sample = credentials_json_str[:20] + "..." if len(credentials_json_str) > 20 else credentials_json_str
|
| 204 |
-
print(f"First few characters: {safe_sample}")
|
| 205 |
raise
|
| 206 |
-
|
| 207 |
# Create credentials from the parsed JSON info (json.loads should handle \n)
|
| 208 |
try:
|
| 209 |
-
# DEBUG: Log snippet of private key before passing to library
|
| 210 |
-
pk_value = credentials_info.get("private_key", "KEY_NOT_FOUND")
|
| 211 |
-
if pk_value != "KEY_NOT_FOUND":
|
| 212 |
-
print(f"DEBUG: Snippet of private_key passed to from_service_account_info:\n{pk_value[:30]}...\n...{pk_value[-30:]}")
|
| 213 |
-
else:
|
| 214 |
-
print("DEBUG: private_key not found in credentials_info dict.")
|
| 215 |
|
| 216 |
credentials = service_account.Credentials.from_service_account_info(
|
| 217 |
credentials_info, # Pass the dictionary directly
|
|
@@ -273,10 +259,7 @@ def init_vertex_ai():
|
|
| 273 |
print(f"ERROR: GOOGLE_APPLICATION_CREDENTIALS file does not exist at path: {file_path}")
|
| 274 |
|
| 275 |
# If none of the methods worked
|
| 276 |
-
print(f"ERROR: No valid credentials found. Tried
|
| 277 |
-
print(f" 1. GOOGLE_CREDENTIALS_JSON: {'Present' if os.environ.get('GOOGLE_CREDENTIALS_JSON') else 'Not found'}")
|
| 278 |
-
print(f" 2. Credential Manager: Directory {credential_manager.credentials_dir}, Files found: {len(credential_manager.credentials_files)}")
|
| 279 |
-
print(f" 3. GOOGLE_APPLICATION_CREDENTIALS: {'Present' if os.environ.get('GOOGLE_APPLICATION_CREDENTIALS') else 'Not found'}")
|
| 280 |
return False
|
| 281 |
except Exception as e:
|
| 282 |
print(f"Error initializing authentication: {e}")
|
|
|
|
| 179 |
credentials_json_str = os.environ.get("GOOGLE_CREDENTIALS_JSON")
|
| 180 |
if credentials_json_str:
|
| 181 |
try:
|
|
|
|
| 182 |
# Try to parse the JSON
|
| 183 |
try:
|
| 184 |
credentials_info = json.loads(credentials_json_str)
|
|
|
|
| 185 |
# Check if the parsed JSON has the expected structure
|
| 186 |
if not isinstance(credentials_info, dict):
|
| 187 |
+
# print(f"ERROR: Parsed JSON is not a dictionary, type: {type(credentials_info)}") # Removed
|
| 188 |
raise ValueError("Credentials JSON must be a dictionary")
|
|
|
|
| 189 |
# Check for required fields in the service account JSON
|
| 190 |
required_fields = ["type", "project_id", "private_key_id", "private_key", "client_email"]
|
| 191 |
missing_fields = [field for field in required_fields if field not in credentials_info]
|
| 192 |
if missing_fields:
|
| 193 |
+
# print(f"ERROR: Missing required fields in credentials JSON: {missing_fields}") # Removed
|
| 194 |
raise ValueError(f"Credentials JSON missing required fields: {missing_fields}")
|
|
|
|
|
|
|
| 195 |
except json.JSONDecodeError as json_err:
|
| 196 |
print(f"ERROR: Failed to parse GOOGLE_CREDENTIALS_JSON as JSON: {json_err}")
|
|
|
|
|
|
|
|
|
|
| 197 |
raise
|
| 198 |
+
|
| 199 |
# Create credentials from the parsed JSON info (json.loads should handle \n)
|
| 200 |
try:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 201 |
|
| 202 |
credentials = service_account.Credentials.from_service_account_info(
|
| 203 |
credentials_info, # Pass the dictionary directly
|
|
|
|
| 259 |
print(f"ERROR: GOOGLE_APPLICATION_CREDENTIALS file does not exist at path: {file_path}")
|
| 260 |
|
| 261 |
# If none of the methods worked
|
| 262 |
+
print(f"ERROR: No valid credentials found. Tried GOOGLE_CREDENTIALS_JSON, Credential Manager ({credential_manager.credentials_dir}), and GOOGLE_APPLICATION_CREDENTIALS.")
|
|
|
|
|
|
|
|
|
|
| 263 |
return False
|
| 264 |
except Exception as e:
|
| 265 |
print(f"Error initializing authentication: {e}")
|