Agent credential gateway · architecture explainer · September 2026

Give agents authority.
Keep the keys.

A permission layer between AI agents and the services they need. Connect any trusted agent identity to any credential system, grant one bounded action, and return the result without handing the agent a reusable secret.

Live canary provenTurbopuffer E2E

3 writes · BM25 query · replay and path denials

3documents brokered
maximum ticket use
409replay denied
403namespace escape denied
Provider-neutral design

The missing permission layer for agent teams.

Teams already have identities, policies, passwords, API keys, and cloud accounts. The gateway connects them without becoming another vault or forcing every agent runtime to reinvent secret handling.

BRING YOUR IDENTITY

Know who is acting

Identity + accountability

Accept agent identity from the system a team already trusts, preserve the accountable human or workload, and namespace every connection to the right tenant.

identity proof → normalized principalCommons Gateway Agents · OIDC · Auth0 · WorkOS · SPIFFE
GRANT AN ACTION, NOT A KEY

Make one safe call

Stable enforcement core

Bind authority to an exact actor, connection, operation, request, expiry, and run. Consume it atomically once, reject mutation and replay, then write a safe receipt.

authorize → bind → consume once → auditshort-lived · exact-request · fail-closed · attributable
BRING YOUR VAULT

Keep secrets where they belong

Credential execution provider

Let a vault, proxy, or cloud identity system apply the credential at the final hop. The agent gets a bounded result, never the underlying password or API key.

execute(opaque binding, request) → responseInfisical · 1Password · Vault · AWS · GCP · Azure
The product promise: administrators connect a service once; agents discover useful actions; every call is narrowly authorized, credentialed at execution time, and joined to an accountable receipt.
The simple picture

Two providers. One safe gateway.

The identity provider says who the agent is and what it may do. The credential provider keeps and applies the secret. The gateway joins those two facts for one exact call.

Agent identity provider

Who is this agent?

Authenticates the agent or workload and supplies the accountable principal and allowed action.

  • Commons Agent IDs
  • OIDC — Okta, Auth0, WorkOS
  • SPIFFE / SPIRE workload identity
  • AWS, GCP, or Azure workload identity
verified identity + scoped permission
Credential store / executor

Where does the secret live?

Stores the reusable credential and applies it at the final hop without returning it to the agent.

  • Infisical Agent Proxy
  • 1Password Connect
  • HashiCorp Vault
  • AWS, GCP, or Azure secret managers
opaque secret binding + injection
Logical namespace overlay · virtual tenancy

Spaces stay separate even when they share a vault group.

Each Space gets its own policy and audit boundary. A binding maps that logical namespace to the credential provider’s physical group, folder, or path.

Space ASpace BSpace C
many-to-one binding →
Infisical vault group
The join point

One-time Credential Gateway

Resolves the Space namespace to its provider binding, then turns identity and policy into one exact authenticated action. The agent gets the result—not a reusable key.

short-livedone userequest-boundaudited
one authenticated request
External service

The destination receives a normal authenticated API call.

Turbopuffer · GitHub · Stripe · Railway · PostHog · any allowlisted service

Identity proves who.
Identity alone does not authorize a spend, mutation, or task.
Policy decides what.
The issuer signs one bounded authorization; the gateway independently narrows it.
The credential provider executes.
Reusable secrets stay behind an isolated injection boundary.
The design rule: the agent receives authority to perform one operation, not a credential it can reuse elsewhere. A durable Connection joins the trusted issuer, policy, destination limits, and opaque credential binding.
One real request

From intent to evidence.

The recommended product path is a managed call: the authorization issuer and gateway keep the short-lived grant server-side, so even the one-call token is hidden from the agent.

01

Agent requests an action

“For run 843, query the team’s Turbopuffer namespace.”

Intent only — no provider credential
02

Trusted issuer decides

Checks identity, tenant, workflow context, connection rules, approval, and the exact action.

Policy decision + accountable human
03

Gateway consumes once

Validates signature, 30-second expiry, method, origin, path, headers, and body hash.

Atomic one-use record written first
04

Credential provider executes

An isolated vault adapter, proxy, or workload identity applies the credential at the final hop.

Secret remains behind the provider boundary
05

Provider answers

The allowlisted response returns through the gateway with size and header limits.

Agent gets the result, not the key
06

Ledgers form one receipt

Issuer, gateway, credential provider, and destination records can be correlated safely.

Space · actor · run · request ID
The receipt

Three ledgers make one story.

No single system has to assert everything. Each records the portion it actually witnessed; shared IDs let administrators reconcile them.

01JOIN →

Commons intent

  • Space + member
  • Accountable operator
  • Task + run + purpose
  • Approval decision
02JOIN →

Gateway execution

  • Issued → started → brokered
  • Exact destination + method
  • Status + latency + bytes
  • Ticket fingerprint
03RECEIPT

Infisical use

  • Machine identity
  • Project + secret path
  • Service + credential name
  • Usage time — never value

Shared spine Space ID · connection ID · actor ID · operator ID · task/run ID · request fingerprint · provider request ID

Proposed admin experience

A control room—not a secret viewer.

Commons should fetch gateway events server-to-server, apply Owner/Host and Space scoping, reconcile Infisical activity, then return safe records to the browser.

All systems ready
Last 24 hours · spaces-product
Calls128+14% this week
Allowed12496.9%
Denied43 replays · 1 expired
p95 latency481msproxy + provider
TimeDecisionAgentSpaceSafe request summaryResult
10:42:03.118issuedresearch-agentspaces-productGET railway/projects/•••
10:42:03.162startedresearch-agentspaces-productexact request matched
10:42:03.481brokeredresearch-agentspaces-productInfisical → Railway200 · 319ms
10:43:20.008deniedresearch-agentspaces-productreplayed ticketREPLAY
Never displayed: credential values, Authorization/Cookie headers, query values, request bodies, response bodies, or raw tickets.
VIEW

Overview

Health, call volume by Space, outcomes, latency, replay attempts, and reconciliation gaps.

DRILL IN

Request timeline

Join Commons grant, gateway execution, Infisical use, and provider request ID without exposing content.

ALERT

Actionable signals

Denial spikes, 5xx, unusual latency, missing ledger counterpart, policy drift, rate limits, and rotation due.

Security model

Make the wrong thing impossible.

The gateway assumes callers and inputs can be hostile. Every boundary narrows authority and every useful side effect begins with durable evidence.

Exact-request capability

Valid only for this actor, Space, run, destination, method, path, headers, and body hash.

ISSUERTrusted authorization providerAUDIENCEGatewayTTL≤ 30sUSES1
ReplayAtomic uniqueness in Postgres
SSRFExact origins + private/link-local denial
Secret smugglingAuth, cookie, proxy, hop-by-hop headers rejected
Redirect escapeRedirects and encoded delimiters rejected
Data spillBounded response, safe headers, sanitized logs
Replica race“Started” persisted before upstream effect
How we prove it

Test the contract, not just the demo.

A production decision should be based on repeatable evidence: success, denial, failure recovery, and proof that sensitive values never enter the observability plane.

01

Happy path

Claim task → request managed call → authorize → consume once → inject → 200 → reconcile three ledgers.

02

Adversarial

Wrong member, task, method, origin, path, header, body, expiry, replay, redirect, DNS target, or oversized payload must fail closed.

03

Operational

Race two replicas, restart Postgres, kill the gateway mid-call, rotate a key, simulate proxy outage, 429, 5xx, and timeout.

04

Evidence

Plant fake secrets in inputs and responses, then prove they never appear in events, metrics, traces, UI, or exported receipts.

Minimum production barEvery allowed call has one joined receipt.Every mutation mismatch and replay is denied.No planted secret appears in logs or UI.A proxy or database outage fails closed.
September 3, 2026 · production

The Turbopuffer canary is real.

A Read + Write key with no Admin/List permission is stored as TURBOPUFFER_API_KEY in Infisical. The proxy injects it only for gcp-europe-west1.turbopuffer.com/v2/namespaces/agent-wiki-*.

  • PASS3 documents upserted into agent-wiki-canary
  • PASSBM25 returned the unique “pufferfish canary” document
  • PASSSecond ticket use rejected: 409 ticket_replayed
  • PASSOut-of-prefix namespace rejected: 403 path_not_allowed

Live reference implementation Commons Gateway Agents → one-call gateway → Infisical Agent Proxy → Turbopuffer is proven. The provider-neutral contracts shown above are the next architecture slice before adding a second identity and credential provider.

In the product

Four people, four clear paths.

Select a role to see the practical product flow. The interfaces differ, but each produces the same accountable request receipt.

Administrator flow

Connect a provider once, constrain it, prove it, then make the capability discoverable in one Space.

  1. 01

    Choose the boundary

    Pick the Space, provider, environment, and narrow actions the connection should support.

  2. 02

    Create a limited provider identity

    Prefer a Railway project token, restricted Stripe key, or scoped PostHog key—not an owner credential.

  3. 03

    Store it in Infisical

    Place the real value in the environment and folder for this connection. Commons stores only the reference.

  4. 04

    Configure the proxy

    Bind a service template to the allowlisted host and specify exactly where Infisical may inject the credential.

  5. 05

    Set Commons policy

    Choose allowed agents, task requirement, approval threshold, methods, paths, TTL, and rate limits.

  6. 06

    Run the canary

    Execute a harmless read, confirm all three records agree, then publish the connection to the Space.

Where things live

One source of truth for each concern.

The authorization issuer owns authority. The credential provider owns secrets. The gateway owns one-use enforcement and execution evidence. Agents own neither the reusable credential nor the policy.

SystemLives hereMust never live here
Commons (reference issuer)Identity, operator, Space membership, task/run, connection policy, approval metadataProvider secret
Gateway memoryExact request while it is being checked and proxiedPersisted secret or reusable credential
Gateway PostgresOne-use fingerprints and sanitized execution eventsHeaders, bodies, query values, tickets, cookies
Infisical (reference provider)Real provider secrets, service templates, access and usage recordsCommons membership or task policy
ProviderRailway/Stripe/PostHog resources and provider-side activity logsCommons ticket or internal approval state
Agent runtimeCommons identity, requested action, bounded result, call receiptUpstream credential—and preferably no raw ticket
Provisioning + execution

Projects.dev creates. The gateway governs.

Provisioning systems can spin up projects and integrations. They should hand back scoped connection references—not permanent provider secrets—to Commons.

SETUP PLANE

Projects.dev / provider provisioning

Create the project, restricted service account, webhook, or API key.

SECRET PLANE

Infisical

Receive, rotate, and apply the credential under a per-environment service binding.

ACTION PLANE

Commons gateway

Authorize one exact agent action and produce a durable, sanitized receipt.

Reality check

What is live—and what comes next.

The canary proves the core chain. The next milestone is turning configuration and raw audit plumbing into a role-scoped Commons product experience.

LIVE TODAY

Core enforcement

  • Commons identity/policy and managed calls
  • One-use, exact-request tickets
  • Private Infisical Agent Proxy
  • Agent Wiki → Turbopuffer connection
  • Durable replay protection + sanitized events
NEXT

Operational product

  • Add versioned AuthorizationIssuer envelopes
  • Register per-issuer trust and connection scope
  • Add typed ServiceActionAdapter policy
  • Database-backed Connections + Access UI
  • Per-Space admin dashboard and alerts
  • Infisical/provider reconciliation
  • Idempotent results, rotation, and egress controls
The north star

Agents get useful authority.
Humans keep meaningful control.

Agent Wiki on Turbopuffer is the first write-capable canary. Keep indexing to public wiki content first; add private content and Stripe only behind typed actions, stronger approval, and provider-side controls.