Sharing Secure and Scalable Shiny Apps on RStudio Connect

Thumbnail Example Shiny dashboard on RStudio Connect showing three graphs using the Palmer Penguins data and a drawing of three penguins.

Shiny is an R package that makes it easy for data scientists to build interactive web apps straight from R, without having to learn any new languages or frameworks. Once you’ve created a Shiny app, it’s time to share your great work!

However, how can you ensure that:

  • Only authorized users can view the dashboard?
  • Your data is secure once uploaded?
  • Users don’t experience a lag time when exploring the data?

RStudio Connect is an enterprise-level product from RStudio to securely host and share Shiny applications, as well as other data science products. You can publish Shiny apps with a push of a button from the RStudio IDE:

Push-button publishing from the RStudio IDE

Push-button publishing from the RStudio IDE

RStudio Connect allows you to share your Shiny app knowing your viewers have the right permissions, your data is secure, and your app will display your results quickly and efficiently.

Let’s explore RStudio Connect with a dashboard using the Palmer Penguins data. Check out the dashboard on colorado.rstudio.com.

Control Viewership With User Authentication

Once you’ve uploaded a Shiny app to Connect, you have the option to:

  • Allow anybody to access, no login required: Any visitor to RStudio Connect will be able to view the content. This includes anonymous users who are not authenticated with the system.
  • Allow anybody with a login to access: Those with RStudio Connect accounts are permitted to view this content.
  • Allow only select users or groups to access: Specific users (or groups of users) are allowed to view this content. Other users will not have access.

Changing the sharing settings on a Shiny app on Connect from anybody to only those with an account

Changing sharing settings on RStudio Connect

This provides you flexibility over how uploaded content is shared. You can also assign roles to individuals or groups of team members. Viewers have read-only access while Collaborators can modify the content.

Adding a collaborator to a Shiny app

Adding a collaborator to a Shiny app

RStudio Connect also allows you to enable Single-Sign On so that your users won’t need to remember an additional log-in. Check out how we sign into our Shiny apps at RStudio!

Single-sign on from Google to access our dashboard

Using single-sign to access the Shiny dashboard

Deploy Shiny Applications Securely, on Premises or in Your VPC

While SaaS solutions also allow you to share Shiny apps, the data and application are accessible on someone else’s cloud. This is an issue if your data is private or sensitive.

With RStudio Connect, the application is kept secure within your organization’s own environment. You can prevent unauthorized access and ensure that you comply with all data security and privacy guidelines.

If your environment requires offline package access, we recommend you use a local repository option such as RStudio Package Manager.

Maintain Fast Response Times With Performance Tuning

RStudio Connect is built to scale content. After you publish an app, you can change RStudio Connect’s runtime settings to help tune and scale your Shiny applications. By selecting values that support your expected use, you can maximize the trade-off between app responsiveness and memory consumption/load time:

Increasing the max processes on the Shiny dashboard

Increasing the maximum processes on the Shiny dashboard

Your users can rely on your app to show data in a timely manner, and you can adjust the configurations based on use and traffic.

Learn More

With RStudio Connect, you can share your Shiny apps in a secure and scalable way.

Want to see an example of secure, scalable Shiny apps?

In addition to Shiny, RStudio Connect publishes other types of applications, including Dash, Streamlit, and others. Find out more about RStudio Connect.

More On Products and Technology

Stay Connected

Get updates when there's a new post.