Commit graph

71 commits

Author SHA1 Message Date
Jonathan Beliën
5287f96581
Merge 739c01bad9 into 986bc4c5f4 2025-12-05 22:11:00 +01:00
Jiacheng
bcef7f52fc
ALIDNS: Implement ALIDNS Provider (#3878)
<!--
## Before submiting a pull request

Please make sure you've run the following commands from the root
directory.

    bin/generate-all.sh

(this runs commands like "go generate", fixes formatting, and so on)

## Release changelog section

Help keep the release changelog clear by pre-naming the proper section
in the GitHub pull request title.

Some examples:
* CICD: Add required GHA permissions for goreleaser
* DOCS: Fixed providers with "contributor support" table
* ROUTE53: Allow R53_ALIAS records to enable target health evaluation

More examples/context can be found in the file .goreleaser.yml under the
'build' > 'changelog' key.
!-->

https://github.com/StackExchange/dnscontrol/issues/420


Please create the GitHub label 'provider-ALIDNS'

---------

Co-authored-by: Tom Limoncelli <6293917+tlimoncelli@users.noreply.github.com>
2025-12-04 10:55:14 -05:00
Tom Limoncelli
d6363cd890
Merge branch 'main' into provider/infomaniak 2025-12-01 09:16:28 -05:00
Sukka
daf5a7a501
VERCEL: Implement Vercel DNS Provider (#3379) (#3542)
Fixes https://github.com/StackExchange/dnscontrol/issues/3379

Thanks to @SukkaW for adding this provider!  Even though you claimed to be "not familiar with Go at all" the new code looks excellent!  Great job!
2025-12-01 08:41:56 -05:00
Jakob Ackermann
1e67585e8f
HETZNER_V2: Add provider for Hetzner DNS API (#3837)
Closes https://github.com/StackExchange/dnscontrol/issues/3787

This PR is adding a `HETZNER_V2` provider for the "new" Hetzner DNS API.

Testing:
- The integration tests are passing.
- Manual testing:
  - `preview` (see diff for existing zone)
- `preview --populate-on-preview` (see full diff for newly created zone)
  - `push` (see full diff; no diff after push)
- `push` (see full diff; no diff after push to newly created zone --
i.e. single pass and done)

```js
var REG_NONE = NewRegistrar('none')
var DSP = NewDnsProvider('HETZNER_V2')

D('testing-2025-11-14-7.dev', REG_NONE, DnsProvider(DSP),
    A('@', '127.0.0.1')
)
```

<details>

```
# push for newly created zone
CONCURRENTLY checking for 1 zone(s)
SERIALLY checking for 0 zone(s)
Waiting for concurrent checking(s) to complete...DONE
******************** Domain: testing-2025-11-14-7.dev
1 correction (HETZNER_V2)
#1: Ensuring zone "testing-2025-11-14-7.dev" exists in "HETZNER_V2"
SUCCESS!
CONCURRENTLY gathering records of 1 zone(s)
SERIALLY gathering records of 0 zone(s)
Waiting for concurrent gathering(s) to complete...DONE
******************** Domain: testing-2025-11-14-7.dev
4 corrections (HETZNER_V2)
#1: ± MODIFY-TTL testing-2025-11-14-7.dev NS helium.ns.hetzner.de. ttl=(3600->300)
± MODIFY-TTL testing-2025-11-14-7.dev NS hydrogen.ns.hetzner.com. ttl=(3600->300)
± MODIFY-TTL testing-2025-11-14-7.dev NS oxygen.ns.hetzner.com. ttl=(3600->300)
SUCCESS!
#2: + CREATE testing-2025-11-14-7.dev A 127.0.0.1 ttl=300
SUCCESS!
Done. 5 corrections.
```
</details>

Feedback for @jooola and @LKaemmerling:
- The SDK was very useful in getting 80% there! Nice! 🎉 
- Footgun:
- The `result` values are not "up-to-date" after waiting for an
`Action`, e.g. `Zone.AuthoritativeNameservers.Assigned` is not set when
`Client.Zone.Create()` returns and the following "wait" will not update
it.
- Taking a step back here: Waiting for an `Action` with a separate SDK
call does not seem very natural to me. Does the SDK-user need to know
that you are processing operations asynchronous? (Which seems like an
implementation detail to me, something that the SDK could abstrct over.)
Can `Client.Zone.Create()` return the final `Zone` instead of the
intermediate result?
- Features missing compared to the DNS Console, in priority order:
- It is no longer possible to remove your provided name servers from the
root/apex. Use-case: dual-home/multi-home zone with fewer than three
servers from Hetzner. I'm operating one of these and cannot migrate over
until this is fixed.
- Performance regression due to lack of bulk create/modify. E.g. [one of
the test
suites](a71b89e5a2/integrationTest/integration_test.go (L619))
spends about 4.5 minutes on making creating 100 record-sets and then
another 4 minutes for deleting them in sequence again. With your async
API, these are `create 2*100 + delete 2*100 = 400` API calls.
Previously, these were `create 1 + delete 100 = 101` API calls. Are you
planning on adding batch processing again?
- Usability nits
- Compared to other record-set based APIs, upserts for record-sets are
missing. This applies to records of a record-set and the ttl of the
record-set (see separate SDK calls for the cases `diff2.CREATE` vs
`diff2.CHANGE` and two calls in `diff2.CHANGE` for updating the TTL vs
records).
- Some SDK methods return an `Action` (e.g. `Zone.ChangeRRSetTTL()`),
others wrap the `Action` in a struct (`Client.Zone.CreateRRSet()`) --
even when the struct has a single field (`ZoneRRSetDeleteResult`).

---------

Co-authored-by: "Jonas L." <jooola@users.noreply.github.com>
Co-authored-by: "Lukas Kämmerling" <LKaemmerling@users.noreply.github.com>
Co-authored-by: Tom Limoncelli <6293917+tlimoncelli@users.noreply.github.com>
2025-11-30 09:14:54 -05:00
Tom Limoncelli
f306472d5a
CHORE: Maintainer changes for OPENSRS and DIGITALOCEAN (#3849)
# Issue

The maintainers of OPENSRC and DIGITALOCEAN have indicated they would
like to step down.

@chicks-net has stepped up to take over maintenance of DIGITALOCEAN.

# Resolution

* Update the `OWNERS` file.
* Update the `providerMaintainer` value for the providers.
* Update the README file.


CC @Deraen @philhug @chicks-net

---------

Co-authored-by: Jeffrey Cafferata <jeffrey@jcid.nl>
2025-11-24 20:29:43 -05:00
Alex Trull
ca64774004
Joker: Implement DNS Provider (#3661)
Co-authored-by: Tom Limoncelli <tlimoncelli@stackoverflow.com>
2025-08-04 16:37:20 -04:00
Tom Limoncelli
8a6baa7c24 Reapply "CHORE: Remove the MSDNS provider (#3656)"
This reverts commit e9f136036f.
2025-07-09 13:07:03 -04:00
Tom Limoncelli
e9f136036f Revert "CHORE: Remove the MSDNS provider (#3656)"
This reverts commit 1ccd5eb532.
2025-07-09 13:06:42 -04:00
Tom Limoncelli
1ccd5eb532
CHORE: Remove the MSDNS provider (#3656) 2025-07-09 12:47:48 -04:00
Ishan Jain
e1830abb58
NEW PROVIDER: ADGUARDHOME (#3638) 2025-07-09 12:06:34 -04:00
Klett IT
3bdbb48164
NEW PROVIDE: FORTIGATE (#3642) 2025-07-08 08:37:19 -04:00
Jonathan Beliën
5c6325004d
Add some documentation 2025-05-18 22:47:50 +02:00
Asif Nawaz
b2ee265578
NEW PROVIDER: CentralNic Reseller (CNR) - formerly RRPProxy (#3203) 2024-12-06 17:01:42 -05:00
Takashi Takizawa
864d45290f
NEW PROVIDER: Sakura Cloud (SAKURACLOUD) (#3086)
Co-authored-by: Tom Limoncelli <tlimoncelli@stackoverflow.com>
2024-08-21 09:14:56 -04:00
Hui Hui
ce07c76fe8
Add support for huaweicloud dns (#3010)
Signed-off-by: huihuimoe <github@huihui.contact>
Co-authored-by: Tom Limoncelli <tlimoncelli@stackoverflow.com>
2024-06-17 12:04:32 -04:00
svernick
494a3f7f78
AKAMAIEDGEDNS: new maintainer: Ed Lynes (#2954)
Co-authored-by: Tom Limoncelli <tlimoncelli@stackoverflow.com>
2024-05-14 08:49:28 -04:00
svernick
27f9a5f92b
AKAMAIEDGEDNS: new maintainer: Chris Dornin (#2940)
Co-authored-by: Tom Limoncelli <tlimoncelli@stackoverflow.com>
2024-05-08 09:41:08 -04:00
PJEilers
3d570ead31
NEW DNS PROVIDER: Realtime Register (REALTIMEREGISTER) (#2741)
Co-authored-by: pieterjan.eilers <pieterjan.eilers@realtimeregister.com>
Co-authored-by: Tom Limoncelli <tlimoncelli@stackoverflow.com>
2024-01-09 10:45:59 -05:00
Pascal Mathis
961eaa7862
NEW PROVIDER: Bunny DNS (#2265) (#2760) 2024-01-06 09:19:40 -05:00
evan
afd0d76e7b
NEW REGISTRAR: Dynadot (DYNADOT) (#2753)
Co-authored-by: Tom Limoncelli <tlimoncelli@stackoverflow.com>
2024-01-02 16:40:40 -05:00
Tom Limoncelli
3b6643b12d
AZURE_PRIVATE_DNS: Rename module to conform to Go styleguide (#2697) 2023-12-06 17:29:55 -05:00
Matthew Gamble
37e21030a2
NEW PROVIDER: Azure Private DNS Zones (#2626)
Co-authored-by: Tom Limoncelli <tlimoncelli@stackoverflow.com>
2023-11-28 16:26:08 -05:00
tomf
541679386b
NEW PROVIDER: Mythic Beasts DNS (#2528)
Co-authored-by: Tom Limoncelli <tlimoncelli@stackoverflow.com>
2023-08-25 09:24:44 -04:00
Paul Dee
0d8ab975d7
CHORE: Sort OWNERS (#2166)
Co-authored-by: Tom Limoncelli <tal@whatexit.org>
2023-03-15 11:08:40 -04:00
Paul Dee
8e643c2856
New provider: Loopia DNS service provider (#2140)
Co-authored-by: Tom Limoncelli <tlimoncelli@stackoverflow.com>
2023-03-15 09:54:07 -04:00
0bf851ec06
New provider: LuaDNS (#2127) 2023-03-09 07:15:59 -08:00
Will Power
bbaee2cbcd
NAMECHEAP: New maintainer: willpower232 (#2080)
Co-authored-by: Jeffrey Cafferata <jeffrey@jcid.nl>
Co-authored-by: Tom Limoncelli <tlimoncelli@stackoverflow.com>
2023-02-19 10:55:21 -05:00
Jeffrey Cafferata
9e4deb382c
DOCS: GitHub username updated (#2011)
Co-authored-by: Tom Limoncelli <tlimoncelli@stackoverflow.com>
2023-01-29 13:04:12 -05:00
Jeffrey Cafferata
a68d07320e
GANDI_V5: Wrong directory name in OWNERS (#1922)
Co-authored-by: Tom Limoncelli <tlimoncelli@stackoverflow.com>
2023-01-09 15:03:15 -05:00
Amogh Lele
1618aceb2a
NEW PROVIDER: Netlify (#1820)
Signed-off-by: Amogh Lele <amolele@gmail.com>
2022-11-28 11:01:35 -05:00
imlonghao
d90ca157e4
PORKBUN: New provider (#1819)
Co-authored-by: Tom Limoncelli <tlimoncelli@stackoverflow.com>
2022-11-26 11:36:17 -05:00
Yuhui Xu
35818299c0
NEW PROVIDER: Gcore DNS (#1816) 2022-11-15 12:40:08 -05:00
Patrik Kernstock
fd96acbc06
Change INWX maintainer to patschi (#1692)
Co-authored-by: Tom Limoncelli <tlimoncelli@stackoverflow.com>
2022-08-11 13:17:42 -04:00
Tom Limoncelli
83a4b6a2f4
Remove ACTIVEDIRECTORY_PS (#1680) 2022-08-11 13:15:19 -04:00
MisterErwin
7865e37c8f
Add RWTH provider (#1629)
* Add RWTH provider

* fix Owners order

* Reorganize RWTH Provider

* Fix staticcheck and code style issues

Co-authored-by: Tom Limoncelli <tlimoncelli@stackoverflow.com>
2022-08-04 14:40:27 -04:00
Simen Bai
e9510da434
Domainnameshop provider (#1625)
* Added basic structure for domain name shop

* Finished proof of concept for domainnameshop

* Fixed handeling of IDNA for CNAME records

* Updated documentation notes

* Added docs

* Ran linter and vet

* Removed proxy config used for debugging

* Ran go generate

* Fixed issue with TTLs being restricted to a multiple of 60

* Ran tests, vet and linting and fixed flaws

* Fixed typo in docs

* Improved code based on feedback

* Fixed issues with TXT records not working properly

* Refactored according to new file layout proposed

* Updated documentation matrix

* Suggestions and corrections

* Corrected according to suggestions

Co-authored-by: Simen Bai <git@simenbai.no>
Co-authored-by: Tom Limoncelli <tlimoncelli@stackoverflow.com>
2022-08-01 12:01:37 -04:00
Tom Limoncelli
9416140dd0
CHORE: Update Exoscale (#1626)
* CHORE: Update Exoscale

* go mod tidy
2022-07-18 10:45:25 -04:00
Amelia Aronsohn
642fc13b2d
DNSIMPLE: Change code owner/maintainer (#1609)
Anthony delegates all tasks relating to our DNSControl DNSimple integration to me. It would be more efficient to set me as the code owner.

I am an employee of DNSimple and use DNSControl's DNSimple integration in my other projects as well.

CC @aeden in case he needs to sign off.
2022-07-09 01:12:09 -04:00
Riyadh Al Nur
6c1ba6e70b
GCLOUD: Welcome riyadhalnur as the new owner for GCLOUD (#1525)
Signed-off-by: Riyadh Al Nur <riyadhalnur@verticalaxisbd.com>
2022-06-03 10:08:48 -04:00
Tom Limoncelli
24331d564a
Release v3.16.0 (#1506)
* Release v3.16.0

* Update docs

* Update dependencies

* DOCS: Add missing AutoDNS owner
2022-05-20 15:52:15 -04:00
Brian Hartvigsen
bbecce74bd
DOCS: Update maintainers for Route53 and Cloudflare (#1501)
* Update maintainers for Route53 and Cloudflare

I'm happy to take these two over in addition to EasyName.

* Missed a volunteer request reference

Co-authored-by: Tom Limoncelli <tlimoncelli@stackoverflow.com>
2022-05-08 13:40:36 -04:00
Costas Drogos
c580bdda64
NS1: new maintainer for ns1 (#1403)
Fixes #873
2022-02-07 15:13:03 -05:00
Tom Limoncelli
dcb0e58b99
MAINT: Linting (#1380)
* MAINT: Linting

* Unsort for a smaller diff

* fix hexonet error checking
2022-01-27 15:58:56 -05:00
Hampton
ea20c13e67
NEW PROVIDER: Packetframe (#1347)
* Implement Packetframe provider

* Packetframe: Move to authorization and fix multiple TXT records

* AKAMAIEDGEDNS: fix staticcheck warnings/errors (#1346)

* downcase TLSA

* Akamai provider

* Akamai provider

* EdgeDNS provider

* AkamaiEdgeDNS provider

* AkamaiEdgeDNS provider

* AkamaiEdgeDNS provider

* AKAMAIEDGEDNS: fix staticcheck warnings/errors

Co-authored-by: Tom Limoncelli <tlimoncelli@stackoverflow.com>

* PacketframeProvider minor cleanup

* Packetframe v4 moved to production

* Packetframe Provider: Finish the rest of provider steps

* Packetframe: Make stylistic changes, update nameservers, apikey -> token

Co-authored-by: Steven Vernick <78868407+svernick@users.noreply.github.com>
Co-authored-by: Tom Limoncelli <tlimoncelli@stackoverflow.com>
2022-01-05 12:09:46 -05:00
Brian Hartvigsen
156c684be6
Initial support for easyname as registrar (#1277)
* Initial support for easyname as registrar

* DRY

Moving a bunch of the HTTP stuff into a single function for cleanliness and ease of future maintianence.

* Seperate API and Provider logic

* Updating error messages and sorting found nameservers

* Adding provider info to OWNERS and README

This also moves a few of the not-actually-DNS Providers to their own section.

* Update README.md

Co-authored-by: Tom Limoncelli <tlimoncelli@stackoverflow.com>
2021-10-04 13:01:38 -04:00
Vincent Hagen
506b6cc32f
Transip provider (#1196)
* Add initial transip provider

* Add GetNameservers to transip

* Add first try to correction function.

* Implemented corrections

* Add docs for transip

* Fix TransIP TTL updates

* Fix transip nameserver records

* Update docs/_providers/transip.md

Co-authored-by: Sven Luijten <11269635+svenluijten@users.noreply.github.com>

Co-authored-by: Sven Luijten <11269635+svenluijten@users.noreply.github.com>
2021-07-07 11:43:10 -04:00
Steven Vernick
be1f03fb75
NEW PROVIDER: AkamaiEdgeDNS (#1174)
* downcase TLSA

* Akamai provider

* Akamai provider

* EdgeDNS provider

* AkamaiEdgeDNS provider

* AkamaiEdgeDNS provider

* AkamaiEdgeDNS provider

Co-authored-by: Tom Limoncelli <tlimoncelli@stackoverflow.com>
2021-06-22 10:24:49 -04:00
Vojta Drbohlav
517b0458d6
NEW PROVIDER: DNS Made Easy (#1093)
* implement DNS Made Easy provider

* fix sandbox instructions in DNS Made Easy provider docs

* remove unnecessary blank lines and fix golint warnings

* remove unused deleteRecord method from DNSME api

* remove trailing comma in providers.json

* implement check for TXT records with double quotes for DNSME provider

* implement changing apex NS records

* rename DNSME to DNSMADEEASY

Co-authored-by: Tom Limoncelli <tlimoncelli@stackoverflow.com>
2021-03-17 23:36:42 -04:00
Julius Rickert
c883c1ac68
New provider and new registrar: hosting.de (#1041)
* Add http.net provider

* Rename httpnetProvider

* Add SSHFP capability

* Add paging for records

* Sort documentation notes alphabetically

* Add custom base URL

* Extend documentation for custom base URL

* - renamed to hosting.de
- Fix EnsureDomainExists
- GetNameservers read from NS Records

* Replaced http.net with hosting.de
Contributor Support from hosting.de

* baseURL for hosting.de in documentation
replaced %v with %w for errors
special handling for txt records using .TxtStrings

* removed last references to rc.Target
fixed Trim of last dot

* Re-engineer TXT records for simplicity and better compliance (#1063)

Co-authored-by: Tom Limoncelli <tlimoncelli@stackoverflow.com>
Co-authored-by: Oliver Dick <o.dick@hosting.de>
Co-authored-by: Oliver Dick <31733320+membero@users.noreply.github.com>
2021-03-08 19:25:55 -05:00