Skip to content

The version check ​

reportd checks once a day whether a newer Reportforge is out, and the studio tells administrators when one is. It is on by default, and one setting turns it off.

What it does ​

  • Once a day reportd sends one GET to updates.releases, by default GitHub's API for the public repository: https://api.github.com/repos/frontforge-corporation/report-server-releases/releases/latest. It keeps the answer in dataDir/updates.json, so a restart doesn't ask again within the day. The first check is at start when there is no answer yet, or when the last one is a day old.
  • What it sends: the request alone. It has no body, no query, no cookies and no token, and its User-Agent is Reportforge (version check), without a version. There is no install ID and no usage data. GitHub sees the server's address, as with any request. Reportforge has no other telemetry.
  • What it reads: the release's tag (v1.0.0, read as 1.0.0) and its page (html_url), where the release notes are. A draft or a pre-release is ignored.
  • The address guard. The request goes through the same guard as http data sources, with no proxy, so updates.releases can't point at an internal address (security.md). An https address doesn't follow a redirect to http.
  • In setup mode it waits. The setup wizard asks first, and the check starts once setup is done.

What people see ​

GET /v1/info has latest: the version, the release page, when it was checked, and newer, which says it is newer than this reportd. It is null while the check is off and until a check has worked.

When newer is true, administrators (those who can manage users) see a banner over the studio: "Reportforge 1.0.0 is available. This server runs 0.9.0.", with a Release notes link. Dismiss hides it for that version in that browser; the next version shows again. Other users see nothing.

When it fails ​

A check that fails changes nothing people see. reportd logs it at info, keeps the last answer it had, and tries again a day later:

  • no internet access, or a firewall that drops the request;
  • 404 from GitHub, as before the first release is published;
  • another status (GitHub's rate limit is 403), or an answer that isn't a release.
text
level=INFO msg="updates: the version check didn't work; it tries again in a day" source=https://api.github.com/repos/frontforge-corporation/report-server-releases/releases/latest error="no release is published there"

Settings ​

SettingDefault
updates.checktrueTurns the check on or off.
updates.releaseshttps://api.github.com/repos/frontforge-corporation/report-server-releases/releases/latestWhere it asks. Any http(s) address that answers as GitHub's latest release API does.

The configuration reference lists them with their variables.

Turning it off:

  • in the setup wizard, on the Address step (Check for new versions once a day), or reportd setup --yes --update-check=false;

  • later, in Admin → Settings (settings.md);

  • in the config file:

    yaml
    updates:
      check: false
  • or in the environment: REPORTD_UPDATES_CHECK=false.

Each node of a cluster checks on its own and keeps its own updates.json.