Skip to main content

Overview

A Gateway carries two related controls:
  • Resource membership makes a tool, pool, or model addressable through the Gateway’s runtime endpoint.
  • Agent access admits the agent at the edge and generates rules that permit all current and future resource members.
Other workspace and custom rules still apply. Those rules can deny a resource member after the agent passes Gateway admission. The typical workflow is:
  1. Create a Gateway or reuse the Default gateway.
  2. Add the resource as a member.
  3. Grant the agent access to the Gateway.
  4. Point the client at the Gateway’s endpoint.
  5. Verify reachability with that agent’s API key.

Resource membership

Membership determines which resources a Gateway exposes: A resource with no Gateway membership stays valid. The resource shows as Unreachable because no runtime endpoint addresses it. Removing a membership leaves the underlying resource intact. Gateway membership is available in Rules through resource.gateways.contains("<id>"). Refer to the Rules reference. You can change what a Gateway exposes when you add or remove members.

Agent access

A per-agent grant adds the Gateway to that agent’s allowed resources (agent.register and rules.deploy). A workspace-wide grant covers every current and future agent in the workspace (rules.deploy and gateway.manage). gateway.manage alone cannot grant runtime access. Revoking a workspace-wide grant leaves per-agent grants in place. Without either grant, invocation fails at edge admission (access.denied / permission_denied with DENY_DETAIL_CODE_GATEWAY_ADMISSION). Discovery such as tools/list and GET /v1/models is exempt from admission and stays membership- and Cedar-filtered. With a grant, other rules can still deny individual resource members. Generated permit rules are shown read-only in the dashboard. You can change who reaches a Gateway when you grant or revoke access.

Default gateway

Every new workspace starts with an active Default Gateway that has no resource memberships or agent grants. Migrated workspaces may already have resources attached, but callers still need an explicit per-agent or all-agents grant. The default marker only pre-selects a Gateway in dashboard dialogs that create tools, pools, and models. The marker adds no resources, grants no access, and overrides no rules. Free and Pro workspaces support one Gateway, and the auto-created Default counts toward that limit. Team, Enterprise, and self-managed workspaces support additional Gateways. Exceeding the plan cap returns HTTP 429 / RESOURCE_EXHAUSTED. You can move the marker when you set the Default gateway.

Runtime endpoints

Each Gateway has its own path under the workspace gateway host. Callers select a Gateway in the request URL. The base URL depends on the client protocol. A disabled Gateway rejects requests but keeps its memberships and grants. Refer to Build the runtime endpoint for client-specific URL paths.

Cost quotas

A Gateway cost quota caps aggregate LLM spend for member pools and direct model connections. Exceeding the cap blocks further LLM calls through that Gateway until the active window resets. Filter audit by producer_gateway_id. Metrics dashboards do not break down by Gateway. You can cap spend when you set a cost quota. Window and scope semantics are on the Quotas reference.

Requirements

Before you begin:
  • Authenticate to Dome and select a workspace
  • Collect the resource and agent identifiers the operation needs
  • Have an active agent key with access to the selected Gateway when you verify runtime reachability

Permissions

Gateway membership, grants, and related operations require platform permissions. Each operation states its required permission inline.

Create Gateway

Create a separate Gateway when callers need a resource set or endpoint boundary that the Default gateway should not share. A new Gateway starts active with empty membership and no grants.
Requires gateway.manage.
Free and Pro workspaces support only one Gateway. Reuse, rename, or delete the Default gateway before creating another one.
After creation, retrieve the Gateway to confirm its ID, active state, empty membership, and grant settings.

Update Gateway

Update a Gateway to change its name or description.
Requires gateway.manage.
Omitted values remain unchanged.
After the update, retrieve the Gateway to confirm its name and description.

Get Gateway

Retrieve one Gateway to inspect its state, default marker, workspace-wide grant, and resource memberships.
Requires gateway.view.
Reference: dome gateway get

List Gateways

List Gateways to retrieve their names, IDs, states, default markers, and canonical endpoint paths.
Requires gateway.view.

Set Default gateway

Set a Gateway as the workspace default to pre-select it in dashboard dialogs that create tools, pools, and models. Setting a new default clears the previous marker. A disabled default is not pre-selected.
Requires gateway.manage.
After setting the default, retrieve the Gateway and confirm that it is marked as the workspace default.

Manage lifecycle

Manage a Gateway’s availability without changing resource memberships or agent grants. Delete a Gateway only when callers no longer need that endpoint.

Enable Gateway

Enable a disabled Gateway to restore its endpoint. Disabling a Gateway preserves existing memberships and grants.
Requires gateway.manage.

Disable Gateway

Disable a Gateway to block its endpoint without removing memberships or grants. Requests stay rejected until you enable the Gateway again.
Requires gateway.manage.
After enabling or disabling a Gateway, retrieve the Gateway to confirm the resulting state.

Delete Gateway

Delete a Gateway only after moving callers to another endpoint. Deletion removes the Gateway and its resource memberships. The /gateways/{{GATEWAY_ID}}/... endpoint starts rejecting requests. Deletion does not remove the underlying tools, connections, pools, or models.
Requires gateway.manage.
Deletion is permanent. Per-agent grants for the deleted ID no longer admit callers. Callers must use another Gateway ID.
After deletion, list the Gateways to confirm the deleted Gateway no longer appears.

Manage resource memberships

Add or remove members so resources are addressable through a Gateway. Membership kinds are in Overview. Membership changes do not modify or delete the underlying resources.

Individual tools

Add or remove one tool without exposing the rest of its connection.
Add individual tool
Add one tool without exposing the other tools from its connection.
Requires gateway.manage.
Remove individual tool
Remove an individual membership to stop exposing the tool on its own. The tool stays addressable when a tool-source membership also covers that tool.
Requires gateway.manage.

Tool source

Add or remove an entire MCP connection. Newly discovered tools on that connection join the Gateway automatically.
Add tool source
Add a tool source to include every tool currently on that connection.
Requires gateway.manage.
Remove tool source
Remove a tool-source membership to stop automatically including tools from that connection. Individually added tools remain in the Gateway.
Requires gateway.manage.

Pool

Add or remove a pool so agents can call it by its stable name through the Gateway. Changes to the pool’s members do not require a membership update.
Add pool
Add a pool to expose its routed models through the Gateway.
Requires gateway.manage.
Remove pool
Remove a pool to stop exposing that pool through the Gateway. The pool and its members remain configured.
Requires gateway.manage.

Direct model

Add or remove one model connection without routing through a pool.
Add direct model
Add a direct model connection to make that model name addressable through the Gateway.
Requires gateway.manage.
Remove direct model
Remove a direct model connection to stop exposing it through the Gateway without deleting the connection.
Requires gateway.manage.
After any membership change, retrieve the Gateway to confirm its individual tool, tool source, model pool, and direct model memberships.

Manage agent access

Grant or revoke who is admitted at the Gateway edge. Per-agent and workspace-wide grants are in Overview. Other Rules can still deny individual members after admission.

List agent access

List agents and show whether each agent has a per-agent grant to the Gateway. Revoked agents are excluded. Suspended agents remain listed so you can inspect their grants before reactivation.
Requires agent.view.

Grant one agent

Grant one agent access while preserving its existing Gateway grants. Dome generates and manages the permit rules. You cannot edit those rules directly.
Requires agent.register and rules.deploy.

Revoke one agent

Revoke one agent’s access to the Gateway while preserving its other Gateway grants. Requests from that agent to the Gateway endpoint fail at edge admission unless a workspace-wide grant also applies.
Requires agent.register and rules.deploy.

Grant every workspace agent

Grant every current and future workspace agent access when all agents need the same endpoint. Other rules can still deny individual resources after admission.
Requires gateway.manage and rules.deploy.

Revoke every workspace agent

Revoke the workspace-wide grant to stop automatically admitting every agent. Existing per-agent grants remain in place.
Requires gateway.manage and rules.deploy.
After any access change, list agent access to confirm the resulting per-agent grants. For a workspace-wide grant, retrieve the Gateway and check its workspace-wide grant setting.

Manage cost quotas

Cap aggregate LLM spend for member pools and direct model connections on this Gateway. Refer to Overview. Window and scope semantics are on the Quotas reference.

List cost quotas

List Gateway cost quotas in the workspace or filter the result to one Gateway.
Requires gateway.view.

Set a cost quota

Set a daily or monthly USD spend cap for LLM calls through a Gateway. Once spend exceeds the cap, LLM calls addressed to that Gateway return HTTP 429.
Requires gateway.manage.

Remove a cost quota

Remove a Gateway cost quota to stop enforcing that cap.
Requires gateway.manage.
Removing a quota takes away an active spending control. Confirm the quota ID with the list operation first.
The command rejects quota IDs that belong to another subject type.
After any quota change, list cost quotas to confirm the active caps and reset windows.

Build the runtime endpoint

Build the runtime endpoint from the workspace gateway host and the Gateway ID. Retrieve the ID with List Gateways.
Requires gateway.view to retrieve the ID. Runtime calls require an active agent key and a grant to the Gateway.
Use the ID in the canonical prefix:
Choose the base URL that matches the client. Do not add /v1 to the Anthropic base URL because the Anthropic SDK appends /v1/messages. Bare /mcp and /v1 requests return HTTP 400. Every caller must select a Gateway in the URL. Run dome gateway get <name-or-id> --json to retrieve the complete gateway_url, mcp_url, openai_base_url, and anthropic_base_url. SDK agent-key creation and token exchange return the same authoritative endpoint set. Refer to Python SDK Gateways.

Verify reachability

Verify discovery before invoking a tool or model. Discovery returns only members of the selected Gateway that the agent’s grant and applicable rules permit.
Requires an active agent key, access to the Gateway, and rules that allow discovery.
List MCP tools through the scoped endpoint:
List model pools and direct model connections through the OpenAI-compatible endpoint:
Configure runtime credentials and SDK clients in Develop.

Troubleshoot reachability

Use the observed response to locate the failed layer. After changing memberships or grants, wait for gateway synchronization before testing again. If discovery succeeds but invocation fails, inspect the resource rules and the agent’s lifecycle state.

Next steps

  • Gateways concept for how membership and grants work
  • Register agents to create agent identities and keys
  • Tools to configure tool connections and catalog state
  • Pools to configure pools and routing