No description
  • Go 97.2%
  • Makefile 1.7%
  • Dockerfile 1.1%
Find a file
2026-04-23 17:05:35 +07:00
checker Bump SDK + change Evaluate signature 2026-04-23 17:05:35 +07:00
plugin Initial commit 2026-04-08 03:27:27 +07:00
Dockerfile Initial commit 2026-04-08 03:27:27 +07:00
go.mod Bump SDK + change Evaluate signature 2026-04-23 17:05:35 +07:00
go.sum Bump SDK + change Evaluate signature 2026-04-23 17:05:35 +07:00
LICENSE Initial commit 2026-04-08 03:27:27 +07:00
main.go Initial commit 2026-04-08 03:27:27 +07:00
Makefile Initial commit 2026-04-08 03:27:27 +07:00
NOTICE Initial commit 2026-04-08 03:27:27 +07:00
README.md Initial commit 2026-04-08 03:27:27 +07:00

checker-zonemaster

Zonemaster DNS validation checker for happyDomain.

Runs the Zonemaster test suite against a domain via its public JSON-RPC API and stores the full results as an observation. The checker also produces a rich HTML report grouped by Zonemaster module and severity.

Usage

Standalone HTTP server

make
./checker-zonemaster -listen :8080

The server exposes the standard happyDomain external checker endpoints (/health, /definition, /collect, /evaluate, /html-report).

Docker

make docker
docker run -p 8080:8080 happydomain/checker-zonemaster

happyDomain plugin

make plugin
# produces checker-zonemaster.so, loadable by happyDomain as a Go plugin

The plugin exposes a NewCheckerPlugin symbol returning the checker definition and observation provider, which happyDomain registers in its global registries at load time.

Versioning

The binary, plugin, and Docker image embed a version string overridable at build time:

make CHECKER_VERSION=1.2.3
make plugin CHECKER_VERSION=1.2.3
make docker CHECKER_VERSION=1.2.3

happyDomain remote endpoint

Set the endpoint admin option for the zonemaster checker to the URL of the running checker-zonemaster server (e.g., http://checker-zonemaster:8080). happyDomain will delegate observation collection to this endpoint.

Options

Scope Id Description
Run domainName Domain name to test (auto-filled from the domain)
Run profile Zonemaster profile name (default: default)
User language Result language (en, fr, de, …)
Admin zonemasterAPIURL Zonemaster JSON-RPC endpoint (default: official API)

Protocol

POST /collect

Request:

{
  "key": "zonemaster",
  "options": {
    "domainName": "example.com",
    "zonemasterAPIURL": "https://zonemaster.net/api",
    "language": "en",
    "profile": "default"
  }
}

The collect call is long-running: it starts a Zonemaster test, polls until completion, and returns the full result tree as the observation payload.

License

This project is licensed under the MIT License (see LICENSE). The third-party Apache-2.0 attributions for checker-sdk-go are recorded in NOTICE and must accompany any binary or source redistribution of this project.