* Switch to the new Azure sdk for go
* use codeql 1.18 as 1.17 doesn't work with azidentity
Co-authored-by: Tom Limoncelli <tlimoncelli@stackoverflow.com>
Updating github.com/akamai/AkamaiOPEN-edgegrid-golang to version 1.2.1...
Updating github.com/aws/aws-sdk-go-v2 to version 1.16.7...
Updating github.com/aws/aws-sdk-go-v2/config to version 1.15.14...
Updating github.com/aws/aws-sdk-go-v2/credentials to version 1.12.9...
Updating github.com/aws/aws-sdk-go-v2/service/route53 to version 1.21.3...
Updating github.com/aws/aws-sdk-go-v2/service/route53domains to version 1.12.8...
Updating github.com/cloudflare/cloudflare-go to version 0.45.0...
Updating github.com/mittwald/go-powerdns to version 0.6.0...
Updating github.com/tdewolff/minify/v2 to version 2.12.0...
Updating github.com/urfave/cli/v2 to version 2.11.1...
Updating golang.org/x/exp to version 0.0.0-20220722155223-a9213eeb770e...
Updating golang.org/x/net to version 0.0.0-20220728211354-c7608f3a8462...
Updating golang.org/x/oauth2 to version 0.0.0-20220722155238-128564f6959c...
Updating google.golang.org/api to version 0.90.0...
* Switch to aws-sdk-go-v2
AWS has released v2 of their SDK for Go.
See: https://aws.github.io/aws-sdk-go-v2/
One big advantage of this is no longer needing to export the
`AWS_SDK_LOAD_CONFIG=1` env var when using named profiles.
* Update integration test README
* Reenable pager601 and pager1201 integration tests for AWS Route53
* Implement intelligent batching for Route53 record changes
The AWS Route53 API for batch record changes limits the request size to
the smaller of:
- 1000 records.
- 32000 characters total for record values.
Also UPSERTs count as double (a DELETE and then a CREATE).
This commit changes how the record ChangeBatches are created to
respect these limits.
* Remove old comments
Co-authored-by: Tom Limoncelli <tlimoncelli@stackoverflow.com>
* Remove length checking from TxtNoMultipleStrings
All functions in should test for only one condition. There already is a
function that tests for long TXT records: TxtNoLongStrings.
Add calls to TxtNoLongStrings in all providers that use
TxtNoMultipleStrings, to keep functionality, except for NS1 and ClouDNS,
which allow for any TXT record length, but not for multiple strings per
TXT.
* Release v3.13.0
* Release v3.13.0
Co-authored-by: Norman Stetter <norman.stetter@zeit.de>
* First pass at moving to cloudflare-go vs hand made implementation of cloudflare's API
* Final changes to use cloudflare-go
* Fix for proxy configuration failing
Forgot to set the ID when we created a new records. This didn't fail in the integrations tests so I missed it.
* Add integration test
To prevent something like what I did from happening in the future.
* Fix bad messaging
REGRESSION and BUILD fix. dnscontrol compiles with this but I can't test the
EXOSCALE behavior to be sure it's logically sound.
The dependency was v1.19.0 but this git tag has been withdrawn and the go.mod
for that git repository contains:
retract v1.19.0 // Published accidentally.
Per <https://proxy.golang.org/github.com/exoscale/egoscale/@v/v1.19.0.info> the
timestamp for the bogus v1.19.0 dependency is 2019-10-29, which corresponds to
v0.19.0.
On 2020-02-27, the dnscontrol repo updated this dependency to v0.23.0, so it
now being v1.19.0 (== v0.19.0) is a REGRESSION.
I suggest that the maintainers purge this bogus v1.19.0 from their systems to
try to prevent it leaking in again in future.
TXT records are now handled different.
1. The raw input from dnsconfig.js is passed all the way to the provider. The provider can determine if it can or can't handle such records (auditrecords.go) and processes them internally as such.
2. The CanUseTXTMulti capability is no longer needed.
* DSPs now register a table of functions
* Use audits for txt record variations
* unit tests pass. integration fails.
* fix deepcopy problem
* rename to AuditRecordSupport
* Reduce use of TXTMulti
* Remove CanUseTXTMulti
* fix Test Skip
* fix DO
* fix vultr
* fix NDC
* msdns fixes
* Fix powerdns and cloudflare
* HEDNS: Fix usage of target field to resolve TXT handling (#1067)
* Fix HEXONET
Co-authored-by: Robert Blenkinsopp <robert@blenkinsopp.net>
Co-authored-by: Jakob Ackermann <das7pad@outlook.com>
FYI: This is an experimental feature. It depends on an external module that may not be supported in the long term.
* PoC: JS formatter
* No default value for output file
* update deps
go get -u gopkg.in/yaml.v2
go get -u google.golang.org/api
go get -u golang.org/x/oauth2
go get -u golang.org/x/net
go get -u github.com/urfave/cli/v2
go get -u github.com/miekg/dns
go get -u github.com/digitalocean/godo
go get -u github.com/babolivier/go-doh-client
go get -u github.com/aws/aws-sdk-go
go get -u github.com/DisposaBoy/JsonConfigReader
go get -u github.com/Azure/azure-sdk-for-go
* go mod tidy
* js_test.go: Do a zonefile test if $TESTNAME/parse_tests/{zonefile} exists.
* Add parse_tests zone files for all the tests that make sense.
* js_test.go: Addd the test datafile when displaying failures.
* 007-importTransformTTL.js: Was referring to a non-existent domain.
* 012-duration.js: Had duplicate DNS records.
* 029-dextendsub.js: Move CF-related tests to separate test.
* validate.go: Report non-existent domains as an error.
* cloudflareProvider.go: newCloudflare should not talk to the API.
* VULTR: Update govultr to v1.0.0 (fixes#892) (#897)
* go get -u github.com/hexonet/go-sdk
* Fix HEXONET providers.json entry
* providers.json: json commma
* providers.json: fmtjson
* HEXONET: Implement get-zones. Fix tests and docs.
* fixup!
* Update azure test failures
* Move version info into its own package
* Use new version system
* Update dependencies
go get -u github.com/Azure/azure-sdk-for-go
go get -u github.com/Azure/go-autorest/autorest/azure/auth
go get -u github.com/aws/aws-sdk-go
go get -u golang.org/x/net
go get -u google.golang.org/api
* go tidy
* Add initial dns.he.net provider support
* Update to new IncrementalDiff interface
* Fix ListZones output for `all` query on `get-zones`
* Refactor authentication code for 2FA with better error checking
* Fix integration test and refactor zone record retrieval
* Add option to use `.hedns-session` file to store sessions between runs
* Add comment on `session-file-path`
* Add integration test for TXT records longer than 255 characters
* Add additional checks for expected responses, and better 2FA error checking
* Minor documentation changes
* Revert "Add integration test for TXT records longer than 255 characters"
This reverts commit 657272db
* Add note on provider fragility due to parsing the web-interface
* Resolve go lint issues
* Clarify security warnings in documentation
* adds initial support for INWX
* adds all features to the INWX provider
* allows domain for tests in creds.json for INWX
* runs go generate to update docs for INWX
* fixes formatting with gofmt
* changes goinwx to github.com/nrdcg/goinwx v0.8.0
* simplifies inwx sandbox check
* changes inwx unknown key error to a warning
* adds models.PostProcessRecords for inwx records
* replaces strings.TrimRight with [:-1] to remove final dot for inwx
* adds a comment about the domain creds.json key for the inwx provider
* removes warning for invalid creds.json keys in the inwx provider
* adds TOTP calculation support for inwx
* adds comments to inwxProvider
* improves INWX error messages
* adds additional documentation about the TOTP support for INWX
* adds inwx documentation
* bumps goinwx to 0.8.1 to fix the inwx API
* Update DNSimple-go to 0.61
This adds support for contexts, exports all return values, Adds ZoneRecordAttributes to fix support for blank record names.
* Add UserAgent to client
* Update Integration test for DNSimple
We now support Empty TXT, however we do not support Null MX yet.
* Bump to dnsimple-go 0.62 & use dnsimple.String()
* go get -u github.com/Azure/azure-sdk-for-go
* github.com/aws/aws-sdk-go upgrade => v1.30.11
* github.com/digitalocean/godo upgrade => v1.35.1
* go get -u github.com/golang/protobuf
Final changes before V3.0.0 release
* Remove old Gandi. Fixes#575
* Many cleanups
* go mod tidy && go mod vendor
* integration_test.go: Output subtest name
* Cleanups
* integration_test.go: Description should include sub-test name
* Add a whitespace test to js/parse_tests/017-txt.js
* Cloudflare strips whitespace from end of TXT
* Fixes https://github.com/StackExchange/dnscontrol/issues/700
* Whitespace at end of TXT records
Name.com strips the whitespace from the end of a TXT record. There's
nothing we can do other than file a bug.
* Fixes https://github.com/StackExchange/dnscontrol/issues/701
* go get -u github.com/aws/aws-sdk-go
* get -u github.com/tiramiseb/go-gandi
* go get -u google.golang.org/api
Co-authored-by: Tom Limoncelli <tlimoncelli@stackoverflow.com>
* Add tests for get-zones
* fix CAA, SSHFP, TLSA and other bugs
* New format for get-zones: "djs" which is js but uses "disco commas"
* Print diffs using github.com/andreyvit/diff
Co-authored-by: Tom Limoncelli <tlimoncelli@stackoverflow.com>
* Refactor tests into "groups", each with its own filter (not/only/requires) to select which providers are appropriate.
* Test driver code is now a lot more simple and clear.
* Add support for not(), only(), and requires() as a way to select/reject providers for a test.
* Add docs explaining how to add tests
* Logging messages are much cleaner now, especially when tests are skipped.
* -start and -end now refer to test groups, not individual tests. Log messages list the group numbers clearly.
* Add stringer for Capabilities
* Change the order of the tests so that simple tests are first
* Removed knownFailures from providers.json
* fmtjson providers.json
Co-authored-by: Tom Limoncelli <tlimoncelli@stackoverflow.com>
* Update Exoscale provider
* Update vendor folder for exoscale/egoscale v0.23.0
* Fix typos and SRV parsing
* Add . at the end of SRV records for exoscale
* github.com/miekg/dns
* Greatly simplify the logic for handling serial numbers. Related code was all over the place. Now it is abstracted into one testable method makeSoa. This simplifies code in many other places.
* Update docs/_providers/bind.md: Edit old text. Add SOA description.
* SOA records are now treated like any other record internally. You still can't specify them in dnsconfig.js, but that's by design.
* The URL for issue 491 was wrong in many places
* BIND: Clarify GENERATE_ZONEFILE message
* Update to latest dnsimple-go
* Implement GetZoneRecords
* Better naming
* Return NS records in GetZoneRecords
* Be clearer with the comment.
As an employee I confirm this is exactly how this works. No guessing needed.
* Respect that Puncycode encoding can blow up
* Implement ListZones and the ZoneLister Interface
* Categorize DNSIMPLE
* Update docs with go generate
* vendor modules
* Don't store intermediary Zone data
* Add GetZoneRecords to DNSProvider interface
* dnscontrol now uses ufave/cli/v2
* NEW: get-zones.md
* HasRecordTypeName should be a method on models.Records not models.DomainConfig
* Implement BIND's GetZoneRecords
* new WriteZoneFile implemented
* go mod vendor
* Update docs to use get-zone instead of convertzone
* Add CanGetZone capability and update all providers.
* Get all zones for a provider at once (#626)
* implement GetZoneRecords for cloudflare
* munge cloudflare ttls
* Implement GetZoneRecords for cloudflare (#625)
Co-authored-by: Craig Peterson <192540+captncraig@users.noreply.github.com>