No description
- Go 100%
Introduce a DiscoveryEntry struct and an optional DiscoveryPublisher interface that providers can co-implement to declare things worth probing by other checkers (TLS endpoints, HTTP probes, ACME challenges, DNSSEC keys, ...) without having to re-parse raw observations. DiscoveryEntry carries an opaque Payload: the SDK does not interpret it. Producers and consumers agree on the Payload schema through a separate contract (eg. a small shared Go package imported by both) identified by the free-form Type string. This keeps the SDK free of protocol-specific concepts; new entry families can appear without touching it. The /collect HTTP handler type-asserts the provider against DiscoveryPublisher immediately after Collect and forwards the resulting entries in ExternalCollectResponse.Entries. |
||
|---|---|---|
| checker | ||
| go.mod | ||
| LICENSE | ||
| NOTICE | ||
| README.md | ||
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.