Core concepts
Proxies
Operator-created entry points. A proxy has an owner, a single provider, attached policies, and an optional intent. All governance is scoped to a proxy.
Providers
A provider holds the upstream credential and model for a proxy. One provider per proxy; credentials are resolved server-side.
Policies
Rego rules evaluated by OPA. Request-stage decisions are
allow, block, redact, or escalate; response-stage decisions use block_response and redact_response.Sessions
A session groups related turns. Xenovia resolves one for every request; you can also set it explicitly.
Intent
An optional semantic guardrail. Xenovia scores each triggered request against the proxy’s declared intent and can allow, block, or escalate.
Traces
The record of what happened: turns, model and tool runs, token counts, latency, decisions, and custom properties.
Terminology
The platform nests telemetry three levels deep. The names differ slightly between screens, so this is the model to hold:How a proxy is put together
Request lifecycle
1
Route
The runtime validates the proxy ID, checks the path and content, and resolves the proxy’s provider — replacing the request’s model with the proxy’s configured model.
2
Authenticate
The
xe_... proxy key is verified and bound to the proxy in the URL.3
Resolve the session
A session and turn number are resolved, and
X-Xenovia-Session-Id and X-Xenovia-Trace-Id are stamped into the response headers.4
Enforce policy
The request-stage Rego runs. A
block returns 403; a redact strips fields; an escalate blocks and records a signal.5
Score intent
If an intent is configured and the trigger fires, the request is scored and may be blocked or escalated.
6
Call the model and check the response
The upstream model is called, the response-stage Rego runs, and the completed turn is persisted.
Proxy URL
Every proxy exposes an OpenAI-compatible base URL:/v1/chat/completions and /v1/responses are served. Any other path under the proxy — /v1/embeddings, /v1/completions, /v1/models, provider-prefixed paths such as /openai/v1/..., and the legacy /a/{proxy_id}/... prefix — returns 404.
What the platform does not expose
- Provider credentials live in the proxy configuration, never in your app or in telemetry.
- Raw API keys are never logged; only a short SHA-256 prefix appears.
- Block and escalation reasons are recorded server-side and are never returned to the agent.