@@ -116,6 +116,8 @@ def loginUserAccessKey(self):
116116 combined_enc = base64 .b64encode (combined .encode ("utf-8" ))
117117 headers = {"Authorization" : f"Basic { combined_enc .decode ('utf-8' )} " }
118118 self .auth_headers : Dict = headers .copy ()
119+ # combine the auth header with required headers for any csrf
120+ self .required_headers .update (self .auth_headers )
119121
120122 # make sure user is authenticated
121123 response , is_logged_in = self .is_session_login (self .auth_headers )
@@ -137,6 +139,8 @@ def loginBearerToken(self):
137139 "Bearer-Provider" : self .bearer_token_provider ,
138140 }
139141 self .auth_headers : Dict = headers .copy ()
142+ # combine the auth header with required headers for any csrf
143+ self .required_headers .update (self .auth_headers )
140144
141145 # make sure user is authenticated
142146 response , is_logged_in = self .is_session_login (self .auth_headers )
@@ -258,7 +262,7 @@ def make_new_insight(self) -> str:
258262 self .main_url + "/engine/runPixel" ,
259263 cookies = self .cookies ,
260264 data = {"expression" : "META | true" , "insightId" : "new" },
261- headers = self .required_headers ,
265+ headers = self .required_headers . copy () ,
262266 )
263267
264268 # raise HTTP error if one occurs
@@ -394,7 +398,7 @@ def get_partial_responses(self, job_id: str) -> Generator:
394398 url = self .main_url + "/engine/partial" ,
395399 cookies = self .cookies ,
396400 data = {"jobId" : job_id },
397- headers = self .required_headers ,
401+ headers = self .required_headers . copy () ,
398402 ).json ()
399403
400404 msg = response .get ("message" , {})
@@ -527,7 +531,9 @@ def import_data_product(
527531 )
528532
529533 dataProductUrl = base_url + sql
530- response = requests .get (dataProductUrl , cookies = self .cookies ).json ()
534+ response = requests .get (
535+ dataProductUrl , cookies = self .cookies , headers = self .required_headers .copy ()
536+ ).json ()
531537
532538 try :
533539 return pd .DataFrame (response ["dataArray" ], columns = response ["columns" ])
@@ -601,7 +607,7 @@ def upload_files(
601607 upload_post_request ,
602608 cookies = self .cookies ,
603609 files = {"file" : fobj },
604- headers = self .required_headers ,
610+ headers = self .required_headers . copy () ,
605611 )
606612 insight_file_paths .append (response .json ()[0 ]["fileName" ])
607613
@@ -652,7 +658,12 @@ def download_file(
652658 download_get_url = f"{ self .main_url } /engine/downloadFile?insightId={ insight_param } &fileKey={ download_file_key } "
653659
654660 # Make the GET request
655- response = requests .get (download_get_url , cookies = self .cookies , stream = True )
661+ response = requests .get (
662+ download_get_url ,
663+ cookies = self .cookies ,
664+ headers = self .required_headers .copy (),
665+ stream = True ,
666+ )
656667 response .raise_for_status ()
657668
658669 # Determine filename
0 commit comments