[{"data":1,"prerenderedAt":248},["ShallowReactive",2],{"navigation_docs":3,"-quayel-gateway-plugins":91,"-quayel-gateway-plugins-surround":243},[4],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":90},"Quayel Gateway","i-lucide-network","\u002Fquayel-gateway","quayel-gateway",[10,29,68],{"title":11,"icon":12,"path":13,"stem":14,"children":15},"Getting Started","i-lucide-rocket","\u002Fquayel-gateway\u002Fgetting-started","quayel-gateway\u002F01.getting-started\u002Findex",[16,19,24],{"title":17,"path":13,"stem":14,"icon":18},"Introduction","i-lucide-book-open",{"title":20,"path":21,"stem":22,"icon":23},"Installation","\u002Fquayel-gateway\u002Fgetting-started\u002Finstallation","quayel-gateway\u002F01.getting-started\u002F1.installation","i-lucide-container",{"title":25,"path":26,"stem":27,"icon":28},"Project Structure","\u002Fquayel-gateway\u002Fgetting-started\u002Fproject-structure","quayel-gateway\u002F01.getting-started\u002F2.project-structure","i-lucide-folder-tree",{"title":30,"icon":31,"path":32,"stem":33,"children":34},"Plugins","i-lucide-puzzle","\u002Fquayel-gateway\u002Fplugins","quayel-gateway\u002F02.plugins\u002Findex",[35,38,43,48,53,58,63],{"title":36,"path":32,"stem":33,"icon":37},"Overview","i-lucide-workflow",{"title":39,"path":40,"stem":41,"icon":42},"IP Intelligence","\u002Fquayel-gateway\u002Fplugins\u002Fip-intel","quayel-gateway\u002F02.plugins\u002F1.ip-intel","i-lucide-radar",{"title":44,"path":45,"stem":46,"icon":47},"Firewall","\u002Fquayel-gateway\u002Fplugins\u002Ffirewall","quayel-gateway\u002F02.plugins\u002F2.firewall","i-lucide-shield",{"title":49,"path":50,"stem":51,"icon":52},"Rate Limiting","\u002Fquayel-gateway\u002Fplugins\u002Frate-limiting","quayel-gateway\u002F02.plugins\u002F3.rate-limiting","i-lucide-gauge",{"title":54,"path":55,"stem":56,"icon":57},"Cache","\u002Fquayel-gateway\u002Fplugins\u002Fcache","quayel-gateway\u002F02.plugins\u002F4.cache","i-lucide-database",{"title":59,"path":60,"stem":61,"icon":62},"Load Balancer","\u002Fquayel-gateway\u002Fplugins\u002Fload-balancer","quayel-gateway\u002F02.plugins\u002F5.load-balancer","i-lucide-scale",{"title":64,"path":65,"stem":66,"icon":67},"Auto-SSL","\u002Fquayel-gateway\u002Fplugins\u002Fauto-ssl","quayel-gateway\u002F02.plugins\u002F6.auto-ssl","i-lucide-lock",{"title":69,"icon":70,"path":71,"stem":72,"children":73},"AI","i-lucide-bot","\u002Fquayel-gateway\u002Fai","quayel-gateway\u002F03.ai\u002Findex",[74,75,80,85],{"title":36,"path":71,"stem":72,"icon":70},{"title":76,"path":77,"stem":78,"icon":79},"The Quayel Gateway Skill","\u002Fquayel-gateway\u002Fai\u002Fskill","quayel-gateway\u002F03.ai\u002F1.skill","i-lucide-wand-sparkles",{"title":81,"path":82,"stem":83,"icon":84},"Installing the Skill","\u002Fquayel-gateway\u002Fai\u002Finstallation","quayel-gateway\u002F03.ai\u002F2.installation","i-lucide-download",{"title":86,"path":87,"stem":88,"icon":89},"AI Agent Guide","\u002Fquayel-gateway\u002Fai\u002Fagent-guide","quayel-gateway\u002F03.ai\u002F3.agent-guide","i-lucide-braces",false,{"id":92,"title":36,"body":93,"description":236,"extension":237,"links":238,"meta":239,"navigation":240,"path":32,"seo":241,"stem":33,"__hash__":242},"docs\u002Fquayel-gateway\u002F02.plugins\u002Findex.md",{"type":94,"value":95,"toc":231},"minimark",[96,101,105,116,121,193,197,221],[97,98,100],"h1",{"id":99},"plugin-pipeline","Plugin pipeline",[102,103,104],"p",{},"Every request flows through a fixed plugin pipeline. Plugins execute in this exact order and any plugin can short-circuit the remaining pipeline by responding directly.",[106,107,112],"pre",{"className":108,"code":110,"language":111},[109],"language-text","1. IP Intelligence     (always runs)\n2. Firewall            (can short-circuit)\n3. Rate Limiting       (can short-circuit)\n4. Load Balancer       (can short-circuit — selects upstream target)\n5. Cache               (can short-circuit — uses upstream target for revalidation)\n6. Logging             (always runs)\n","text",[113,114,110],"code",{"__ignoreMap":115},"",[117,118,120],"h2",{"id":119},"short-circuit-behavior","Short-circuit behavior",[122,123,124,140],"table",{},[125,126,127],"thead",{},[128,129,130,134,137],"tr",{},[131,132,133],"th",{},"Plugin",[131,135,136],{},"Can short-circuit?",[131,138,139],{},"When?",[141,142,143,155,165,175,184],"tbody",{},[128,144,145,149,152],{},[146,147,148],"td",{},"IP Intel",[146,150,151],{},"No",[146,153,154],{},"Always continues",[128,156,157,159,162],{},[146,158,44],{},[146,160,161],{},"Yes",[146,163,164],{},"Block, redirect, or set-header action",[128,166,167,170,172],{},[146,168,169],{},"Rate Limit",[146,171,161],{},[146,173,174],{},"Limit exceeded → 429",[128,176,177,179,181],{},[146,178,54],{},[146,180,161],{},[146,182,183],{},"Cache HIT → serve cached response; REVALIDATING\u002FSTALE → serve stale cached data",[128,185,186,188,190],{},[146,187,59],{},[146,189,161],{},[146,191,192],{},"No healthy upstream → 503",[117,194,196],{"id":195},"plugin-reference","Plugin reference",[198,199,200,204,208,211,215,218],"card-group",{},[201,202,203],"card",{"icon":42,"title":39,"to":40},"Geo, ASN, VPN, Tor, datacenter, and proxy detection with risk scoring — fully embedded, ~5μs per lookup.",[201,205,207],{"icon":206,"title":44,"to":45},"i-lucide-shield-ban","Allow, block, redirect, or set headers based on any request attribute.",[201,209,210],{"icon":52,"title":49,"to":50},"Sliding-window rate limits per IP, header, JWT claim, or composite key.",[201,212,214],{"icon":213,"title":54,"to":55},"i-lucide-database-zap","Edge caching with TTL, custom keys, SWR\u002FSIE, and singleflight revalidation.",[201,216,217],{"icon":6,"title":59,"to":60},"Round-robin, weighted, least-conn, fast-response, and sticky sessions with health checks.",[201,219,220],{"icon":67,"title":64,"to":65},"On-demand TLS certificates via Let's Encrypt ACME (HTTP-01).",[222,223,224,225,230],"tip",{},"All plugins share the same ",[226,227,229],"a",{"href":228},"\u002Fquayel-gateway\u002Fconditions","condition language"," — master it once and you can write rules for every plugin.",{"title":115,"searchDepth":232,"depth":232,"links":233},2,[234,235],{"id":119,"depth":232,"text":120},{"id":195,"depth":232,"text":196},"The plugin pipeline: IP intelligence, firewall, rate limiting, cache, load balancing, auto-SSL, and logging.","md",null,{},{"icon":37},{"title":36,"description":236},"ZCI266bsxLziRuIXoY7bpuKRW5w9Ldge8TFS_ZjoBU0",[244,246],{"title":25,"path":26,"stem":27,"description":245,"icon":28,"children":-1},"How the Quayel Gateway repository is organized and where the gateway keeps its files at runtime.",{"title":39,"path":40,"stem":41,"description":247,"icon":42,"children":-1},"Geolocation, ASN, and threat detection enrichment for every request — all data embedded in the binary.",1791649766343]