117 lines
3.3 KiB
Plaintext
Raw Normal View History

# System Configuration Contracts
#
# Type definitions for system-level configuration
# Migrated from provisioning/kcl/system_config.k
{
SystemConfig = {
version | String | default = "1.0.0",
install_path | String,
os_name | [| 'macos, 'linux, 'windows |] | default = 'linux,
os_version | String,
config_base_path | String,
cache_base_path | String,
workspaces_dir | String,
system_architecture | String,
cpu_count | Number,
memory_total_gb | Number,
disk_total_gb | Number,
setup_date | String,
setup_by_user | String,
setup_hostname | String,
},
OrchestratorConfig = {
enabled | Bool | default = true,
endpoint | String | default = "http://localhost:9090",
port | Number | default = 9090,
timeout_seconds | Number | default = 30,
health_check_interval_seconds | Number | default = 5,
},
DatabaseConfig = {
backend | [| 'memory, 'surrealdb |] | default = 'memory,
url | String | optional,
},
ControlCenterConfig = {
enabled | Bool | default = true,
url | String | default = "http://localhost:3000",
port | Number | default = 3000,
timeout_seconds | Number | default = 30,
database | DatabaseConfig,
},
KMSConfig = {
enabled | Bool | default = true,
backend | [| 'rustyvault, 'age, 'vault, 'aws_kms |] | default = 'age,
endpoint | String | optional,
port | Number | optional,
rotation_days | Number | optional | default = 90,
},
PlatformServicesConfig = {
orchestrator | OrchestratorConfig,
control_center | ControlCenterConfig,
kms_service | KMSConfig,
},
ProviderCredentialsReference = {
credentials_source | String,
credentials_source_type | [| 'rustyvault, 'vault, 'kms |] | default = 'rustyvault,
},
UpCloudConfig = {
api_url | String | default = "https://api.upcloud.com/1.3",
interface | [| 'API, 'CLI |] | default = 'API,
credentials | ProviderCredentialsReference,
timeout_seconds | Number | default = 30,
},
AWSConfig = {
region | String | default = "us-east-1",
credentials | ProviderCredentialsReference,
timeout_seconds | Number | default = 30,
},
HetznerConfig = {
api_url | String | default = "https://api.hetzner.cloud/v1",
credentials | ProviderCredentialsReference,
timeout_seconds | Number | default = 30,
},
LocalConfig = {
base_path | String | default = "/tmp/provisioning-local",
timeout_seconds | Number | default = 10,
},
RustyVaultBootstrap = {
encrypted_key_path | String,
encrypted_key_format | [| 'age, 'sops |] | default = 'age,
},
ProviderConfig = {
upcloud | UpCloudConfig | optional,
aws | AWSConfig | optional,
hetzner | HetznerConfig | optional,
local | LocalConfig | optional,
rustyvault_bootstrap | RustyVaultBootstrap | optional,
},
UserPreferences = {
preferred_editor | [| 'vim, 'nano, 'code |] | default = 'vim,
preferred_output_format | [| 'text, 'json, 'yaml |] | default = 'text,
auto_confirm_operations | Bool | default = false,
log_level | [| 'error, 'warn, 'info, 'debug |] | default = 'info,
default_timeout_seconds | Number | default = 300,
},
WorkspaceConfig = {
workspace_name | String,
workspace_path | String,
active_infrastructure | String,
active_providers | Array String,
provider_config | ProviderConfig,
},
}