No description
Find a file
Pierre-Olivier Mercier 6be3578c33 checker: reorder Status with negatives for good, JSON as string
Make StatusUnknown the zero value (0) so an uninitialized CheckState
reads as "no signal yet" rather than as healthy. Push StatusOK and
StatusInfo to negative values so the natural int ordering matches
severity ordering: aggregators can simply take max() to compute the
worst status, and Unknown correctly sits above OK/Info but below Warn.

Status now (un)marshals as its string name ("OK", "WARN", ...) so the
wire format is stable across any future renumbering. UnmarshalJSON
still accepts raw ints for backward compatibility with older snapshots
and clients.
2026-04-08 22:16:41 +07:00
checker checker: reorder Status with negatives for good, JSON as string 2026-04-08 22:16:41 +07:00
go.mod Initial commit 2026-04-08 00:53:15 +07:00
LICENSE Initial commit 2026-04-08 00:53:15 +07:00
NOTICE Initial commit 2026-04-08 00:53:15 +07:00
README.md Initial commit 2026-04-08 00:53:15 +07:00

checker-sdk-go

Public Go SDK for writing happyDomain checker plugins.

This module provides the stable types, helpers, and HTTP server scaffolding that all checker plugins need, independent of the happyDomain server itself.

Why a separate module?

The happyDomain server is licensed under AGPL-3.0 (with a commercial option). If checkers had to import the server's internal packages, every checker, even trivial ones, would inherit those licensing constraints.

This SDK is released under the Apache License 2.0, so:

  • You can write a checker plugin under any license you want (MIT, Apache, proprietary, AGPL, whatever fits your needs).
  • A plugin built against this SDK is not a derivative work of happyDomain.
  • happyDomain itself depends on this SDK (as an Apache-licensed dependency, which is compatible with AGPL).

Installation

go get git.happydns.org/checker-sdk-go/checker

Getting started

See checker-dummy for a fully working, documented template.

License

Apache License 2.0. See LICENSE and NOTICE.