Skip to main content
Refer to Agents concept for how agent identity works.

Overview

Dome separates an agent’s identity from its credentials and access. Registering an agent creates a durable identity for the application or process, but does not grant access. An API key lets the runtime authenticate as that identity. Allowed resources, Gateway membership, and Rules determine what requests Dome permits. Because credentials and access are separate, you can rotate a key without changing permissions or change permissions without issuing a new key. The typical workflow is:
  1. Register the agent to create the identity.
  2. Get the agent to confirm the record and note the workspace gateway endpoint.
  3. Allow the resources it needs.
  4. Create an API key for the runtime.
  5. Point the client at Dome. Refer to Develop.
When access must depend on the person the agent acts for, configure delegated identity. When one agent spawns others, set a parent at register time.

Allowed resources

An agent reaches only the resources you allow it: model pools, individual models, MCP tools, and Gateways. When an agent allows a Gateway, Dome lets it use that endpoint. Allowing a resource is shorthand for creating a rule. Each entry generates a rule in the agent’s rule bundle which the gateway enforces on the next request without a separate deploy. Because it creates rules, allowing a resource needs rules.deploy in addition to the permission to edit the agent, so someone with the developer role can register an agent and change its metadata but cannot change which resources it reaches. Dome derives the agent’s capabilities (the strings its rules can test) from the same selections: You set a capability yourself only when one of your rules tests a string Dome would not derive, such as read-data. When the shorthand cannot express a condition, such as a time window, a PII field, or an act-as claim, create Rules directly. A generated bundle adds to workspace defaults rather than replacing them. You can allow resources when you register an agent or change them later.

Delegated identity

An agent can act for a person rather than only for itself. When it presents an act-as claim, Dome verifies the claim before authorizing the request, and the audit trail records the end user alongside the agent. On the agent you choose the verification method (oidc, hmac, bound, or none), whether a claim is mandatory on every request, which provider to use, and optional allow-lists by group, email, or subject. An agent with no restrictions accepts any verified identity. Like allowed resources, these settings generate rules, so changing them needs rules.deploy. Workspace providers, the workspace floor, and claim-aware Rules are on Delegated agents. You can configure per-agent settings when you register or update the agent.

Hierarchy

An agent can have a parent. The parent and its descendants form a hierarchy, which helps when one agent spawns or manages others and you want to act on them together. A hierarchy grants no access on its own, and each agent reaches only what you allow it. A hierarchy can be at most 10 levels deep, and a parent and child must belong to the same tenant. You can set an agent’s parent when you register it. An update cannot change it afterward. How lifecycle operations reach descendants is under Manage lifecycle.

Requirements

Before you begin:
  • Install and authenticate the Dome CLI, then select a workspace context
  • Create or select a Gateway, attach the required resources, and grant the agent access

Permissions

Agent registry, lifecycle, and key operations require platform permissions. Each operation states the permission it requires. For exhaustive flags, tool parameters, and endpoint contracts, refer to the CLI, MCP, and API references.

Register agent

Register an agent to create the record that credentials, allowed resources, and lifecycle operations attach to. You can set allowed resources, end-user identity, and a parent in the same call.
Requires agent.register, plus rules.deploy if you set allowed resources or end-user identity in the same call.
Add --parent-id to place the agent in a hierarchy, --metadata key=value for your own labels, and --if-not-exists to return the existing agent instead of failing when the name is taken.
Response
A new agent starts in provisioned and becomes active on its first gateway request. Refer to Manage lifecycle for the full state model.

Register from a file

Register an agent from a YAML or JSON file when a reviewable definition is clearer than a long flag list, such as in CI. The file shape mirrors RegisterAgentRequest, the same schema the SDKs and Terraform provider consume, so a misspelled field fails fast instead of dropping silently. The workspace always comes from the active context. A workspace_id in the file is ignored.
agent.yaml

Update agent

Update an agent to change its metadata or capabilities. Only the fields you send change, and list fields replace rather than merge.
Requires agent.register.

Change allowed resources

You can change which pools, models, tools, and Gateways the agent may reach. Refer to Allowed resources for what these grants mean. When you allow models, a pool is usually the better choice than an individual model, because a pool can fail over and load-balance.
Requires agent.register and rules.deploy, because every change regenerates the agent’s rule bundle.
Tool names take the form <connection-name>/<tool-name>. When a pool is not appropriate, --model allows a specific model connection, and --capabilities sets custom capability strings.
When you change one of these fields, the value you send replaces the existing list rather than merging into it, so a partial list drops whatever it omits and an empty value clears the list. In the dashboard, the agent detail page hides the edit controls on Capabilities and Delegation when the caller lacks rules.deploy, and the edit dialog shows a banner explaining the limit.

Change end-user identity

You can also change how Dome verifies the end user an agent acts for, and which identities it may present. Refer to Delegated identity and Delegated agents for providers and the workspace floor.
Requires agent.register and rules.deploy.
Populating an acceptable-identity list denies any request whose verified claim is not on the list. Leaving all three empty accepts any verified identity, and workspace-level act-as enforcement still applies.

Get agent

Retrieve an agent by name or UUID. Before you configure a runtime, you should retrieve an agent’s information to confirm its status and the endpoint its traffic should reach.
Requires agent.view.
Reference: dome agents get
When gateway_id is supplied, the response includes the agent record and that accessible Gateway’s complete protocol endpoints. Omit it for metadata only.
Response
The dashboard shows the same pair on the agent detail page’s Identity card, each with a copy button.

List agents

Retrieve a list of agents in a workspace. You can narrow the results by filtering on status, such as to find every suspended agent.
Requires agent.view.
A list returns 100 agents unless --limit says otherwise.
Reference: dome agents list

Manage lifecycle

An agent moves through four states. Provisioned and active agents can send traffic. Suspended and revoked agents are denied. When agents are in a hierarchy, lifecycle operations reach descendants differently: Parent and child must already share a tenant. Hierarchy does not grant access. Full transition detail is on the Agent Lifecycle concept.

Suspend

Suspend an agent to deny its requests until you reactivate it. Suspension is reversible. With cascade, it also suspends active descendants.
Requires agent.suspend.

Reactivate

Reactivate a suspended agent to restore its traffic. Reactivation applies only to an agent in the suspended state, and it covers one agent, so a cascaded suspension takes one reactivation per agent.
Requires agent.suspend.

Revoke

Revoke an agent to decommission it permanently. Its record and audit history remain readable.
Requires agent.revoke.
Revocation cannot be reversed and always cascades to every descendant agent.

Delete

Delete a revoked agent to remove it and all of its data. Deletion works only on a revoked agent and rejects an agent in any other state.
Requires agent.delete.
Deletion removes the agent record and its data irreversibly, including its keys. Revoke instead when you need the record retained.
Deletion covers one agent, and it fails when that agent still has descendants. Adding --cascade deletes the agent and its descendants in one call, deepest first, and every descendant must already be revoked.

Manage API keys

An API key is the credential the agent runtime presents to Dome. An agent can hold several keys, so you can rotate a credential or keep one key per environment. Keys scope to the agent’s tenant and workspace.
Requires agentkey.manage to create, rotate, or revoke a key, and agent.view to list them.
The token is returned once, when you create or rotate a key. Store it immediately, because it cannot be retrieved again.

Create key

Create a key to receive the one-time token, selected gateway_id, and complete gateway_endpoints. Supply a Gateway when the agent can access more than one.
Response
A separate key for each runtime or environment lets you revoke one without disrupting the others.

List keys

Retrieve an agent’s active keys with their names and creation times. A list never returns tokens, because Dome returns a token only when you create or rotate a key.

Rotate key

Rotate a key to revoke the old secret and issue a new one under the same name. Dome returns the new token and the gateway endpoint. The old secret stops authenticating as soon as you rotate, so deploy the new token promptly.

Revoke key

Revoke a key to retire it without affecting the agent’s other keys. A revoked key stops authenticating immediately, so confirm the runtime holds a working key before you revoke this one.

Manage agent-scoped rules

Agent-scope rules apply to one agent, for conditions allowed resources cannot express. They evaluate in addition to organization, tenant, and workspace rules, and a deny at the workspace scope overrides an allow at the agent scope. Refer to Authorize Access for creating rules, inherited scopes, and deployment.

Assign rules

Assign rule files to the agent scope, where the gateway evaluates them alongside the rules the agent inherits from higher scopes.
Requires rules.deploy.

View rules

Retrieve the rules assigned at the agent scope. The result excludes the organization, tenant, and workspace rules the agent also inherits.
Requires rules.view.

Next steps