provisioning/schemas/platform/services-deployment.ncl

173 lines
4.3 KiB
Text
Raw Normal View History

# 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
..
},
}