Skip to content

Releases: otAAAh/checkmk-json-agent

v0.15.0

Choose a tag to compare

@github-actions github-actions released this 31 Aug 13:07

[0.15.0] - 2026-08-31

Features

  • Authenticate with OAuth 2.0 client credentials (#172) (1eecc5b)

Fixes

  • The wizard's token preview could echo the client secret (#173) (a41fd92)

Other

  • Prepare 0.15.0 - announcement and refreshed Exchange listings (#174) (6c017aa)
  • Bump the actions group with 2 updates (#170) (19ca238)
  • Deps: Bump ruff from 0.16.4 to 0.16.5 (#169) (df57976)
  • Spike — go generic client-credentials for OAuth2 (#171) (255bc95)

v0.14.0

Choose a tag to compare

@github-actions github-actions released this 30 Aug 17:00

[0.14.0] - 2026-08-30

Upgrade notes

A timestamp field with format auto now reads HTTP-dates

Interpret the value as → a timestamp with format auto previously accepted a
number (epoch seconds or milliseconds) or an ISO 8601 string, and reported
anything else as Not a valid timestamp (UNKNOWN). It now also accepts an
HTTP-dateWed, 21 Oct 2015 07:28:00 GMT — because that is what
Last-Modified, Expires and a date-form Retry-After contain, and those only
became reachable in this release (see the @header. paths below).

Effect: a field that was stuck at UNKNOWN because its value was an HTTP-date
now resolves to a real age. If that field has upper levels configured, it can go
WARN or CRIT on the next check where it previously sat UNKNOWN. This only affects
fields explicitly configured as timestamps whose value is an HTTP-date; the
explicit ISO 8601 format is unchanged and stays strict.

Features

  • Give piggyback hosts host labels from their own element (#165) (07b7799)
  • Pick response headers instead of typing '@Header.' paths (#162) (3c904b6)
  • Compute a ratio from a second path with the 'other' variable (#160) (c294cdf)
  • Read a value from a response header with an '@Header.' path (#159) (bbd8828)

Fixes

  • Do not crash the rule form when a required field is emptied (#163) (2928cc4)

Other

  • The 0.14.0 forum announcement and its upgrade note (#166) (d5c16db)
  • Deps: Bump ruff from 0.16.3 to 0.16.4 (#154) (a0d3da8)
  • Use Checkmk's own click-outside and key-shortcut helpers (#158) (c3f2d44)
  • Bump the actions group with 2 updates (#155) (deddc2d)
  • Deps: Bump mypy from 2.3.0 to 2.3.1 (#153) (e628584)
  • Collapse duplicated logic, no behaviour change (#157) (7fa1e91)
  • Bump the actions group with 2 updates (#152) (37aa37e)
  • Deps: Bump ruff from 0.16.1 to 0.16.3 (#151) (b0aaa34)
  • Refresh the Exchange listing, four releases behind (#150) (f9aac06)
  • Add the 0.13.0 forum announcement (#149) (c9613a8)

v0.13.0

Choose a tag to compare

@github-actions github-actions released this 14 Aug 11:41

[0.13.0] - 2026-08-14

Upgrade notes

Sending a field to the inventory takes its service away

Purely additive — nothing changes unless you set the new Write into the HW/SW
inventory
on a field. But it defaults to creating no service, which is the
point of the feature: a version or a licence tier is a fact, not a state, and it
should not cost a service slot and a check interval to report something that
changes twice a year.

Effect: turning it on for a field that is already a service removes that
service on the next discovery, and its metric history goes with it. If you want
both — a value in the tree and an alert on it — tick Also create a service
for this field
in the same edit.

Inventory also runs on its own, slower schedule, so a newly configured field
appears in the tree at the next inventory run rather than at the next check.

Cached endpoints refetch once after upgrading

The response cache now keys entries on the credential as well as the URL, method,
body, headers and TLS settings. Without that, several rules polling the same
multi-tenant URL with a different API key each shared one cache entry and served
each other's data for the whole TTL. Only a hash of the credential is used; the
credential itself still reaches neither the agent's command line nor the disk.

Effect: the identity of every authenticated cached endpoint changes, so the
first check after upgrading fetches fresh instead of serving a cache hit. One
extra request per endpoint, once. The superseded files are pruned automatically.

Features

  • Write a field into the HW/SW inventory (#146) (cae4e0e)
  • Retry a failed request per endpoint, with backoff (#145) (7e9d0ed)
  • Extra summary text with '{path}' placeholders (closes #140) (#144) (43df229)
  • API key authentication from the password store (closes #139) (#143) (92b1942)

Fixes

  • Six defects found reviewing the four merged features (#147) (68d9a3b)

Other

  • Upgrade notes for the inventory target and the cache-key change (#148) (6a32f4b)
  • CI fix: Dependabot Updates on main (#138) (d59fa0d)
  • Bump js-yaml from 4.3.0 to 4.3.1 in /frontend (#136) (7768f83)
  • Bump the actions group with 3 updates (#135) (8bc1880)
  • Bump fast-uri from 3.1.4 to 3.1.5 in /frontend (#134) (edba561)
  • Add the 0.12.0 forum announcement and an announce step (#133) (d055ed4)

v0.12.0

Choose a tag to compare

@github-actions github-actions released this 03 Aug 08:48

[0.12.0] - 2026-08-03

Upgrade notes

The response cache is opt-in, and deliberately fails loudly

Nothing changes unless you set the new per-endpoint Re-read at most every
(seconds)
. When you do, two behaviours are worth knowing before you rely on it:

  • A failing request is never answered from an expired cache. The endpoint goes
    CRIT as it would without caching. This is deliberate — monitoring that serves
    stale data through an outage is worse than useless — but it does mean a cache
    does not make an endpoint more available, only less frequently polled.
  • A cached serve records no response-time metric. The JSON API <name>
    service reports from cache (N old) instead. So a graph of an endpoint with a
    long TTL will have gaps: those are intervals where nothing was measured, not
    intervals where the API was slow.

Piggyback hosts must exist before they are monitored

Purely additive — nothing changes unless you set the new Create one host per
element, named by this field
on a [*] field. But when you do, be aware of the
standard Checkmk piggyback rule: data for a host that does not exist in Checkmk
is stored and never monitored.
No error, no service, no warning on the polling
host — it simply sits in the piggyback directory.

Effect: create the hosts first (by hand, or with Dynamic host management on
Enterprise/Cloud), then run a discovery. If you enable the option and see nothing,
this is why.

Switching an existing [*] field over to per-element hosts also moves its
services: the label-suffixed services on the polling host (JSON Node web-1)
disappear and are replaced by plainly-named ones on the new hosts (JSON Node on
host web-1), so their metric history restarts.

The endpoint service item drops the URL's query string

Endpoints without a configured Name take their service item from the URL,
which is now used without its query string (?api_key=…) — a credential passed
as a query parameter no longer lands in a service description, which reaches
notifications, availability reports and the metric paths on disk. The full URL
is unchanged in the service details.

Effect: the JSON API <url> service of every unnamed endpoint whose URL has
a query string is renamed once, on the next discovery, and its metric history
restarts. Named endpoints are unaffected. Give your endpoints a Name to
insulate them from this and from any future change to the fallback.

count over a [*] path counts only the elements that have the field

An aggregation over a wildcard path that names a field — nodes[*].load — now
counts only the elements that actually have that field, matching what
sum/avg/min/max over the same path have always done.

Effect, for rules combining count with a [*] path:

  • where the field is sometimes absent, the reported number drops to the number
    of elements that have it;
  • where the field is never present (typically a typo in the path), the service
    goes UNKNOWN with path not found in any element instead of silently
    reporting the element count.

A wildcard-free path (aggregate: count on jobs) names no field and is
unchanged. A condition that matches nothing still counts 0.

Features

Fixes

  • Distinguish a null element from a missing container (closes #114) (#120) (#126) (aedc00f)
  • Stop the aggregation preview claiming a pre-filter count (closes #115) (#123) (5655e4e)
  • Keep the query string out of the endpoint service item (closes #111) (#121) (96dff75)
  • Count only the elements that have the field (closes #113) (#119) (8a0c1af)
  • Render a negative duration instead of crashing (closes #110) (#118) (a20b34f)

Other

  • Add UPGRADING.md and put it in the release body (closes #112) (#125) (e706010)
  • Check gui/ too, and align the make targets with CI (closes #117) (#124) (55c026f)
  • Bump the actions group with 2 updates (#109) (f1f8034)
  • Deps: Bump ruff from 0.16.0 to 0.16.1 (#108) (1f48044)

v0.11.0

Choose a tag to compare

@github-actions github-actions released this 29 Jul 10:44

[0.11.0] - 2026-07-29

Features

  • Counter rate / timestamp age + per-endpoint status service (land #105 and #106 on main) (#107) (8f2c137)
  • Aggregate a collection into one value (sum/avg/min/max, not just count) (#104) (a67f78b)

Other

  • Bump postcss from 8.5.16 to 8.5.23 in /frontend (#103) (6801db0)
  • Bump the actions group with 4 updates (cca693d)
  • Deps: Bump ruff from 0.15.22 to 0.16.0 (75426ae)
  • Bump fast-uri from 3.1.3 to 3.1.4 in /frontend (1be05f0)

v0.10.0

Choose a tag to compare

@github-actions github-actions released this 21 Jul 09:44

[0.10.0] - 2026-07-21

Features

  • Filter wildcard/count elements by a predicate (0dc3b7e)
  • Custom CA bundle and client certificate (mTLS) (9129ec9)
  • HTTP proxy support per endpoint (2ea0ba0)
  • Accept configurable non-2xx HTTP status codes (ef0ce65)
  • Add --debug flag to the special agent (e21fcf2)

Other

  • Build the Explorer frontend before packaging in bridge-check (1e19116)
  • Deps: Bump mypy from 2.2.0 to 2.3.0 (3064c93)
  • Bump the actions group with 3 updates (fa05877)
  • Deps: Bump ruff from 0.15.21 to 0.15.22 (7ec301b)

v0.9.0

Choose a tag to compare

@github-actions github-actions released this 15 Jul 14:03

[0.9.0] - 2026-07-15

Features

  • JSON API service/host labels + fix broken Explorer release (25a16c1)
  • Add check-parameters ruleset for per-folder threshold overrides (93dc597)

Other

  • Add Exchange listing for the in-site Explorer package (02a4537)

v0.8.0

Choose a tag to compare

@github-actions github-actions released this 14 Jul 07:18

[0.8.0] - 2026-07-14

Features

  • Count elements + on-site wizard fixes (completes #75) (36ee9d2)
  • String matching with OK/WARN/CRIT state mapping (727e033)

Fixes

  • Don't crash the check on a blank calc expression (a7254e8)
  • Flush stdout so the agent's section shows on direct CLI runs (854bdd7)

Other

  • Add supported-Checkmk-version badges to the README (d87bb9f)
  • Stub raw-dist-missing icons; take bridge-check off the PR path (c7a6aab)
  • CI: fix frontend-build (drop unresolvable setup-node pin) and bridge-check (Explorer is 2.5.0-only, drop 2.4 image) (49d1e3d)
  • Add in-site JSON API Explorer wizard (json_api_explorer MKP) (43dce51)
  • Deps: bump mypy from 1.13.0 to 2.2.0 (836bf48)
  • Deps: bump pytest from 9.0.3 to 9.1.1 (5b93194)
  • Deps: bump ruff from 0.15.8 to 0.15.21 (6e5eb0d)
  • Deps: bump pydantic from 2.11.7 to 2.13.4 (12dfede)
  • Bump the actions group with 2 updates (8c33708)

v0.7.0

Choose a tag to compare

@github-actions github-actions released this 10 Jul 05:49

[0.7.0] - 2026-07-10

  • Refresh Exchange listing for object-map discovery & multi-endpoint (fce6b72)
  • Expand '[*]' wildcard over JSON objects/maps, not just arrays (886eab8)
  • Add contributing guide and issue templates (9466710)

v0.6.0

Choose a tag to compare

@github-actions github-actions released this 08 Jul 06:00

[0.6.0] - 2026-07-08

  • Deps: bump pytest from 8.3.4 to 9.0.3 (27472a4)
  • CI/repo maintenance hardening (10d7623)
  • Localize the Setup UI into all Checkmk-supported languages (898e29c)
  • Add CI guard that the Explorer stays in sync with the ruleset schema (8c4929b)
  • CI: test on Checkmk 2.4 + 2.5; attest mkp build provenance (e35e211)
  • Bump the actions group with 4 updates (30d5569)
  • Harden GitHub Actions: pin action SHAs, add CodeQL + Dependabot (3273e98)