R Versions
These recipes will help you determine if the version of R you are using locally is available to Posit Connect.
Use the Content Runtimes recipe to enumerate the R and Python versions used by content deployed to your Posit Connect server.
R Versions Available to Posit Connect
This recipe compares your local R version against the R installations available on your Posit Connect server. It uses the GET /v1/server_settings/r
endpoint to obtain the R installations available to Posit Connect.
Workflow
- Obtain the Posit Connect server URL and API Key from environment variables.
- Obtain your local R version using
R.version
. - Retrieve the set of known R installations with the
GET /v1/server_settings/r
endpoint. - Parse the response using
httr::content
. - Check the response for the local R version. If it is not listed, the Posit Connect server does not contain the local R version.
Here is an example of the workflow:
library(httr)
# The connectServer URL must have a trailing slash.
<- Sys.getenv("CONNECT_SERVER")
connectServer <- Sys.getenv("CONNECT_API_KEY")
connectAPIKey
<- paste(R.version$major, R.version$minor, sep = ".")
myRVersion <- GET(
resp paste0(connectServer, "__api__/v1/server_settings/r"),
add_headers(Authorization = paste("Key", connectAPIKey))
)<- content(resp, as = "parsed", simplifyVector = TRUE)
payload if (myRVersion %in% payload$installations$version) {
print("The local R version was found on the Posit Connect server")
else {
} print(paste("Cannot find R version", myRVersion,"on the Posit Connect server"))
}
R Versions Available in Content Execution Images
This section describes a feature that is currently in beta. If you are not sure if this applies to you, please speak with your administrator.
If your Posit Connect installation uses off-host content execution with Kubernetes, Connect will be configured with one or more images which may include different versions of R.
This recipe compares your local R version against the R installations available on your Posit Connect server’s configured images. It uses the GET /v1/server_settings/r
endpoint to obtain the R installations available to Posit Connect, and find which images they are available on. You can use the same pattern to search for Python or Quarto installations.
Workflow
- Obtain the Posit Connect server URL and API Key from environment variables.
- Obtain your local R version using
R.version
. - Retrieve the set of known R installations with the
GET /v1/server_settings/r
endpoint. - Parse the response using
httr::content
. - Check the response for the local R version. If it is not listed, the Posit Connect server’s images do not contain the local R version.
Here is an example of the workflow:
library(httr)
# The connectServer URL must have a trailing slash.
<- Sys.getenv("CONNECT_SERVER")
connectServer <- Sys.getenv("CONNECT_API_KEY")
connectAPIKey
<- paste(R.version$major, R.version$minor, sep = ".")
myRVersion <- GET(
resp paste0(connectServer, "__api__/v1/server_settings/r"),
add_headers(Authorization = paste("Key", connectAPIKey))
)<- content(resp, as = "parsed", simplifyVector = TRUE)
payload <- payload$installations
installations <- installations[ installations$version == myRVersion, ]
matching if (nrow(matching) > 0) {
print("The local R version was found in the following images:")
for (image_name in matching$image_name) {
print(image_name)
}else {
} print(paste("Cannot find R version", myRVersion,"in any available images"))
}