RStudio officially introduced the newest product in RStudio’s product lineup: RStudio Connect. RStudio Connect is a new publishing platform for R that allows analytics users to share Shiny applications, R Markdown reports, dashboards, plots, and more. This release adds an improved user experience for parameterized R Markdown reports, simple button-click publishing from the RStudio IDE, scheduled execution and distribution of reports, and more security policies include hybrid data connections. Essentially RStudio Connect eases enterprise deployment scenarios.

RStudio Connect Settings

RStudio Connect isn’t just for R users. RStudio Connect empowers anyone to enjoy custom built analytical R reports or get scheduled reports delivered to them with button-click ease.

R data science assets can be easily used and distributed to the masses.

RStudio Connect empowers analysts to share and manage the content they’ve created in R. Users of the RStudio IDE can publish content to RStudio Connect with the click of a button and immediately be able to manage that content from a user-friendly web application.

Deploying content from the RStudio IDE into RStudio Connect

The most notable feature in the latest release is the ability to publish parameterized R Markdown reports that are easier for anyone to customize. Parameterized R Markdown reports allow you to inject input variables such as start date and end date. Report parameters are now visible on the left-hand sidebar, allowing users to easily enter variables and quickly view the updated report in the browser.

Users can optionally create private versions of the report which they can schedule to be sent via email, save it or revisit in the browser. There are a wide variety of output formats (notebooks, dashboards, books, and others) that users can select when using parameterized R Markdown.

RStudio Connect

Enterprise Security and Hybrid Connectivity

Other enhancements in this release include private content as a default option, progress indicators when updating a report, content filters include a new setting for edit or view only, support for global “System Messages” that can display an HTML message to your users on the landing pages, and updates to SSL ciphers to correspond with modern best-practices.

RStudio Connect on-premises software can be deployed behind your firewall to maintain control of your data and who has access to it. Enterprise security mechanisms include LDAP/Active Directory, Google OAuth, PAM, proxied authentication, or an internal username/password database.

RStudio Connect Admin Metrics

RStudio Connect can also help simplify the role of the system administrator tasked with supporting R by offering:

  • Dashboard showing metrics for server and associated R processes
  • Logs for all R processes spawned by Connect
  • Secure deployments and interactions with artifacts using SSL/TLS
  • Scale a Shiny application beyond a single R process to support additional visitor load

For groups deploying R in Shiny web applications, RStudio Connect is going to be a really nice enhancement. Here is a quick example Shiny application that knits R Markdown text and deploys the resulting content using rsconnect.

library(knitr)
library(rsconnect)
library(shiny)
library(shinyAce)
library(rmarkdown)

# Default text for editor
defaultMarkdown <- '
### Sample R Markdown
This is some markdown text. It may also have embedded R code
which will be executed.
'

# A Shiny UI for editing R Markdown
ui <- shinyUI(
  bootstrapPage(
    headerPanel("Embedded Deployment Example"),
    div(
      class="container-fluid",
      div(class="row-fluid",
          div(class="col-sm-6",
              h2("Source R-Markdown"),
              aceEditor("rmd", mode="markdown", value=defaultMarkdown),
              actionButton("eval", "Update")
          ),
          div(class="col-sm-6",
              h2("Knitted Output"),
              htmlOutput("knitDoc")
          )
      )
    )
  )
)

# A Shiny application that generates and deploys R Markdown content
server <- shinyServer(function(input, output, session) {

  # Only update and deploy when the 'Update' button is clicked
  rmd <- eventReactive(input$eval, {
    input$rmd
  })

  output$knitDoc <- renderUI({
    writeLines(rmd(), "out.Rmd")
    knit2html(input="out.Rmd", fragment.only = TRUE, quiet = TRUE)
    options(repos=c(CRAN="https://cran.rstudio.com"))
    rsconnect::deployDoc(doc="out.Rmd", appName="GeneratedDoc",
                         account="rwhite", server="mylocaldeployserver")
    return(isolate(HTML(
      readLines("out.html")
    )))
  })
})

# Run the application
shinyApp(ui = ui, server = server)

You can also explore live Shiny apps in RStudio’s Showcase located at https://www.rstudio.com/products/shiny/shiny-user-showcase/ .

R Shiny

For More Information

To evaluate RStudio Connect, check out the following recommended links.