|
11 | 11 | from ..types import FileUploadResult, ModelRepository |
12 | 12 |
|
13 | 13 | # Security Update: Credentials moved to environment variables |
| 14 | +_DEFAULT_HTTP_TIMEOUT = 30 # seconds |
14 | 15 | _FIREBASE_CONFIG = { |
15 | 16 | "apiKey": os.getenv("FIREBASE_API_KEY"), |
16 | 17 | "authDomain": os.getenv("FIREBASE_AUTH_DOMAIN"), |
@@ -103,7 +104,7 @@ def create_model(self, model_name: str, model_desc: str, version: str = "1.00") |
103 | 104 | payload = {"name": model_name, "description": model_desc} |
104 | 105 |
|
105 | 106 | try: |
106 | | - response = requests.post(url, json=payload, headers=headers) |
| 107 | + response = requests.post(url, json=payload, headers=headers, timeout=_DEFAULT_HTTP_TIMEOUT) |
107 | 108 | response.raise_for_status() |
108 | 109 | except requests.HTTPError as e: |
109 | 110 | error_details = f"HTTP {e.response.status_code}: {e.response.text}" |
@@ -143,7 +144,13 @@ def create_version(self, model_name: str, notes: str = "", is_major: bool = Fals |
143 | 144 | payload = {"notes": notes, "is_major": is_major} |
144 | 145 |
|
145 | 146 | try: |
146 | | - response = requests.post(url, json=payload, headers=headers, allow_redirects=False) |
| 147 | + response = requests.post( |
| 148 | + url, |
| 149 | + json=payload, |
| 150 | + headers=headers, |
| 151 | + allow_redirects=False, |
| 152 | + timeout=_DEFAULT_HTTP_TIMEOUT, |
| 153 | + ) |
147 | 154 | response.raise_for_status() |
148 | 155 |
|
149 | 156 | json_response = response.json() |
@@ -228,7 +235,7 @@ def list_files(self, model_name: str, version: str) -> List[Dict]: |
228 | 235 | headers = {"Authorization": f"Bearer {self._get_auth_token()}"} |
229 | 236 |
|
230 | 237 | try: |
231 | | - response = requests.get(url, headers=headers) |
| 238 | + response = requests.get(url, headers=headers, timeout=_DEFAULT_HTTP_TIMEOUT) |
232 | 239 | response.raise_for_status() |
233 | 240 | result: list[dict] = response.json() |
234 | 241 | return result |
|
0 commit comments