Skip to main content
Gateway access connects the Blue inference proxy to the inference gateway your organization operates. Blue does not bundle the upstream gateway; LiteLLM is the first and currently only supported gateway type. It is independent of session capture: enabling either feature does not enable the other.

Responsibilities and data flow

Blue stores the gateway credential envelope-encrypted and gives the client a session-bound, inference-only JWT. Provider credentials, LiteLLM administrator credentials, the signing key, and the managed gateway key remain server-side.

Prerequisites

  • A global gateway block in blue.yaml.
  • Your reachable LiteLLM gateway and the Blue inference proxy.
  • A provisioner selected by gateway.provisioner.type.
  • Encryption configured for stored gateway credentials.
  • Matching user identities in Blue and the gateway.
Choose one provisioner model. The built-in LiteLLM provisioner matches users by exact, case-insensitive email. A custom executable provisioner can apply another identity, account, team, budget, or credential policy.

Configure gateway access

blue/blue.yaml
The built-in implementation uses HARNESS_LITELLM_ADMIN_KEY and the configured gateway URL. It does not use executable fields.
Keep the gateway administrator key, the inference proxy’s OAuth client secret, provider credentials, and encryption credentials in the runtime Secret, not in blue.yaml. See Bring your own gateway for deployment topology and Blue YAML for the complete configuration schema.

Provision and reconcile a user

Users can provision from the dashboard’s Gateway page or the CLI:
Harness launch performs the same ensure operation lazily. If provisioning fails, Blue blocks personalized gateway policy delivery instead of launching with incomplete routing credentials. When status is ready, the dashboard’s Key tab also calls POST /gateway/key/validate. Validation rechecks the upstream key at most once every 60 seconds. A confirmed invalid credential is cleared and reported as invalid; replacement requires the ensure operation, such as running blue gateway. A missing credential is reported without contacting the provisioner. The provisioner receives the authenticated Blue identity, ensure reason, and the previous external ID, alias, and metadata when a credential already exists. It creates a credential when none exists, updates it when configuration or policy_revision changes, and periodically reconciles it after the TTL. Harness launch and personalized configuration fetch both ensure access before governed inference begins. An executable can return credential: null only when retaining the previous encrypted credential. A rotated credential causes Blue to replace the stored encrypted value and invalidate cached credential mappings. If ensure fails, Blue records the public error, stores no partial result, and retries on the next governed launch or configuration fetch.
Relaunch gateway-routed harnesses after credential rotation or access-profile changes. A process that is already running retains the configuration it received at launch.

Dashboard and permissions

The Gateway page appears only when gateway policy is active.
  • Key is visible to members and administrators and shows managed access status without exposing plaintext credentials.
  • Overview is administrator-only and shows upstream and client-facing endpoints, supported harnesses, proxy health, and a non-secret runtime checklist.
  • Logs is administrator-only and shows organization-wide request metadata and filters.
Members can see their own credential status but cannot see request records. API role checks enforce the same boundaries as the dashboard.

Request history

Blue records metadata for authenticated requests forwarded through the proxy, including upstream errors and transport failures. Filters include user, key, model, harness, result, and date. Records can include allowlisted repository, branch, commit, dirty-state, and run attribution. Blue does not store prompts, request or response bodies, credentials, query strings, inference JWTs, virtual keys, or arbitrary headers in request history. Delivery is asynchronous and best effort so a Control API logging failure does not delay inference traffic. Expired database rows are removed automatically after control_api.gateway_request_logs.retention_days.

Change or disable access

  • Change provisioner policy and its policy revision to reconcile existing credentials.
  • Remove a user’s gateway access through the source gateway or identity policy; Blue retries idempotent revocation where applicable.
  • Remove the top-level gateway block to disable gateway personalization for the deployment. Native agents then use their normal provider configuration.
  • Stop the inference proxy after the policy no longer advertises gateway mode.
Starting an agent binary directly bypasses Blue’s launch-time gateway wiring. Launch through blue, for example blue codex.

Troubleshooting

Never deliver a provider key, LiteLLM administrator key, or server-side virtual key or signing key to a developer machine. Only the session-bound inference JWT and client-reachable proxy URL belong in personalized harness configuration.