1111 get_fireworks_api_base ,
1212 get_fireworks_api_key ,
1313)
14+ from eval_protocol .common_utils import get_user_agent
1415
1516logger = logging .getLogger (__name__ )
1617
@@ -95,6 +96,7 @@ def create_or_update_fireworks_secret(
9596 headers = {
9697 "Authorization" : f"Bearer { resolved_api_key } " ,
9798 "Content-Type" : "application/json" ,
99+ "User-Agent" : get_user_agent (),
98100 }
99101
100102 # The secret_id for GET/PATCH/DELETE operations is the key_name.
@@ -107,10 +109,10 @@ def create_or_update_fireworks_secret(
107109
108110 # Check if secret exists using GET (path uses normalized resource id)
109111 resource_id = _normalize_secret_resource_id (key_name )
110- get_url = f"{ resolved_api_base .rstrip ('/' )} /v1/accounts/{ resolved_account_id } /secrets/{ resource_id } "
111112 secret_exists = False
112113 try :
113- response = requests .get (get_url , headers = headers , timeout = 10 )
114+ url = f"{ resolved_api_base } /v1/accounts/{ resolved_account_id } /secrets/{ resource_id } "
115+ response = requests .get (url , headers = headers , timeout = 10 )
114116 if response .status_code == 200 :
115117 secret_exists = True
116118 logger .info (f"Secret '{ key_name } ' already exists. Will attempt to update." )
@@ -131,7 +133,6 @@ def create_or_update_fireworks_secret(
131133
132134 if secret_exists :
133135 # Update existing secret (PATCH)
134- patch_url = f"{ resolved_api_base .rstrip ('/' )} /v1/accounts/{ resolved_account_id } /secrets/{ resource_id } "
135136 # Body for PATCH requires 'keyName' and 'value'.
136137 # Transform key_name for payload: uppercase and underscores
137138 payload_key_name = key_name .upper ().replace ("-" , "_" )
@@ -146,7 +147,8 @@ def create_or_update_fireworks_secret(
146147 payload = {"keyName" : payload_key_name , "value" : secret_value }
147148 try :
148149 logger .debug (f"PATCH payload for '{ key_name } ': { payload } " )
149- response = requests .patch (patch_url , headers = headers , json = payload , timeout = 30 )
150+ url = f"{ resolved_api_base } /v1/accounts/{ resolved_account_id } /secrets/{ resource_id } "
151+ response = requests .patch (url , json = payload , headers = headers , timeout = 30 )
150152 response .raise_for_status ()
151153 logger .info (f"Successfully updated secret '{ key_name } ' on Fireworks platform." )
152154 return True
@@ -158,7 +160,6 @@ def create_or_update_fireworks_secret(
158160 return False
159161 else :
160162 # Create new secret (POST)
161- post_url = f"{ resolved_api_base .rstrip ('/' )} /v1/accounts/{ resolved_account_id } /secrets"
162163 # Body for POST is gatewaySecret. 'name' field in payload is the resource path.
163164 # Let's assume for POST, the 'name' in payload can be omitted or is the key_name.
164165 # The API should ideally use 'keyName' from URL or a specific 'secretId' in payload for creation if 'name' is server-assigned.
@@ -183,7 +184,8 @@ def create_or_update_fireworks_secret(
183184 }
184185 try :
185186 logger .debug (f"POST payload for '{ key_name } ': { payload } " )
186- response = requests .post (post_url , headers = headers , json = payload , timeout = 30 )
187+ url = f"{ resolved_api_base } /v1/accounts/{ resolved_account_id } /secrets"
188+ response = requests .post (url , json = payload , headers = headers , timeout = 30 )
187189 response .raise_for_status ()
188190 logger .info (
189191 f"Successfully created secret '{ key_name } ' on Fireworks platform. Full name: { response .json ().get ('name' )} "
@@ -217,11 +219,14 @@ def get_fireworks_secret(
217219 logger .error ("Missing Fireworks API key, base URL, or account ID for getting secret." )
218220 return None
219221
220- headers = {"Authorization" : f"Bearer { resolved_api_key } " }
222+ headers = {
223+ "Authorization" : f"Bearer { resolved_api_key } " ,
224+ "User-Agent" : get_user_agent (),
225+ }
221226 resource_id = _normalize_secret_resource_id (key_name )
222- url = f"{ resolved_api_base .rstrip ('/' )} /v1/accounts/{ resolved_account_id } /secrets/{ resource_id } "
223227
224228 try :
229+ url = f"{ resolved_api_base } /v1/accounts/{ resolved_account_id } /secrets/{ resource_id } "
225230 response = requests .get (url , headers = headers , timeout = 10 )
226231 if response .status_code == 200 :
227232 logger .info (f"Successfully retrieved secret '{ key_name } '." )
@@ -254,11 +259,14 @@ def delete_fireworks_secret(
254259 logger .error ("Missing Fireworks API key, base URL, or account ID for deleting secret." )
255260 return False
256261
257- headers = {"Authorization" : f"Bearer { resolved_api_key } " }
262+ headers = {
263+ "Authorization" : f"Bearer { resolved_api_key } " ,
264+ "User-Agent" : get_user_agent (),
265+ }
258266 resource_id = _normalize_secret_resource_id (key_name )
259- url = f"{ resolved_api_base .rstrip ('/' )} /v1/accounts/{ resolved_account_id } /secrets/{ resource_id } "
260267
261268 try :
269+ url = f"{ resolved_api_base } /v1/accounts/{ resolved_account_id } /secrets/{ resource_id } "
262270 response = requests .delete (url , headers = headers , timeout = 30 )
263271 if response .status_code == 200 or response .status_code == 204 : # 204 No Content is also success for DELETE
264272 logger .info (f"Successfully deleted secret '{ key_name } '." )
0 commit comments