SECOPS

Daily multi-zone Cloudflare WAF drift digest to GitLab issue

Once a day, snapshots WAF rulesets across all your Cloudflare zones, diffs each against its baseline.

CategorySecOps
Enginesim
Difficultyintermediate
Triggerschedule
Steps5
Setup~15 min

How it runs

The automated pipeline, trigger to output.

  • TriggerSchedule: once daily
  • ActionEnumerate zones and fetch WAF rulesetsCloudflareCloudflare
  • ActionDiff each zone against its baselineShell
  • LogicAggregate only drifted zones into digest
  • OutputCreate dated GitLab digest issueGitLabGitLab

What it does

This workflow gives fleet-wide WAF visibility in one place. It iterates every Cloudflare zone, snapshots each one's rulesets, diffs them against per-zone baselines, and rolls the results into a single daily GitLab issue listing exactly which zones changed and what changed in each.

When to use it

Use it when you run many zones and per-change MRs would be too noisy. A once-a-day digest is the right altitude for spotting unexpected drift across a large Cloudflare account without alert fatigue, while still leaving a dated record.

How it works

  1. 1A daily scheduled trigger fires.
  2. 2A Cloudflare action enumerates all zones and fetches each zone's WAF rulesets.
  3. 3A shell step diffs every zone against its stored baseline and tallies changes.
  4. 4A logic step aggregates only the drifted zones into a digest, skipping clean ones.
  5. 5A GitLab output creates a dated issue summarizing each drifted zone and its diff.

Set it up

What you configure once, before turning it on.

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