Initial commit
This commit is contained in:
commit
979757b5a8
15 changed files with 966 additions and 0 deletions
92
README.md
Normal file
92
README.md
Normal file
|
|
@ -0,0 +1,92 @@
|
|||
# checker-zonemaster
|
||||
|
||||
Zonemaster DNS validation checker for [happyDomain](https://www.happydomain.org/).
|
||||
|
||||
Runs the [Zonemaster](https://zonemaster.net/) 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
|
||||
|
||||
```bash
|
||||
make
|
||||
./checker-zonemaster -listen :8080
|
||||
```
|
||||
|
||||
The server exposes the standard happyDomain external checker endpoints
|
||||
(`/health`, `/definition`, `/collect`, `/evaluate`, `/html-report`).
|
||||
|
||||
### Docker
|
||||
|
||||
```bash
|
||||
make docker
|
||||
docker run -p 8080:8080 happydomain/checker-zonemaster
|
||||
```
|
||||
|
||||
### happyDomain plugin
|
||||
|
||||
```bash
|
||||
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:
|
||||
|
||||
```bash
|
||||
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:
|
||||
```json
|
||||
{
|
||||
"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.
|
||||
Loading…
Add table
Add a link
Reference in a new issue