Highlights
- Fix per-host geoblock "Override global" toggle never persisting due to a snake/camel mismatch in the form action; same parser bug fixed for L4 proxy hosts, plus a meta-update gate that silently no-op'd geoblock-only edits.
- Align the v1 REST API OpenAPI spec with the actual camelCase contract. Clients following the previous spec either had fields silently dropped (e.g. `hsts_subdomains`, `skip_https_hostname_validation`) or hit 500 errors (`POST /api/v1/certificates`, `POST /api/v1/l4-proxy-hosts`). Two internal mTLS routes (`mtls-roles/{id}/certificates`, `proxy-hosts/{id}/mtls-access-rules`) realigned to camelCase as well.
- Add a regression suite: per-host geoblock e2e flow, model-layer round-trip tests for both HTTP and L4 hosts, and a static + dynamic contract test that forbids snake_case top-level fields in OpenAPI and round-trips real payloads through every major v1 resource handler.
- Add Njalla DNS provider support.
- Build Caddy from master.
- Add a pull request template.
- Bump production and development dependency groups.
Changes
- 8d26fb9 fix: align v1 OpenAPI spec with actual camelCase contract
- c445195 fix: persist per-host geoblock override mode
- 745de2b Add pull request template
- 3db671b Build Caddy from master
- 0922cac Add Njalla DNS provider support
- b7d9e27 Add njalla DNS provider to Caddy Dockerfile
- 6a56690 deps(deps): bump the production-dependencies group with 5 updates (#159)
- c53c266 deps(deps-dev): bump the development-dependencies group with 8 updates (#158)