Atanu
Databricks Employee
Databricks Employee
  • displayHTML content is served in production from an iframe on the domain databricksusercontent.com
  • This iframe is sandboxed and it seems to prevent any calls
  • So even by creating a CORS-friendly server in the notebook exposed through the driver-proxy-api, it's not called from the sandbox.
  • Try to escape the iframe sandboxing by opening a popup, but it seems to inherit the same issue (although it's not clear why, as there's the flag allow-popups-to-escape-sandbox)
  • Try to serve the upload form from the server inside the notebook and displaying it as a webpage (in an iframe or a popup) with a convenient origin, but that doesn't work as the Auhentication header is mandatory to call the driver-proxy-api. So the suspect - You can definitely make ajax calls from inside the iframe sandbox. I suspect auth wasn't properly configured for the driver-proxy endpoint.
  • you can put auth for driver-proxy-api endpoints with a  token=<api_token> param in the url
  • I'm pretty sure the driver proxy is available on all clouds, but it probably isn't available on all cluster types.
  • Please look at my uploaded dbc file which may be helpful.

View solution in original post