version.kguardian.dev for the latest released versions, and that request is
also how the project learns an installation exists. It powers the update
notice in the UI (and GET /version on the broker), and it is the only
usage signal the project collects.
It is enabled by default and can be disabled at any time — we’d rather
you know exactly what it does and choose, than never notice it.
Exactly what is sent
One HTTPSGET per day to https://version.kguardian.dev/v1/check with
these six query parameters — nothing else, ever:
The exact field list is pinned by a unit test in the broker
(
check_params_send_exactly_the_documented_fields) — a change to the wire
contract fails the build unless this page changes with it.
Not sent: cluster names, namespaces, pod names, IPs, hostnames, labels,
traffic data, syscall data, or anything derived from your workloads.
Server side: requests are logged with coarse, Cloudflare-provided
country-level geo. IP addresses are not persisted.
What you get back
The response lists the latest released component versions. The broker surfaces it atGET /version:
Disabling it
GET /version keeps
working, but latest/update_available stay empty.
Air-gapped and egress-restricted clusters
Nothing to do. Failures are silent by design — if the endpoint is unreachable, the broker logs atdebug level and tries again the next day.
There is no retry storm, no startup dependency, and no functional impact.
Self-hosting the endpoint
telemetry.endpoint can point at your own service (the reference
implementation lives in
cloudflare/version-service):