Scope each agent to what it needs
Allow lists per policy. Everything else is held.
Define the destinations each agent role may reach. Entries carry a source, a reference and an expiry. Anything outside the list is held by the Greywall or denied by default.
- api.openai.com
- api.anthropic.com
- api.tavily.com
- api.smith.langchain.com
- pastebin.com
- transfer.sh
Blocklists describe the internet. Allow lists describe the agent.
A block list can never be complete. An allow list for an agent role is short, reviewable and true: the model provider, the tools, the data sources. The work is building it from real traffic instead of guessing, and keeping it honest as the agent changes.
Lists need provenance
Who added the entry, from which template or ticket, and when it should expire.
Templates prevent day-one noise
The OpenAI, Anthropic, Bedrock and Vertex hosts are documented. Import them; do not rediscover them.
Scope must not leak
An approval for one role must never widen another. Lists belong to a policy.
Build the list from traffic
Import templates
Vendor-documented hostnames for model providers, tool hosts, MCP servers and package registries.
Learn Only
A week of real work fills the first-seen queue. Approve what the agent demonstrated it needs.
Deny by default
Set Default Action to Deny and Greywall Mode to Enforce. The list is now the scope.
Scope list capabilities
Allow and block lists
Per policy, bound to the policies you choose. Domain and CIDR entries.
Provenance per entry
Source, reference, confidence and expiry on every entry. Expired entries leave on their own.
Templates
Vendor-documented hostnames, verified monthly, imported as entries that name the template as their source.
Greywall for the rest
Anything outside the list is held on first sight. No need to enumerate what to block.
Global and inherited lists
MSSP parents push lists into every tenant. Tenant lists apply alongside.
API
Create entries, bulk import, push verdicts. Scoped keys, every change logged.
A template becomes list entries
Entries carry the template name as their source, so the change log records where every host came from.
POST /api/v1/gateway/list-entries/{allow_list_uuid}/entries/bulk
{ "entries": [
{ "value": "api.openai.com", "source_ref": "template:openai-runtime" },
{ "value": "api.anthropic.com", "source_ref": "template:anthropic-runtime" }
] }Questions teams ask
Do templates use wildcards?
No. Approving an entire cloud provider domain removes the scope the policy is meant to provide. Templates show patterns with the region or resource as a placeholder.
Can an entry expire?
Yes. Set expires_in on the entry. It leaves the list on its own and the removal is logged.
What about CIDR blocks?
Network allow and block lists accept CIDR entries and apply to the resolved address.
Build one agent's allow list from real traffic
Import the templates, learn for a week, deny by default.