pins 1.0.0 includes a new, more explicit, API that includes robust support for versioning. In the modern API, you create a board object which is passed to every
pin_ function instead of "registering" a board that is later refereed to with a string. This leads to code like this:
board <- board_local() board %>% pin_write(mtcars, "mtcars") board %>% pin_read("mtcars")
The legacy API (
board_register()) will continue to work, but new features will only be implemented with the new API, so we encourage you to switch to the modern API as quickly as possible. Learn more in
pin_write() replace most uses of
pin_write() has a
type argument that allows you to choose how to serialise
your R objects to disk, allowing you to manage the tradeoffs between speed,
generality, and language inter-op, and a
metadata argument that allows you
to store arbitrary metadata (#430).
pin_upload() are lower-level versions of
pin_write() that work with file paths rather than R objects. They
replace the use of
pin() with a path and eliminate the type-instability
pin_get(), which can return either an R object or a character vector of
board_browse(), and takes you to a specific pin,
either the original source on the internet, or the cached version on your
local file system (#435).
pin_remove(), and can delete multiple pins (#433).
pin_list() lists all pins in a board.
pin_info() and retrieves pin metadata (#418).
pin_find(). It is much more limited because the
previous version was based on assumptions that are not true for many boards.
pin_exists() reports whether or not a pin exists.
pin_version_delete() allows you to delete a single version.
pin_versions_prune() (#459) allows you to easily prune old versions keeping
either a specified number of versions, or all versions beneath a certain age.
This version includes the following modern boards:
board_azure() stores data in Azure's blob storage. It is built on top of
board_folder() is a generalised replacement for the legacy local board.
board_folder() can store data in any directory, making it possible to
share boards using shared network drives or on dropbox or similar. If you
using pins casually and don't want to pick a directory,
is a variant of
board_folder() that stores data in a system data directory.
board_kaggle_competition() allow you to
download data from Kaggle. The data is automatically cached so that it's
only downloaded when it changes.
board_ms365() allow to pin data to MS One Drive and Sharpoint
board_rsconnect() shares data on
RStudio connect. This board
supports both modern and legacy APIs, so that you and your colleagues can use
a mixture of pins versions as you transition to pins 1.0.0. Note that the
compatibility is one directional: you can
pin_read() pins created by
pin(), but you can't
pin_get() pins created by
board_s3() stores data in Amazon's S3 service. It is built on top of
board_url() lets you create a manual board from a vector of URLs. This is
pin_read() are cached, so they only
re-download the data if it has changed since the last time you used it (#409).
This board is a replacement for
pin()'s ability to work directly with URLs
The legacy boards will continue to work with the legacy pins API; we will implement modern versions of the remaining legacy boards based on user feedback.
All board objects now have class beginning with
pins_board_ and also
inherit from common superclass
Pins no longer works with the connections pane. This automatically registered code tended to be either dangerous (because it's easy to accidentally leak credentials) or useless (because it relied on variables that the connection pane doesn't capture).
Pinned data frames are longer converted to tibbles.
The "packages" board is no longer registered by default; if you want to use
this you'll need to register with
board_register("packages"). It has been
radically simplified so that it will no longer download packages, and it
pin_find() now searches all packages that you have installed, rather than
a stale snapshot of data in CRAN packages. The CRAN files dataset has
been removed from the package.
board_browse() now works with local boards.
board_rsconnect() will automatically connect to the current RSC pin board
when run inside RSC itself (assuming you have version 1.8.8 or later) (#396).
cache_prune() provide some basic
tooling around the local pins cache maintained by pins (#438).
pin_fetch() has been removed
option(pins.invisible) is now defunct and ignored.
You can no longer switch from a versioned pin to an unversioned pin without first deleting the pin (#410).
Support downloading remote files when service returns incompatible
data.txt file (#310).
Support for pins over 100MB in Windows systems (#313).
Avoid Windows crashing in
pin() under some locales (#127).
pin_find()no longer searches text with an undocumented regular expression syntax (#270).
Default to using HTTPS in S3 boards (#304).
Support for AWS V4 signatures when registering S3 boards with
region parameter (#304)
path to register a board under a subpath for
Azure, DigitalOcean, Google Cloud and S3 boards (#200).
Avoid creating pins named with unsupported characters for Azure, DigitalOcean, Google Cloud and S3 boards (#193).
Properly store relative paths when
path parameter is
specified in GitHub boards (#199).
Add support for repos with a 'main' branch as default (#336).
Add support for large file in private repo releases (#292).
When a board is registered with
versions = FALSE, GitHub
tags are also delete when large files are present (#285).
Invalid 'account' or 'server' parameters show proper errors (#296).
Increase total entries retrieved with
pin_find(), configurable with
Fix regression introduced in pins 0.4.2 (#253) preventing users from collaborating on existing pins they have access to (#302).
Avoid deleting pin when upload fails to avoid deleting versions (#306).
Support re-creating pins from pins not previously properly updated (#308).
Adjust pin preview to only display 1K rows instead of 10K (#315).
Avoid changing columns names on data frame preview (#190).
Improve error message when token authentication fails (#327).
For files bigger than 100MB
pin() creates symlinks to speed up uploads, can be configured
pins.link.size option (#273).
pin(zip = TRUE) the zip no longer contains local patahs (#277).
data.txtto support creating multiple pins at once (#275).
pin_get(download = FALSE)to avoid checking for updates.
Support for servers with mismatched
Make use of
RSCONNECT_TAR when running a report inside RStudio Connect (#293).
board_pin_versionsto allow custom boards extending versions (#265).
Fix issue removing pins with custom domain names from cloud boards (#234).
Fix warning when using
pin() against storage locations with custom domain name (#237).
Fix issue where datatxt was not refreshing deleted entries (#239).
versions = FALSE in
board_register() to avoid using too much space when
creating pins (#245).
Prevent administrators from overriding pins they don't own, unless the pin is specified
Support to connect to servers that have a redirect configured when the full server URL
is not specified in
Throw error when multiple accounts are associated to the same server (#261).
When running in production environments (which usually set the
environment variable), avoid using shared caches.
pin() failing to update cache when server returns
pin() to allow saving custom fields
Improve performannce for
pin() from URLs containing large files that are
already been cached prerviously by
Avoid showing upload or download progress when creating R Markdown documents and other non-interactive use cases (#227).
When pin(url) fails and local cache exists, produce warning and retrieve cached version (#231).
pin(zip = TRUE) to create a zip file of the given path before
creating the pin (#232).
Fix when overriding pin with corrupt metadata.
Avoid using shared caches when running inside RStudio Connect.
Fixed 'invalid uid' warning when creaating pin undner some Linux servers (#263).
Support for versioning in all boards.
Support for DigitalOcean board.
Finding pins with
pin_find() sort results by default (#201).
incomplete final line found warning error wheen reading manifests.
Support for using
pin() across multiple concurrent processes (#182).
pin_get() to download arbitrary files from cloud boards
like Azure, DigitalOcean, GitHub, Google Cloud, RStudio Connect, and S3.
Fix issue where http HEAD requests could tgimeout and prevent pin from downloading in very slow connections.
access_type parameter for RStudio Connect.
pin() now refreshes the connections pane.
pin_remove() now refreshes the connections pane.
code parameter in
pin() to customize R code used in
the UI to retrieve the pin (#77).
Improve error message for
pin_get() with duplicate names (#171).
Fix board register error when using URL with ports (#195).
Enable retrieving public pins without authentication (#83).
versions = FALSE in
board_register() to also delete
release files when pin is removed (#91).
versions = FALSE in
board_register() to avoid creating
versioned GitHub releases (#197).
Support for committing all github files with a single commit (#197).
Support for custom GitHub hosts including GitHub Enterprise using the
host parameter in
pin()now searches for
data.txtfiles in URLs when the URL contains no file extension, behavior can be turnned off with the
pin_info()adds support for
metadataparameter to avoid retrieving pin contents.
hostparameter to configure "s3.amazonaws.com" to custom locations.
pin_info() prints long character strings in their own line.
Fixed issue in
pin_remove() for S3, Azure, GCloud, Google and website boards (#138).
Fixed issue when pinning complex data frames with nested lists (#142).
Fixed connection suggested code when caused by
Fixed connection launcher for Azure connections.
Fix issue uploading large pins causing
is.character(type) is not TRUE
Fix issue affecting boards registered with trailing slash (#151).
Improve error messages when a pin fails to be created (#149).
Added support for
CONNECT_SERVER in place of
RSCONNECT_SERVER, which they are still supported
Support for Azure board.
Support for Google Cloud board.
Support for S3 board.
pin() extracts URLs that end in
zip, which can be
pin("<url>", extract = FALSE).
pin() no longer prints the pin, you can revert this behavior with
options(pins.invisible = FALSE) (#122).
Show upload progress for files larger than 10mb.
data.table when using
pin_info() to describe a pin and
extended = TRUE in
pin_find() to show all extended information about each pin.
extract parameter in
pin_reactive() to override default file extraction behavior.
Support to extract gzip files when the
R.utils package is installed.
Show download progress for files larger than 10mb.
I() to force a pin to be created without additional
overhead of exporting CSV and other enhancements (#73).
Support creating automatic
name when using
Gracefully handle errors when a pin's preview can't be created.
Website boards now support the browse menu item in the connection.
Fix data frames previewing character columns with special characters.
Fix connection code when a board is registered automatically.
Fix issue where
pin_find() would not show all available
Fix issue where RStudio Connections pane would not show all pins.
Store all downloaded content under user subfolder insited rsconnect cache.
pin_find() workaround for beta rsconnect server where
searching was causing timeout.
Fix for RStudio Connect servers where
/content/ is not
used in content URLs.
Fix issue expanding pins columns in RStudio for pins with similar names in RStudio Connect boards.
Fix issue removing pins with similar names in RStudio Connect boards.
name parameter in
board_register_datatxt() is now optional.
pin_find() to properly search desecription files.
pathparameter when registering the board (#121).
Support for retrieving pins shared by others in RStudio Connect boards.
Support for RStudio Connect servers running under a subpath in the server.
Add support for
RSCONNECT_SERVER environment variable to
ease configuration of automated RStudio Connect reports.
Fix intermittent failure to retrieve pins from RStudio Connect boards while creating them.
Fix in RStudio Connect boards to retrieve pins that match other pin names (#45).
Fix for data frames with nested data frames in rsconnect boards (#36).
board_register_github() now checks for the repo to exist (#63).
Adjusted max upload file to 25mb to avoid "server error" in
the API, larger files than 25mb uploaded as release files. This
can be configured using the
pins.github.release option, which
deefaults to 25.
Allow overriding GitHub pin over a pin that partially failed to be created.
Using a board will attempt to automatically register, such
pin(iris, board = "rsconnect") would work for
the default configuration even when the board is not
explicitly registered (#50).
Registers "local" board by default, you no longer need to
Make use of the
rappdirs package to define the default
cache path, replaces
to retrieve default cache path.
Fix CRAN request to explicitly opt-in to use local home
path as cache by running
Fix error when retrieving pins from Kaggle boards (#31).
Support for large files in GitHub board (#30).
Support for local board.
Support for Kaggle board.
Support for packages board.
Support for RStudio Connect board.
Support for GitHub board.
Support for website board.
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.