Skip to content

feat: add Scaleway DNS protocol#930

Open
beadon wants to merge 2 commits into
ddclient:mainfrom
beadon:feature/scaleway-protocol
Open

feat: add Scaleway DNS protocol#930
beadon wants to merge 2 commits into
ddclient:mainfrom
beadon:feature/scaleway-protocol

Conversation

@beadon

@beadon beadon commented May 27, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Adds scaleway protocol for Scaleway DNS (https://www.scaleway.com/en/dns/)
  • Uses the Scaleway Domains and DNS REST API v2beta1 via PATCH /dns-zones/{zone}/records
  • Authenticates with X-Auth-Token header using an API secret key
  • Supports IPv4 (A) and IPv6 (AAAA) record updates via the changes/set operation
  • A single PATCH request per IP version — no pre-flight GET needed

Files changed

  • ddclient.in: nic_scaleway_examples, nic_scaleway_update, %protocols entry, @needs_json
  • t/protocol_scaleway.pl: 8 test cases (IPv4, IPv6, dual-stack, apex, auth, API error, HTTP 500, no-op)
  • Makefile.am: add test to handwritten_tests
  • README.md: add Scaleway to supported providers list
  • ddclient.conf.in: add example configuration block
  • ChangeLog.md: add entry under v4.0.1-rc.2 New feature

Test plan

  • make check TESTS=t/protocol_scaleway.pl VERBOSE=1 — all 9 tests pass
  • make check — full suite passes

🤖 Generated with Claude Code

@beadon beadon self-assigned this May 27, 2026
@beadon beadon requested a review from indrajitr May 27, 2026 23:00
@indrajitr indrajitr added the packaging Related to Distro packaging label May 28, 2026
Implements DDNS updates for Scaleway hosted DNS via the REST API
(api.scaleway.com/domain/v2beta1). Supports IPv4 (A) and IPv6 (AAAA)
record updates using an API secret key via the X-Auth-Token header.
Uses a single PATCH request with a changes/set operation per record type.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@beadon beadon force-pushed the feature/scaleway-protocol branch from cebd816 to d0f7ce6 Compare May 28, 2026 06:45
@beadon

beadon commented May 28, 2026

Copy link
Copy Markdown
Contributor Author

Rebased onto current main. Conflicts resolved (ChangeLog, ddclient.conf.in, ddclient.in @needs_json). Ready to merge.

Bare FQDN server defaults send requests over plain HTTP without ssl=1;
the API requires HTTPS and rejects plain HTTP with 401.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

packaging Related to Distro packaging

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants