Skip to main content

Gate deployments on WAF scan results with WAFtester

Workflow preview

Workflow preview
100%
Gate deployments on WAF scan results with WAFtester preview
Open on n8n.io

1. Workflow Overview

What it does A CI/CD quality gate that blocks deployments when WAF protection is insufficient. Your pipeline sends a webhook with the target URL, the workflow runs [WAFtester](https://waftester.com...

Best for

  • DevOps automation workflows
  • intermediate n8n builders looking for reusable templates

Tools used

n8n-nodes-base.webhook, n8n-nodes-base.httprequest, n8n-nodes-base.wait, n8n-nodes-base.code, n8n-nodes-base.if, n8n-nodes-base.respondtowebhook, n8n-nodes-base.stickynote

Source and attribution

This workflow is cataloged by N8N Workflows and links back to its original n8n.io source page by Qandil.

Original n8n.io source

1.1 Workflow description

Title
Gate deployments on WAF scan results with WAFtester
Workflow name
Gate deployments on WAF scan results with WAFtester

What it does

A CI/CD quality gate that blocks deployments when WAF protection is insufficient. Your pipeline sends a webhook with the target URL, the workflow runs WAFtester scans, and returns a pass/fail HTTP response the pipeline can gate on.

About WAFtester

WAFtester is an open-source CLI for testing Web Application Firewalls. It ships 27 MCP tools, 2,800+ attack payloads across 18 categories (SQLi, XSS, SSRF, SSTI, command injection, XXE, and more), detection signatures for 26 WAF vendors and 9 CDNs, and enterprise-grade assessment with F1/MCC scoring and letter grades (A+ through F).

Who it's for

  • DevOps teams enforcing security gates in CI/CD
  • Platform engineers automating deployment approvals
  • Security teams requiring pre-deploy WAF validation

How it works

The workflow has seven nodes:

  1. Webhook — Receives a POST with {"target": "https://staging.example.com", "categories": ["sqli", "xss"]}
  2. Detect WAF — Calls WAFtester's detect_waf tool to fingerprint the WAF vendor
  3. Start Scan — Launches an async scan task with the requested attack categories
  4. Wait — Pauses to let the scan run
  5. Poll Results — Calls get_task_status to retrieve completed results
  6. Evaluate — Compares the detection rate against WAF_PASS_THRESHOLD
  7. Respond — Returns HTTP 200 (pass, deploy allowed) or HTTP 422 (fail, deploy blocked) with bypass details

CI/CD integration example

# In your pipeline
RESPONSE=$(curl -s -w "%{http_code}" -o body.json \
 -X POST https://your-n8n/webhook/waf-gate \
 -H "Content-Type: application/json" \
 -d '{"target": "https://staging.example.com", "categories": ["sqli", "xss"]}')
if [ "$RESPONSE" != "200" ]; then echo "WAF gate failed"; exit 1; fi

1.2 Logical Blocks

This catalog entry is organized from the workflow JSON. The node-level section below shows the executable blocks available for review before importing the template.

2. Block-by-Block Analysis

Block 1 - Deploy Webhook

Type / Role
n8n-nodes-base.webhook - webhook
Config choices
Version 2

Block 2 - Detect WAF

Type / Role
n8n-nodes-base.httpRequest - httpRequest
Config choices
Version 4.2

Block 3 - Start Scan

Type / Role
n8n-nodes-base.httpRequest - httpRequest
Config choices
Version 4.2

Block 4 - Wait for Scan

Type / Role
n8n-nodes-base.wait - wait
Config choices
Version 1.1

Block 5 - Poll Task Status

Type / Role
n8n-nodes-base.httpRequest - httpRequest
Config choices
Version 4.2

Block 6 - Parse Results

Type / Role
n8n-nodes-base.code - code
Config choices
Version 2

Block 7 - Pass or Fail?

Type / Role
n8n-nodes-base.if - if
Config choices
Version 2.2

Block 8 - Respond Pass

Type / Role
n8n-nodes-base.respondToWebhook - respondToWebhook
Config choices
Version 1.1

Block 9 - Respond Fail

Type / Role
n8n-nodes-base.respondToWebhook - respondToWebhook
Config choices
Version 1.1

Block 10 - Sticky Note

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 11 - Sticky Note1

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 12 - Sticky Note2

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

3. Summary Table

Workflow Gate deployments on WAF scan results with WAFtester
Complexity intermediate
Nodes 12
Categories DevOps
Author Qandil
Published 16 Feb 2026

4. Reproducing the Workflow from Scratch

  1. 1. Download the workflow JSON

    Use the JSON export at /data/workflows/13445/13445.json as the source template for this automation.

  2. 2. Import the template into n8n

    Open n8n, import the downloaded JSON, and review each node before activating the workflow.

  3. 3. Configure credentials and variables

    Replace placeholder credentials, API keys, webhook URLs, account IDs, and environment-specific values with your own settings.

  4. 4. Test with sample data

    Run the workflow manually or in a staging workspace, inspect node output, and confirm downstream systems receive the expected data.

  5. 5. Activate and monitor

    Enable the workflow only after testing, then monitor executions, errors, and rate limits during the first production runs.

5. General Notes & Resources

Review imported nodes carefully before activation. This catalog entry is intended to help you inspect the workflow structure, understand required services, and find related templates faster.

Node names, credentials, schedules, webhook paths, and external service limits may need adjustment for your workspace.

Frequently asked questions

What does Gate deployments on WAF scan results with WAFtester do?

What it does A CI/CD quality gate that blocks deployments when WAF protection is insufficient. Your pipeline sends a webhook with the target URL, the workflow runs [WAFtester](https://waftester.com...

What do I need before importing this workflow?

Review the workflow JSON, configure any required credentials in n8n, and test the automation in a safe workspace before using it in production.

Can I customize this workflow?

Yes. Use the block-by-block analysis and the downloadable JSON to inspect each node, then adjust credentials, prompts, schedules, filters, or destinations for your DevOps use case.