Rendering rmarkdown output from RStudio Connect where original content has permission for "Anyone"

shiny
rstudioconnect

#1

Hi,

I've uploaded a Shiny app to RStudio Connect which has a featured to "download" an HTML report of content from the app (using the method highlighted here: https://shiny.rstudio.com/articles/generating-reports.html). It works well for me as the author and publisher of the app.

But I'd like to make the app open to "Anyone" to view and use, including the ability to download the report. When my colleague (who does not have an account set up with RStudio Connect) visits the app, she sees the content and can interact with it OK. But when she clicks the "Download" report button, she gets an error in the browser. I'm guessing this is because behind the scenes we're actually rendering the report on the server, and without a user account on RStudio Connect, she can't do this.

I wondered if it's possible to configure things to allow anonymous rendering of reports for this kind of "Download" functionality? Can the render be "run as..." a different account, for example a service account?

Thanks for your input,
Mike


#2

I was able to publish the sample Shiny app at the link you provided, set it to "Anyone - no login required", and then view and download the report as an anonymous user. The anonymous user shouldn't need an account to view or have the report rendered on the Connect server, that happens using the service account by default.

I would think there is either some additional privileged frontend/Shiny code that is requiring access, or a bug, or something else going on.

Could you post more information about the error she is seeing when attempting to download the report?

Additionally, do you have a simple reproducible example that demonstrates the error? You can scrub out your code/specifics.


#3

Rather embarassingly, I found that the problem was just that there was an error in the .Rmd template report, so the rendering failed. First lesson of using RStudio Connect - check the logs. Lesson 2 - assume human error before wondering about permissions glitches. Lesson 3 - small reprex examples to check behaviour before deploying something complex.


#4

Glad you were able to get things working! Those are all good troubleshooting tips. Thanks for letting us know and passing those along.