feat(provider): add ApertoDNS Dynamic DNS provider #1074
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
Add support for ApertoDNS Dynamic DNS provider.
ApertoDNS implements the ApertoDNS Protocol v1.2, a modern JSON-based API for Dynamic DNS updates with full backward compatibility with the legacy DynDNS2 protocol.
Features
POST /.well-known/apertodns/v1/updatewith Bearer token authentication and JSON request/responseGET /nic/updatefor maximum compatibilitybase_urlparameterConfiguration Example
{ "settings": [ { "provider": "apertodns", "domain": "apertodns.com", "owner": "home", "token": "your_api_token", "ip_version": "ipv4" } ] }Protocol Support
This provider implements both layers of the ApertoDNS Protocol:
POST /.well-known/apertodns/v1/update- Primary methodGET /nic/update- Fallback for infrastructure errorsThe provider intelligently uses the modern API first, falling back to legacy only for infrastructure errors (not for authentication or validation errors).
Testing
go build ./...passesgo vet ./...passesgofmtpassesFiles Changed
internal/provider/providers/apertodns/provider.go- New provider implementationinternal/provider/providers/apertodns/provider_test.go- Integration testsinternal/provider/constants/providers.go- Added ApertoDNS constantinternal/provider/provider.go- Added import and casedocs/apertodns.md- User documentationLinks