Skip to content

5.10.2.5 Downloads

The Downloads domain of releases. The links to the installer of every application, for anyone to put anywhere: a site, an e-mail, a message to a farm (decided 2026-11-11). It is one API, with its own contract and its own version.

5.10.2.5.1 Versions

Version Status Prod URL Contract
v1 Proposed https://releases.moonitoring.com/downloads/v1 downloads/v1/openapi.yaml

The resources follow the data model: the installer artifact of a build and platform, the application's default channel, and the download event each link records.

5.10.2.5.2 Operations

The links need no token: they are the one exception to the rule that nothing private can be enumerated. A link names the application and a version label, never a build number, and the installer carries no secret; the content of a build is still served only after the person signs in and an enrolment passes the channel's rule.

Operation Request Who Capability
Download the latest installer for this computer GET /{application_slug}/latest Anyone none
Download the latest installer for a platform GET /{application_slug}/latest/{platform} Anyone none
Download the installer of a version for a platform GET /{application_slug}/versions/{version_label}/{platform} Anyone none

5.10.2.5.3 Contract v1

Proposed version

v1 is a proposal for review: its endpoints, errors and capabilities were designed from the requirements and the flows and are not confirmed. It leaves proposal with its first release; from then on it changes only as described in Every API Is Versioned.

  • Three links per application:
    • /{application_slug}/latest, the universal latest link. It detects the operating system and architecture from the User-Agent and the client hints Sec-CH-UA-Platform and Sec-CH-UA-Arch, and sends the installer of that platform. When it cannot tell, it answers a small page that links the latest link of each platform.
    • /{application_slug}/latest/{platform}, the latest link of one platform, such as windows-x64.
    • /{application_slug}/versions/{version_label}/{platform}, the link of one version.
  • "Latest" is the active release of the application's default channel (ReleaseApplication.default_channel). For the farm sync client (farm-sync-client) it is stable. An application without a default channel has no latest link: MooChat on the desktop has none until its first channel exists.
  • A version link gives that build's installer, and the installer installs that version only while a channel the person may receive still names it in its current TUF targets, since releases-client can verify nothing else. Otherwise it says that the version is no longer offered and offers the latest.
  • Every answer is a redirect to a short-lived signed URL of the CDN, in prod and in stage alike (decided 2026-11-11). It is never a listing of what the caller may not receive: an unknown application, a revoked build and a platform without an installer all answer 404. Answers are no-store, because a latest link changes with each release.
  • Every redirect records an anonymous download event: the build, the platform and the size of the installer, with no person. Who installed is known at enrolment, so for private software the events count downloads; they no longer say who downloaded.
  • Prod serves the links without authentication, rate limited by Cloud Armor at the load balancer (429 with Retry-After). Stage serves them behind IAP, like the other client paths (Network); the file a link redirects to comes from the CDN with a short signed URL, as in prod, since IAP cannot stand in front of Cloud CDN.
  • In the Console, every build and release shows copy buttons for its version links, one per platform with an installer, and for the application's universal latest link.