Appearance
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
GETtoupdates.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 indataDir/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-AgentisReportforge (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 as1.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.releasescan'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;
404from 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
| Setting | Default | |
|---|---|---|
updates.check | true | Turns the check on or off. |
updates.releases | https://api.github.com/repos/frontforge-corporation/report-server-releases/releases/latest | Where 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:
yamlupdates: check: falseor in the environment:
REPORTD_UPDATES_CHECK=false.
Each node of a cluster checks on its own and keeps its own updates.json.