# Services Deployment Configuration Schema # Validates which services are enabled and their configurations let ServerConfig = { host | String, port | Number, workers | Number | optional = 4, } in let DatabaseConfig = { url | String, namespace | String | optional, database | String | optional, username | String | optional, password | String | optional, } in let ManagerConfig = { hostname | String, port | Number, health_checks_enabled | Bool | optional = true, startup_timeout | Number | optional = 60, } in # Service configuration template let ServiceConfig = { enabled | Bool, priority | Number, server | ServerConfig, database | DatabaseConfig | optional, logging | { level | String, format | String | optional, } | optional, features | { batch_workflows | Bool | optional, git_integration | Bool | optional, cicd_integration | Bool | optional, user_management | Bool | optional, monitoring | Bool | optional, } | optional, } in { # Main services deployment configuration ServiceDeploymentConfig = { # Deployment mode mode | String, description | String | optional, created_at | String | optional, application_mode | String | optional, # Manager configuration manager | ManagerConfig | optional, # Git configuration (optional) git | { schemas_repo | { url | String | optional, branch | String | optional, cache_dir | String | optional, update_check | Bool | optional, } | optional, configs_repo | { url | String | optional, branch | String | optional, cache_dir | String | optional, update_check | Bool | optional, } | optional, .. } | optional, # Services startup (alternative to individual service configs) services | { orchestrator | { enabled | Bool | optional, priority | Number | optional, dependencies | optional, .. } | optional, vault_service | { enabled | Bool | optional, priority | Number | optional, dependencies | optional, .. } | optional, .. } | optional, # Orchestrator service orchestrator | ServiceConfig & { queue | { max_concurrent_tasks | Number | optional, retry_attempts | Number | optional, retry_delay_ms | Number | optional, } | optional, } | optional, # Vault Service vault_service | ServiceConfig & { backend | { backend_type | String, secretum_vault | { binary_path | String | optional, workspace | String | optional, api_endpoint | String | optional, } | optional, } | optional, encryption | { provider | String | optional, key_file | String | optional, } | optional, } | optional, # Control Center control_center | ServiceConfig | optional, # AI Service ai_service | ServiceConfig & { ai | { enabled | Bool | optional, provider | String | optional, model | String | optional, timeout | Number | optional, } | optional, } | optional, # Extension Registry extension_registry | ServiceConfig & { storage | { type | String | optional, path | String | optional, } | optional, } | optional, # Dependencies dependencies | { surrealdb | { url | String, required | Bool | optional = true, startup_command | String | optional, health_check_timeout | Number | optional, } | optional, secretum_vault | { binary_path | String, required | Bool | optional = true, check_binary | Bool | optional = true, } | optional, forgejo | { url | String, required | Bool | optional = false, only_if_enabled | String | optional, } | optional, } | optional, # External services (infrastructure services, databases, registries, CI/CD) # Imported from provisioning/platform/config/external-services.ncl external_services | Array {} | optional, # Metadata metadata | { created_at | String | optional, last_updated | String | optional, version | String | optional, maintainer | String | optional, } | optional, # Allow extra fields not listed above .. }, }