DocsUsing Gatehouse

Access requests from chat

Let people ask for tools they don't have yet, right from their agent.

People often find out they need a tool in the middle of a task. Gatehouse lets them ask from the same chat, and gives admins one place to say yes.

Access requests in the console

What people do

Every agent connected to Gatehouse has three built-in tools:

Tool What it does
gatehouse__list_requestable_tools Lists tools the person can ask for, with descriptions and any pending request.
gatehouse__request_tool_access Asks an admin for one or more tools, with a reason.
gatehouse__list_my_requests Shows the person's requests and their status.

A person can simply tell their agent "I need access to the Sentry tools to triage this incident". The agent finds the tools and files the request with that reason. When a call is blocked, the agent can also suggest asking for access.

Only tools on requestable servers appear. Tools on private servers behave as if they don't exist.

What admins do

Open Approvals → Access requests. Each request shows the person, the tools, their reason and which agent filed it. Choose:

  • Full access: a new policy allows those tools for that person.
  • Approve each call: a new policy lets them use the tools, but each call waits for approval. Pick the approver group.

Add an optional note and click Approve, or Reject with a note explaining why. Approving also turns on any of the tools that were off. The new policy is named after the request, so you can find, change or remove it later under Policies.

The person's agent sees the new tools within seconds, without reconnecting.

Over the API

# Ask for access
curl -X POST -H "Authorization: Bearer $GATEHOUSE_TOKEN" -H "Content-Type: application/json" \
  -d '{"tools": ["sentry__list_issues"], "reason": "Triage for incident 4521"}' \
  https://gatehouse.yourcompany.com/api/access-requests

# Approve with each call requiring SRE approval (admins)
curl -X POST -H "Authorization: Bearer $GATEHOUSE_TOKEN" -H "Content-Type: application/json" \
  -d '{"approve": true, "grant": "approve", "approverTeam": "sre"}' \
  https://gatehouse.yourcompany.com/api/access-requests/<id>/decide