App updates
The endpoint the desktop app's updater checks. You only need it if you ship your own build of the app.
The app checks for new versions with the standard Tauri updater protocol.
Check for an update
/api/app/update/{target}/{arch}/{current}?channel=stablePublicName
Type
curl -s "$FORGECAST_URL/api/app/update/windows/x86_64/0.1.0?channel=stable"The endpoint is public (the app asks before anyone is signed in) and limited per IP address. The app checks signature against the public key compiled into it before it installs anything, so a tampered download is refused.
Channels
| The install asks for | What it is offered |
|---|---|
stable | The stable release if it is newer. From a beta build, the stable build even when it is older: that is how switching back to stable works. |
beta, with an Ultimate account's token | The newest of the beta and stable releases, if newer. |
beta, signed in without Ultimate | The same as stable (a beta build moves back to the stable build). |
beta, without a valid token | Stable releases newer than the install only: the install is never moved back on a guess. |
The app only installs something newer, or a stable build in place of a beta build.
Downloads
/downloads/{file}Public; beta files need UltimateThe installers the website hosts itself: ForgeCast Setup (what people download) and the update package the updater fetches. Only files a published release names are served. Files of the beta release need an Ultimate account: the app's token (the updater sends it with the download too) or the website session.
/api/app/download?channel=stable&os=windowsPublic; beta needs UltimateRedirects (302) to the newest download of that channel: ForgeCast Setup (os=windows, the default) or the disk image (os=macos). Macs check for updates as darwin with aarch64 or x86_64; both get the same universal package.

