Skip to main content

Overview

Guards sit on Dome’s content path and decide what of an authorized call’s body may leave a backend or reach the agent. They attach to a model or tool connection and to a direction (request or response). When an assigned Guard cannot be evaluated, the gateway blocks that connection and direction. Filters are a Guard type. Model connections accept only text Filters. Tool connections accept only json Filters. The typical workflow is:
  1. Create a Filter for the connection kind you need.
  2. Assign ordered Filter chains on the connection and direction.
  3. Configure the streaming window when model response Filters need more context.

Requirements

Before you begin:
  • Authenticate to Dome and select a workspace
  • Have at least one model or tool connection to assign

Permissions

Guard Filter operations require platform permissions. Each operation restates its permission inline.

Filters

Filters are a Guard type. Create and version Filters here, assign them to connections, and tune the streaming window used when response Filters inspect model output.

Create a Filter

Create a Filter to define its first active version. Text Filters use convenience flags. JSON Filters use a config file.
Requires filters.manage.
When more than one JSON action targets the same path, precedence is BLOCK > OMIT > REDACT. REDACT rewrites the matched span or value, OMIT removes a JSON field, and BLOCK withholds the whole message and stops the chain.
Text Filter
JSON Filter
tool-scrub.json
Convenience flags build at most two text components. Redact runs first, then block. Use --config-from for a JSON Filter or a multi-component text chain.

Update a Filter

Update Filter metadata in place, or pass any config flag to deploy a new active version. The previous version remains in history. Assigned connections follow the active version on the next gateway sync.
Requires filters.manage.

Roll back a Filter

Roll a Filter back to an earlier version. The target version’s config is copied forward into a new active version. History is never mutated.
Requires filters.manage.

Delete a Filter

Delete a Filter and its connection assignments. Corrupt Filters can still be addressed by UUID when their config fails to render.
Requires filters.manage.
Delete removes the Filter and every assignment that references it.

Assign ordered Filter chains

Each assignment binds Filters to a (connection, direction) slot. Setting a chain replaces the complete ordered list for that slot. Clear a chain with an empty filter list.
Requires filters.manage.
Model connections accept only text Filters. Tool connections accept only json Filters.
Model connection
Tool connection
Clear a chain
Inspect assignments with:

Configure the streaming window

Configure how much streamed model output the gateway buffers before applying response Filters. Layering rules are on the Guards concept and streaming window reference.
Requires config.manage for the workspace floor. Per-connection windows require gateway.manage. Per-request overrides are set by the calling agent in the request body.
In the dashboard, set the workspace floor under Settings → Config. From the API:
Agents can request a wider buffer for a single call by adding a _dome block to the OpenAI- or Anthropic-shaped body:
The override is validated against the same bounds the workspace floor uses and is invisible to the upstream provider. Refer to Models for the per-connection flags.

Next steps

  • Guards concept for how content inspection works
  • Guards reference for Filter kinds, actions, path syntax, and streaming layers
  • Connect Tools to add tool connections
  • Models to set per-connection filter windows
  • Authorize Access when a call should be allowed or denied before Guards run
  • Architecture concept for where Guards sit in the request path