What Pro is
GoModel Pro is the commercial distribution of GoModel. It uses the same gateway, configuration, providers, dashboard, and APIs as open-source GoModel, with licensed extensions for prompt compression, intelligent routing, OIDC single sign-on, and per-child quota templates. Without a valid license, the Pro binary starts as the open-source gateway and does not block traffic. An explicitly enabled SSO configuration is the exception: startup fails closed when its SSO entitlement or configuration is invalid, so an authentication boundary cannot disappear silently.Prompt compression
Prompt compression rewrites supported inference requests before they reach the provider. It reduces repeated or structural context while preserving the request’s non-text structure. It supportsPOST /v1/chat/completions, POST /v1/messages, and
POST /v1/responses. Tool-call arguments, non-text parts, and unknown JSON
fields are left intact. Responses reasoning items are always replayed
unchanged, because the Responses API can require them alongside function calls.
The default high policy combines line-run deduplication with normalization:
- file-read line-number gutters become a compact range header
- replayed chat-completions reasoning is removed when it is safe to do so
- known tool-result envelopes, search results, logs, JSON, and unified diffs use content-aware normalization
- profitable homogeneous JSON arrays and structured logs use reversible, self-describing encodings
new_messages_only when the gateway may join a conversation whose
prefix it did not observe.
Configure compression
Set
PRO_COMPRESSION_LEVEL=none to disable compression for the whole
gateway. For one request, send:
none level bypass request-body parsing, so
the request is forwarded unchanged.
Inspect compression
Compressed responses include estimated savings and the number of replaced duplicate blocks:LOGGING_LOG_BODIES=true. Prometheus metrics use the
gomodel_pro_compression_ prefix, and the Dashboard Usage page reports Pro
savings in tokens or cost.
Intelligent routing
Intelligent routing has two licensed extensions that compose with Core virtual models:- Smart tier routing classifies configured model aliases into easy and hard tiers before provider selection.
- Adaptive routing selects an upstream target from a virtual model’s pool using observed latency, errors, cooldowns, target capacity, and the configured cost or latency objective.
Send
X-GoModel-Smart-Routing: off to bypass classification for one request,
or X-GoModel-Tier: easy or hard to force its tier without changing the
session pin. Responses return X-GoModel-Pro-Tier,
X-GoModel-Pro-Tier-Target, and X-GoModel-Pro-Tier-Score. Metrics use the
gomodel_pro_smartroute_ and gomodel_pro_routing_ prefixes.
OIDC single sign-on
OIDC SSO protects the Dashboard and supports Authorization Code flow with PKCE, state and nonce validation, discovery, and signedHttpOnly,
SameSite=Lax sessions. Configure it under extensions.sso in the main
GoModel YAML configuration:
PRO_SSO_* environment variables override the YAML values. The redirect URL
must end in /sso/callback (including any configured BASE_PATH), and HTTPS
is required except for loopback development URLs. By default, at least one
administrator group is required; set PRO_SSO_ALLOW_ALL_ADMINS=true only for
an intentionally unrestricted OIDC client.
Successful logins, rejected policies, and logouts are recorded as sanitized
audit events. Tokens, authorization codes, cookies, raw claims, and provider
error details are not stored.
An SSO session carries a user_path like a managed API key does, so the
group- and user-level model allowlists on the Users page
apply to requests made through it. Per-key allowed_models are a managed
API key setting and do not apply to SSO sessions.
Quota templates
Per-child quota templates let oneuser_path budget definition apply
independently to each direct child path instead of one shared subtree budget.
Set per_child: true on a budgets.user_paths entry — see
Budgets for YAML and
environment-variable examples and matching rules. Without the
quota_templates entitlement, per_child: true in configuration aborts
startup and admin API writes are rejected with 403
quota_templates_not_entitled.
Licensing
Pro features are granted by an offline Ed25519-signed token inGOMODEL_PRO_LICENSE. Validation requires no network access and works in
air-gapped environments. A license can independently grant compression,
routing, sso, and quota_templates.
Use the separate gomodel-pro distribution and its documentation for
installation, production build, and license-issuance instructions.