Egress auth modes
mode
No credential. For endpoints that are public or protected some other way.
mode
A long-lived bearer token you store on the connection. Simple, and the same for every subject — your endpoint cannot tell one of your users from another, so the token’s own authority applies.
mode
We fetch a short-lived token per subject from your
mint_url, then present it. Your endpoint verifies it, reads sub, and runs its own per-user authorization unchanged. This is the mode that keeps the subject’s authority intact end to end.A connection declares one mint URL, and it must handle both callers — see The mint endpoint. If it only handles your browser, the Playground cannot drive this connection.static must carry a bearer token; one set to minted must carry a mint URL. Validation enforces both.
Two secrets, two jobs
They are easy to conflate and must never collapse into one:
If we held both, we could answer both ourselves — which would make us able to mint identities. Keeping them separate is what makes an intercepted session token useless on its own. See Signing and verification.
Opening the MCP door
A connection with an MCP login URL makes every published agent that uses it reachable from your users’ own AI clients. The URL is a page you host that authenticates your user and signs their subject back to us; identity is the only thing MCP export asks of you. It sits on the connection rather than the agent because identity belongs to the backend. Agents on different connections can serve different user pools; agents on the same one share it.Choosing a connection at request time
An agent can pin a connection, or leave it open and take one per request:- Relay —
Patchwork-Connection: <uuid or name> - Direct — the
connclaim in the session token, which must be a UUID
422 connection_required.
Once a run has a connection, it is fixed for that run. Resuming a paused run with a different connection is refused — otherwise a multi-turn conversation could silently change which of your hosts it was talking to.
Testing one
Press Test on a connection. We POST a signed nonce to/patchwork/up on your host and check for a proof only computable with the shared request secret.
Only
verified means the trust is wired correctly. A bare ok cannot pass — it cannot fake the proof.