rnp CLI does not ship with a hardcoded update location. It asks
ClutchCall for a release pointer — a small JSON document that names one
version, one channel, and one download URL. The install scripts read the same
pointer.
The Releases screen in the tunnel console is a read-only view of that
pointer. It shows what the pointer currently serves and what has been published
before it. Publishing does not happen from the console; it happens through the
release scripts.
The release pointer endpoint
The pointer is served publicly at:rnp-cli, the cross-platform tunnel client.
The pointer carries these fields, which are the same fields the console renders
for the live version:
The console reads the pointer through
adminTunnel.releases.latest, which
returns the live pointer keyed by product. The URL is shown with a copy button
so you can fetch the exact artifact the updater would fetch.
There is no separate “pointer is empty” state baked into the pointer itself.
The console distinguishes two cases that look the same once rendered:
- No published pointer yet — the query succeeded, but this product has no live pointer. The action is to publish one.
- Releases unavailable — the query returned no data at all. The action is to refresh, or investigate the control plane if it persists.
Channels and what the updater picks
Every published release names a channel. The pointer serves one version per channel, and the CLI’s auto-updater follows the channel it is configured for — it takes whatever version the pointer currently names for that channel. The console treatsstable as the ordinary case and marks any other channel as
a warning, both on the live pointer and in each history row. If the live
pointer is on a non-stable channel, that is visible at a glance: the channel
tag next to the version changes tone.
Consequences worth internalising:
- Publishing a pointer is what makes a version reachable by the updater. Building an artifact is not enough.
- A non-
stablepointer is a live pointer. Clients on that channel will pick it up. - Because the pointer names exactly one version per channel, “the current release” is always a single answer, not a range.
Release history
Alongside the live pointer, the console lists prior releases for the product viaadminTunnel.releases.history, scoped by product. Each row records:
The row whose
version matches the live pointer is tagged live. That is
the single source of truth for “what is the updater serving right now” — the
newest row is not necessarily the live one, because the pointer can be moved
backwards.
As with the pointer, an empty history and an unreadable history are separate
states: No releases yet means nothing has been published for this product,
while History unavailable means the history query returned nothing.
Publishing with the release scripts
Publishing is done with the release scripts, not from this screen. The console is deliberately read-only: it tells you what the pointer serves and what shipped before, and nothing on it mutates the pointer. The shape of a publish is therefore:- Build and upload the artifact for the version.
- Run the release script to publish a pointer naming that version, its channel, and its artifact URL.
- Reload the Releases screen and confirm the live pointer shows the version and channel you intended, and that the new row carries the live tag.
Rolling back a bad pointer
Rollback is a pointer move, not a deletion. Because the pointer names one version per channel and the history retains prior releases, you roll back by publishing a pointer that names a known-good earlier version on the same channel. To roll back:- On the Releases screen, find the last known-good row in the history table for that product and channel. Copy its version.
- Publish a pointer for that version on the same channel using the release scripts.
- Confirm the live pointer and the live tag have moved to that row.
- Clients that already updated are not reverted by moving the pointer. The pointer governs what the updater fetches next, not what is already installed.
- The rolled-back-to version stays visible in history as a prior release; the live tag is what distinguishes “was published” from “is being served”.
- Keep the
noteson a rollback pointer meaningful. The history table shows notes under the version, and it is the fastest signal for the next person asking why the live version is older than the newest row.
Where QuickDesk releases live now
QuickDesk releases are no longer managed here. They moved to the QuickDesk operator console, atquickdesk.<brand>.dev, and are served by the
adminQuickdesk.releases procedures.
The tunnel Releases screen lists only rnp-cli. If you are looking for a
QuickDesk version pointer or QuickDesk release history, use the QuickDesk
operator console.
Related
- Authentication — the pointer endpoint is public; the console procedures are not
- Telemetry — correlating an update rollout with operational data

