AdvancedAdmin

Decide which clients may reach your models

Request-header access rules that allow or deny by User-Agent, origin, or any header — scoped globally, to a key group, or to a single key.

What the community actually complains about

"A leaked key means anyone with it can burn our quota," "we want to allowlist the whole company's coding agents but block bare curl and scrapers," "the vendor console has an IP allowlist, but our traffic is dynamic and proxy-fronted so it never fits."

Enforcement has to happen where the request arrives — on the gateway — not on a client-side setting a developer can just flip off.

How GateLLM does it

GateLLM evaluates admission rules on every request against HTTP headers: six match types (exact / prefix / regex / exists / absent / any) and three scopes (global / key group / key), ordered by sort_order with first-match-wins.

For "only approved clients" you run allowlist mode: set the group's default action to deny, then add a single allow rule matching the client signature — everything else is rejected before it reaches a model.

5 levers that actually land

  • 6 match types: exact / prefix / regex / exists / absent / any — one rule can express "A or B or C" via regex alternation
  • 3 scopes: global, per key group, per key — with first-match-wins and same-order global priority
  • Allowlist mode: default deny + one explicit allow — new unknown clients are rejected by default
  • Rules also cover model-list routes (/v1/models), so a denied client is locked out end to end
  • ReDoS-safe linear-time regex engine — pathological patterns are rejected at load time, not at request time
Full how-to: Configure Header ACL (docs)

FAQ