import { CodeBlock } from "../components/CodeBlock"; import { Callout } from "../components/Callout"; export function AuthenticationPage() { return (
All /v1/* endpoints require a Bearer JWT in the{" "}
Authorization header. Veylant IA validates the token against Keycloak (OIDC)
or uses a mock verifier in development mode.
server.env=development and Keycloak is unreachable, the proxy uses a{" "}
MockVerifier. Any non-empty Bearer token is accepted. The authenticated user
is injected as admin@veylant.dev with admin role and tenant ID{" "}
dev-tenant.
In production, clients obtain a token via the standard OIDC Authorization Code flow:
access_token as the Bearer tokenThe proxy extracts the following claims from the JWT:
| Claim | Source | Description |
|---|---|---|
| {row.claim} | {row.source} | {row.desc} |
The Keycloak realm export includes these users for testing:
Authentication errors always return OpenAI-format JSON: