madisonmlin opened a new pull request, #3707:
URL: https://github.com/apache/texera/pull/3707

   ### Purpose ### 
   This pull request partially addresses issue #3404 by changing the download 
method of workflow result downloads to use browser native downloads. Using the 
browser to handle downloads enables the browser's file download UI, which 
includes a progress bar when downloading larger files.
   
   ### Changes ### 
   Previously, we would use HttpClient to request the result file from the 
backend as a Blob and download the Blob to the local filesystem. Now, we make a 
form submission to request the result file from the backend, causing the 
browser to handle the download. The backend logic for creating the file stream 
remains the same.
   
   Headers like Bearer authentication headers cannot be attached to form 
requests. As such, we have the frontend separately request a JWT token string, 
which is then passed into the form request. The request is considered 
authenticated when the backend is able to successfully decode the JWT (which 
contains the download parameters) and verify that the user is of a valid role 
type.
   
   #### Summary of Changes ####
   - Added endpoint to generate temporary JWT token, including download 
parameters (e.g. `workflowId`, `filename`) as claims in the token
   - Changed frontend logic for local workflow result downloads to send a form 
request instead of an HttpClient request to trigger download, allowing the 
browser to handle the download
   - Added endpoint to receive form request and authenticate the request via 
the JWT token before triggering download
   
   ### Demonstration ###


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to