2 Replies Latest reply on Dec 11, 2019 12:53 AM by Guillaume de Bénazé

    Extension working on localhost but not once published on https remote server

    Guillaume de Bénazé


      I have a web app that is basically a R Shiny web app.

      I manage to make it talk with Tableau (getting some data from a worksheet) through the extension API when using localhost for my web app.

      However, once I put that same web app on my entreprise server, it doesn't work anymore (with Tableau still on my desktop).

      For debug, I've put the following piece of js in my app:


      console.log("executing mywebapp.js ....")    

      // Use the shiny document ready signal to know when everything has been initialized    

      $(document).on("shiny:sessioninitialized", function() {        

      console.log("session initialized ....")        

      // Tell Tableau we'd like to initialize our extension 

      tableau.extensions.initializeAsync().then(function() {                

      console.log("tableau initialized ....")         });     });


      When the webapp is running on localhost, it does work perfectly, I get the 3 messages in my console. However, once put on my server, I only get the first 2 messages. The initializeAsync() is never resolved, and I don't know why.

      I'm using the same manifest .trex file, except of course that the location is on my https URL instead of localhost

      My server is an OVH vps, with let's encrypt certificates, and the code only points to ressources that are on https URLs.

      The one thing I could see that is not in Tableau documentation is the fact that my web app is running through nginx, a docker container and using shinyproxy https://www.shinyproxy.io/ to deploy the app + I have a Keycloak authentification layer to make user authenticate.

      You can check out all of this on https://solutions2.datama.fr/ (my stage server) and create an account from there then Compare>Change Source >Tableau Worksheet


      Any help would be more than welcome, I'm happy to jump on a call for demo if need be


      Thanks a lot