Commit graph

12 commits

Author SHA1 Message Date
9cdf16b2b2 Include rules section 2026-04-30 08:49:43 +07:00
c7dad76034 docker: add HEALTHCHECK probing /health
The binary doubles as its own healthcheck client via the SDK's
-healthcheck flag, so the probe works in the scratch image
(no shell, no curl, no wget).
2026-04-26 18:05:47 +07:00
2aa596afd5 Address publication review feedback
Add the AGPL LICENSE file and a deployment-security note in the README
to clarify that the unauthenticated /collect endpoint must run on a
trusted network.

Fix the IPv6 reachability rule so it consults the IP actually probed:
PingTargetResult now carries ResolvedIP populated from pinger.IPAddr(),
which lets the rule classify hostname targets correctly instead of
always reporting "No IPv6 target pinged".

Tighten error handling: ipsFromService now propagates JSON errors,
ExtractMetrics wraps decode failures, the count option returns an
explicit error when out of range instead of silently clamping, and the
"all pings failed" message no longer concatenates every per-target
error. Threshold validation is factored into validateThresholdPair and
shared between the RTT and packet-loss rules.

Add unit tests covering address resolution, threshold validation, and
each rule's evaluation paths.
2026-04-26 18:05:47 +07:00
706fc2a4c1 checker: split monolithic rule into per-concern rules 2026-04-26 10:19:18 +07:00
9972ef512f checker: report rules with no targets as StatusUnknown
Skipped tests that are not problematic should be UNKNOWN rather than
INFO; "no targets to ping" is a non-evaluation, not a finding.
2026-04-26 10:19:16 +07:00
394d7e8e4c Run container as non-root user
Add USER 65534:65534 to the scratch runtime image so the checker
process does not run as root.
2026-04-26 10:19:14 +07:00
b1ebac2198 Migrate to checker-sdk-go v1.3.0 with standalone build tag
The SDK split the HTTP server scaffolding into the new
checker-sdk-go/checker/server subpackage. Update main.go to import
server and call server.New, and isolate the interactive form code
behind the standalone build tag so plugin/builtin builds skip
net/http entirely.
2026-04-26 10:19:13 +07:00
a74c8d83aa Add interactive form/report v0.1.0 2026-04-23 16:46:28 +07:00
73f5782ee3 Change Evaluate signature 2026-04-23 16:46:28 +07:00
48785e2896 checker: adopt unified ReportContext reporter signature
Follow the checker-sdk-go interface consolidation: reporter methods
now take sdk.ReportContext and read the payload via ctx.Data() instead
of the raw json.RawMessage parameter. Backed by the same underlying
logic.
2026-04-23 16:46:20 +07:00
b147fa2f31 Handle empty targets case in Evaluate with StatusUnknown 2026-04-16 04:44:03 +07:00
a2ebf17774 Initial commit 2026-04-08 02:46:26 +07:00