provisioning/schemas/platform/deployment/solo.ncl

90 lines
2.3 KiB
Text

# Solo Mode Schema
# Single developer deployment with minimal infrastructure
# Resources: 2 CPU, 4GB RAM, 50GB disk
{
SoloModeConfig = {
# Deployment mode identifier
mode | String = "solo",
# NATS embedded broker (child process, JetStream enabled)
nats = {
mode | String = "embedded",
port | Number = 4222,
jetstream | Bool = true,
jetstream_store_dir | String | optional,
max_reconnects | Number = 10,
reconnect_wait_ms | Number = 2000,
subject_prefix | String = "provisioning",
},
# SurrealDB embedded RocksDB (no external server required)
surrealdb = {
mode | String = "embedded",
path | String | optional,
namespace | String = "provisioning",
},
# Resource allocation
resources = {
cpu_cores | String,
memory_mb | String,
disk_gb | String,
max_connections | String | optional,
},
# Service enablement
services = {
orchestrator | {
enabled | String,
storage_backend | String,
workers | String | optional,
queue_max_concurrent_tasks | String | optional,
batch_parallel_limit | Number | optional,
},
control_center | {
enabled | String,
database | String,
mfa_required | String | optional,
audit_logging | String | optional,
},
mcp_server | {
enabled | String,
protocol | String | optional,
max_concurrent_tools | String | optional,
},
installer | {
enabled | String,
},
},
# Security configuration
security = {
auto_generate_secrets | String | optional,
kms_backend | String | optional,
audit_logging | String | optional,
tls_enabled | String | optional,
rbac_enabled | String | optional,
},
# Networking
networking = {
bind_localhost_only | String | optional,
expose_services | String | optional,
},
# High Availability (disabled for solo)
ha = {
enabled | String,
replicas | String | optional,
},
# Monitoring and observability
monitoring = {
enabled | String | optional,
metrics_enabled | String | optional,
health_checks_enabled | String | optional,
logging_level | String | optional,
},
},
}