From cc61451e6887e4e7f33cc1f38e87691940433ebd Mon Sep 17 00:00:00 2001 From: Chris Talkington Date: Wed, 21 Oct 2020 09:12:27 -0500 Subject: [PATCH] Add config flow to cloudflare (#14904) --- source/_integrations/cloudflare.markdown | 68 ++++++------------------ 1 file changed, 17 insertions(+), 51 deletions(-) diff --git a/source/_integrations/cloudflare.markdown b/source/_integrations/cloudflare.markdown index f8637173d6f..d97301e80a7 100644 --- a/source/_integrations/cloudflare.markdown +++ b/source/_integrations/cloudflare.markdown @@ -7,7 +7,9 @@ ha_release: 0.74 ha_iot_class: Cloud Push ha_codeowners: - '@ludeeus' + - '@ctalkington' ha_domain: cloudflare +ha_config_flow: true --- With the `cloudflare` integration, you can keep your Cloudflare records up to date. @@ -26,43 +28,25 @@ Due to a limitation in the Cloudflare API, you can not use this integration with -## Setup +## Requirements -You can find your global API key in your Cloudflare account settings. +
+ +On older versions of Home Assistant, this integration used the account email and Global API Key to authenticate. + +As of Home Assistant 0.117, API Tokens are now used to authenticate. + +
+ +Setup requires an API Token created with Zone:Zone:Read and Zone:DNS:Edit permissions for all zones in your account. + +An easy way to create this is to start with the "Edit zone DNS" template then add Zone:Zone:Read to the permissions. + +[Cloudflare API Tokens Guide](https://developers.cloudflare.com/api/tokens/create) ## Configuration -To use the integration in your installation, add the following to your `configuration.yaml` file: - -```yaml -# Example configuration.yaml entry -cloudflare: - email: YOUR_EMAIL_ADDRESS - api_key: YOUR_GLOBAL_API_KEY - zone: EXAMPLE.COM - records: - - ha - - www -``` - -{% configuration cloudflare %} -email: - description: The email address for your Cloudflare account. - required: true - type: string -api_key: - description: The global API key for your Cloudflare account. - required: true - type: string -zone: - description: The DNS zone (domain) you want to update. - required: true - type: string -records: - description: A list of records (subdomains) you want to update. - required: true - type: list -{% endconfiguration %} +Go to the integrations page in your configuration and click on new integration -> Cloudflare. ## Additional information @@ -70,10 +54,6 @@ records: This platform uses the API from [ipify.org](https://www.ipify.org/) to set the public IP address. -### API Key - -Please note that the `api_key` is the [global API key](https://support.cloudflare.com/hc/en-us/articles/200167836-Managing-API-Tokens-and-Keys#12345682) of your Cloudflare account (not the API Token). - ### Home Assistant Companion App If you would like to use [iOS App](https://companion.home-assistant.io/) via Cloudflare set **Minimum TLS version as 1.2**, in order to do that, do the following: @@ -89,20 +69,6 @@ Other settings should not cause any issues. For SSH usage (according to [this](https://blog.cloudflare.com/cloudflare-now-supporting-more-ports/) source), you need to connect directly to your server (bypassing Cloudflare). To do that, create a `CNAME` DNS record, e.g., `ssh.example.com`, with proxy status as "DNS only" (to do that click on orange icon, it will change color to gray) and then connect to `ssh.example.com` using your server SSH port. -### Using Cloudflare domain only for Home Assistant - -If you want to update just a main domain, place in the records list only your domain, e.g., `example.com`. It will update your `A` DNS record with your IP every hour. - -```yaml -# Example configuration.yaml entry for one domain -cloudflare: - email: YOUR_EMAIL_ADDRESS - api_key: YOUR_GLOBAL_API_KEY - zone: EXAMPLE.COM - records: - - EXAMPLE.COM -``` - #### The minimum DNS record settings (if you have set up HTTPS already) To redirect from your domain to the IP address of your Home Assistant server set this DNS record: