Skip to main content

Configuration Overview

Vectra uses the standard ASP.NET Core configuration system (appsettings.json, environment variables, user secrets, Azure Key Vault). Every section maps to a strongly-typed C# configuration class in Vectra.BuildingBlocks.


Top-Level Sections

JSON KeyClassDescription
SystemSystemConfigurationServer, storage, rate limiting, circuit breaker
SecuritySecurityConfigurationAgent authentication provider
PolicyPolicyConfigurationPolicy engine provider selection
SemanticSemanticConfigurationSemantic/LLM provider selection
HumanInTheLoopHumanInTheLoopConfigurationHITL thresholds and timeouts
ObservabilityObservabilityConfigurationLogging sinks
SecretManagementSecretManagementConfigurationExternal secret provider

Full Schema Example

{
"System": {
"Server": {
"Http": { "Port": 7080 },
"Https": {
"Enabled": false,
"Port": 7443,
"Certificate": {
"Path": "/certs/vectra.pfx",
"Password": ""
}
},
"MaxConcurrentConnections": 1000,
"MaxConcurrentUpgradedConnections": 100,
"KeepAliveTimeout": "00:02:00",
"RequestHeadersTimeout": "00:00:30",
"MaxRequestBodySizeMb": 50
},
"Storage": {
"Database": {
"DefaultProvider": "Sqlite",
"Providers": {
"Sqlite": { "ConnectionString": "Data Source=vectra.db" },
"Postgres": { "ConnectionString": "" }
}
},
"Cache": {
"DefaultProvider": "Memory",
"Providers": {
"Redis": { "ConnectionString": "" },
"Memory": {}
}
}
},
"RateLimit": {
"Enabled": true,
"DefaultRequestsPerMinute": 60
},
"CircuitBreaker": {
"Enabled": true,
"FailureThreshold": 5,
"OpenDurationSeconds": 30,
"SamplingWindowSeconds": 60
}
},
"Security": {
"AgentAuth": {
"Provider": "SelfSigned",
"SelfSigned": {},
"Jwt": {
"Issuer": "",
"Audience": "",
"SecretKey": ""
}
}
},
"Policy": {
"Enabled": true,
"DefaultProvider": "Internal",
"Providers": {
"Internal": { "Directory": "./policies" },
"Opa": {
"BaseUrl": "http://localhost:8181",
"Path": "/v1/data/vectra/authz",
"Timeout": "00:00:05"
}
}
},
"Semantic": {
"Enabled": false,
"ConfidenceThreshold": 0.7,
"AllowLowConfidence": false,
"DefaultProvider": "Internal",
"Providers": {
"Internal": {},
"OpenAi": { "ApiKey": "", "Model": "gpt-4o" },
"AzureAi": { "Endpoint": "", "ApiKey": "", "DeploymentName": "" },
"Gemini": { "ApiKey": "", "Model": "" },
"Ollama": { "BaseUrl": "http://localhost:11434", "Model": "llama3" }
}
},
"HumanInTheLoop": {
"Enabled": true,
"Threshold": 0.8,
"TimeoutSeconds": 3600,
"NotificationWebhookUrl": "",
"MaxPendingRequests": 100
},
"Observability": {
"Logging": {
"DefaultLogLevel": "Information",
"File": {
"Enabled": true,
"Path": "./logs/vectra-.log"
},
"Seq": {
"Enabled": false,
"ServerUrl": "http://localhost:5341",
"ApiKey": ""
}
}
},
"SecretManagement": {
"DefaultProvider": "None",
"Providers": {
"EnvironmentVariables": {},
"AzureKeyVault": { "VaultUri": "" }
}
}
}

Section Pages