Files
devops-infra-helm-charts-gcp/helm-templates/bifrost-latest/values.schema.json
T
2026-08-26 03:39:42 +05:30

2964 lines
85 KiB
JSON

{
"$schema": "https://json-schema.org/draft/2019-09/schema",
"title": "Bifrost Helm Chart Values",
"description": "Schema for Bifrost Helm chart values.yaml",
"type": "object",
"properties": {
"replicaCount": {
"type": "integer",
"minimum": 1,
"description": "Number of Bifrost replicas"
},
"image": {
"type": "object",
"properties": {
"repository": {
"type": "string",
"description": "Container image repository"
},
"pullPolicy": {
"type": "string",
"enum": [
"Always",
"IfNotPresent",
"Never"
],
"description": "Image pull policy"
},
"tag": {
"type": "string",
"description": "Image tag (required - validated at template render time)"
}
}
},
"imagePullSecrets": {
"type": "array",
"items": {
"type": "object"
}
},
"nameOverride": {
"type": "string"
},
"fullnameOverride": {
"type": "string"
},
"serviceAccount": {
"type": "object",
"properties": {
"create": {
"type": "boolean"
},
"automount": {
"type": "boolean"
},
"annotations": {
"type": "object"
},
"name": {
"type": "string"
}
}
},
"deploymentAnnotations": {
"type": "object"
},
"deploymentLabels": {
"type": "object"
},
"podAnnotations": {
"type": "object"
},
"podLabels": {
"type": "object"
},
"podSecurityContext": {
"type": "object"
},
"securityContext": {
"type": "object"
},
"service": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"ClusterIP",
"NodePort",
"LoadBalancer"
]
},
"port": {
"type": "integer",
"minimum": 1,
"maximum": 65535
},
"annotations": {
"type": "object"
}
}
},
"ingress": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"className": {
"type": "string"
},
"annotations": {
"type": "object"
},
"hosts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"host": {
"type": "string"
},
"paths": {
"type": "array",
"items": {
"type": "object",
"properties": {
"path": {
"type": "string"
},
"pathType": {
"type": "string",
"enum": [
"Prefix",
"Exact",
"ImplementationSpecific"
]
}
}
}
}
}
}
},
"tls": {
"type": "array"
}
}
},
"resources": {
"type": "object",
"properties": {
"limits": {
"type": "object"
},
"requests": {
"type": "object"
}
}
},
"livenessProbe": {
"type": "object"
},
"readinessProbe": {
"type": "object"
},
"autoscaling": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"minReplicas": {
"type": "integer",
"minimum": 1
},
"maxReplicas": {
"type": "integer",
"minimum": 1
},
"targetCPUUtilizationPercentage": {
"type": "integer",
"minimum": 1,
"maximum": 100
},
"targetMemoryUtilizationPercentage": {
"type": "integer",
"minimum": 1,
"maximum": 100
}
}
},
"volumes": {
"type": "array"
},
"volumeMounts": {
"type": "array"
},
"nodeSelector": {
"type": "object"
},
"tolerations": {
"type": "array"
},
"affinity": {
"type": "object"
},
"bifrost": {
"type": "object",
"description": "Bifrost application configuration",
"properties": {
"appDir": {
"type": "string",
"description": "Application data directory"
},
"port": {
"type": "integer",
"minimum": 1,
"maximum": 65535
},
"host": {
"type": "string"
},
"logLevel": {
"type": "string",
"enum": [
"debug",
"info",
"warn",
"error"
]
},
"logStyle": {
"type": "string",
"enum": [
"json",
"text"
]
},
"encryptionKey": {
"type": "string",
"description": "Encryption key for sensitive data"
},
"authConfig": {
"$ref": "#/$defs/authConfig"
},
"client": {
"type": "object",
"properties": {
"dropExcessRequests": {
"type": "boolean"
},
"initialPoolSize": {
"type": "integer",
"minimum": 1
},
"allowedOrigins": {
"type": "array",
"description": "CORS allowed origins (supports \"*\" or URI strings)",
"items": {
"oneOf": [
{
"type": "string",
"const": "*"
},
{
"type": "string",
"format": "uri",
"not": { "const": "*" }
}
]
}
},
"enableLogging": {
"type": "boolean"
},
"disableContentLogging": {
"type": "boolean"
},
"disableDbPingsInHealth": {
"type": "boolean"
},
"logRetentionDays": {
"type": "integer",
"minimum": 1
},
"enforceGovernanceHeader": {
"type": "boolean"
},
"allowDirectKeys": {
"type": "boolean"
},
"maxRequestBodySizeMb": {
"type": "integer",
"minimum": 1
},
"enableLitellmFallbacks": {
"type": "boolean"
},
"prometheusLabels": {
"type": "array",
"items": {
"type": "string"
}
},
"headerFilterConfig": {
"type": "object",
"properties": {
"allowlist": {
"type": "array",
"items": {
"type": "string"
}
},
"denylist": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"enforceAuthOnInference": {
"type": "boolean",
"description": "Require auth (VK, API key, or user token) on inference endpoints"
},
"enforceSCIMAuth": {
"type": "boolean",
"description": "Deprecated: use enforceAuthOnInference"
},
"allowedHeaders": {
"type": "array",
"items": {
"type": "string"
},
"description": "Additional allowed headers for CORS and WebSocket"
},
"mcpAgentDepth": {
"type": "integer",
"minimum": 1,
"description": "Maximum depth for MCP agent mode tool execution"
},
"mcpToolExecutionTimeout": {
"type": "integer",
"minimum": 1,
"description": "Timeout for individual MCP tool execution in seconds"
},
"mcpCodeModeBindingLevel": {
"type": "string",
"enum": ["server", "tool"],
"description": "Code mode binding level for MCP tools"
},
"mcpToolSyncInterval": {
"type": "integer",
"minimum": 0,
"description": "Global tool sync interval in minutes (0 = disabled)"
},
"asyncJobResultTTL": {
"type": "integer",
"minimum": 1,
"description": "Default TTL for async job results in seconds"
},
"requiredHeaders": {
"type": "array",
"items": {
"type": "string"
},
"description": "Headers that must be present on every request"
},
"loggingHeaders": {
"type": "array",
"items": {
"type": "string"
},
"description": "Headers to capture in log metadata"
},
"hideDeletedVirtualKeysInFilters": {
"type": "boolean",
"description": "When true, deleted virtual keys are omitted from logs and MCP logs filter data"
}
},
"additionalProperties": false
},
"framework": {
"type": "object",
"properties": {
"pricing": {
"type": "object",
"properties": {
"pricingUrl": {
"type": "string",
"description": "Custom pricing URL (optional, can be empty)"
},
"pricingSyncInterval": {
"type": "integer",
"minimum": 3600
}
}
}
}
},
"providers": {
"type": "object",
"description": "AI provider configurations",
"additionalProperties": {
"$ref": "#/$defs/provider"
}
},
"providerSecrets": {
"type": "object",
"additionalProperties": {
"type": "object",
"properties": {
"existingSecret": {
"type": "string"
},
"key": {
"type": "string"
},
"envVar": {
"type": "string"
}
}
}
},
"mcp": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"clientConfigs": {
"type": "array",
"items": {
"$ref": "#/$defs/mcpClientConfig"
}
},
"toolManagerConfig": {
"type": "object",
"properties": {
"toolExecutionTimeout": {
"type": "integer",
"minimum": 1
},
"maxAgentDepth": {
"type": "integer",
"minimum": 1
},
"codeModeBindingLevel": {
"type": "string",
"enum": ["server", "tool"],
"description": "How tools are exposed in VFS for code execution"
}
}
},
"toolSyncInterval": {
"type": "string",
"description": "Global default interval for syncing tools from MCP servers (Go duration, e.g. '10m', '1h')"
}
},
"additionalProperties": false
},
"plugins": {
"type": "object",
"properties": {
"telemetry": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"config": {
"type": "object",
"properties": {
"custom_labels": {
"type": "array",
"items": { "type": "string" },
"description": "Custom labels to add to all metrics"
},
"push_gateway": {
"type": "object",
"description": "Configuration for pushing metrics to a Prometheus Push Gateway for multi-node cluster deployments",
"properties": {
"enabled": {
"type": "boolean",
"description": "Whether to enable pushing metrics to the Push Gateway",
"default": false
},
"push_gateway_url": {
"type": "string",
"description": "URL of the Prometheus Push Gateway (e.g., http://pushgateway:9091)",
"format": "uri"
},
"job_name": {
"type": "string",
"description": "Job label for pushed metrics",
"default": "bifrost"
},
"instance_id": {
"type": "string",
"description": "Instance identifier for grouping metrics. If not set, hostname is used automatically."
},
"push_interval": {
"type": "integer",
"description": "How often to push metrics in seconds",
"default": 15,
"minimum": 1,
"maximum": 300
},
"basic_auth": {
"type": "object",
"description": "Basic authentication credentials for the Push Gateway",
"properties": {
"username": {
"type": "string",
"description": "Username for basic authentication"
},
"password": {
"type": "string",
"description": "Password for basic authentication"
}
},
"required": ["username", "password"]
}
},
"required": ["push_gateway_url"]
}
}
}
}
},
"logging": {
"$ref": "#/$defs/pluginBase"
},
"governance": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"config": {
"type": "object",
"properties": {
"is_vk_mandatory": {
"type": "boolean"
},
"required_headers": {
"type": "array",
"items": { "type": "string" },
"description": "Headers that must be present in requests"
},
"is_enterprise": {
"type": "boolean",
"description": "Enable enterprise mode features"
}
}
}
}
},
"maxim": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"config": {
"type": "object",
"properties": {
"api_key": {
"type": "string"
},
"log_repo_id": {
"type": "string"
}
}
},
"secretRef": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"key": {
"type": "string"
}
}
}
},
"if": {
"properties": {
"enabled": {
"const": true
}
}
},
"then": {
"anyOf": [
{
"properties": {
"config": {
"required": [
"api_key"
]
}
}
},
{
"properties": {
"secretRef": {
"required": [
"name"
]
}
}
}
]
}
},
"semanticCache": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"config": {
"type": "object",
"properties": {
"provider": {
"type": "string",
"enum": [
"openai",
"anthropic",
"gemini",
"bedrock",
"azure",
"cohere",
"mistral",
"groq",
"ollama",
"openrouter",
"vertex",
"cerebras",
"parasail",
"perplexity",
"sgl",
"huggingface"
]
},
"keys": {
"type": "array",
"items": {
"type": "string"
},
"description": "API keys for embedding provider (required for semantic caching, not needed for direct caching with dimension: 1)"
},
"embedding_model": {
"type": "string"
},
"dimension": {
"type": "integer",
"minimum": 1
},
"threshold": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"ttl": {
"description": "Time-to-live for cached responses (supports duration strings like '5m', '1h' or seconds as number, default: 5min)",
"oneOf": [
{
"type": "string",
"pattern": "^[0-9]+(ns|us|µs|ms|s|m|h)$"
},
{
"type": "integer",
"minimum": 0
}
]
},
"conversation_history_threshold": {
"type": "integer",
"minimum": 0
},
"cache_by_model": {
"type": "boolean"
},
"cache_by_provider": {
"type": "boolean"
},
"exclude_system_prompt": {
"type": "boolean"
},
"cleanup_on_shutdown": {
"type": "boolean"
},
"vector_store_namespace": {
"type": "string"
},
"default_cache_key": {
"type": "string",
"description": "Default cache key for semantic cache lookups"
}
}
}
},
"if": {
"properties": {
"enabled": {
"const": true
}
}
},
"then": {
"properties": {
"config": {
"required": [
"dimension",
"keys",
"provider"
]
}
}
}
},
"otel": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"config": {
"type": "object",
"properties": {
"service_name": {
"type": "string",
"description": "Service name to be used for tracing",
"default": "bifrost"
},
"collector_url": {
"type": "string",
"description": "URL of the OpenTelemetry collector"
},
"trace_type": {
"type": "string",
"enum": [
"otel"
],
"description": "Type of trace to use for the OTEL collector"
},
"protocol": {
"type": "string",
"enum": [
"http",
"grpc"
],
"description": "Protocol to use for the OTEL collector"
},
"metrics_enabled": {
"type": "boolean",
"description": "Enable push-based metrics export via OTLP. Recommended for multi-node cluster deployments.",
"default": false
},
"metrics_endpoint": {
"type": "string",
"description": "OTLP metrics endpoint URL (e.g., http://otel-collector:4318/v1/metrics for HTTP or otel-collector:4317 for gRPC)"
},
"metrics_push_interval": {
"type": "integer",
"description": "Metrics push interval in seconds",
"default": 15,
"minimum": 1,
"maximum": 300
},
"headers": {
"type": "object",
"additionalProperties": { "type": "string" },
"description": "Custom headers for the collector (supports env.VAR_NAME prefix)"
},
"tls_ca_cert": {
"type": "string",
"description": "Path to TLS CA certificate file"
},
"insecure": {
"type": "boolean",
"description": "Skip TLS verification (ignored if tls_ca_cert is set)"
}
},
"if": {
"properties": {
"metrics_enabled": {
"const": true
}
},
"required": ["metrics_enabled"]
},
"then": {
"required": ["metrics_endpoint"]
}
}
},
"if": {
"properties": {
"enabled": {
"const": true
}
}
},
"then": {
"properties": {
"config": {
"required": [
"collector_url",
"trace_type",
"protocol"
]
}
}
}
},
"datadog": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"config": {
"type": "object",
"properties": {
"service_name": {
"type": "string"
},
"agent_addr": {
"type": "string"
},
"env": {
"type": "string"
},
"version": {
"type": "string"
},
"custom_tags": {
"type": "object"
},
"enable_traces": {
"type": "boolean"
}
}
}
}
},
"custom": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"enabled": {
"type": "boolean"
},
"path": {
"type": "string"
},
"version": {
"type": "integer",
"minimum": 1
},
"config": {
"type": "object"
},
"placement": {
"type": "string",
"enum": ["pre_builtin", "post_builtin"],
"default": "post_builtin",
"description": "Plugin execution placement relative to built-in plugins"
},
"order": {
"type": "integer",
"default": 0,
"description": "Position within placement group. Lower = earlier execution"
}
},
"required": [
"name",
"enabled"
]
}
}
}
},
"governance": {
"type": "object",
"properties": {
"budgets": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"max_limit": {
"type": "number"
},
"reset_duration": {
"type": "string"
},
"current_usage": {
"type": "number"
},
"last_reset": {
"type": "string",
"format": "date-time"
}
},
"required": [
"id",
"max_limit",
"reset_duration"
]
}
},
"rateLimits": {
"type": "array",
"description": "Rate limit configurations",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Rate limit ID"
},
"token_max_limit": {
"type": "integer",
"description": "Maximum tokens allowed"
},
"token_reset_duration": {
"type": "string",
"description": "Token reset duration (e.g., '30s', '5m', '1h', '1d', '1w', '1M', '1Y')"
},
"token_current_usage": {
"type": "integer",
"description": "Current token usage",
"default": 0
},
"token_last_reset": {
"type": "string",
"format": "date-time",
"description": "Last time token counter was reset"
},
"request_max_limit": {
"type": "integer",
"description": "Maximum requests allowed"
},
"request_reset_duration": {
"type": "string",
"description": "Request reset duration (e.g., '30s', '5m', '1h', '1d', '1w', '1M', '1Y')"
},
"request_current_usage": {
"type": "integer",
"description": "Current request usage",
"default": 0
},
"request_last_reset": {
"type": "string",
"format": "date-time",
"description": "Last time request counter was reset"
}
},
"required": [
"id"
],
"additionalProperties": false
}
},
"customers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"budget_id": {
"type": "string"
},
"rate_limit_id": {
"type": "string"
}
},
"required": [
"id",
"name"
]
}
},
"teams": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"customer_id": {
"type": "string"
},
"budget_id": {
"type": "string"
},
"rate_limit_id": {
"type": "string"
},
"profile": {
"type": "object"
},
"config": {
"type": "object"
},
"claims": {
"type": "object"
}
},
"required": [
"id",
"name"
]
}
},
"virtualKeys": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"description": {
"type": "string"
},
"value": {
"type": "string"
},
"is_active": {
"type": "boolean"
},
"team_id": {
"type": "string"
},
"customer_id": {
"type": "string"
},
"budget_id": {
"type": "string"
},
"rate_limit_id": {
"type": "string"
},
"provider_configs": {
"type": "array",
"items": {
"$ref": "#/$defs/virtualKeyProviderConfig"
}
},
"mcp_configs": {
"type": "array",
"items": {
"type": "object",
"properties": {
"mcp_client_id": {
"type": "integer"
},
"tools_to_execute": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"mcp_client_id"
]
}
}
},
"required": [
"id",
"name"
]
}
},
"routingRules": {
"type": "array",
"description": "Routing rules for dynamic provider/model selection based on CEL expressions",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"description": {
"type": "string"
},
"enabled": {
"type": "boolean",
"default": true
},
"cel_expression": {
"type": "string"
},
"targets": {
"type": "array",
"minItems": 1,
"description": "Weighted routing targets. Weights must sum to 1.",
"items": {
"type": "object",
"properties": {
"provider": {
"type": "string",
"description": "Target provider name"
},
"model": {
"type": "string",
"description": "Target model name"
},
"key_id": {
"type": "string",
"description": "Optional API key UUID to pin for this target"
},
"weight": {
"type": "number",
"description": "Probability weight for this target (must be > 0, all weights must sum to 1)",
"exclusiveMinimum": 0,
"maximum": 1
}
},
"required": ["weight"]
}
},
"provider": {
"type": "string"
},
"model": {
"type": "string"
},
"fallbacks": {
"type": "array",
"items": {
"type": "string"
}
},
"scope": {
"type": "string",
"enum": ["global", "team", "customer", "virtual_key"],
"default": "global"
},
"scope_id": {
"type": ["string", "null"]
},
"priority": {
"type": "integer",
"default": 0
},
"query": {
"type": "object",
"additionalProperties": true
}
},
"required": ["id", "name", "targets"]
}
},
"authConfig": {
"$ref": "#/$defs/authConfig"
},
"modelConfigs": {
"type": "array",
"description": "Per-model rate limit and budget configurations",
"items": {
"type": "object",
"properties": {
"id": { "type": "string" },
"model_name": { "type": "string" },
"provider": { "type": "string" },
"budget_id": { "type": "string" },
"rate_limit_id": { "type": "string" }
},
"required": ["id", "model_name"]
}
},
"providers": {
"type": "array",
"description": "Provider-level governance configurations",
"items": {
"type": "object",
"properties": {
"name": { "type": "string", "description": "Provider name" },
"budget_id": { "type": "string" },
"rate_limit_id": { "type": "string" },
"send_back_raw_request": { "type": "boolean" },
"send_back_raw_response": { "type": "boolean" },
"store_raw_request_response": { "type": "boolean" }
},
"required": ["name"]
}
}
},
"additionalProperties": false
},
"cluster": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"peers": {
"type": "array",
"items": {
"type": "string"
}
},
"region": {
"type": "string",
"description": "Region for cluster deployment"
},
"gossip": {
"type": "object",
"properties": {
"port": {
"type": "integer",
"minimum": 1,
"maximum": 65535
},
"config": {
"type": "object",
"properties": {
"timeoutSeconds": {
"type": "integer",
"minimum": 1
},
"successThreshold": {
"type": "integer",
"minimum": 1
},
"failureThreshold": {
"type": "integer",
"minimum": 1
}
},
"required": [
"timeoutSeconds",
"successThreshold",
"failureThreshold"
]
}
},
"required": [
"port",
"config"
]
},
"discovery": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"type": {
"type": "string",
"enum": [
"",
"kubernetes",
"dns",
"udp",
"consul",
"etcd",
"mdns"
],
"description": "Discovery type (empty when not configured)"
},
"allowedAddressSpace": {
"type": "array",
"items": {
"type": "string"
}
},
"k8sNamespace": {
"type": "string"
},
"k8sLabelSelector": {
"type": "string"
},
"dnsNames": {
"type": "array",
"items": {
"type": "string"
}
},
"udpBroadcastPort": {
"type": "integer",
"minimum": 0,
"maximum": 65535,
"description": "UDP broadcast port (0 means not configured)"
},
"consulAddress": {
"type": "string"
},
"etcdEndpoints": {
"type": "array",
"items": {
"type": "string"
}
},
"mdnsService": {
"type": "string"
}
},
"if": {
"properties": {
"enabled": {
"const": true
}
}
},
"then": {
"required": [
"type"
]
}
}
},
"if": {
"properties": {
"enabled": {
"const": true
}
}
},
"then": {
"required": [
"gossip"
]
}
},
"saml": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"provider": {
"type": "string",
"enum": [
"",
"okta",
"entra"
],
"description": "SAML provider type (empty when not configured)"
},
"config": {
"type": "object"
}
},
"allOf": [
{
"if": {
"properties": {
"enabled": {
"const": true
},
"provider": {
"const": "okta"
}
},
"required": [
"enabled",
"provider"
]
},
"then": {
"properties": {
"config": {
"type": "object",
"properties": {
"issuerUrl": {
"type": "string",
"format": "uri"
},
"clientId": {
"type": "string"
},
"clientSecret": {
"type": "string"
},
"audience": {
"type": "string"
},
"userIdField": {
"type": "string"
},
"teamIdsField": {
"type": "string"
},
"rolesField": {
"type": "string"
}
},
"required": [
"issuerUrl",
"clientId"
]
}
}
}
},
{
"if": {
"properties": {
"enabled": {
"const": true
},
"provider": {
"const": "entra"
}
},
"required": [
"enabled",
"provider"
]
},
"then": {
"properties": {
"config": {
"type": "object",
"properties": {
"tenantId": {
"type": "string"
},
"clientId": {
"type": "string"
},
"clientSecret": {
"type": "string"
},
"cloud": {
"type": "string",
"enum": ["commercial", "gcc-high", "dod"]
},
"audience": {
"type": "string"
},
"appIdUri": {
"type": "string",
"format": "uri"
},
"userIdField": {
"type": "string"
},
"teamIdsField": {
"type": "string"
},
"rolesField": {
"type": "string"
}
},
"required": [
"tenantId",
"clientId"
]
}
}
}
}
]
},
"loadBalancer": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"trackerConfig": {
"type": "object"
},
"bootstrap": {
"type": "object"
}
}
},
"guardrails": {
"type": "object",
"properties": {
"rules": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"name": {
"type": "string"
},
"description": {
"type": "string"
},
"enabled": {
"type": "boolean"
},
"cel_expression": {
"type": "string"
},
"apply_to": {
"type": "string",
"enum": [
"input",
"output",
"both"
]
},
"sampling_rate": {
"type": "integer",
"minimum": 0,
"maximum": 100
},
"timeout": {
"type": "integer",
"minimum": 0
},
"provider_config_ids": {
"type": "array",
"items": {
"type": "integer"
}
}
},
"required": [
"id",
"name",
"enabled",
"cel_expression",
"apply_to"
]
}
},
"providers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"provider_name": {
"type": "string"
},
"policy_name": {
"type": "string"
},
"enabled": {
"type": "boolean"
},
"timeout": {
"type": "integer",
"minimum": 0,
"description": "Timeout in milliseconds for provider execution"
},
"config": {
"type": "object"
}
},
"required": [
"id",
"provider_name",
"policy_name",
"enabled"
]
}
}
}
},
"auditLogs": {
"type": "object",
"properties": {
"disabled": {
"type": "boolean"
},
"hmacKey": {
"type": "string"
}
}
}
}
},
"storage": {
"type": "object",
"properties": {
"mode": {
"type": "string",
"enum": [
"sqlite",
"postgres"
]
},
"persistence": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"storageClass": {
"type": "string"
},
"accessMode": {
"type": "string",
"enum": [
"ReadWriteOnce",
"ReadWriteMany",
"ReadOnlyMany"
]
},
"size": {
"type": "string"
},
"existingClaim": {
"type": "string"
}
}
},
"configStore": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"type": {
"type": "string",
"enum": [
"",
"sqlite",
"postgres"
]
},
"maxIdleConns": {
"type": "integer",
"minimum": 0
},
"maxOpenConns": {
"type": "integer",
"minimum": 2
}
}
},
"logsStore": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"type": {
"type": "string",
"enum": [
"",
"sqlite",
"postgres"
]
},
"maxIdleConns": {
"type": "integer",
"minimum": 0
},
"maxOpenConns": {
"type": "integer",
"minimum": 2
}
}
}
}
},
"postgresql": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"external": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"host": {
"type": "string"
},
"port": {
"type": "integer",
"minimum": 1,
"maximum": 65535
},
"user": {
"type": "string"
},
"password": {
"type": "string"
},
"database": {
"type": "string"
},
"sslMode": {
"type": "string",
"enum": [
"disable",
"allow",
"prefer",
"require",
"verify-ca",
"verify-full"
]
},
"existingSecret": {
"type": "string"
},
"passwordKey": {
"type": "string"
}
},
"if": {
"properties": {
"enabled": {
"const": true
}
}
},
"then": {
"required": [
"host",
"port",
"user",
"database",
"sslMode"
]
}
},
"image": {
"type": "object",
"properties": {
"repository": {
"type": "string"
},
"tag": {
"type": "string"
},
"pullPolicy": {
"type": "string",
"enum": [
"Always",
"IfNotPresent",
"Never"
]
}
}
},
"auth": {
"type": "object",
"properties": {
"username": {
"type": "string"
},
"password": {
"type": "string"
},
"database": {
"type": "string"
}
}
},
"primary": {
"type": "object",
"properties": {
"persistence": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"size": {
"type": "string"
}
}
},
"resources": {
"type": "object"
}
}
},
"metrics": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
}
}
}
}
},
"vectorStore": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"type": {
"type": "string",
"enum": [
"none",
"weaviate",
"redis",
"qdrant",
"pinecone"
]
},
"weaviate": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"external": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"scheme": {
"type": "string",
"enum": [
"http",
"https"
]
},
"host": {
"type": "string",
"description": "Weaviate server host (host:port)"
},
"apiKey": {
"type": "string",
"description": "API key for Weaviate authentication"
},
"grpcHost": {
"type": "string",
"description": "Weaviate gRPC host (host:port)"
},
"grpcSecured": {
"type": "boolean",
"description": "Whether gRPC connection is secured"
},
"timeout": {
"type": "string",
"pattern": "^[0-9]+(ns|us|µs|ms|s|m|h)$",
"description": "Timeout for Weaviate operations (e.g., '5s')"
},
"className": {
"type": "string",
"description": "Class name for Weaviate vector store"
},
"existingSecret": {
"type": "string"
},
"apiKeyKey": {
"type": "string"
}
},
"if": {
"properties": {
"enabled": {
"const": true
}
}
},
"then": {
"required": [
"scheme",
"host"
]
}
},
"replicas": {
"type": "integer",
"minimum": 1
},
"image": {
"type": "object"
},
"persistence": {
"type": "object"
},
"resources": {
"type": "object"
},
"env": {
"type": "object"
}
}
},
"redis": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"external": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"host": {
"type": "string",
"description": "Redis/Valkey server host"
},
"port": {
"type": "integer",
"minimum": 1,
"maximum": 65535,
"description": "Redis/Valkey server port"
},
"username": {
"type": "string",
"description": "Username for Redis/Valkey AUTH"
},
"password": {
"type": "string",
"description": "Password for Redis/Valkey AUTH"
},
"database": {
"type": "integer",
"minimum": 0,
"default": 0,
"description": "Redis/Valkey database number"
},
"poolSize": {
"type": "integer",
"description": "Maximum number of socket connections"
},
"maxActiveConns": {
"type": "integer",
"description": "Maximum number of active connections"
},
"minIdleConns": {
"type": "integer",
"description": "Minimum number of idle connections"
},
"maxIdleConns": {
"type": "integer",
"description": "Maximum number of idle connections"
},
"connMaxLifetime": {
"type": "string",
"pattern": "^[0-9]+(ns|us|µs|ms|s|m|h)$",
"description": "Connection maximum lifetime (e.g., '30m')"
},
"connMaxIdleTime": {
"type": "string",
"pattern": "^[0-9]+(ns|us|µs|ms|s|m|h)$",
"description": "Connection maximum idle time (e.g., '5m')"
},
"dialTimeout": {
"type": "string",
"pattern": "^[0-9]+(ns|us|µs|ms|s|m|h)$",
"description": "Timeout for socket connection (e.g., '5s')"
},
"readTimeout": {
"type": "string",
"pattern": "^[0-9]+(ns|us|µs|ms|s|m|h)$",
"description": "Timeout for socket reads (e.g., '3s')"
},
"writeTimeout": {
"type": "string",
"pattern": "^[0-9]+(ns|us|µs|ms|s|m|h)$",
"description": "Timeout for socket writes (e.g., '3s')"
},
"contextTimeout": {
"type": "string",
"pattern": "^[0-9]+(ns|us|µs|ms|s|m|h)$",
"description": "Timeout for Redis/Valkey operations (e.g., '10s')"
},
"existingSecret": {
"type": "string"
},
"passwordKey": {
"type": "string"
}
},
"if": {
"properties": {
"enabled": {
"const": true
}
}
},
"then": {
"required": [
"host"
]
}
},
"image": {
"type": "object"
},
"auth": {
"type": "object"
},
"master": {
"type": "object"
},
"metrics": {
"type": "object"
}
}
},
"qdrant": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"external": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"host": {
"type": "string",
"description": "Qdrant server host"
},
"port": {
"type": "integer",
"minimum": 1,
"maximum": 65535,
"default": 6334,
"description": "Qdrant server port (default: 6334 for gRPC)"
},
"apiKey": {
"type": "string",
"description": "API key for authentication"
},
"useTls": {
"type": "boolean",
"default": false,
"description": "Use TLS for connection"
},
"existingSecret": {
"type": "string"
},
"apiKeyKey": {
"type": "string"
}
},
"if": {
"properties": {
"enabled": {
"const": true
}
}
},
"then": {
"required": [
"host"
]
}
},
"image": {
"type": "object"
},
"persistence": {
"type": "object"
},
"resources": {
"type": "object"
}
}
},
"pinecone": {
"type": "object",
"description": "Pinecone configuration for vector store",
"properties": {
"enabled": {
"type": "boolean"
},
"external": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"apiKey": {
"type": "string",
"description": "Pinecone API key"
},
"indexHost": {
"type": "string",
"description": "Index host URL from Pinecone console (e.g., your-index.svc.environment.pinecone.io)"
},
"existingSecret": {
"type": "string",
"description": "Name of existing secret containing Pinecone API key"
},
"apiKeyKey": {
"type": "string",
"description": "Key in the secret containing the API key"
}
},
"if": {
"properties": {
"enabled": {
"const": true
}
}
},
"then": {
"required": [
"indexHost"
]
}
}
}
}
}
},
"env": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"value": {
"type": "string"
},
"valueFrom": {
"type": "object"
}
},
"required": [
"name"
]
}
},
"envFrom": {
"type": "array",
"items": {
"type": "object"
}
},
"initContainers": {
"type": "array",
"items": {
"type": "object"
}
}
},
"$defs": {
"authConfig": {
"type": "object",
"properties": {
"adminUsername": {
"type": "string"
},
"adminPassword": {
"type": "string"
},
"isEnabled": {
"type": "boolean"
},
"disableAuthOnInference": {
"type": "boolean"
},
"existingSecret": {
"type": "string"
},
"usernameKey": {
"type": "string"
},
"passwordKey": {
"type": "string"
}
}
},
"pluginBase": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"config": {
"type": "object"
}
}
},
"provider": {
"type": "object",
"properties": {
"keys": {
"type": "array",
"items": {
"$ref": "#/$defs/providerKey"
},
"minItems": 1
},
"network_config": {
"$ref": "#/$defs/networkConfig"
},
"concurrency_and_buffer_size": {
"$ref": "#/$defs/concurrencyConfig"
},
"proxy_config": {
"$ref": "#/$defs/proxyConfig"
},
"send_back_raw_request": {
"type": "boolean",
"description": "Include raw request in BifrostResponse"
},
"send_back_raw_response": {
"type": "boolean"
},
"store_raw_request_response": {
"type": "boolean",
"description": "Capture raw request/response for plugins only; stripped before returning to client"
},
"custom_provider_config": {
"type": "object",
"description": "Custom provider configuration",
"properties": {
"is_key_less": { "type": "boolean" },
"base_provider_type": { "type": "string" },
"allowed_requests": {
"type": "object",
"additionalProperties": { "type": "boolean" }
},
"request_path_overrides": {
"type": "object",
"additionalProperties": { "type": "string" }
}
},
"required": ["base_provider_type"]
},
"pricing_overrides": {
"type": "array",
"description": "Provider-level pricing overrides",
"items": {
"type": "object",
"properties": {
"model_pattern": { "type": "string" },
"match_type": { "type": "string", "enum": ["exact", "wildcard", "regex"] }
},
"required": ["model_pattern", "match_type"]
}
}
},
"required": [
"keys"
]
},
"providerKey": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"value": {
"type": "string"
},
"models": {
"type": "array",
"items": {
"type": "string"
}
},
"weight": {
"type": "number",
"minimum": 0
},
"use_for_batch_api": {
"type": "boolean"
},
"azure_key_config": {
"type": "object",
"properties": {
"endpoint": {
"type": "string",
"description": "Azure endpoint (can use env. prefix)"
},
"deployments": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "Model to deployment mappings"
},
"api_version": {
"type": "string",
"description": "Azure API version"
}
},
"required": [
"endpoint",
"api_version"
],
"additionalProperties": false
},
"vertex_key_config": {
"type": "object",
"properties": {
"project_id": {
"type": "string",
"description": "Google Cloud project ID (can use env. prefix)"
},
"project_number": {
"type": "string",
"description": "Google Cloud project number"
},
"region": {
"type": "string",
"description": "Google Cloud region"
},
"auth_credentials": {
"type": "string",
"description": "Authentication credentials (can use env. prefix)"
},
"deployments": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "Model to deployment mappings"
}
},
"required": [
"project_id",
"region"
],
"additionalProperties": false
},
"bedrock_key_config": {
"type": "object",
"properties": {
"access_key": {
"type": "string",
"description": "AWS access key (can use env. prefix)"
},
"secret_key": {
"type": "string",
"description": "AWS secret key (can use env. prefix)"
},
"session_token": {
"type": "string",
"description": "AWS session token (can use env. prefix)"
},
"region": {
"type": "string",
"description": "AWS region"
},
"arn": {
"type": "string",
"description": "AWS ARN"
},
"deployments": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "Model to deployment mappings"
}
},
"required": [
"region"
],
"additionalProperties": false
},
"vllm_key_config": {
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "VLLM server base URL (can use env. prefix)"
},
"model_name": {
"type": "string",
"description": "Exact model name served on this VLLM instance"
}
},
"required": [
"url",
"model_name"
],
"additionalProperties": false
}
},
"required": [
"name",
"weight"
],
"oneOf": [
{
"not": {
"anyOf": [
{ "required": ["azure_key_config"] },
{ "required": ["vertex_key_config"] },
{ "required": ["bedrock_key_config"] },
{ "required": ["vllm_key_config"] }
]
}
},
{
"required": ["azure_key_config"],
"not": {
"anyOf": [
{ "required": ["vertex_key_config"] },
{ "required": ["bedrock_key_config"] },
{ "required": ["vllm_key_config"] }
]
}
},
{
"required": ["vertex_key_config"],
"not": {
"anyOf": [
{ "required": ["azure_key_config"] },
{ "required": ["bedrock_key_config"] },
{ "required": ["vllm_key_config"] }
]
}
},
{
"required": ["bedrock_key_config"],
"not": {
"anyOf": [
{ "required": ["azure_key_config"] },
{ "required": ["vertex_key_config"] },
{ "required": ["vllm_key_config"] }
]
}
},
{
"required": ["vllm_key_config"],
"not": {
"anyOf": [
{ "required": ["azure_key_config"] },
{ "required": ["vertex_key_config"] },
{ "required": ["bedrock_key_config"] }
]
}
}
]
},
"networkConfig": {
"type": "object",
"properties": {
"base_url": {
"type": "string",
"format": "uri"
},
"extra_headers": {
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"default_request_timeout_in_seconds": {
"type": "integer",
"minimum": 1
},
"max_retries": {
"type": "integer",
"minimum": 0
},
"retry_backoff_initial_ms": {
"type": "integer",
"minimum": 0
},
"retry_backoff_max_ms": {
"type": "integer",
"minimum": 0
}
}
},
"concurrencyConfig": {
"type": "object",
"properties": {
"concurrency": {
"type": "integer",
"minimum": 1
},
"buffer_size": {
"type": "integer",
"minimum": 1
}
},
"required": [
"concurrency",
"buffer_size"
]
},
"proxyConfig": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"none",
"http",
"socks5",
"environment"
]
},
"url": {
"type": "string",
"format": "uri"
},
"username": {
"type": "string"
},
"password": {
"type": "string"
},
"ca_cert_pem": {
"type": "string"
}
},
"required": [
"type"
]
},
"mcpClientConfig": {
"type": "object",
"properties": {
"clientId": {
"type": "string",
"description": "MCP client identifier"
},
"name": {
"type": "string"
},
"isCodeModeClient": {
"type": "boolean",
"description": "Whether this client is a code mode client"
},
"connectionType": {
"type": "string",
"enum": [
"stdio",
"websocket",
"http",
"sse"
]
},
"connectionString": {
"type": "string",
"description": "HTTP or SSE URL (required for HTTP or SSE connections)"
},
"authType": {
"type": "string",
"enum": ["none", "headers", "oauth"],
"description": "Authentication type for MCP connection"
},
"oauthConfigId": {
"type": "string",
"description": "OAuth config ID reference"
},
"headers": {
"type": "object",
"additionalProperties": { "type": "string" },
"description": "Headers for auth"
},
"stdioConfig": {
"type": "object",
"properties": {
"command": {
"type": "string"
},
"args": {
"type": "array",
"items": {
"type": "string"
}
},
"envs": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"command"
]
},
"websocketConfig": {
"type": "object",
"properties": {
"url": {
"type": "string",
"format": "uri"
}
},
"required": [
"url"
]
},
"httpConfig": {
"type": "object",
"properties": {
"url": {
"type": "string",
"format": "uri"
}
},
"required": [
"url"
]
},
"toolsToExecute": {
"type": "array",
"items": { "type": "string" },
"description": "Include-only list of tools to execute"
},
"toolsToAutoExecute": {
"type": "array",
"items": { "type": "string" },
"description": "Auto-execute list of tools"
},
"toolSyncInterval": {
"type": "string",
"description": "Per-client override for tool sync interval"
},
"isPingAvailable": {
"type": "boolean",
"description": "Whether the MCP server supports ping"
},
"toolPricing": {
"type": "object",
"description": "Tool pricing map (tool name to cost per execution)",
"additionalProperties": {
"type": "number",
"minimum": 0
}
}
},
"required": [
"name",
"connectionType"
],
"allOf": [
{
"if": {
"properties": {
"connectionType": {
"const": "stdio"
}
}
},
"then": {
"required": [
"stdioConfig"
]
}
},
{
"if": {
"properties": {
"connectionType": {
"const": "websocket"
}
}
},
"then": {
"required": [
"websocketConfig"
]
}
},
{
"if": {
"properties": {
"connectionType": {
"const": "http"
}
}
},
"then": {
"required": [
"httpConfig"
]
}
},
{
"if": {
"properties": {
"connectionType": {
"const": "sse"
}
}
},
"then": {
"required": [
"connectionString"
]
}
}
]
},
"virtualKeyProviderConfig": {
"type": "object",
"description": "Provider configuration for a virtual key",
"properties": {
"id": {
"type": "integer",
"description": "Provider config ID"
},
"virtual_key_id": {
"type": "string",
"description": "Associated virtual key ID"
},
"provider": {
"type": "string",
"description": "Provider name"
},
"weight": {
"type": "number",
"description": "Weight for load balancing",
"default": 1.0
},
"allowed_models": {
"type": "array",
"description": "Allowed models for this provider config (empty means all models allowed)",
"items": {
"type": "string"
}
},
"budget_id": {
"type": "string",
"description": "Associated budget ID"
},
"rate_limit_id": {
"type": "string",
"description": "Associated rate limit ID"
},
"keys": {
"type": "array",
"description": "Provider keys for this config (empty means all keys allowed for this provider)",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"description": "Key database ID (auto-generated)"
},
"key_id": {
"type": "string",
"description": "Key UUID identifier"
},
"name": {
"type": "string",
"description": "Key name (must be unique)"
},
"value": {
"type": "string",
"description": "API key value (can use env. prefix)"
},
"models": {
"type": "array",
"items": {
"type": "string"
},
"description": "Supported models for this key"
},
"weight": {
"type": "number",
"minimum": 0,
"default": 1.0,
"description": "Weight for load balancing"
},
"azure_key_config": {
"type": "object",
"properties": {
"endpoint": {
"type": "string",
"description": "Azure endpoint (can use env. prefix)"
},
"deployments": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "Model to deployment mappings"
},
"api_version": {
"type": "string",
"description": "Azure API version"
}
},
"required": ["endpoint"],
"additionalProperties": false
},
"vertex_key_config": {
"type": "object",
"properties": {
"project_id": {
"type": "string",
"description": "Google Cloud project ID (can use env. prefix)"
},
"project_number": {
"type": "string",
"description": "Google Cloud project number"
},
"region": {
"type": "string",
"description": "Google Cloud region"
},
"auth_credentials": {
"type": "string",
"description": "Authentication credentials (can use env. prefix)"
},
"deployments": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "Model to deployment mappings"
}
},
"required": ["project_id", "region"],
"additionalProperties": false
},
"bedrock_key_config": {
"type": "object",
"properties": {
"access_key": {
"type": "string",
"description": "AWS access key (can use env. prefix)"
},
"secret_key": {
"type": "string",
"description": "AWS secret key (can use env. prefix)"
},
"session_token": {
"type": "string",
"description": "AWS session token (can use env. prefix)"
},
"region": {
"type": "string",
"description": "AWS region"
},
"arn": {
"type": "string",
"description": "AWS ARN"
},
"deployments": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "Model to deployment mappings"
}
},
"additionalProperties": false
},
"vllm_key_config": {
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "VLLM server base URL (can use env. prefix)"
},
"model_name": {
"type": "string",
"description": "Exact model name served on this VLLM instance"
}
},
"required": [
"url",
"model_name"
],
"additionalProperties": false
}
},
"oneOf": [
{
"not": {
"anyOf": [
{ "required": ["azure_key_config"] },
{ "required": ["vertex_key_config"] },
{ "required": ["bedrock_key_config"] },
{ "required": ["vllm_key_config"] }
]
}
},
{
"required": ["azure_key_config"],
"not": {
"anyOf": [
{ "required": ["vertex_key_config"] },
{ "required": ["bedrock_key_config"] },
{ "required": ["vllm_key_config"] }
]
}
},
{
"required": ["vertex_key_config"],
"not": {
"anyOf": [
{ "required": ["azure_key_config"] },
{ "required": ["bedrock_key_config"] },
{ "required": ["vllm_key_config"] }
]
}
},
{
"required": ["bedrock_key_config"],
"not": {
"anyOf": [
{ "required": ["azure_key_config"] },
{ "required": ["vertex_key_config"] },
{ "required": ["vllm_key_config"] }
]
}
},
{
"required": ["vllm_key_config"],
"not": {
"anyOf": [
{ "required": ["azure_key_config"] },
{ "required": ["vertex_key_config"] },
{ "required": ["bedrock_key_config"] }
]
}
}
],
"required": ["key_id", "name", "value"]
}
}
},
"required": [
"provider"
],
"additionalProperties": false
}
}
}