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 Key | Class | Description |
|---|---|---|
System | SystemConfiguration | Server, storage, rate limiting, circuit breaker |
Security | SecurityConfiguration | Agent authentication provider |
Policy | PolicyConfiguration | Policy engine provider selection |
Semantic | SemanticConfiguration | Semantic/LLM provider selection |
HumanInTheLoop | HumanInTheLoopConfiguration | HITL thresholds and timeouts |
Observability | ObservabilityConfiguration | Logging sinks |
SecretManagement | SecretManagementConfiguration | External 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": "" }
}
}
}