IT OPS

Cloudflare Dangling-CNAME Sweeper to GitLab Tickets

Weekly audit that resolves every CNAME record in your Cloudflare zones, flags any that point at an unclaimed or NXDOMAIN origin.

CategoryIT Ops
Enginesim
Difficultyintermediate
Triggerschedule
Steps5
Setup~15 min

How it runs

The automated pipeline, trigger to output.

  • TriggerWeekly schedule fires the DNS audit
  • ActionList all CNAME records across Cloudflare zonesCloudflareCloudflare
  • LogicResolve each target; keep only dead/unclaimed origins
  • ActionOpen a GitLab issue per orphaned subdomainGitLabGitLab
  • OutputPost run summary with issue links to SlackSlack

What it does

This workflow walks all CNAME records across your Cloudflare zones and checks whether each target still resolves to a live, claimed origin. CNAMEs pointing at decommissioned cloud buckets, retired Heroku/Vercel apps, or NXDOMAIN hosts are classic subdomain-takeover risks. Every dangling record becomes a GitLab issue with the record name, target, and zone, so nothing rots silently.

When to use it

Run it on any account with dozens or hundreds of subdomains where teams spin up and tear down origins faster than DNS gets cleaned. It is especially valuable after a platform migration or vendor switch left CNAMEs aimed at hosts you no longer control.

How it works

  1. 1A weekly schedule fires the audit.
  2. 2Cloudflare returns every CNAME record across all zones.
  3. 3For each target the workflow performs a resolution check (live origin vs. NXDOMAIN / unclaimed bucket pattern).
  4. 4A filter keeps only records whose targets are dead or takeover-prone.
  5. 5For each flagged record a GitLab issue is opened, labeled `dns-dangling`, with the subdomain, target, and zone.
  6. 6A Slack summary posts the total count and links to the new issues.

Set it up

What you configure once, before turning it on.

  1. 1
    Connect CloudflareWorkers, Pages, R2, KV — the edge stack.
  2. 2
    Connect GitLabRepos, MRs, pipelines, registry.
  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.