This is a pre-release (our first time doing one!)
THIS IS A PRE-RELEASE. DO NOT USE IN PRODUCTION. PLEASE DO TEST AND GIVE FEEDBACK ON PR #2631
The only change in this release is that TXT records are stored a new way. Instead of storing the individual segments, they are stored as one big string. The providers are now responsible for any joining, splitting, escaping, or quoting. There should be no user-visible effects.
NOTE TO MAINTAINERS OF PROVIDERS: Please test your provider. A lot changed in how TXT records are handled. Please re-run the integration tests like:
cd integrationTest/
export PROVIDER_FOO=foo # Set your ENV variables. See providers.json for the list.
go test -v -verbose -provider NAME_OF_PROVIDER
# This next line just runs the TXT tests.
go test -v -verbose -provider NAME_OF_PROVIDER -start 16 -end 17
Fix any broken tests. Post a comment if you need help or to let me know the test results.
The branch is tlim_newtxt_minimal.
PR is #2631
There are a number of "helper" functions with the suffix Func
. I'll document those more soon.
Changelog
Provider-specific changes:
- 378e114: AZURE_DNS: Fix TXT escaping (@tlimoncelli)
- 7c27318: BIND: fix TXT records with backslashes (@tlimoncelli)
- 130fbc4: GCLOUD: remove extra blank line (@tlimoncelli)
- b2dbc35: GCLOUD: support more TXT exceptions (@tlimoncelli)
- 71ef7dd: HEXONET: TXT with backslashes now work. (@tlimoncelli)
- 18b1921: ROUTE53: Improve TXT handling (@tlimoncelli)
- d25ab05: TRANSIP: Update to newer TXT code/decode funcs (@tlimoncelli)
Other changes and improvements:
- f255c18: Add backwards-compatible parser. (@tlimoncelli)
- 4f935be: Add debug printfs (@tlimoncelli)
- 3c632ea: BIND and prettyzone fixed (@tlimoncelli)
- a4b8670: Clean up GANDI_V5 txt handling (@tlimoncelli)
- 7cd01ff: Clean up rc.SetTarget error handling. (@tlimoncelli)
- 32de0f9: Comment out impossible test (@tlimoncelli)
- 99f808b: Don't test 0-length TXT records. (@tlimoncelli)
- 0a727cc: Eliminated GetTargetCombined in GANDI_V5 (@tlimoncelli)
- 891719b: Fix DO (@tlimoncelli)
- 4c2ca71: Fix GCLOUD txt records (@tlimoncelli)
- bc21df1: Fix TXT tests (@tlimoncelli)
- a2a6857: Fix backslash in TXT processing where possible (@tlimoncelli)
- 6c8ad84: Fix parse tests (@tlimoncelli)
- d16bbf5: Fixing tests (@tlimoncelli)
- 675a446: GCLOUD works (@tlimoncelli)
- b522d11: GetTargetCombined should zoneFileQuote txt data so-as not to break old code (@tlimoncelli)
- 2d4709f: Good (@tlimoncelli)
- d689795: HEDNS fix TXT records with special chars (@tlimoncelli)
- 3046eea: HETZNER Handle all TXT records better (@tlimoncelli)
- be04aa4: Harden against odd TXT chars (@tlimoncelli)
- b6acb59: More rigor in TXT testing (@tlimoncelli)
- 7812abd: NAMEDOTCOM works for all but backslash (@tlimoncelli)
- e97a48b: NEW: rfc1035.go (@tlimoncelli)
- 654fcfd: PopulateFromString is back to the original txt parser (@tlimoncelli)
- f181fc1: REFACTOR: js/djs formats should use double quotes (@tlimoncelli)
- c7ed607: REFACTOR: providers should not directly access .TxtStrings (@tlimoncelli)
- 4940628: ROUTE53 cleanups (@tlimoncelli)
- 367bb6a: ROUTE53 cleanups (@tlimoncelli)
- 0958248: ROUTE53 works on all tests (@tlimoncelli)
- 6565a96: Remove txtutil.SplitSingleLongTxt (@tlimoncelli)
- 0511f32: Simplify getZones.go (@tlimoncelli)
- 1d590a4: Update generated files for v4.7.0 (@tlimoncelli)
- 54d51dd: Update models/dnsrr.go (@tlimoncelli)
- 8e4de5c: Update pkg/diff2/compareconfig.go (@tlimoncelli)
- 0097303: Update pkg/diff2/compareconfig.go (@tlimoncelli)
- b5148b4: Update pkg/normalize/flatten.go (@tlimoncelli)
- 7064411: Update pkg/prettyzone/prettyzone.go (@tlimoncelli)
- d1a6347: cleanups (@tlimoncelli)
- 5d6f6ec: comments (@tlimoncelli)
- c7791dc: dead code elimination (@tlimoncelli)
- 1c2c207: draft! (@tlimoncelli)
- 10f06c2: fix helpers.js for txt (@tlimoncelli)
- a3c0740: fix test (@tlimoncelli)
- d27d8e4: fix tests (@tlimoncelli)
- e1abebd: fix tests (@tlimoncelli)
- fb164b4: fixed (@tlimoncelli)
- d41503f: fixup! (@tlimoncelli)
- fa097b4: fixup! (@tlimoncelli)
- f204247: fixup! (@tlimoncelli)
- f209a0a: fixup! (@tlimoncelli)
- e89922d: fixup! (@tlimoncelli)
- 2cfe33b: fixup! (@tlimoncelli)
- 746ff9a: fixup! (@tlimoncelli)
- 863db83: gandi works (@tlimoncelli)
- e112e37: gandi works (@tlimoncelli)
- 546cb60: improve encoding/decoding (@tlimoncelli)
- f0d0eb6: m (@tlimoncelli)
- 6d0cff5: merge (@tlimoncelli)
- a726ad9: more cleanups (@tlimoncelli)
- 8f4595f: more deadcode (@tlimoncelli)
- 6448fc5: move txt encode/decode to txtutil (@tlimoncelli)
- 0e8d24c: no backslash (@tlimoncelli)
- 02888d0: no txt-0 (@tlimoncelli)
- b034c66: prettyzone: add tests (@tlimoncelli)
- e4dfe52: reduce the integration tests to just the common txt values (@tlimoncelli)
- 1f15e24: reject empty txt (@tlimoncelli)
- c5b2ee1: revert to plain providers (@tlimoncelli)
- 2ec046f: sigh (@tlimoncelli)
- 544cbc4: test (@tlimoncelli)
- 3b17df6: test (@tlimoncelli)
- 7ce90fc: tmp (@tlimoncelli)
- 0c43c03: txtEncode did not handle empty or 2nd string quotes (@tlimoncelli)
- 5f7c994: update deps (@tlimoncelli)
- e462bfc: wip! (@tlimoncelli)
- f3dd7bb: wip! (@tlimoncelli)