get_apps() has been removed in favor of
get_content(). dashboard_url_chr() has been
removed. (#415)get_usage() function returns content usage data
from Connect’s GET v1/instrumentation/content/hits
endpoint on Connect v2025.04.0 and higher. (#390)get_oauth_credentials() and connect()
functions have a new audience parameter. On Connect
v2025.07.0 and higher, pass the GUID of an integration to this parameter
to specify which OAuth integration you wish to use. (#423)get_integrations() function lists all OAuth
integrations available on the Connect server from the
GET v1/oauth/integrations endpoint on Connect v2024.12.0
and higher. (#413)get_groups() now paginates through all results when a
prefix is provided, if the Connect server API version
supports pagination. (#328)get_content() now includes vanity URLs in the returned
data frame on Connect v2024.06.0 and later. (#398)get_oauth_credentials() and
get_oauth_content_credentials() functions for
requested_token_type parameter that was causing issues with
Connect < 2025.03.0. (#407)Connect$content() now respects the include
argument when a guid is provided. (#411)get_packages() function to get a data frame of all
packages on a Connect server. (#374)get_content_packages() function to get a data frame
of all package dependencies for a content item. (#374)get_aws_credentials() and
get_aws_content_credentials functions for interacting with
Connect’s /v1/oauth/integrations/credentials endpoint. This
endpoint allows content running on Posit Connect to obtain temporary AWS
credentials for an AWS IAM role specified by the system administrator.
(#380).get_log() function which lets you get the log for a
given job. (#341)get_job_list() function returns a list of jobs for
a content item. (#341)token parameter to connect() function
allows you to create a Connect client with permissions scoped to the
content visitor when running on a Connect server. (#362)swap_vanity_urls() can correctly perform a swap
involving a content item with no vanity URL. (#360)swap_vanity_urls() handles permissions errors
gracefully, attempting to roll back any changes made. (#360)get_jobs() and get_job_list() return
objects contain content_id and content_guid
fields. These contain the same values as app_id and
app_guid, which are deprecated and will be removed in a
future update.get_job() (singular) is now deprecated, its
functionality taken care of by other functions, including
get_log().swap_vanity_url(old, new) has been deprecated and
renamed to swap_vanity_urls(content_a, content_b).get_jobs() now uses the public v1 jobs
endpoint when available, and as a result, the data returned by this
function has changed. In particular, the finalized column
is no longer present, replaced by status.
status == 0 corresponds to isFALSE(finalized).
See ?get_jobs() for more details about the new return data
format. (#340)get_users() has new parameters for filtering users by
account_status and user_role. This allows you
to find, for example, all licensed users on a Connect server.
(#311)get_group_content() function lets you view the
content that groups have permission to access. (#334)terminate_jobs() function lets you terminate
processes associated with a content item. (#332)get_vanity_urls() function lets you get all
vanity URLs on a Connect server (#333)get_oauth_content_credentials() function for
interacting with Connect’s
/v1/oauth/integrations/credentials endpoint. This endpoint
allows content running on Posit Connect to obtain an OAuth access token
using the client credentials flow. (#344).content_render() now has the
expected task_id parameter and is able to be polled.
(#338)set_thumbnail(),
get_thumbnail(), delete_thumbnail() and
has_thumbnail() let you interact with content thumbnails,
replacing older *_image() functions. (#294, #304)groups_create_remote() now has an exact
parameter. Setting exact causes the function to consider
only exact group name matches when searching for remote groups and
checking for existing local groups. (#216)get_runtime_caches(),
delete_runtime_cache() (#312)get_runtimes() lets you view available runtimes and
versions on a Connect server. (#311)set_image_path(), set_image_url(), and
set_image_webshot() have been deprecated and will be
removed in a future update. They have been replaced by
set_thumbnail(), which works both with local file paths and
remote URLs to images. Likewise, has_image() and
delete_image() have been deprecated in favor of
has_thumbnail() and delete_thumbnail(). (#294,
#304)Connect$server_settings_r() has been deprecated in
favor of get_runtimes(client, "r"). (#311)pkgdown to bootstrap 5 to enable search (@fh-mthomson,
#275)get_timezones() function now uses the
v1/timezones endpoint if available. (#300)connect$DELETE() now respects the parser
argument rather than always using NULL.get_groups() no longer hangs when a search
prefix is provided. (#319)GET_URL(), GET_RESULT(), and
GET_RESULT_URL() have been eliminated in favor of
GET() (#274)..empty_object argument has been removed from
PUT/PATCH/POST (#274).content_render() and content_restart()
functions. content_render() allows you to programmatically
re-render content such as Quarto and R Markdown reports and Jupyter
notebooks, optionally passing in a variant_key to render a
specific variant of parameterized content.
content_restart() lets you restart interactive content,
such as Shiny applications, APIs, or dashboards (#283, #289)get_oauth_credentials() function for interacting
with Connect’s /v1/oauth/integrations/credentials endpoint.
This endpoint allows content running on Posit Connect to obtain the
content viewer’s OAuth access token (#297).NA (#290).httr_response object
(#274).Connect$download_bundle() and
Connect$bundle_delete() have been removed. Use
Content$bundle_download() and
Content$bundle_delete() instead.audit_vanity_urls() has been removed. To check if a
vanity URL is in use, use vanity_is_available()
instead.audit_* functions have been modified to accept
the result of get_content() rather than
cache_apps() (which is now removed). They are faster as a
result.tbl_connect(), you will need to install dplyr and dbplyr
explicitly. (#246)tbl_connect, rather
than tbl_lazy, preventing problems when also using dplyr
(#177).progress is now an optional dependency. To show pretty
progress bars, install the package explicitly. (#269)Content$tag_delete() removes the tag from the target
content item rather than removing the tag entirely. (#194)audit_r_versions() returns a bar chart instead of a
histogram (#179)NULL or length 1 job
outputs (#193)RStudioConnect documentation is now at
PositConnectpurrr deprecated changesmin_data_version parameter for usage data
functions (#166)set_vanity_url(), get_vanity_url(),
swap_vanity_url()get_tags(), get_tag_data(),
get_content_tags(), create_tag(),
create_tag_tree(), delete_tag(),
get_content_tags(), set_content_tags(),
set_content_tag_tree(), filter_tag_tree_id(),
filter_tag_tree_chr(), set_environment_new(),
get_environment(), set_environment_remove(),
download_bundle()tag ids are now character strings (of integers) instead
of integersConnect$new() now takes a server
argument (instead of host)
connect() function, although we
warn about argument deprecation in that case. (#125)set_environment_new() and
set_environment_remove() no longer take a
.version argument, and output data structure is a bit
different (a list of names). They now use the public API, which changes
the interface a bit. Also, intricacies of how to set / remove
environment variables are changed (i.e. setting VAR=NA will
remove VAR). (#141)get_vanity_url() and
set_vanity_url() are now no longer experimental functions.
(#113) However:
get_vanity_url() now returns a character string
representing the vanity url in use (or NULL if not defined)set_vanity_url() still returns a Vanity R6
object, but vanity$get_vanity()$path_prefix is now
vanity$get_vanity()$pathtag_page() and tag_page_iframe()
have been removed. Similar functions belong in the connectwidgets
package in the future.content_* and other APIs have moved
from experimental to “v1” variants. This means they have stabilized, but
with several subtle breaking changes that could impact your scripts.
(#115)
bundle_id has become id in some
response data. In others, url has become
content_url.content$get_bundles() no longer takes a
page_number argument, and the
get_bundles(limit) argument is now deprecated (#129)Connect$download_bundle is now deprecated in favor of
Content$bundle_download(), and delete_bundle()
now takes a Content item instead of Connect.
(#153)acl_*() functions are deprecated in favor of
get_content_permissions(), content_add_user(),
and friends.Connect$PUT(), Connect$POST()
and Connect$PATCH() endpoints now presume that an empty
list is really a “map”/“object” (like {} instead of
[]). This can break some endpoints that expect a list. Set
.empty_object=FALSE to avoid this behavior.users_create_remote() gains an exact
argument to simplify complex cases (#135). Long term, we should solicit
feedback on whether this function attempts to do too much.content_update(), content_update_access_type()
and content_update_owner()bundle_dir() (@slodge) (#118,
#121)overwrite= parameter to
download_bundle()Task class to ContentTask
Task interface up-to-date on ContentTask and
VariantTask manuallycontent_list_* helpers (#130):
content_list_with_permissions returns a
content_list with a “permission” column that includes who
has accesscontent_list_by_tag allows fetching just a
content_list for a particular tagcontent_list_guid_has_access filters a “content list
with permission” by whether a user or group GUID has accessuser_guid_from_username() function to convert
session$user or other usernames to a user GUID (#130)client$PATCH verbContent$update() to use PATCH
(which depends on RStudio Connect 1.8.6+)http/https is not definedBREAKING: * Switch from RSTUDIO_CONNECT_* variables to
CONNECT_* variables * Rename a handful of functions: -
connect$activate_bundle to
connect$content_deploy - connect$create_app to
connect$content_create - connect$upload_bundle
to connect$content_upload - connect$get_users
to connect$users * Change some return types to be
consistent with the API - connect$content_upload returns
the response instead of bundle_id -
connect$content_deploy returns the response instead of
task_id * Switch endpoints from using app_id
to guid * get_task$start renamed to
get_task$first * promote$app_name renamed to
promote$name * rename the package to
connectapi * change functions to take a
Connect object instead of server / api key -
cache_apps - tag_page
OTHER: * Add some endpoints: - content -
audit_logs - server_settings -
server_settings_r - inst_shiny_usage -
inst_content_visits * Add some helper functions: -
swap_vanity_url, deployment functions -
browse_ family of functions -
users_create_remote and groups_create_remote
for remote users/groups * Update Connect R6 object to be
compatible with Connect 1.7.0+ APIs * Added a NEWS.md file
to track changes to the package. * Add integration testing to protect
against regressions * Add tbl_connect() as a
lazy_tbl for querying Connect API endpoints * Add
get_* functions as alternatives to
lazy_tbl
Connect R6 object