Are you an LLM? Read llms.txt for a summary of the docs, or llms-full.txt for the full context.
Skip to content

Host Allowlist

The allowlist transform decides which destinations the workload can reach. Requests to hosts not in the allowlist return 403. This is the default-deny boundary; everything else iron-proxy does runs on top of it.

The allowlist is configured as a transform in your iron-proxy YAML.

What You Can Match

The allowlist accepts three kinds of entries: flat domain globs, flat CIDR ranges, and structured rules with method and path filters.

transforms:
  - name: allowlist
    config:
      domains:
        - "registry.npmjs.org"
        - "*.anthropic.com"
      cidrs:
        - "10.0.0.0/8"
      rules:
        - host: "api.github.com"
          methods: ["GET"]
          paths: ["/repos/*"]

Flat domains and cidrs allow all methods and paths on the matched destination. rules exist when you need to restrict by method or path on a per-destination basis. Both can appear in the same allowlist.

A bare "*" matches any host. Use it as a catch-all when you want to log traffic without restricting it.

Warn Mode

warn: true logs allowlist violations without blocking the request. The audit log records the host that would have been blocked and the policy that matched.

- name: allowlist
  config:
    warn: true
    domains:
      - "registry.npmjs.org"

Useful when you're rolling iron-proxy in front of an existing workload and don't yet know the full list of hosts it talks to. Run in warn for a few days, read the log, tighten the list, then flip warn off.

Pipeline Position

Place allowlist first in your transforms: list. Other transforms (credential injection, signing, MCP interception) only need to run on requests the allowlist will permit; putting allowlist first avoids work on requests that will be rejected.

See the configuration reference for the full schema.