github obot-platform/obot v0.28.0

55 minutes ago

We're excited to announce the v0.28.0 release of the Obot Platform. This release introduces a unified LLM gateway with profiles, budgets, and guardrails, publishes vMCPs through the MCP Registry API, adds Keycloak and OneLogin auth providers with SCIM provisioning for Entra and OneLogin, and lets remote MCP servers receive trusted caller attribution headers.

Big Updates

Unified LLM Gateway with Profiles, Budgets, and Guardrails

Obot now reaches every model through one LLM gateway. A single endpoint, /api/llm-proxy/v1, serves every configured model in the OpenAI Chat Completions, OpenAI Responses, and Anthropic Messages formats, so Claude Code can use GPT models and the OpenAI SDK can use Claude. Administrators manage providers, keys, routing rules, weighted splits, and fallbacks from the LLM Gateway page, and the Connect tab gives ready-to-copy setup for Claude Code, Codex, OpenCode, Goose, Cline, Open WebUI, and the common SDKs. Bedrock and Azure providers support each of their authentication methods, and all providers' configuration is stored in Obot's own database.

Model access policies are now profiles. Each profile names users and groups, the models they can use, budgets that cap spend, tokens, or requests over rolling or calendar windows, and applied guardrails. Guardrails include built-in secrets, regex/PII, and LLM judge checks, along with integrations for Presidio, Azure AI Language and Content Safety, AWS Bedrock Guardrails, Google Model Armor, Lakera Guard (Check Point), Patronus, and CrowdStrike AIDR. They block, redact, or log model traffic, including streamed responses, and guardrail filters apply the same checks to MCP tool calls. Administrators can also let Claude Code users bill requests to their own Claude subscription while Obot still enforces access and guardrails and records each request in the audit log. See the docs for details.

Important

Existing LLM gateway and model provider users should wait to upgrade. Provider credentials, models, default model aliases, and model access policies are not migrated to the new gateway in v0.28.0. Migration support is planned for v0.28.1. See #8475 for details.

vMCPs in the MCP Registry API

The MCP Registry API now publishes vMCPs with their connection URLs. What each user discovers follows vMCP ownership and profile access, and authenticated discovery returns a personalized view.

Administrators can enable anonymous discovery under Platform → Settings → MCP Registry API for clients that don't authenticate registry requests, such as VS Code. Anonymous requests see only shared vMCPs whose profiles grant access to All Obot Users, and connecting still requires authentication and current vMCP permissions. See the docs for details.

New Enterprise Auth Providers and SCIM Provisioning

Keycloak and OneLogin are now available as authentication providers. See the docs for setup.

Microsoft Entra and OneLogin can now provision users and groups into Obot through SCIM, as Okta could in v0.27.0. Administrators decide in their identity provider which users and groups Obot can see, and users removed there are deactivated in Obot. See the docs for Entra SCIM and OneLogin SCIM.

Caller Attribution Headers for Remote MCP Servers

Remote MCP servers and catalog entries can now receive trusted X-Obot-* headers that identify the caller: the Obot user ID, name, and email, the identity provider user ID and groups, and the API key ID and name. Each header is selected individually under Advanced Configuration → Inject Obot headers.

Obot strips any incoming copies of these headers before forwarding a request, so a backend can attribute actions to a user or enforce per-caller policy without trusting client input. See the docs for details.

Improvements

  • The Devices tab lists enrolled devices with their latest scan, and administrators can remove devices to free seats.
  • Local auth users are managed from the Users page.
  • The Users page stays usable with thousands of users.
  • Claude Environments model requests go through the LLM gateway, and audit logs can be opened from environment sessions.
  • MCP client sessions recover after server restarts.
  • The vMCP card or table view choice is remembered.

Upgrade Notes

Existing LLM gateway and model provider users should wait to upgrade. v0.28.0 does not migrate existing provider credentials, models, default model aliases, or model access policies to the new LLM gateway. Migration support is planned for v0.28.1 and tracked in #8474. Earlier gateway data is not changed, and LLM audit history stays readable. The per-provider proxy routes for Amazon Bedrock, Azure OpenAI, and Generic Responses (/api/llm-proxy/aws-bedrock, aws-bedrock-api-key, azure, azure-entra, and generic-responses) are temporarily unavailable and return HTTP 410. They will be restored, see #8495. /api/llm-proxy/openai and /api/llm-proxy/anthropic still work. See #8475 for details.

Message policies are now disabled LLM judge guardrails. Message policies are converted into LLM judge guardrails on upgrade, and every converted rule starts disabled. OBOT_SERVER_ENABLE_MESSAGE_POLICIES is removed. If you enforced message policies, review and enable the converted rules under LLM Gateway → Profiles. Enabled rules fail closed when the judge's model is unavailable. See #8302 for details.

Anonymous MCP Registry API discovery is now opt-in. Anonymous discovery is disabled by default. OBOT_SERVER_ENABLE_REGISTRY_AUTH no longer has any effect, and its value is not imported. If clients such as VS Code discover servers without authenticating, enable Allow anonymous registry discovery under Platform → Settings → MCP Registry API after upgrading. See #8310 for details.

Obot attribution headers are reserved. The seven X-Obot-* attribution headers can no longer be configured manually on MCP servers, and configurations that set them may fail validation. Before upgrading, remove them and use Advanced Configuration → Inject Obot headers instead. See #8402 for details.

Owner and admin email environment variables are removed. OBOT_SERVER_AUTH_OWNER_EMAILS and OBOT_SERVER_AUTH_ADMIN_EMAILS are removed. Users who were granted roles by them keep those roles, but those roles can now be changed on the Users page. See #8440 for details.

The users.verified_email database column is dropped. During a rolling upgrade, v0.27 pods can return errors to users until the rollout finishes. See #8482 for details.

Embedded PostgreSQL moves from 17 to 18. This is a breaking change for installations using the embedded database: Docker without OBOT_SERVER_DSN, and Helm with dev.useEmbeddedDb: true. Obot stops at startup on a PostgreSQL 17 data directory. Follow the dump and restore guide before upgrading. Installations using external PostgreSQL are not affected. See #8439 for details.

What's Changed

Full Changelog: v0.27.0...v0.28.0

Don't miss a new obot release

NewReleases is sending notifications on new releases.