Saltar para o conteúdo principal
O Agent Firewall é configurado de duas maneiras: através do console (sua sessão, o mesmo login que você usa para o dashboard) e através do gateway (uma chave de API dedicada com escopo de firewall que seu agente apresenta em tempo de execução). As duas famílias vivem em prefixos de path diferentes, tomam autenticação diferente e respondem a perguntas diferentes — “edite a política” versus “avalie esta chamada de ferramenta”. Esta página é o mapa rota a rota de ambas. Para o que a política significa — vereditos, superfícies, regras, resolução — comece em Firewall e Regras de firewall. Esta página é apenas a superfície da API.

1. As duas famílias de rotas

Console — configurar

/api/workspace/firewall/*. Autenticado pelo seu token de sessão / acesso (UserAuth), com escopo para o seu workspace ativo. Crie políticas, leia eventos, registre servidores MCP, resolva aprovações. Toda ação é controlada por papel.

Gateway — aplicar

/api/v1/firewall/*. Autenticado por uma chave com escopo de firewall-gateway (uma chave com is_firewall_gateway definido). A superfície machine-to-machine que seu agente ou cliente MCP chama em tempo de execução. Uma chave de relay normal recebe 403 aqui.
As rotas de console nunca tomam uma chave de relay sk-orca-…, e as rotas de gateway nunca tomam um token de sessão. Confundi-las é o 401/403 mais comum ao conectar o firewall pela primeira vez. A única chave sk-orca-… que pertence a uma chamada /v1/firewall/* é uma cunhada com is_firewall_gateway ligado — veja Escopo, chaves & políticas.

2. Papéis em resumo

As rotas de console resolvem seu papel de workspace e controlam de acordo. Leituras que não carregam proveniência de chamada de ferramenta são abertas a qualquer membro; escritas e qualquer coisa que exponha argumentos de chamada de ferramenta exigem Developer+.
PapelPode fazer
Viewer / membroLer settings, políticas, presets, ferramentas descobertas, simulate, anomalias.
Developer+Tudo acima, mais cada escrita, a superfície events/runs/trace e o dry-run test.
Admin+Adicionalmente, definir a flag is_firewall_gateway em uma chave e ler o texto em claro de uma chave de gateway.
A divisão é deliberada: um viewer pode ver que uma política existe e o que ela bloquearia, mas não os argumentos brutos da chamada de ferramenta por trás de um evento. Se você está construindo dashboards para não-desenvolvedores, as rotas abertas para leitura são o conjunto seguro.

3. Configure uma política a partir do console

As rotas de console são como você cria e inspeciona a política. Você configura tudo na UI do dashboard — estes são os mesmos endpoints que ela chama.

Políticas & settings

Método & pathPapelPropósito
GET /api/workspace/firewall/settingsMemberObserve-mode + contagens.
PUT /api/workspace/firewall/settingsDeveloper+Atualiza configurações de firewall do workspace.
GET /api/workspace/firewall/policiesMemberLista políticas.
GET /api/workspace/firewall/policies/:idMemberDetalhe de uma única política.
POST /api/workspace/firewall/policiesDeveloper+Cria uma política.
PUT /api/workspace/firewall/policiesDeveloper+Atualiza uma política.
DELETE /api/workspace/firewall/policies/:idDeveloper+Deleta uma política.
POST /api/workspace/firewall/rulesDeveloper+Adiciona uma regra.
PUT /api/workspace/firewall/rulesDeveloper+Atualiza uma regra.
DELETE /api/workspace/firewall/rules/:idDeveloper+Deleta uma regra.

Postura, presets & sandboxes

Método & pathPapelPropósito
GET /api/workspace/firewall/presetsMemberPresets de regra embutidos.
GET /api/workspace/firewall/templatesMemberGaleria de templates por caso de uso.
POST /api/workspace/firewall/templates/applyDeveloper+Aplica um template → uma política + suas regras.
POST /api/workspace/firewall/autonomyDeveloper+Aplica um nível de autonomia (tight / balanced / permissive).
POST /api/workspace/firewall/autonomy/undo/:audit_idDeveloper+Desfazer em um clique a partir do snapshot de auditoria.
GET /api/workspace/firewall/simulateMemberO que um nível bloquearia (?level=).
POST /api/workspace/firewall/testDeveloper+Dry-run de uma política contra uma chamada de amostra.

Observabilidade

Método & pathPapelPropósito
GET /api/workspace/firewall/discovered-toolsMemberFerramentas vistas, marcadas covered / gap.
GET /api/workspace/firewall/eventsDeveloper+Lista eventos de firewall (filtrável).
GET /api/workspace/firewall/events/by-request/:request_idDeveloper+Eventos de uma requisição.
GET /api/workspace/firewall/events/aggregateDeveloper+Rollup de runs / sessions.
GET /api/workspace/firewall/trace/by-runDeveloper+Nós de trace de uma run (?run_id=).
GET /api/workspace/firewall/anomaliesMemberFeed de anomalias.
POST /api/workspace/firewall/anomalies/snoozeDeveloper+Dá snooze no feed (≤ 7 dias).

Servidores MCP

Registre os servidores Model Context Protocol que seus agentes alcançam, atrás de um único gateway auditado. As credenciais são armazenadas criptografadas e mascaradas na leitura.
Método & pathPapelPropósito
GET /api/workspace/firewall/mcp_serversMemberLista servidores registrados.
GET /api/workspace/firewall/mcp_servers/:idMemberDetalhe do servidor.
POST /api/workspace/firewall/mcp_serversDeveloper+Registra um servidor (409 em um name duplicado).
PUT /api/workspace/firewall/mcp_serversDeveloper+Atualiza um servidor.
DELETE /api/workspace/firewall/mcp_servers/:idDeveloper+Remove um servidor.
POST /api/workspace/firewall/mcp_servers/:id/probeDeveloper+Handshake de alcançabilidade + tools/list.
Um servidor carrega um name único, um endpoint, um auth_mode (none / bearer / oauth / basic) e um status de saúde (ok / degraded / down). Veja Firewall MCP para o ciclo de vida completo e a quarentena de skills.

4. Aplique no gateway

Estas rodam em uma chave com escopo de firewall-gateway, não na sua sessão. São o que seu loop de agente ou cliente MCP chama em tempo de execução.
Método & pathPropósito
POST /api/v1/firewall/evaluateVeredito pré-dispatch para uma chamada de ferramenta.
POST /api/v1/firewall/evaluate_planVerificação pré-execução para um plano de múltiplos passos.
ANY /api/v1/firewall/mcpO endpoint unificado do gateway MCP.
GET /api/v1/firewall/mcp_serversEnumera os servidores registrados do workspace.
GET /api/v1/firewall/approvals/:idConsulta o estado de aprovação de uma chamada retida.
POST /api/v1/firewall/approvals/:id/callbackCallback de aprovação assinado por HMAC.

Um exemplo concreto: avaliar uma chamada de ferramenta

Antes de o seu agente despachar uma ferramenta, peça um veredito ao gateway. Passe a chave com escopo de firewall-gateway — não sua chave de relay sk-orca-…:
curl https://api.orcarouter.ai/api/v1/firewall/evaluate \
  -H "Authorization: Bearer <firewall-gateway-key>" \
  -H "Content-Type: application/json" \
  -d '{
    "tool_name": "shell.exec",
    "arguments": { "command": "rm -rf /" }
  }'
A resposta carrega o veredito — allow, audit, deny, sanitize ou pending_approval. Em deny você pula a chamada e expõe o motivo ao modelo; em sanitize você encaminha os argumentos limpos que o gateway devolve (sanitize redige apenas os argumentos da chamada de ferramenta — nunca o conteúdo que uma ferramenta retorna); em pending_approval você entra no loop de aprovação abaixo.
O gateway avalia as chamadas que o cruzam — o hook evaluate, o gateway MCP e o caminho de relay. Uma ferramenta que seu agente roda inteiramente em-processo, nunca tocando o OrcaRouter, está fora da sua visão. Roteie as chamadas que importam (ferramentas mediadas por modelo, dispatch de MCP, egress de rede) através do gateway e elas estão governadas.

5. O handshake de aprovação (HITL)

Um veredito pending_approval retém a chamada para um humano. O erro HTTP enquanto retida é firewall_approval_pending. Liberá-la é um loop de três passos dividido entre ambas as famílias de rotas:
1

Um revisor resolve o hold

A partir do console (PATCH /api/workspace/firewall/approvals/:id, Developer+), ou seu próprio sistema posta um callback assinado por HMAC para POST /api/v1/firewall/approvals/:id/callback. O callback verifica o HMAC inline — nenhuma outra autenticação é aceita.
2

Seu agente consulta a aprovação

GET /api/v1/firewall/approvals/:id com a chave de gateway, até o estado virar aprovado ou rejeitado.
3

Reenvie com o token de uso único

Uma vez aprovada, reemita a chamada original carregando o header X-OrcaRouter-Firewall-Approval com o id de aprovação. O gateway o reconhece e deixa aquela única chamada passar. O header é de uso único.
As decisões são first-writer-wins e idempotentes — uma segunda resolução do mesmo hold é um no-op. Veja Firewall — Aprovação humana para o fluxo de ponta a ponta e Por que isto foi bloqueado? para ler um veredito.

6. Como é um bloqueio

ResultadoHTTPCódigo
Chamada de ferramenta negada (superfície inbound)400firewall_blocked
Negada via gateway MCPerro de ferramentafirewall deny: <reason>
Retida para aprovação400firewall_approval_pending
firewall_blocked é marcado skip-retry — reexecutar a chamada idêntica apenas bloquearia de novo, então um cliente com retry recua em vez de martelar. A lista completa de códigos vive em Códigos de erro.

7. Referências relacionadas

API de Guardrail

O par de política de conteúdo — rotas /api/guardrail/* para o plano de texto.

Glossário de vereditos

Cada veredito e o que ele faz com uma chamada.

Glob & JSONPath

A gramática de correspondência por trás de tool_name_glob e args_match.

API de Compliance

Packs, relatórios assinados, residência e erasure.

8. FAQ

As rotas do gateway exigem uma chave com escopo de firewall-gateway — uma cunhada com is_firewall_gateway definido (uma ação de Admin+). Uma chave de relay normal, mesmo que válida, recebe 403. Cunhe uma chave de gateway dedicada para o runtime do seu agente.
Não. As rotas events, events/aggregate e trace são Developer+ porque os registros carregam proveniência de argumentos de chamada de ferramenta. Viewers podem ler settings, políticas, presets, ferramentas descobertas, simulate e o feed de anomalias.
Qualquer um. Um humano a resolve no console via PATCH /api/workspace/firewall/approvals/:id (Developer+), ou seu próprio sistema posta uma decisão assinada por HMAC para POST /api/v1/firewall/approvals/:id/callback. O agente consulta GET /api/v1/firewall/approvals/:id independentemente de qual caminho a resolveu.
Não. Um veredito sanitize redige apenas os argumentos da chamada de ferramenta — nunca o conteúdo que uma ferramenta retorna. Na superfície inbound, onde ainda não há argumentos em tempo de chamada, o sanitize escala para um bloqueio. Veja Regras de firewall.

Para como esses controles se compõem com os guardrails e o resto do gateway, veja Segurança de agentes de IA e Guardrails vs Firewall.