Manage Vercel Firewall or Cloudflare security policies from a single file.
Multi-provider WAF automation wired directly into your version control and CI/CD workflows.
npm install @gfargo/doorman
Ship one policy pack to Vercel and Cloudflare with provider-specific overrides when you need them.
Promote firewall changes through pull requests, previews, and CI/CD with guardrails built in.
Audit every change, enforce review policies, and keep environments consistent across providers.
doorman is the source of truth. Vercel gets the rule as-is; Cloudflare gets it translated into a Wirefilter expression — same intent, provider-native syntax.
// ships to Vercel Firewall as-is
{
"id": "rule_block_bad_bots",
"conditionGroup": [{
"conditions": [
{ "type": "user_agent", "op": "sub", "value": "bot" }
]
}],
"action": { "mitigate": { "action": "deny" } }
}// translated to a Wirefilter expression
{
"expression": "http.user_agent contains \"bot\"",
"action": "block"
}Synchronize rule packs to Vercel and Cloudflare from the same config. Catch drift with provider-aware diffs before anything ships.
npx @gfargo/doorman sync

Export deployed rules from each provider into versioned config files. Keep Cloudflare and Vercel in lockstep with Git history.
npx @gfargo/doorman download

Inspect deployed policies with human-friendly tables or JSON. Filter by provider, environment, and rule group in seconds.
npx @gfargo/doorman list

Validate rule syntax and provider-specific constraints before deployment. Ship with confidence knowing both WAFs will accept the change.
npx @gfargo/doorman validate

Kickstart new protections with templates tuned for Vercel and Cloudflare. Customize and extend policy packs as your edge footprint grows.
npx @gfargo/doorman template

Already have rules configured by hand in the Vercel dashboard? Download them into a versioned config, validate the result, and commit — no rework required to bring an existing project under doorman.
npx @gfargo/doorman download
