From 56e08b9202ad31592cbebfa743388cbe1328da4e Mon Sep 17 00:00:00 2001 From: Tom Limoncelli Date: Thu, 11 May 2017 01:02:57 -0400 Subject: [PATCH 1/7] Add CF aliases --- docs/_providers/cloudflare.md | 31 +++++++++++++++++++++++++++++++ js/helpers.js | 7 +++++++ 2 files changed, 38 insertions(+) diff --git a/docs/_providers/cloudflare.md b/docs/_providers/cloudflare.md index c36f99709..b98a55f44 100644 --- a/docs/_providers/cloudflare.md +++ b/docs/_providers/cloudflare.md @@ -30,6 +30,37 @@ Domain level metadata availible: Provider level metadata availible: * ip_conversions +Note: Aliases are pre-defined as follows: + +{% highlight json %} +var CF_PROXY_OFF = {'cloudflare_proxy': 'off'}; // Default/off. +var CF_PROXY_ON = {'cloudflare_proxy': 'on'}; // Sites safe to proxy. +var CF_PROXY_FULL = {'cloudflare_proxy': 'full'}; // Sites safe to railgun. +var SET_PROXY_DEFAULT_TRUE = CF_PROXY_ON; // Turn on CF proxy for entire domain. +var SET_PROXY_DEFAULT_FALSE = CF_PROXY_OFF; // basically a no-op. +{% endhighlight %} + +Thus metadata items can be used in a more readable way: + +{% highlight json %} +D("example.tld", REG_NAMECOM, DnsProvider(CFLARE), + A("www1","1.2.3.11", CF_PROXY_ON), + A("www2","1.2.3.12", CF_PROXY_OFF), // default is OFF, this is a no-op. +); +{% endhighlight %} + +or simply: + +{% highlight json %} +D("example.tld", REG_NAMECOM, DnsProvider(CFLARE), + SET_PROXY_DEFAULT_TRUE, // Enable CF proxy for all items: + A("www1","1.2.3.11"), + A("www2","1.2.3.12"), + A("www3","1.2.3.13", CF_PROXY_OFF), // Except this one! +); +{% endhighlight %} + + ## Usage Example javascript: diff --git a/js/helpers.js b/js/helpers.js index a87711fbb..e8e214c9d 100644 --- a/js/helpers.js +++ b/js/helpers.js @@ -303,3 +303,10 @@ function num2dot(num) } return d; } + +// Cloudflare aliases: +var CF_PROXY_OFF = {'cloudflare_proxy': 'off'}; // Default/off. +var CF_PROXY_ON = {'cloudflare_proxy': 'on'}; // Sites safe to proxy. +var CF_PROXY_FULL = {'cloudflare_proxy': 'full'}; // Sites safe to railgun. +var SET_PROXY_DEFAULT_TRUE = CF_PROXY_ON; // Turn on CF proxy for entire domain. +var SET_PROXY_DEFAULT_FALSE = CF_PROXY_OFF; // basically a no-op. From 90caee805495201d7cf4f86f067524dd8ab51fda Mon Sep 17 00:00:00 2001 From: Tom Limoncelli Date: Thu, 11 May 2017 07:02:52 -0400 Subject: [PATCH 2/7] go generate --- js/static.go | 83 +++++++++++++++++++++++++++------------------------- 1 file changed, 43 insertions(+), 40 deletions(-) diff --git a/js/static.go b/js/static.go index e3ca35c6d..880082d54 100644 --- a/js/static.go +++ b/js/static.go @@ -190,48 +190,51 @@ var _escData = map[string]*_escFile{ "/helpers.js": { local: "js/helpers.js", - size: 7758, + size: 8151, modtime: 0, compressed: ` -H4sIAAAAAAAA/7wZbW/bvPG7f8U9AlZLi6q8tM0GuR7mNemDYokbJO4WwDACRqJttnoDSTlPVji/fTiS -kijJblJgXT+kJnnvd7w7npxSUBCSs0g6o8FgQzhEebaEMXwfAABwumJCcsJFCPOFr/biTNwVPN+wmLa2 -85SwTG0MtoZWTJekTOSErwSMYb4YDQbLMoskyzNgGZOMJOw/1PU0sxbnfdx/IEFXClxvR1q4niBbS5Qp -fbiuWLkZSakvHwvqp1QSz4jDluDipleLhysYj8G5nEy/TC4czWir/qLunK5QGSQXgiKqUEL11wckHqq/ -RkTUPmg0DopSrF1OV97IeEKWPFOEesKfZeLKmMNtOGkelgLgKhXypTqA8XgMw/z+K43k0INXr8AdsuIu -yrMN5YLlmRgCyzQNz3IKbgRtQBjDMucpkXdSujvOvY5pYlH8vGlaTtfWiUXxnHUy+nCmQkIbpravVwe4 -QmzJUgOFzU8j1fctHkc5j0U4X/gYiVdNIOKpibTZ7CKEI19RFJSjJcL5YtsWruB5RIU4I3wl3NQ3wWsb -+/AQLQuURGtI85gtGeU++pJJYAJIEAQtWEM5hIgkCQI9MLk2dG1Awjl5DCsBUKWSC7ahyaMNpYMDXcFX -VLHMZK4MERNJaki8G3cBEx8NdzdtBUwVN65Rb1SfbIEmgtb4ExRqBzJawMW4+aoCsk+7bcf510Vtyhbg -dh/jz0rPHZzvAvqHpFlsRA9QdT/ta2BjyTXPH8D59+R6+mn6e2gkqb2n80aZibIoci5pHIJzANW9hANw -QAes2jd8dVw3emwHg8NDOOvGdAgfOCWSAoGz6Y2hE8AXQUGuKRSEk5RKygUQUYUxkCxG4UTQxGWPsFFQ -3V2tznj/zdKC1k5jMIajEbD3dhIOEpqt5HoE7ODAq63X8qMFPWcL33Lots/gBBkQvipTmsk2dcs5CJ3C -GGrAOVs0Zt1zG5vcpdOQLjAmARkQ44/zj5MvF7MbMGlKAAFBJeTLSvWGM8gcSFEkj+pHksCylCWnVf0K -kN453np1kWXeEH9gSQJRQgkHkj1CwemG5aWADUlKKpCh7UmDVZXYfh3c7atnTWn7UpnCtqlX1UJtl9ns -wt14IdxQqeJwNrtQLHWU6ji0ZNbg7fxcHbrcFoIHUiYwhk2b31mdgltsKx9U7NWeviKWwWzcPTLELUME -TcbviKKFsWqzU9WvKUmp48ORBwiSiQ95mak4OYKUkkxAnGdDCdic5dwUIar9bRWUwEbOclnFHTdEEJ0k -ia1dr1Ew6F7VJFQdQkVWNQllFtMly2g8bO5qAwGvj+3e5zlrWRVzjjIsMJdoWm03TrSIrKhK7qVJoSII -Aq9RysABK+w8hSkNxrCiskZrYtQ/8Z6XlcTxteLrxr4zcfxKGqTstSWdTF4sbA36i+WdTH4s8sWnyY3p -dQlfUfmc3A08aIRfKTwyM9Ib6ToaoAofppPL859QwYL/9SooZj9UARPj7ewn5K+hf730s9vZc7Jf3mph -Cs5yzuTjy3SosKBG6ygTrWn0DauKO8fO7EZylq18wN/TMr3H7rfZX/hNQfXBubwF+kdBIylgHxfHe6HJ -3rzAZKprUsWv4mN1hrY9UTTHB9t5PnRMWpuosYD6JZSOAh8WIvKaxyhpuih4r5GqtZWkVTPqKlQrRe/o -zVoEOm2Z4vebhpizhWKNVd5rN8sNrwMHXteeAeeAHTj4WsESFeWc00iqhtfxrJbWjq3pz2Sm6f8tLU1/ -nJNQ8Mnl+c359b/Or20FbGE7AB2hn6mddu1Xcdd+QitSofl/uyu2mle65CQTuLyT5D4xYw1MSch/Pk/y -hxCOfViz1TqEEx+7/X8QQUN4s/BBH7+tjt+p409XIZwuFpqMeig6x/AEJ/AEb+BpBG/hCd7BE8ATnDoD -7aCEZVQ3ogM7KscYk/AeOkLu6kUVfAHjLmzd2SOAkg7GwIpA/RzVt0gtW5FuvUT1YSfKK1p3QUoKDeLX -/mLe92oSUaYncS5d5m294GvOMtfx7XjHZ+NuwhWm5j7qXRFLKfRIrRYuWorhxg9UU8d95QzNWj1c/88U -NMQtFZUU+5XEp/QY5ua85lkESf7g+f1tDMhm30g/sAysfuvRoAo+M2bLH4wO8ASOh2qgDEZVDWjOR+BU -771Pl1efr2d3s+vJ9Obj5+tLfakSgpbSUdg8Iusr+HIkX8rkRYlBTxsjfNi2ik6XleOD83enJl+bVf/7 -PuxcoWHYzRe2lN524bUKBErbdjinkXmgSZn0fayNePXl+vdz1zKQ3jAKxsE/KS2+ZN+y/CGDMSxJImiV -bD/f9ZDrvT34kpe0lRG7tUH4QhK+q4rsfCwr4JF6L+99KjdtQlU4+68lhGnPBm1XqrFor/IYFphtlybp -qypr2iQiRJlSTI4kjjkVIgA9kpXAZFAniqazck0tsmU3ZJsra2D6w24Mv+/2FHd/afIxHkL74dx0ampo -akatZvq7ewYa04jFFO6JoDHkmR4gV/Cv4WNnEir0JBTf/LqbACLUquoHGtTPO6eeCNuafCpYbbkQPn2E -y9uGsra8ckelWG1w23e9eNLNmIqYPdEE1hwL4eZs0Tp72TAWUpfTyEq88BNTUdDqV9FUpw011BKqMxd9 -BKV7UAPDq1dgDX2bg25NqiW2cFvfGyzUPuK2t1XPdDE99Qa6L4fqWMvcoVR9SWm+Dd06O6yHNKu4QDfu -JNy3QpRnIsc2KF+5zXz5cu9g2fHrubIPjnvzjRUFy1a/eU5XlZ31Nw7MiLj6FBW1P7ZwGo10KmYFNF97 -6iIlYMnzFNZSFuHhoZAk+pZvKF8m+UMQ5ekhOfzr8dG7v7w9Ojw+OT49PcKcvmGkQvhKNkREnBUyIPd5 -KRVOwu454Y+H9wkrTPwFa5la5fXKjXPpDayBNYwhzmUgioRJdxgM21q46t9BPD9aeH8+eXfqHeDieOFZ -q5PW6s3C63xjqtqZMq0YsyWu1PSsHp559odNxdtpfTSsIkm/bRW1PkpWpp3UG+vs/KeTd6c7CtQb7KT/ -pvLK69f6flgjPBQRLolcB8skzznyPEQ9m/CwqMMBDIMhHEC8Y9wXo0n+GwAA//9DCRFRTh4AAA== +H4sIAAAAAAAA/7xZbW/juPF/708xJ+C/lv5R5CR7mxbyuaibxIdFEydInDaFYRiMRNvclUSBpJJLF85n +L/ggiZLsTRbodl9kLXE485sHzgxHTsExcMFIJJxhr/eEGEQ0W8EIvvUAABheEy4YYjyE+cJX7+KML3NG +n0iMG69pikimXvS2hleMV6hIxJitOYxgvhj2eqsiiwShGZCMCIIS8m/selpYQ/I+6d9B0EYhn7dDDa4D +ZGtBmeLn21KUm6EU++Ilx36KBfIMHLICV770KnjyCUYjcK7G0/vxpaMFbdVfqTvDa6mMZBeCYqq2hOqv +D5J5qP4aiFL7oNY4yAu+cRlee0PjCVGwTDHqgD/P+I0xh1tL0jIsBcBVKtCVWoDRaAR9+vgFR6LvwYcP +4PZJvoxo9oQZJzTjfSCZ5uFZTpEvgiYhjGBFWYrEUgh3x7rXMk3M8x83TcPp2joxz9+yToafz1VIaMNU +9vWqAFcbG1gqorD+aVB928rliLKYh/OFLyPxpg5EuWoibTa7DOHIVxw5ZtIS4XyxbYLLGY0w5+eIrbmb ++iZ4bWMPBtKygFG0gZTGZEUw86UviQDCAQVB0KA1nEOIUJJIomciNoavTYgYQy9hCUCqVDBOnnDyYlPp +4JCuYGusRGaCKkPESKCKUp6NZUD4xEh300bAlHHjGvWG1coWcMJxtX8sQe3YLC3gyrj5ogKyy7tpx/mX +RWXKBuF2n+BrpecOycsA/yFwFhvogVTdT7sa2LvEhtFncP45vp1+nv4eGiSV93TeKDJe5DllAschOAdQ +nks4AAd0wKr3Rq6O61qPba83GMB5O6ZDOGMYCQwIzqd3hk8A9xyD2GDIEUMpFphxQLwMY0BZLMHxoI7L +DmOjoDq7Wp3R/pOlgVZOIzCCoyGQ3+wkHCQ4W4vNEMjBgVdZr+FHi3pOFr7l0G1XwIkUgNi6SHEmmtwt +50jqFEZQEc7JojbrntNY5y6dhnSBMQnIkBh/XEzG95ezOzBpigMCjgXQVal6LRkEBZTnyYv6kSSwKkTB +cFm/AsnvQp56dZAFrZk/kySBKMGIAcpeIGf4idCCwxNKCsylQNuTZldZYrt1cLev3jSl7UtlCtumXlkL +tV1ms0v3yQvhDgsVh7PZpRKpo1THoYVZkzfzc7noMhsEC4RIYARPTXnnVQpuiC19UIpX7/QRsQxm792D +IW4YIqgzfguKBmPVZqesX1OUYseHIw8kScbPaJGpODmCFKOMQ0yzvgDZnFFmihDW/rYKSmBvzqgo444Z +JnI7ShJbu06jYLZ7ZZNQdgglW9UkFFmMVyTDcb8+qzUFHB7bvc9b1rIq5lxiWMhconk13TjWEEleltwr +k0J5EARerZShA5LbeUqmNBjBGotqWx2j/on3NlYUx7dKrhv7ztjxSzSSs9dEOh6/G2xF+pPxjsffh3z5 +eXxnel3E1li8hbumB73hZ4KXwgx6g66lgVThbDq+uvgBFSz6n6+CEvZdFWRifJj9AP6K+uejnz3M3sJ+ +9aDB5IxQRsTL+3Qod0G1raVMtMHRV1lV3LnszO4EI9naB/l7WqSPsvut3y/8uqD64Fw9AP4jx5HgsE+K +473TZB/fYTLVNaniV8qxOkPbnhKa44PtPB9aJq1MVFtA/eJKRy4vFjzy6ssoqrso+E1vKp+tJK2aUVdt +tVL0jt6swaDVlil5v2iKOVko0bLKe81muZZ14MBh5RlwDsiBI28rskRFlDEcCdXwOp7V0tqxNf2RzDT9 +n6Wl6fdzkgQ+vrq4u7j9x8WtrYANtkXQAv1G7bRrv4q75hVasQrN/9tdsVXf0gVDGZePS4EeEzPWkClJ +yp/PE/ocwrEPG7LehHDiy27/b4jjED4ufNDLv5bLn9Ty55sQThcLzUZdFJ1jeIUTeIWP8DqEX+EVPsEr +wCucOj3toIRkWDeiPTsqRzIm4TdogdzViyr6HEZt2qqzlwQKHYyA5IH6OaxOkXpsRLp1E9WLrSgveS2D +FOWaxK/8Rbxv5SSiSE9iKlzibb3gCyWZ6/h2vMtr427G5U4tfdg5IpZS0iOVWvKhoZh88R3V1HJXOcOz +Uk8+/9cUNMwtFRWK/UrKq/QI5ma9kpkHCX32/O5rGZD1e4O+ZxlY/dajQRV8ZsxGn40O8AqOJ9WQGIyq +mtCsD8Ep73ufr26ub2fL2e14eje5vr3ShypB0lI6CutLZHUE37/JFyJ5V2LQ08ZIXmwbRactyvHB+atT +sa/Mqv9967eOUD9s5wsbpbddeI0CIdE2Hc5wZC5oQiRdH2sj3tzf/n7hWgbSL4yCcfB3jPP77GtGnzMY +wQolHJfJ9nrZ2Vy927NfsAI3MmK7NnCfC8R2VZGdl2VFPFT35b1X5bpNKAtn97YkaZqzQduVaizaqTxG +hMy2K5P0VZU1bRLivEixTI4ojhnmPAA9khVARFAlirqzck0tsrEbtvWRNTTdYbcMv2/2FHd/afJlPIT2 +xbnu1NTQ1IxazfR39ww0xhGJMTwijmOgmR4gl/SHMGlNQrmehMo7v+4mAHH1VPYD9dbrnVNPSduYfCpa +bbkQPk/g6qHmrC2v3FEqVhnc9l0nnnQzpiJmTzSBNceSdHOyaKy9bxgLqctwZCVe+IGpKGj1y2iq0oYa +anHVmfPuBqV7UBHDhw9gDX3rhXZNqhBbexvfG6yt3Y3bzqtqpivTU2eg+36qlrXMGUrVl5T629CDs8N6 +kmcZF9KNOxl3rRDRjFPZBtG1W8+Xr/YOlh2/miv74Lh3X0mek2z9i+e0VdlZf+PAjIjLT1FR82MLw9FQ +p2KSQ/21pypSHFaMprARIg8HAy5Q9JU+YbZK6HMQ0XSABn8+Pvr0p1+PBscnx6enRzKnPxFUbviCnhCP +GMlFgB5pIdSehDwyxF4GjwnJTfwFG5Fa5fXGjanwetbAGkYQUxHwPCHC7Qf9phau+ncQz48W3v+ffDr1 +DuTD8cKznk4aTx8XXusbU9nOFGkpmKzkk5qeVcMzz/6wqWQ7jY+GZSTpu63i1t2SFWkr9cY6O//fyafT +HQXqo+yk/6LyyuGhPh/WCE9ChCskNsEqoZRJmQOpZx0eFnc4gH7QhwOId4z7YhMKcJbQIl4liGFACUEc +81B9Cj6bLG9urx/+tbyeTGSp6EcV4TJn9I+Xfgh9ulr1t0MluJ7jDuhqFbR4TPezyEoOiscdEZgDRyss +k5OiavGa3F9e7uW2KpJE8+vwYogk6yLT3O4uZoadmbgvZ7f3FzCyIQ+r+xXN4GyiwejSlgnC6mH0boaT +8eVdk+Nkolg+Ik5kkXsBBBk9pHnQ+08AAAD//5rwOkTXHwAA `, }, From 806621e11510d29a641bc93d2455902808c7cb06 Mon Sep 17 00:00:00 2001 From: Tom Limoncelli Date: Mon, 15 May 2017 16:28:26 -0400 Subject: [PATCH 3/7] fixup! --- js/helpers.js | 15 ++++++--- js/static.go | 86 +++++++++++++++++++++++++-------------------------- 2 files changed, 53 insertions(+), 48 deletions(-) diff --git a/js/helpers.js b/js/helpers.js index e8e214c9d..ae5de6584 100644 --- a/js/helpers.js +++ b/js/helpers.js @@ -305,8 +305,13 @@ function num2dot(num) } // Cloudflare aliases: -var CF_PROXY_OFF = {'cloudflare_proxy': 'off'}; // Default/off. -var CF_PROXY_ON = {'cloudflare_proxy': 'on'}; // Sites safe to proxy. -var CF_PROXY_FULL = {'cloudflare_proxy': 'full'}; // Sites safe to railgun. -var SET_PROXY_DEFAULT_TRUE = CF_PROXY_ON; // Turn on CF proxy for entire domain. -var SET_PROXY_DEFAULT_FALSE = CF_PROXY_OFF; // basically a no-op. + +// Meta settings for individual records. +var CF_PROXY_OFF = {'cloudflare_proxy': 'off'}; // Proxy disabled. +var CF_PROXY_ON = {'cloudflare_proxy': 'on'}; // Proxy enabled. +var CF_PROXY_FULL = {'cloudflare_proxy': 'full'}; // Proxy+Railgun enabled. +// Per-domain meta settings: +// Proxy default off for entire domain (the default): +var CF_PROXY_DEFAULT_OFF = {'cloudflare_proxy_default': 'off'}; +// Proxy default on for entire domain: +var CF_PROXY_DEFAULT_ON = {'cloudflare_proxy_default': 'on'}; diff --git a/js/static.go b/js/static.go index 880082d54..97d5a54f1 100644 --- a/js/static.go +++ b/js/static.go @@ -190,51 +190,51 @@ var _escData = map[string]*_escFile{ "/helpers.js": { local: "js/helpers.js", - size: 8151, + size: 8291, modtime: 0, compressed: ` -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 +LONCbuNOwV0vRDTjVLZBdOXW8+WrvYNlx6/myj447t1XkuckW/3mOW1TdtbfODAj4vJTVNT82MJwNNSp +mORQf+2pihSHJaMprIXIw8NDLlD0lW4wWyb0KYhoeogO/3x89OFPvx8dHp8cn54eyZy+Iahk+II2iEeM +5CJAj7QQiichjwyx58PHhOQm/oK1SK3yeuPGVHg9a2ANI4ipCHieEOH2g37TClf9G8Szo7n3/ycfTr2B +fDiee9bTSePp/dxrfWMq25kiLRWTpXxS07NqeObZHzaVbqfx0bCMJH23VdK6LFmRtlJvrLPz/518ON1R +oN7LTvovKq8cHOjzYY3wJES4QmIdLBNKmdR5KO2sw8OSDgPoB30YQLxj3BebUIBPCS3iZYIYBpQQxDEP +9bwACzUNFzI7KIwki8mGxAVKym8Rgfpo/OlicXN7/fCvxfXFhSwq/agSucgZ/fbcD6FPl8v+dqggyiZC +voaYcNmZxG0xk/1SslKIJQZnu6Rc3F9e7pWzLJJESyqlDG4RSVZFVkuTK5gdlJ+DbHeEvdoGM6Smy6Wu +epkg1WcBcK05thc2AZpR/16vLQxf7b0dWrOu0n1qdnu1oUV6t/efAAAA//8jBMkCYyAAAA== `, }, From b620121dcecff342e55e438979663acca61f83e0 Mon Sep 17 00:00:00 2001 From: Tom Limoncelli Date: Tue, 16 May 2017 15:55:51 -0400 Subject: [PATCH 4/7] Update alias examples in cloudflare doc --- docs/_providers/cloudflare.md | 78 +++++++++++++++++++++-------------- 1 file changed, 46 insertions(+), 32 deletions(-) diff --git a/docs/_providers/cloudflare.md b/docs/_providers/cloudflare.md index b98a55f44..246816f98 100644 --- a/docs/_providers/cloudflare.md +++ b/docs/_providers/cloudflare.md @@ -22,57 +22,72 @@ username and access token: ## Metadata Record level metadata availible: - * cloudflare_proxy ("on", "off", or "full") + * cloudflare_proxy ('on', 'off', or 'full') Domain level metadata availible: - * cloudflare_proxy_default ("on", "off", or "full") + * cloudflare_proxy_default ('on', 'off', or 'full') Provider level metadata availible: * ip_conversions -Note: Aliases are pre-defined as follows: +What does on/off/full mean? + + * "off" disables the Cloudflare proxy + * "on" enables the Cloudflare proxy (turns on the "orange cloud") + * "full" is the same as "on" but also enables Railgun. DNSControl will prevent you from accidentally enabling "full" on a CNAME that points to an A record that is set to "off", as this is generally not desired. + +**Aliases:** + +To make configuration files more readable and less prone to typos, +the following aliases are pre-defined: {% highlight json %} -var CF_PROXY_OFF = {'cloudflare_proxy': 'off'}; // Default/off. -var CF_PROXY_ON = {'cloudflare_proxy': 'on'}; // Sites safe to proxy. -var CF_PROXY_FULL = {'cloudflare_proxy': 'full'}; // Sites safe to railgun. -var SET_PROXY_DEFAULT_TRUE = CF_PROXY_ON; // Turn on CF proxy for entire domain. -var SET_PROXY_DEFAULT_FALSE = CF_PROXY_OFF; // basically a no-op. +// Meta settings for individual records. +var CF_PROXY_OFF = {'cloudflare_proxy': 'off'}; // Proxy disabled. +var CF_PROXY_ON = {'cloudflare_proxy': 'on'}; // Proxy enabled. +var CF_PROXY_FULL = {'cloudflare_proxy': 'full'}; // Proxy+Railgun enabled. +// Per-domain meta settings: +// Proxy default off for entire domain (the default): +var CF_PROXY_DEFAULT_OFF = {'cloudflare_proxy_default': 'off'}; +// Proxy default on for entire domain: +var CF_PROXY_DEFAULT_ON = {'cloudflare_proxy_default': 'on'}; {% endhighlight %} -Thus metadata items can be used in a more readable way: +The following example shows how to set meta variables with and without aliases: {% highlight json %} -D("example.tld", REG_NAMECOM, DnsProvider(CFLARE), - A("www1","1.2.3.11", CF_PROXY_ON), - A("www2","1.2.3.12", CF_PROXY_OFF), // default is OFF, this is a no-op. +D('example.tld', REG_NAMECOM, DnsProvider(CFLARE), + A('www1','1.2.3.11', CF_PROXY_ON), // turn proxy ON. + A('www2','1.2.3.12', CF_PROXY_OFF), // default is OFF, this is a no-op. + A('www3','1.2.3.13', {'cloudflare_proxy': 'on'}) // why would anyone do this? ); {% endhighlight %} -or simply: - -{% highlight json %} -D("example.tld", REG_NAMECOM, DnsProvider(CFLARE), - SET_PROXY_DEFAULT_TRUE, // Enable CF proxy for all items: - A("www1","1.2.3.11"), - A("www2","1.2.3.12"), - A("www3","1.2.3.13", CF_PROXY_OFF), // Except this one! -); -{% endhighlight %} - - ## Usage Example javascript: {% highlight js %} -var REG_NAMECOM = NewRegistrar("name.com","NAMEDOTCOM"); -var CFLARE = NewDnsProvider("cloudflare.com","CLOUDFLAREAPI"); +var REG_NAMECOM = NewRegistrar('name.com','NAMEDOTCOM'); +var CFLARE = NewDnsProvider('cloudflare.com','CLOUDFLAREAPI'); -D("example.tld", REG_NAMECOM, DnsProvider(CFLARE), - A("test","1.2.3.4"), - A("www","1.2.3.4", {cloudlfare_proxy:"on"}), - ALIAS("@","test.example.tld",{cloudflare_proxy:"on"}) +// Example domain where the CF proxy abides by the default (off). +D('example.tld', REG_NAMECOM, DnsProvider(CFLARE), + A('proxied','1.2.3.4', CF_PROXY_ON), + A('notproxied','1.2.3.5'), + A('another','1.2.3.6', CF_PROXY_ON), + ALIAS('@','www.example.tld.', CF_PROXY_ON), + CNAME('myalias','www.example.tld.', CF_PROXY_ON) +); + +// Example domain where the CF proxy default is set to "on": +D('example2.tld', REG_NAMECOM, DnsProvider(CFLARE), + CF_PROXY_DEFAULT_ON, // Enable CF proxy for all items unless otherwise noted. + A('proxied','1.2.3.4'), + A('notproxied','1.2.3.5', CF_PROXY_OFF), + A('another','1.2.3.6'), + ALIAS('@','www.example2.tld.'), + CNAME('myalias','www.example2.tld.') ); {%endhighlight%} @@ -84,5 +99,4 @@ DNSControl depends on a Cloudflare Global API Key that's available under "My Set If a domain does not exist in your CloudFlare account, DNSControl will *not* automatically add it. You'll need to do that via the -control panel manually or via the command `dnscontrol create-domains` --command. +control panel manually or via the `dnscontrol create-domains` command. From 955ff41230c9d7650ec7b62f501c638e55104b50 Mon Sep 17 00:00:00 2001 From: Tom Limoncelli Date: Thu, 25 May 2017 20:42:30 -0400 Subject: [PATCH 5/7] Update convertzone docs --- cmd/convertzone/README.md | 2 +- docs/getting-started.md | 2 +- docs/migrating.md | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/cmd/convertzone/README.md b/cmd/convertzone/README.md index cd00ffda2..9f2d30c36 100644 --- a/cmd/convertzone/README.md +++ b/cmd/convertzone/README.md @@ -5,7 +5,7 @@ Build the software and install in your personal bin: ```cmd -$ cd misc/convertzone/ +$ cd cmd/convertzone $ go build $ cp convertzone ~/bin/. ``` diff --git a/docs/getting-started.md b/docs/getting-started.md index 7d2742aba..bc419fbdc 100644 --- a/docs/getting-started.md +++ b/docs/getting-started.md @@ -240,7 +240,7 @@ The [Migrating]({{site.github.url}}/migrating) doc has advice about converting from other systems. You can manually create the `D()` statements, or you can generate them automatically using the -[convertzone](https://github.com/StackExchange/dnscontrol/blob/master/misc/convertzone/README.md) +[convertzone](https://github.com/StackExchange/dnscontrol/blob/master/cmd/convertzone/README.md) utility that is included in the DNSControl repo (it converts BIND-style zone files to DNSControl's language). diff --git a/docs/migrating.md b/docs/migrating.md index 38a6911a1..9dfb60782 100644 --- a/docs/migrating.md +++ b/docs/migrating.md @@ -41,9 +41,9 @@ The `convertzone` tool can automate 90% of the conversion for you. It reads a BIND-style zone file and outputs a `D()` statement that is usually fairly complete. You may need to touch it up a bit. -The convertzone command is in the `misc/convertzone` subdirectory. +The convertzone command is in the `cmd/convertzone` subdirectory. Build instructions are -[here](https://github.com/StackExchange/dnscontrol/blob/master/misc/convertzone/README.md). +[here](https://github.com/StackExchange/dnscontrol/blob/master/cmd/convertzone/README.md). If you do not use BIND already, most DNS providers will export your existing zone data to a file called the BIND zone file format. From 1d0a57fdc8f7af4297321d0ac6b63aaeb6eed9a3 Mon Sep 17 00:00:00 2001 From: Richard Hurt Date: Wed, 31 May 2017 13:12:40 -0400 Subject: [PATCH 6/7] Update docs to properly use ROUTE53 in examples (#127) --- docs/_providers/name.com.md | 2 +- docs/_providers/namecheap.md | 2 +- docs/_providers/route53.md | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/_providers/name.com.md b/docs/_providers/name.com.md index 06d3d8b8d..4d26a6e99 100644 --- a/docs/_providers/name.com.md +++ b/docs/_providers/name.com.md @@ -40,7 +40,7 @@ Example javascript (Registrar only. DNS hosted elsewhere): {% highlight js %} var REG_NAMECOM = NewRegistrar("name.com","NAMEDOTCOM"); -var R53 = NewDnsProvider("r53", ROUTE53); +var R53 = NewDnsProvider("r53", "ROUTE53"); D("example.tld", REG_NAMECOM, DnsProvider(R53), A("test","1.2.3.4") diff --git a/docs/_providers/namecheap.md b/docs/_providers/namecheap.md index 10d7761a3..04ef46d3b 100644 --- a/docs/_providers/namecheap.md +++ b/docs/_providers/namecheap.md @@ -49,7 +49,7 @@ Example javascript: {% highlight js %} var namecheap = NewRegistrar("namecheap.com","NAMECHEAP"); -var R53 = NewDnsProvider("r53", ROUTE53); +var R53 = NewDnsProvider("r53", "ROUTE53"); D("example.tld", namecheap, DnsProvider(R53), A("test","1.2.3.4") diff --git a/docs/_providers/route53.md b/docs/_providers/route53.md index 8ede43b76..46839454e 100644 --- a/docs/_providers/route53.md +++ b/docs/_providers/route53.md @@ -7,7 +7,7 @@ jsId: ROUTE53 ## Configuration -By default, you can configure aws setting like the [go sdk configuration](https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html). For example you can use environment variables: +By default, you can configure aws setting like the [go sdk configuration](https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html). For example you can use environment variables: ``` $ export AWS_ACCESS_KEY_ID=XXXXXXXXX $ export AWS_SECRET_ACCESS_KEY=YYYYYYYYY @@ -34,7 +34,7 @@ Example javascript: {% highlight js %} var REG_NAMECOM = NewRegistrar("name.com","NAMEDOTCOM"); -var R53 = NewDnsProvider("r53", ROUTE53); +var R53 = NewDnsProvider("r53", "ROUTE53"); D("example.tld", REG_NAMECOM, DnsProvider(R53), A("test","1.2.3.4") @@ -47,7 +47,7 @@ DNSControl depends on a standard [aws access key](https://aws.amazon.com/develop ## New domains -If a domain does not exist in your Route53 account, DNSControl +If a domain does not exist in your Route53 account, DNSControl will *not* automatically add it. You can do that either manually via the control panel, or via the command `dnscontrol create-domains` command. From 5ce8802a54cba8685fdcbd2e71a6411483be2912 Mon Sep 17 00:00:00 2001 From: Tom Limoncelli Date: Thu, 1 Jun 2017 18:23:04 -0400 Subject: [PATCH 7/7] Fix bug #70: Document a checklist for new providers --- docs/writing-providers.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/docs/writing-providers.md b/docs/writing-providers.md index 4c9b57c0b..9cb8d3b94 100644 --- a/docs/writing-providers.md +++ b/docs/writing-providers.md @@ -18,11 +18,14 @@ the specific changes so the user knows exactly what changed. Here are some tips: +* A provider can be a DnsProvider, a Registrar, or both. We recommend you write the DnsProvider first, release it, and then write the Registrar if needed. * Create a directory for the provider called `providers/name` where `name` is all lowercase and represents the commonly-used name for the service. * The main driver should be called `providers/name/nameProvider.go`. The API abstraction is usually in a separate file (often called `api.go`). * List the provider in `providers/_all/all.go` so DNSControl knows it exists. * Implement all the calls in [providers.DNSServiceProvider interface.](https://godoc.org/github.com/StackExchange/dnscontrol/providers#DNSServiceProvider). The function `GetDomainCorrections` is a bit interesting. It returns a list of corrections to be made. These are in the form of functions that DNSControl can call to actually make the corrections. -* If you have any questions, please dicuss them in the Github issue related to the request for this provider. Please let us know what was confusing so we can update this document with advice for future authors (or feel free to update this document yourself!). +* If you have any questions, please dicuss them in the Github issue related to the request for this provider. Please let us know what was confusing so we can update this document with advice for future authors (or feel free to update [this document](https://github.com/StackExchange/dnscontrol/blob/master/docs/writing-providers.md) yourself!). +* Add the provider to the provider list: [docs/provider-list.html](https://github.com/StackExchange/dnscontrol/blob/master/docs/provider-list.html). +* Add the provider to the README: [README.md](https://github.com/StackExchange/dnscontrol) ## Documentation