IT OPS

Scheduled Cloudflare DNS Drift Audit vs Git Manifest

Every hour, compares your live Cloudflare DNS zone against a version-controlled YAML manifest in GitHub and posts any added, removed, or changed records to Slack.

CategoryIT Ops
Enginesim
Difficultyintermediate
Triggerschedule
Steps6
Setup~15 min

How it runs

The automated pipeline, trigger to output.

  • TriggerHourly schedule fires
  • ActionFetch live DNS records from Cloudflare zoneCloudflareCloudflare
  • ActionRead canonical zone manifest from GitHubGitHubGitHub
  • LogicDiff live records against manifest (added/removed/changed)
  • LogicStop if no drift detected
  • OutputPost drift report to Slack channelSlack

What it does

This workflow keeps your live Cloudflare DNS in lockstep with the source-of-truth manifest you keep in Git. On a fixed schedule it pulls every record from the zone, pulls the committed manifest, diffs them field by field, and reports exactly which records drifted.

When to use it

Run this when DNS is managed as code but humans still make emergency changes in the Cloudflare dashboard. It catches the manual edit someone forgot to commit, the record someone deleted by accident, and the TTL or proxy-status that quietly changed. Ideal for teams that want continuous assurance without standing up full IaC reconciliation.

How it works

  1. 1A schedule fires hourly to start the audit.
  2. 2The flow fetches all DNS records for the configured zone from the Cloudflare API.
  3. 3It reads the canonical `dns/zone.yaml` manifest from the GitHub repository.
  4. 4A logic step normalizes both sets (name, type, content, TTL, proxied) and computes added, removed, and modified records.
  5. 5If the diff is empty the run ends silently; otherwise it formats a per-record changelog.
  6. 6The drift report is posted to a Slack channel with a clear added/removed/changed breakdown.

Set it up

What you configure once, before turning it on.

  1. 1
    Connect CloudflareWorkers, Pages, R2, KV — the edge stack.
  2. 2
    Connect GitHubRepos, issues, pull requests, actions.
  3. 3
    Connect SlackChannels, DMs, threads, mentions.
  4. 4
    Set each agent's modelWe leave models unset so you pick the tier — fast + cheap, or top-quality.
  5. 5
    Tune it to your dataEdit the prompts, filters, and field mappings so it matches how your team works.
  6. 6
    Test, then turn it onRun once against a sample, confirm the output, then enable the trigger.

Run this workflow in your colony.

14-day trial. No DevOps. No Sales call. Provisioned in under a minute.