chore: update defs

This commit is contained in:
Jesús Pérez 2026-01-12 05:18:28 +00:00
parent 51b20e33ba
commit 1508d9a96b
Signed by: jesus
GPG Key ID: 9F243E355E0BC939
12 changed files with 492 additions and 492 deletions

View File

@ -18,7 +18,7 @@ deny = ["unmaintained", "unsound", "yanked"]
# Specific vulnerability IDs to ignore (in case of false positives) # Specific vulnerability IDs to ignore (in case of false positives)
# You can use: https://rustsec.org/ # You can use: https://rustsec.org/
ignore = [ ignore = [
# Example: { id = "RUSTSEC-2023-XXXX", reason = "Not applicable to our use case" } # Example: { id = "RUSTSEC-2023-XXXX", reason = "Not applicable to our use case" }
] ]
# How to handle vulnerabilities based on severity # How to handle vulnerabilities based on severity

View File

@ -10,51 +10,51 @@ jobs = 4
[profile.dev] [profile.dev]
# Development profile - fast compilation, debug info # Development profile - fast compilation, debug info
opt-level = 0
debug = true debug = true
debug-assertions = true debug-assertions = true
overflow-checks = true
lto = false
panic = "unwind"
incremental = true incremental = true
lto = false
opt-level = 0
overflow-checks = true
panic = "unwind"
[profile.release] [profile.release]
# Release profile - slow compilation, optimized binary # Release profile - slow compilation, optimized binary
opt-level = 3 codegen-units = 1
debug = false debug = false
debug-assertions = false debug-assertions = false
overflow-checks = false
lto = "thin"
codegen-units = 1
panic = "abort"
incremental = false incremental = false
lto = "thin"
opt-level = 3
overflow-checks = false
panic = "abort"
strip = false strip = false
[profile.test] [profile.test]
# Test profile - inherits from dev but can be optimized # Test profile - inherits from dev but can be optimized
opt-level = 1
debug = true debug = true
debug-assertions = true debug-assertions = true
overflow-checks = true
lto = false
incremental = true incremental = true
lto = false
opt-level = 1
overflow-checks = true
[profile.bench] [profile.bench]
# Benchmark profile - same as release # Benchmark profile - same as release
opt-level = 3 codegen-units = 1
debug = false debug = false
debug-assertions = false debug-assertions = false
overflow-checks = false
lto = "thin"
codegen-units = 1
incremental = false incremental = false
lto = "thin"
opt-level = 3
overflow-checks = false
[term] [term]
# Terminal colors # Terminal colors
color = "auto" color = "auto"
verbose = false
progress.when = "auto" progress.when = "auto"
progress.width = 80 progress.width = 80
verbose = false
[net] [net]
# Network settings # Network settings
@ -68,5 +68,5 @@ offline = false
# Custom cargo commands # Custom cargo commands
build-all = "build --all-targets" build-all = "build --all-targets"
check-all = "check --all-targets --all-features" check-all = "check --all-targets --all-features"
test-all = "test --all-features --workspace"
doc-all = "doc --all-features --no-deps --open" doc-all = "doc --all-features --no-deps --open"
test-all = "test --all-features --workspace"

View File

@ -3,8 +3,8 @@
# Lint level thresholds # Lint level thresholds
cognitive-complexity-threshold = 25 cognitive-complexity-threshold = 25
type-complexity-threshold = 500
excessive-nesting-threshold = 5 excessive-nesting-threshold = 5
type-complexity-threshold = 500
# Allowed patterns (prevent lints on specific code) # Allowed patterns (prevent lints on specific code)
# allow-expect-in-tests = true # allow-expect-in-tests = true

View File

@ -4,19 +4,19 @@
# Basic formatting options # Basic formatting options
edition = "2021" edition = "2021"
max_width = 100
hard_tabs = false hard_tabs = false
tab_spaces = 4 max_width = 100
newline_style = "Unix" newline_style = "Unix"
tab_spaces = 4
# Code structure # Code structure
use_small_heuristics = "Default" use_small_heuristics = "Default"
# Imports # Imports
group_imports = "StdExternalCrate"
remove_nested_parens = true
reorder_imports = true reorder_imports = true
reorder_modules = true reorder_modules = true
remove_nested_parens = true
group_imports = "StdExternalCrate"
# Match expressions # Match expressions
match_block_trailing_comma = false match_block_trailing_comma = false
@ -26,28 +26,28 @@ chain_width = 60
# Comment formatting (nightly) # Comment formatting (nightly)
comment_width = 80 comment_width = 80
wrap_comments = true
normalize_comments = true normalize_comments = true
normalize_doc_attributes = true normalize_doc_attributes = true
wrap_comments = true
# Spaces and indentation (nightly) # Spaces and indentation (nightly)
fn_single_line = false
fn_params_layout = "Tall" fn_params_layout = "Tall"
fn_single_line = false
where_single_line = false where_single_line = false
# Formatting (nightly) # Formatting (nightly)
format_strings = true
format_code_in_doc_comments = false format_code_in_doc_comments = false
format_strings = true
# Spaces (nightly) # Spaces (nightly)
space_before_colon = false
space_after_colon = true space_after_colon = true
space_before_colon = false
spaces_around_ranges = false spaces_around_ranges = false
# Line breaks (nightly) # Line breaks (nightly)
match_arm_blocks = true
blank_lines_lower_bound = 0 blank_lines_lower_bound = 0
blank_lines_upper_bound = 1 blank_lines_upper_bound = 1
match_arm_blocks = true
# Enable nightly features # Enable nightly features
unstable_features = true unstable_features = true

View File

@ -6,22 +6,22 @@ db-path = "~/.cargo/advisory-db"
db-urls = ["https://github.com/rustsec/advisory-db"] db-urls = ["https://github.com/rustsec/advisory-db"]
[licenses] [licenses]
unlicensed = "deny"
allow = [ allow = [
"MIT", "MIT",
"MIT-0", "MIT-0",
"Apache-2.0", "Apache-2.0",
"Apache-2.0 WITH LLVM-exception", "Apache-2.0 WITH LLVM-exception",
"BSD-2-Clause", "BSD-2-Clause",
"BSD-3-Clause", "BSD-3-Clause",
"ISC", "ISC",
"Unicode-DFS-2016", "Unicode-DFS-2016",
] ]
unlicensed = "deny"
[bans] [bans]
multiple-versions = "warn" multiple-versions = "warn"
[sources] [sources]
unknown-registry = "deny"
unknown-git = "deny"
allow-registry = ["https://github.com/rust-lang/crates.io-index"] allow-registry = ["https://github.com/rust-lang/crates.io-index"]
unknown-git = "deny"
unknown-registry = "deny"

View File

@ -1,10 +1,10 @@
[book] [book]
title = "Provisioning Platform Documentation"
authors = ["Provisioning Platform Team"] authors = ["Provisioning Platform Team"]
description = "Complete documentation for the Provisioning Platform - Infrastructure automation with Nushell, KCL, and Rust" description = "Complete documentation for the Provisioning Platform - Infrastructure automation with Nushell, KCL, and Rust"
language = "en" language = "en"
multilingual = false multilingual = false
src = "src" src = "src"
title = "Provisioning Platform Documentation"
[build] [build]
build-dir = "book" build-dir = "book"
@ -15,56 +15,56 @@ create-missing = true
[output.html] [output.html]
# theme = "theme" # Commented out - using default mdbook theme # theme = "theme" # Commented out - using default mdbook theme
default-theme = "ayu"
preferred-dark-theme = "navy"
smart-punctuation = true # Renamed from curly-quotes
mathjax-support = false
copy-fonts = true
no-section-label = false
git-repository-url = "https://github.com/provisioning/provisioning-platform"
git-repository-icon = "fa-github"
edit-url-template = "https://github.com/provisioning/provisioning-platform/edit/main/provisioning/docs/{path}"
site-url = "/docs/"
cname = "docs.provisioning.local" cname = "docs.provisioning.local"
copy-fonts = true
default-theme = "ayu"
edit-url-template = "https://github.com/provisioning/provisioning-platform/edit/main/provisioning/docs/{path}"
git-repository-icon = "fa-github"
git-repository-url = "https://github.com/provisioning/provisioning-platform"
mathjax-support = false
no-section-label = false
preferred-dark-theme = "navy"
site-url = "/docs/"
smart-punctuation = true # Renamed from curly-quotes
# input-404 = "404.md" # Commented out - 404.md not created yet # input-404 = "404.md" # Commented out - 404.md not created yet
[output.html.print] [output.html.print]
enable = true enable = true
[output.html.fold] [output.html.fold]
enable = true enable = true
level = 1 level = 1
[output.html.playground] [output.html.playground]
editable = false copy-js = true
copyable = true copyable = true
copy-js = true editable = false
line-numbers = true line-numbers = true
runnable = false runnable = false
[output.html.search] [output.html.search]
enable = true boost-hierarchy = 1
limit-results = 30 boost-paragraph = 1
teaser-word-count = 30 boost-title = 2
use-boolean-and = true enable = true
boost-title = 2 expand = true
boost-hierarchy = 1 heading-split-level = 3
boost-paragraph = 1 limit-results = 30
expand = true teaser-word-count = 30
heading-split-level = 3 use-boolean-and = true
[output.html.code.highlightjs] [output.html.code.highlightjs]
additional-languages = ["nushell", "toml", "yaml", "bash", "rust", "kcl"] additional-languages = ["nushell", "toml", "yaml", "bash", "rust", "kcl"]
[output.html.code] [output.html.code]
hidelines = {} hidelines = {}
[[output.html.code.highlightjs.theme]] [[output.html.code.highlightjs.theme]]
light = "ayu-light" dark = "ayu-dark"
dark = "ayu-dark" light = "ayu-light"
[output.html.redirect] [output.html.redirect]
# Add redirects for moved pages if needed # Add redirects for moved pages if needed
[rust] [rust]
edition = "2021" edition = "2021"

View File

@ -13,41 +13,41 @@ kloud = "."
[debug] [debug]
# Enable debug mode for learning and troubleshooting # Enable debug mode for learning and troubleshooting
check = false
enabled = true enabled = true
log_level = "debug" log_level = "debug"
metadata = true metadata = true
check = false
remote = false
no_terminal = false no_terminal = false
remote = false
[output] [output]
# Human-readable output formats for learning # Human-readable output formats for learning
format = "yaml"
file_viewer = "less" file_viewer = "less"
format = "yaml"
# Provider configuration for local development # Provider configuration for local development
[providers] [providers]
default = "local" default = "local"
[providers.local] [providers.local]
# Local provider settings # Local provider settings
interface = "CLI" container_runtime = "docker" # or "podman"
container_runtime = "docker" # or "podman" interface = "CLI"
network_driver = "bridge" network_driver = "bridge"
# Local development network settings # Local development network settings
network_cidr = "192.168.100.0/24" enable_port_forwarding = true
enable_port_forwarding = true network_cidr = "192.168.100.0/24"
# Resource limits for local development # Resource limits for local development
[providers.local.resource_limits] [providers.local.resource_limits]
max_memory_per_server = "1GB" max_cpu_cores_per_server = 2
max_cpu_cores_per_server = 2 max_memory_per_server = "1GB"
max_storage_per_server = "20GB" max_storage_per_server = "20GB"
# SOPS configuration (simplified for local development) # SOPS configuration (simplified for local development)
[sops] [sops]
use_sops = false # Disable encryption for local dev to keep things simple use_sops = false # Disable encryption for local dev to keep things simple
# If you want to practice with SOPS locally, set to true and configure keys # If you want to practice with SOPS locally, set to true and configure keys
# Development-specific settings # Development-specific settings
@ -57,18 +57,18 @@ auto_approve = true
# Cleanup settings # Cleanup settings
cleanup_on_error = true cleanup_on_error = true
cleanup_on_shutdown = false # Keep resources between sessions cleanup_on_shutdown = false # Keep resources between sessions
# Development helper settings # Development helper settings
debug_on_error = true
enable_dev_mode = true enable_dev_mode = true
verbose_logging = true verbose_logging = true
debug_on_error = true
# Cache settings for development # Cache settings for development
[cache] [cache]
enabled = false # Disable caching for development to see real-time changes enabled = false # Disable caching for development to see real-time changes
path = "./.provisioning-cache"
max_size = "100MB" max_size = "100MB"
path = "./.provisioning-cache"
# Task service runtime paths # Task service runtime paths
[taskservs] [taskservs]
@ -79,8 +79,8 @@ run_path = "./run/clusters"
# Generation settings # Generation settings
[generation] [generation]
dir_path = "./generated"
defs_file = "defs.toml" defs_file = "defs.toml"
dir_path = "./generated"
# Local development notifications (disabled for quiet operation) # Local development notifications (disabled for quiet operation)
[notifications] [notifications]
@ -94,41 +94,41 @@ use_tera_plugin = true
# Environment overrides for development # Environment overrides for development
[environments.development] [environments.development]
auto_approve = true
debug.enabled = true debug.enabled = true
debug.log_level = "debug" debug.log_level = "debug"
providers.default = "local" providers.default = "local"
auto_approve = true
# Validation settings for development # Validation settings for development
[validation] [validation]
strict_mode = false # Relaxed validation for learning
warn_on_missing = true
fail_on_error = false fail_on_error = false
strict_mode = false # Relaxed validation for learning
warn_on_missing = true
# Development-specific limits and quotas # Development-specific limits and quotas
[limits] [limits]
max_concurrent_operations = 2
max_servers = 5 max_servers = 5
max_services_per_server = 10 max_services_per_server = 10
max_concurrent_operations = 2
timeout_seconds = 300 timeout_seconds = 300
# Local development extensions # Local development extensions
[extensions] [extensions]
path = ""
mode = "development" mode = "development"
path = ""
profile = "learning" profile = "learning"
# Security settings (relaxed for local development) # Security settings (relaxed for local development)
[security] [security]
require_confirmation = false # Speed up development workflow
strict_validation = false
log_sensitive_data = false log_sensitive_data = false
require_confirmation = false # Speed up development workflow
strict_validation = false
# Performance settings for local development # Performance settings for local development
[performance] [performance]
parallel_operations = 2 # Limit parallelism for local resources
cache_enabled = false cache_enabled = false
timeout_multiplier = 1.5 # Give more time for local operations parallel_operations = 2 # Limit parallelism for local resources
timeout_multiplier = 1.5 # Give more time for local operations
# Local development specific configurations # Local development specific configurations
[local_dev] [local_dev]
@ -139,67 +139,67 @@ auto_cleanup_age = "7d"
enable_aliases = true enable_aliases = true
enable_shortcuts = true enable_shortcuts = true
# Port ranges for development services # Port ranges for development services
[local_dev.port_ranges] [local_dev.port_ranges]
web = "8000-8999" api = "9000-9999"
api = "9000-9999" cache = "6000-6999"
database = "5000-5999" database = "5000-5999"
cache = "6000-6999" web = "8000-8999"
# Development database settings # Development database settings
[local_dev.database_defaults] [local_dev.database_defaults]
auto_create_dev_db = true auto_create_dev_db = true
enable_query_logging = true enable_query_logging = true
relaxed_security = true # WARNING: Only for local development! relaxed_security = true # WARNING: Only for local development!
# Container settings for local development # Container settings for local development
[containers] [containers]
auto_remove = true # Clean up containers automatically auto_remove = true # Clean up containers automatically
enable_debug_mode = true enable_debug_mode = true
mount_source_code = true # Mount local directories for development mount_source_code = true # Mount local directories for development
# Network settings for local development # Network settings for local development
[network] [network]
enable_host_networking = true # Allow easy access from host
auto_assign_ports = true auto_assign_ports = true
enable_host_networking = true # Allow easy access from host
enable_service_discovery = true enable_service_discovery = true
# Monitoring settings (lightweight for local development) # Monitoring settings (lightweight for local development)
[monitoring] [monitoring]
enable_alerts = false # No alerts needed for local development
enabled = true enabled = true
retention_period = "24h" # Short retention for local dev
metrics_interval = "30s" metrics_interval = "30s"
enable_alerts = false # No alerts needed for local development retention_period = "24h" # Short retention for local dev
# Backup settings for local development # Backup settings for local development
[backup] [backup]
enabled = false # No backups needed for disposable local environment
auto_backup = false auto_backup = false
enabled = false # No backups needed for disposable local environment
# Integration settings # Integration settings
[integration] [integration]
# Enable integrations useful for development # Enable integrations useful for development
enable_git_hooks = false enable_git_hooks = false
enable_ide_integration = true
enable_hot_reload = true enable_hot_reload = true
enable_ide_integration = true
# Learning and documentation helpers # Learning and documentation helpers
[learning] [learning]
enable_interactive_help = true
include_examples = true
show_helpful_tips = true show_helpful_tips = true
verbose_explanations = true verbose_explanations = true
include_examples = true
enable_interactive_help = true
# Example-specific metadata # Example-specific metadata
[example] [example]
name = "local-development"
description = "Basic local development environment setup" description = "Basic local development environment setup"
difficulty = "beginner" difficulty = "beginner"
estimated_time = "15-30 minutes" estimated_time = "15-30 minutes"
requirements = ["docker", "4GB RAM", "10GB disk"]
learning_objectives = [ learning_objectives = [
"Understanding basic provisioning concepts", "Understanding basic provisioning concepts",
"Setting up local infrastructure", "Setting up local infrastructure",
"Managing servers and services", "Managing servers and services",
"Using the provisioning CLI" "Using the provisioning CLI",
] ]
name = "local-development"
requirements = ["docker", "4GB RAM", "10GB disk"]

View File

@ -2,174 +2,174 @@
# Multi-provider cost optimization using provider specialization # Multi-provider cost optimization using provider specialization
[workspace] [workspace]
name = "cost-optimized"
environment = "production"
owner = "platform-team"
description = "Cost-optimized deployment using Hetzner compute, AWS managed services, and DigitalOcean CDN" description = "Cost-optimized deployment using Hetzner compute, AWS managed services, and DigitalOcean CDN"
environment = "production"
name = "cost-optimized"
owner = "platform-team"
# Hetzner Configuration - Compute Tier (Best price/performance) # Hetzner Configuration - Compute Tier (Best price/performance)
[providers.hetzner] [providers.hetzner]
enabled = true
token_env = "HCLOUD_TOKEN"
default_location = "nbg1"
default_datacenter = "nbg1-dc8" default_datacenter = "nbg1-dc8"
default_location = "nbg1"
enabled = true
provider_type = "primary_compute" provider_type = "primary_compute"
token_env = "HCLOUD_TOKEN"
[providers.hetzner.settings] [providers.hetzner.settings]
enable_automount = false default_volume_format = "ext4"
default_volume_format = "ext4" enable_automount = false
server_type_default = "cpx21" region_name = "eu-central"
region_name = "eu-central" server_type_default = "cpx21"
# AWS Configuration - Managed Services # AWS Configuration - Managed Services
[providers.aws] [providers.aws]
enabled = true
region = "us-east-1"
access_key_env = "AWS_ACCESS_KEY_ID" access_key_env = "AWS_ACCESS_KEY_ID"
secret_key_env = "AWS_SECRET_ACCESS_KEY" enabled = true
provider_type = "managed_services" provider_type = "managed_services"
region = "us-east-1"
secret_key_env = "AWS_SECRET_ACCESS_KEY"
[providers.aws.settings] [providers.aws.settings]
multi_az = true backup_retention_days = 30
backup_retention_days = 30 enable_enhanced_monitoring = true
enable_performance_insights = true enable_performance_insights = true
enable_enhanced_monitoring = true multi_az = true
region_name = "us-east" region_name = "us-east"
# DigitalOcean Configuration - CDN and Storage # DigitalOcean Configuration - CDN and Storage
[providers.digitalocean] [providers.digitalocean]
enabled = true
token_env = "DIGITALOCEAN_TOKEN"
default_region = "nyc3" default_region = "nyc3"
enabled = true
provider_type = "cdn_and_storage" provider_type = "cdn_and_storage"
token_env = "DIGITALOCEAN_TOKEN"
[providers.digitalocean.settings] [providers.digitalocean.settings]
enable_monitoring = true enable_backups = false
enable_backups = false enable_monitoring = true
spaces_region = "nyc3" region_name = "us-east-cdn"
region_name = "us-east-cdn" spaces_region = "nyc3"
# Cost Tracking and Budgets # Cost Tracking and Budgets
[cost_tracking] [cost_tracking]
budget_alert_threshold = 280
enabled = true enabled = true
monthly_budget = 300 monthly_budget = 300
budget_alert_threshold = 280
[cost_tracking.regional_budgets] [cost_tracking.regional_budgets]
hetzner = 75 aws = 120
aws = 120 digitalocean = 65
digitalocean = 65 hetzner = 75
[cost_tracking.optimization_targets] [cost_tracking.optimization_targets]
hetzner_compute = "€20.90/month per CPX21 (vs €45+ for equivalent AWS)" aws_managed = "$100/month for all managed services (vs $200+ for self-managed)"
aws_managed = "$100/month for all managed services (vs $200+ for self-managed)" digitalocean_cdn = "$64/month for CDN and storage (vs $150+ for CloudFront)"
digitalocean_cdn = "$64/month for CDN and storage (vs $150+ for CloudFront)" hetzner_compute = "€20.90/month per CPX21 (vs €45+ for equivalent AWS)"
# Deployment Configuration # Deployment Configuration
[deployment] [deployment]
strategy = "rolling"
batch_size = 1 batch_size = 1
health_check_wait = 60 health_check_wait = 60
rollback_on_failure = true
order = ["hetzner", "aws", "digitalocean"] order = ["hetzner", "aws", "digitalocean"]
rollback_on_failure = true
strategy = "rolling"
# Networking Configuration # Networking Configuration
[networking] [networking]
enable_vpn_tunnels = true enable_vpn_tunnels = true
vpn_protocol = "ipsec"
vpn_encryption = "aes-256"
vpn_authentication = "sha256" vpn_authentication = "sha256"
vpn_encryption = "aes-256"
vpn_protocol = "ipsec"
[networking.cidr_blocks] [networking.cidr_blocks]
hetzner = "10.0.0.0/16" aws = "10.1.0.0/16"
aws = "10.1.0.0/16" hetzner = "10.0.0.0/16"
# Monitoring and Alerting # Monitoring and Alerting
[monitoring] [monitoring]
alert_on_threshold_exceeded = true
enabled = true enabled = true
metric_collection_interval = 60 metric_collection_interval = 60
alert_on_threshold_exceeded = true
[monitoring.thresholds] [monitoring.thresholds]
cpu = 80 cpu = 80
memory = 85 disk = 90
disk = 90 memory = 85
queue_depth = 1000 queue_depth = 1000
[monitoring.critical_alerts] [monitoring.critical_alerts]
database_cpu_high = { threshold = 75, action = "scale_up", severity = "warning" } cache_eviction_high = { threshold = 10, action = "alert", severity = "warning" }
queue_depth_high = { threshold = 1000, action = "alert", severity = "critical" } database_cpu_high = { threshold = 75, action = "scale_up", severity = "warning" }
cache_eviction_high = { threshold = 10, action = "alert", severity = "warning" } queue_depth_high = { threshold = 1000, action = "alert", severity = "critical" }
# Backup Configuration # Backup Configuration
[backup] [backup]
compression = true
enabled = true enabled = true
encryption = true
frequency = "daily" frequency = "daily"
retention_days = 30 retention_days = 30
compression = true
encryption = true
[backup.strategies] [backup.strategies]
rds = "AWS managed, 30-day retention" application = "Weekly Hetzner snapshots"
application = "Weekly Hetzner snapshots" cdn = "Weekly Spaces backups to secondary region"
cdn = "Weekly Spaces backups to secondary region" rds = "AWS managed, 30-day retention"
# Performance Configuration # Performance Configuration
[performance] [performance]
enable_caching = true
cache_ttl = 3600 cache_ttl = 3600
cdn_cache_ttl = 86400 cdn_cache_ttl = 86400
enable_caching = true
[performance.optimization] [performance.optimization]
database = "Use read replicas for read-heavy workloads" cache = "ElastiCache Redis for session and data caching"
cache = "ElastiCache Redis for session and data caching" cdn = "Serve static assets from DigitalOcean CDN"
cdn = "Serve static assets from DigitalOcean CDN" database = "Use read replicas for read-heavy workloads"
queue = "SQS for async job processing" queue = "SQS for async job processing"
# Scaling Configuration # Scaling Configuration
[scaling] [scaling]
auto_scale_enabled = true auto_scale_enabled = true
[scaling.hetzner] [scaling.hetzner]
min_instances = 2 max_instances = 5
max_instances = 5 min_instances = 2
scale_up_cpu_threshold = 80 scale_down_cpu_threshold = 30
scale_down_cpu_threshold = 30 scale_up_cpu_threshold = 80
[scaling.aws] [scaling.aws]
auto_scaling_enabled = false auto_scaling_enabled = false
note = "RDS handles scaling automatically, SQS scales automatically" note = "RDS handles scaling automatically, SQS scales automatically"
# Security Configuration # Security Configuration
[security] [security]
backup_encryption = true
enable_encryption = true enable_encryption = true
enable_monitoring = true enable_monitoring = true
backup_encryption = true
[security.vpn_tunnel] [security.vpn_tunnel]
encryption_algorithm = "AES-256" authentication = "SHA256"
authentication = "SHA256" dh_group = "Group 14"
dh_group = "Group 14" encryption_algorithm = "AES-256"
encryption_integrity = "enabled" encryption_integrity = "enabled"
# Application Settings # Application Settings
[application] [application]
app_name = "cost-optimized-app" app_name = "cost-optimized-app"
version = "1.0" version = "1.0"
[application.database] [application.database]
engine = "postgresql" connection_pool = 20
version = "14.6" engine = "postgresql"
connection_pool = 20 idle_timeout = 900
idle_timeout = 900 version = "14.6"
[application.cache] [application.cache]
engine = "redis" engine = "redis"
version = "7.0" eviction_policy = "allkeys-lru"
max_memory = "250MB" max_memory = "250MB"
eviction_policy = "allkeys-lru" version = "7.0"
[application.queue] [application.queue]
max_message_size = 262144 default_visibility_timeout = 300
default_visibility_timeout = 300 long_poll_interval = 20
long_poll_interval = 20 max_message_size = 262144

View File

@ -2,81 +2,81 @@
# Credentials and provider-specific settings # Credentials and provider-specific settings
[workspace] [workspace]
name = "multi-provider-web-app"
environment = "production"
owner = "platform-team"
description = "Web application across DigitalOcean, AWS, and Hetzner" description = "Web application across DigitalOcean, AWS, and Hetzner"
environment = "production"
name = "multi-provider-web-app"
owner = "platform-team"
# DigitalOcean Configuration # DigitalOcean Configuration
[providers.digitalocean] [providers.digitalocean]
default_region = "nyc3"
enabled = true enabled = true
token_env = "DIGITALOCEAN_TOKEN" token_env = "DIGITALOCEAN_TOKEN"
default_region = "nyc3"
[providers.digitalocean.settings] [providers.digitalocean.settings]
enable_monitoring = true enable_backups = true
enable_backups = true enable_ipv6 = true
enable_ipv6 = true enable_monitoring = true
# AWS Configuration # AWS Configuration
[providers.aws] [providers.aws]
access_key_env = "AWS_ACCESS_KEY_ID"
enabled = true enabled = true
region = "us-east-1" region = "us-east-1"
access_key_env = "AWS_ACCESS_KEY_ID"
secret_key_env = "AWS_SECRET_ACCESS_KEY" secret_key_env = "AWS_SECRET_ACCESS_KEY"
[providers.aws.settings] [providers.aws.settings]
multi_az = true backup_retention_days = 30
backup_retention_days = 30 enable_enhanced_monitoring = true
enable_performance_insights = true enable_performance_insights = true
enable_enhanced_monitoring = true multi_az = true
# Hetzner Configuration # Hetzner Configuration
[providers.hetzner] [providers.hetzner]
default_datacenter = "nbg1-dc8"
default_location = "nbg1"
enabled = true enabled = true
token_env = "HCLOUD_TOKEN" token_env = "HCLOUD_TOKEN"
default_location = "nbg1"
default_datacenter = "nbg1-dc8"
[providers.hetzner.settings] [providers.hetzner.settings]
enable_automount = false default_volume_format = "ext4"
default_volume_format = "ext4" enable_automount = false
# Deployment Settings # Deployment Settings
[deployment] [deployment]
strategy = "rolling"
batch_size = 1 batch_size = 1
health_check_wait = 60 health_check_wait = 60
rollback_on_failure = true rollback_on_failure = true
strategy = "rolling"
# Monitoring Settings # Monitoring Settings
[monitoring] [monitoring]
alert_on_threshold_exceeded = true
enabled = true enabled = true
metric_collection_interval = 60 metric_collection_interval = 60
alert_on_threshold_exceeded = true
[monitoring.thresholds] [monitoring.thresholds]
cpu = 80 cpu = 80
memory = 85 disk = 90
disk = 90 memory = 85
network = 1000 network = 1000
# Backup Settings # Backup Settings
[backup] [backup]
compression = true
enabled = true enabled = true
encryption = true
frequency = "daily" frequency = "daily"
retention_days = 30 retention_days = 30
compression = true
encryption = true
# Network Settings # Network Settings
[networking] [networking]
enable_vpn_tunnels = true enable_vpn_tunnels = true
vpn_protocol = "ipsec"
vpn_encryption = "aes-256" vpn_encryption = "aes-256"
vpn_protocol = "ipsec"
# Cost Tracking # Cost Tracking
[cost_tracking] [cost_tracking]
enabled = true
budget_alert_threshold = 200 budget_alert_threshold = 200
enabled = true
monthly_budget = 300 monthly_budget = 300

View File

@ -2,150 +2,150 @@
# Global deployment across 3 providers and 3 geographic regions # Global deployment across 3 providers and 3 geographic regions
[workspace] [workspace]
name = "multi-region-ha"
environment = "production"
owner = "platform-team"
description = "High availability deployment across DigitalOcean (US), Hetzner (EU), and AWS (APAC)" description = "High availability deployment across DigitalOcean (US), Hetzner (EU), and AWS (APAC)"
environment = "production"
name = "multi-region-ha"
owner = "platform-team"
# DigitalOcean Configuration - US East (Primary) # DigitalOcean Configuration - US East (Primary)
[providers.digitalocean] [providers.digitalocean]
enabled = true
token_env = "DIGITALOCEAN_TOKEN"
default_region = "nyc3" default_region = "nyc3"
enabled = true
region_name = "us-east" region_name = "us-east"
token_env = "DIGITALOCEAN_TOKEN"
[providers.digitalocean.settings] [providers.digitalocean.settings]
enable_monitoring = true enable_backups = true
enable_backups = true enable_ipv6 = true
enable_ipv6 = true enable_monitoring = true
failover_primary = true failover_primary = true
# Hetzner Configuration - EU Central (Secondary) # Hetzner Configuration - EU Central (Secondary)
[providers.hetzner] [providers.hetzner]
enabled = true
token_env = "HCLOUD_TOKEN"
default_location = "nbg1"
default_datacenter = "nbg1-dc8" default_datacenter = "nbg1-dc8"
default_location = "nbg1"
enabled = true
region_name = "eu-central" region_name = "eu-central"
token_env = "HCLOUD_TOKEN"
[providers.hetzner.settings] [providers.hetzner.settings]
enable_automount = false default_volume_format = "ext4"
default_volume_format = "ext4" enable_automount = false
failover_secondary = true failover_secondary = true
# AWS Configuration - Asia Pacific (Tertiary) # AWS Configuration - Asia Pacific (Tertiary)
[providers.aws] [providers.aws]
access_key_env = "AWS_ACCESS_KEY_ID"
enabled = true enabled = true
region = "ap-southeast-1" region = "ap-southeast-1"
access_key_env = "AWS_ACCESS_KEY_ID"
secret_key_env = "AWS_SECRET_ACCESS_KEY"
region_name = "asia-southeast" region_name = "asia-southeast"
secret_key_env = "AWS_SECRET_ACCESS_KEY"
[providers.aws.settings] [providers.aws.settings]
multi_az = true backup_retention_days = 30
backup_retention_days = 30 enable_performance_insights = true
enable_performance_insights = true failover_tertiary = true
failover_tertiary = true multi_az = true
# Global DNS Configuration # Global DNS Configuration
[dns] [dns]
provider = "route53"
domain = "api.example.com" domain = "api.example.com"
ttl = 60
health_check_interval = 30 health_check_interval = 30
provider = "route53"
ttl = 60
# Regional DNS Records # Regional DNS Records
[dns.regions.us_east] [dns.regions.us_east]
subdomain = "us" endpoint = "us.api.example.com"
endpoint = "us.api.example.com" health_check_path = "/health"
health_check_path = "/health" subdomain = "us"
[dns.regions.eu_central] [dns.regions.eu_central]
subdomain = "eu" endpoint = "eu.api.example.com"
endpoint = "eu.api.example.com" health_check_path = "/health"
health_check_path = "/health" subdomain = "eu"
[dns.regions.asia_southeast] [dns.regions.asia_southeast]
subdomain = "asia" endpoint = "asia.api.example.com"
endpoint = "asia.api.example.com" health_check_path = "/health"
health_check_path = "/health" subdomain = "asia"
# Database Replication Configuration # Database Replication Configuration
[database_replication] [database_replication]
backup_retention_days = 30
max_replication_slots = 5
max_wal_senders = 5
mode = "multi-master" mode = "multi-master"
primary_region = "us-east" primary_region = "us-east"
replication_lag_tolerance_seconds = 300
replication_method = "logical" replication_method = "logical"
wal_level = "logical" wal_level = "logical"
max_wal_senders = 5
max_replication_slots = 5
replication_lag_tolerance_seconds = 300
backup_retention_days = 30
# VPN and Networking # VPN and Networking
[networking] [networking]
enable_vpn_tunnels = true enable_vpn_tunnels = true
vpn_protocol = "ipsec"
vpn_encryption = "aes-256"
vpn_authentication = "sha256" vpn_authentication = "sha256"
vpn_encryption = "aes-256"
vpn_protocol = "ipsec"
[networking.vpn_tunnels] [networking.vpn_tunnels]
us_to_eu = { name = "us-eu-vpn", source_network = "10.0.0.0/16", destination_network = "10.1.0.0/16" } asia_to_us = { name = "asia-us-vpn", source_network = "10.2.0.0/16", destination_network = "10.0.0.0/16" }
eu_to_asia = { name = "eu-asia-vpn", source_network = "10.1.0.0/16", destination_network = "10.2.0.0/16" } eu_to_asia = { name = "eu-asia-vpn", source_network = "10.1.0.0/16", destination_network = "10.2.0.0/16" }
asia_to_us = { name = "asia-us-vpn", source_network = "10.2.0.0/16", destination_network = "10.0.0.0/16" } us_to_eu = { name = "us-eu-vpn", source_network = "10.0.0.0/16", destination_network = "10.1.0.0/16" }
# Deployment Settings # Deployment Settings
[deployment] [deployment]
strategy = "rolling"
batch_size = 1 batch_size = 1
health_check_wait = 60 health_check_wait = 60
rollback_on_failure = true
order = ["us-east", "eu-central", "asia-southeast"] order = ["us-east", "eu-central", "asia-southeast"]
rollback_on_failure = true
strategy = "rolling"
# Regional Monitoring Settings # Regional Monitoring Settings
[monitoring] [monitoring]
alert_on_threshold_exceeded = true
enabled = true enabled = true
metric_collection_interval = 60 metric_collection_interval = 60
alert_on_threshold_exceeded = true
[monitoring.thresholds] [monitoring.thresholds]
cpu = 80 cpu = 80
memory = 85 disk = 90
disk = 90 memory = 85
replication_lag = 600 replication_lag = 600
[monitoring.alerts] [monitoring.alerts]
high_cpu = { condition = "cpu > 80%", action = "scale-up", severity = "warning" } high_cpu = { condition = "cpu > 80%", action = "scale-up", severity = "warning" }
high_memory = { condition = "memory > 85%", action = "alert", severity = "warning" } high_memory = { condition = "memory > 85%", action = "alert", severity = "warning" }
replication_lag_critical = { condition = "replication_lag > 600s", action = "alert", severity = "critical" } region_down = { condition = "health_check_failed", action = "failover", severity = "critical" }
region_down = { condition = "health_check_failed", action = "failover", severity = "critical" } replication_lag_critical = { condition = "replication_lag > 600s", action = "alert", severity = "critical" }
# Backup and Disaster Recovery # Backup and Disaster Recovery
[backup] [backup]
compression = true
enabled = true enabled = true
encryption = true
frequency = "daily" frequency = "daily"
retention_days = 30 retention_days = 30
compression = true
encryption = true
[backup.regions] [backup.regions]
us_east = { strategy = "automated", retention = "30 days" } asia_southeast = { strategy = "replica-backup", retention = "30 days" }
eu_central = { strategy = "replica-backup", retention = "30 days" } eu_central = { strategy = "replica-backup", retention = "30 days" }
asia_southeast = { strategy = "replica-backup", retention = "30 days" } us_east = { strategy = "automated", retention = "30 days" }
# Health Checks # Health Checks
[health_checks] [health_checks]
us_east = { protocol = "HTTPS", port = 443, path = "/health", interval = 30 }
eu_central = { protocol = "HTTPS", port = 443, path = "/health", interval = 30 }
asia_southeast = { protocol = "HTTPS", port = 443, path = "/health", interval = 30 } asia_southeast = { protocol = "HTTPS", port = 443, path = "/health", interval = 30 }
eu_central = { protocol = "HTTPS", port = 443, path = "/health", interval = 30 }
us_east = { protocol = "HTTPS", port = 443, path = "/health", interval = 30 }
# Cost Tracking # Cost Tracking
[cost_tracking] [cost_tracking]
enabled = true
budget_alert_threshold = 300 budget_alert_threshold = 300
enabled = true
monthly_budget = 350 monthly_budget = 350
[cost_tracking.regional_budgets] [cost_tracking.regional_budgets]
us_east = 102 asia_southeast = 130
eu_central = 79 eu_central = 79
asia_southeast = 130 total_estimate = 311
total_estimate = 311 us_east = 102

View File

@ -1,15 +1,15 @@
[[defs_values]] [[defs_values]]
input_type = "text"
numchar = 0
msg = "Kloud title"
var = "kloud_title"
default_value = "$name" default_value = "$name"
input_type = "text"
msg = "Kloud title"
not_empty = false not_empty = false
numchar = 0
var = "kloud_title"
[[defs_values]] [[defs_values]]
input_type = "text"
numchar = 3
msg = "Confirmar"
var = "confirm"
default_value = "yes" default_value = "yes"
input_type = "text"
msg = "Confirmar"
not_empty = true not_empty = true
numchar = 3
var = "confirm"

View File

@ -8,325 +8,325 @@
# ============================================================================ # ============================================================================
[orchestrator.workers] [orchestrator.workers]
min = 1
max = 32
description = "Workflow engine worker thread count" description = "Workflow engine worker thread count"
max = 32
min = 1
[orchestrator.queue.concurrent_tasks] [orchestrator.queue.concurrent_tasks]
min = 1
max = 100
description = "Maximum concurrent tasks in workflow queue" description = "Maximum concurrent tasks in workflow queue"
max = 100
min = 1
[orchestrator.queue.retry_attempts] [orchestrator.queue.retry_attempts]
min = 0
max = 10
description = "Retry attempts for failed tasks" description = "Retry attempts for failed tasks"
max = 10
min = 0
[orchestrator.queue.retry_delay] [orchestrator.queue.retry_delay]
min = 1000
max = 60000
description = "Delay between retries in milliseconds (1s-60s)" description = "Delay between retries in milliseconds (1s-60s)"
max = 60000
min = 1000
[orchestrator.queue.task_timeout] [orchestrator.queue.task_timeout]
min = 60000
max = 86400000
description = "Task execution timeout in milliseconds (1min-24hrs)" description = "Task execution timeout in milliseconds (1min-24hrs)"
max = 86400000
min = 60000
[orchestrator.batch.parallel_limit] [orchestrator.batch.parallel_limit]
min = 1
max = 50
description = "Batch workflow parallel operation limit" description = "Batch workflow parallel operation limit"
max = 50
min = 1
[orchestrator.batch.operation_timeout] [orchestrator.batch.operation_timeout]
min = 60000
max = 3600000
description = "Batch operation timeout in milliseconds (1min-1hr)" description = "Batch operation timeout in milliseconds (1min-1hr)"
max = 3600000
min = 60000
[orchestrator.extensions.max_concurrent] [orchestrator.extensions.max_concurrent]
min = 1
max = 20
description = "Max concurrent extension operations" description = "Max concurrent extension operations"
max = 20
min = 1
# ============================================================================ # ============================================================================
# CONTROL CENTER CONSTRAINTS # CONTROL CENTER CONSTRAINTS
# ============================================================================ # ============================================================================
[control_center.jwt.token_expiration] [control_center.jwt.token_expiration]
min = 300
max = 604800
description = "JWT token expiration in seconds (5min-7days)" description = "JWT token expiration in seconds (5min-7days)"
max = 604800
min = 300
[control_center.jwt.refresh_expiration] [control_center.jwt.refresh_expiration]
min = 3600
max = 2592000
description = "JWT refresh token expiration in seconds (1hr-30days)" description = "JWT refresh token expiration in seconds (1hr-30days)"
max = 2592000
min = 3600
[control_center.rate_limiting.max_requests] [control_center.rate_limiting.max_requests]
min = 10
max = 10000
description = "Rate limiting max requests per window" description = "Rate limiting max requests per window"
max = 10000
min = 10
[control_center.rate_limiting.window_seconds] [control_center.rate_limiting.window_seconds]
min = 1
max = 3600
description = "Rate limiting window in seconds" description = "Rate limiting window in seconds"
max = 3600
min = 1
[control_center.session.max_duration] [control_center.session.max_duration]
min = 900
max = 2592000
description = "Session max duration in seconds (15min-30days)" description = "Session max duration in seconds (15min-30days)"
max = 2592000
min = 900
[control_center.mfa.max_attempts] [control_center.mfa.max_attempts]
min = 1
max = 10
description = "MFA authentication max attempts before lockout" description = "MFA authentication max attempts before lockout"
max = 10
min = 1
[control_center.audit.retention_days] [control_center.audit.retention_days]
min = 1
max = 3650
description = "Audit log retention in days (1-10 years)" description = "Audit log retention in days (1-10 years)"
max = 3650
min = 1
# ============================================================================ # ============================================================================
# MCP SERVER CONSTRAINTS # MCP SERVER CONSTRAINTS
# ============================================================================ # ============================================================================
[mcp_server.tools.max_concurrent] [mcp_server.tools.max_concurrent]
min = 1
max = 20
description = "Maximum concurrent tool executions" description = "Maximum concurrent tool executions"
max = 20
min = 1
[mcp_server.tools.timeout] [mcp_server.tools.timeout]
min = 5000
max = 600000
description = "Tool execution timeout in milliseconds (5s-10min)" description = "Tool execution timeout in milliseconds (5s-10min)"
max = 600000
min = 5000
[mcp_server.resources.max_size] [mcp_server.resources.max_size]
min = 1048576
max = 1073741824
description = "Maximum resource size in bytes (1MB-1GB)" description = "Maximum resource size in bytes (1MB-1GB)"
max = 1073741824
min = 1048576
[mcp_server.resources.cache_ttl] [mcp_server.resources.cache_ttl]
min = 60
max = 3600
description = "Resource cache TTL in seconds (1min-1hr)" description = "Resource cache TTL in seconds (1min-1hr)"
max = 3600
min = 60
[mcp_server.prompts.max_templates] [mcp_server.prompts.max_templates]
min = 1
max = 100
description = "Maximum custom prompt templates" description = "Maximum custom prompt templates"
max = 100
min = 1
[mcp_server.sampling.max_tokens] [mcp_server.sampling.max_tokens]
min = 100
max = 100000
description = "Max tokens for sampling operations" description = "Max tokens for sampling operations"
max = 100000
min = 100
# ============================================================================ # ============================================================================
# COMMON CONSTRAINTS # COMMON CONSTRAINTS
# ============================================================================ # ============================================================================
[common.server.port] [common.server.port]
min = 1024
max = 65535
description = "Valid port range (avoid system ports < 1024)" description = "Valid port range (avoid system ports < 1024)"
max = 65535
min = 1024
[common.server.workers] [common.server.workers]
min = 1
max = 32
description = "HTTP server worker thread count" description = "HTTP server worker thread count"
max = 32
min = 1
[common.server.max_connections] [common.server.max_connections]
min = 10
max = 10000
description = "Maximum concurrent HTTP connections" description = "Maximum concurrent HTTP connections"
max = 10000
min = 10
[common.server.keep_alive] [common.server.keep_alive]
min = 0
max = 600
description = "HTTP keep-alive timeout in seconds (0=disabled)" description = "HTTP keep-alive timeout in seconds (0=disabled)"
max = 600
min = 0
[common.monitoring.metrics_interval] [common.monitoring.metrics_interval]
min = 10
max = 300
description = "Metrics collection interval in seconds (10s-5min)" description = "Metrics collection interval in seconds (10s-5min)"
max = 300
min = 10
[common.monitoring.health_check_interval] [common.monitoring.health_check_interval]
min = 5
max = 300
description = "Health check interval in seconds (5s-5min)" description = "Health check interval in seconds (5s-5min)"
max = 300
min = 5
[common.monitoring.retention_days] [common.monitoring.retention_days]
min = 1
max = 3650
description = "Metrics retention in days (1-10 years)" description = "Metrics retention in days (1-10 years)"
max = 3650
min = 1
[common.logging.max_file_size] [common.logging.max_file_size]
min = 1048576
max = 1073741824
description = "Max log file size in bytes (1MB-1GB)" description = "Max log file size in bytes (1MB-1GB)"
max = 1073741824
min = 1048576
[common.logging.max_backups] [common.logging.max_backups]
min = 1
max = 100
description = "Maximum log file backups to retain" description = "Maximum log file backups to retain"
max = 100
min = 1
# ============================================================================ # ============================================================================
# DEPLOYMENT MODE: SOLO # DEPLOYMENT MODE: SOLO
# ============================================================================ # ============================================================================
[deployment.solo.cpu] [deployment.solo.cpu]
min = 2
max = 4
description = "Solo mode CPU cores (single developer)" description = "Solo mode CPU cores (single developer)"
max = 4
min = 2
[deployment.solo.memory_mb] [deployment.solo.memory_mb]
min = 2048
max = 8192
description = "Solo mode memory allocation in MB (2GB-8GB)" description = "Solo mode memory allocation in MB (2GB-8GB)"
max = 8192
min = 2048
[deployment.solo.disk_gb] [deployment.solo.disk_gb]
min = 10
max = 100
description = "Solo mode disk allocation in GB (10GB-100GB)" description = "Solo mode disk allocation in GB (10GB-100GB)"
max = 100
min = 10
# ============================================================================ # ============================================================================
# DEPLOYMENT MODE: MULTIUSER # DEPLOYMENT MODE: MULTIUSER
# ============================================================================ # ============================================================================
[deployment.multiuser.cpu] [deployment.multiuser.cpu]
min = 4
max = 8
description = "Multi-user mode CPU cores (team servers)" description = "Multi-user mode CPU cores (team servers)"
max = 8
min = 4
[deployment.multiuser.memory_mb] [deployment.multiuser.memory_mb]
min = 4096
max = 16384
description = "Multi-user mode memory allocation in MB (4GB-16GB)" description = "Multi-user mode memory allocation in MB (4GB-16GB)"
max = 16384
min = 4096
[deployment.multiuser.disk_gb] [deployment.multiuser.disk_gb]
min = 50
max = 500
description = "Multi-user mode disk allocation in GB (50GB-500GB)" description = "Multi-user mode disk allocation in GB (50GB-500GB)"
max = 500
min = 50
[deployment.multiuser.postgres.max_connections] [deployment.multiuser.postgres.max_connections]
min = 20
max = 200
description = "PostgreSQL max connections for multi-user" description = "PostgreSQL max connections for multi-user"
max = 200
min = 20
# ============================================================================ # ============================================================================
# DEPLOYMENT MODE: CI/CD # DEPLOYMENT MODE: CI/CD
# ============================================================================ # ============================================================================
[deployment.cicd.cpu] [deployment.cicd.cpu]
min = 8
max = 16
description = "CI/CD mode CPU cores (pipeline servers)" description = "CI/CD mode CPU cores (pipeline servers)"
max = 16
min = 8
[deployment.cicd.memory_mb] [deployment.cicd.memory_mb]
min = 8192
max = 32768
description = "CI/CD mode memory allocation in MB (8GB-32GB)" description = "CI/CD mode memory allocation in MB (8GB-32GB)"
max = 32768
min = 8192
[deployment.cicd.disk_gb] [deployment.cicd.disk_gb]
min = 100
max = 1000
description = "CI/CD mode disk allocation in GB (100GB-1TB) - ephemeral" description = "CI/CD mode disk allocation in GB (100GB-1TB) - ephemeral"
max = 1000
min = 100
# ============================================================================ # ============================================================================
# DEPLOYMENT MODE: ENTERPRISE # DEPLOYMENT MODE: ENTERPRISE
# ============================================================================ # ============================================================================
[deployment.enterprise.cpu] [deployment.enterprise.cpu]
min = 16
max = 128
description = "Enterprise mode CPU cores (production HA)" description = "Enterprise mode CPU cores (production HA)"
max = 128
min = 16
[deployment.enterprise.memory_mb] [deployment.enterprise.memory_mb]
min = 32768
max = 262144
description = "Enterprise mode memory allocation in MB (32GB-256GB)" description = "Enterprise mode memory allocation in MB (32GB-256GB)"
max = 262144
min = 32768
[deployment.enterprise.disk_gb] [deployment.enterprise.disk_gb]
min = 500
max = 10000
description = "Enterprise mode disk allocation in GB (500GB-10TB)" description = "Enterprise mode disk allocation in GB (500GB-10TB)"
max = 10000
min = 500
[deployment.enterprise.replicas] [deployment.enterprise.replicas]
min = 3
max = 10
description = "Enterprise HA replica count (minimum 3 for quorum)" description = "Enterprise HA replica count (minimum 3 for quorum)"
max = 10
min = 3
[deployment.enterprise.surrealdb.max_connections] [deployment.enterprise.surrealdb.max_connections]
min = 100
max = 1000
description = "SurrealDB cluster max connections for enterprise" description = "SurrealDB cluster max connections for enterprise"
max = 1000
min = 100
# ============================================================================ # ============================================================================
# WORKSPACE CONSTRAINTS # WORKSPACE CONSTRAINTS
# ============================================================================ # ============================================================================
[workspace.name] [workspace.name]
pattern = "^[a-z0-9_-]{1,64}$"
description = "Workspace name: lowercase alphanumeric, underscore, hyphen, max 64 chars" description = "Workspace name: lowercase alphanumeric, underscore, hyphen, max 64 chars"
pattern = "^[a-z0-9_-]{1,64}$"
[workspace.path_min_length] [workspace.path_min_length]
value = 1
description = "Minimum workspace path length" description = "Minimum workspace path length"
value = 1
[workspace.path_max_length] [workspace.path_max_length]
value = 255
description = "Maximum workspace path length" description = "Maximum workspace path length"
value = 255
# ============================================================================ # ============================================================================
# SECURITY CONSTRAINTS # SECURITY CONSTRAINTS
# ============================================================================ # ============================================================================
[security.password_min_length] [security.password_min_length]
min = 8
max = 128
description = "Password minimum length for local auth" description = "Password minimum length for local auth"
max = 128
min = 8
[security.encryption_key_length] [security.encryption_key_length]
min = 16
max = 64
description = "Encryption key length in bytes" description = "Encryption key length in bytes"
max = 64
min = 16
[security.rate_limit_lockout_minutes] [security.rate_limit_lockout_minutes]
min = 5
max = 60
description = "Account lockout duration after max attempts (minutes)" description = "Account lockout duration after max attempts (minutes)"
max = 60
min = 5
# ============================================================================ # ============================================================================
# BATCH WORKFLOW CONSTRAINTS # BATCH WORKFLOW CONSTRAINTS
# ============================================================================ # ============================================================================
[batch_workflow.max_tasks_per_batch] [batch_workflow.max_tasks_per_batch]
min = 1
max = 1000
description = "Maximum tasks per batch workflow" description = "Maximum tasks per batch workflow"
max = 1000
min = 1
[batch_workflow.max_parallel_operations] [batch_workflow.max_parallel_operations]
min = 1
max = 100
description = "Maximum parallel operations in batch" description = "Maximum parallel operations in batch"
max = 100
min = 1
[batch_workflow.checkpoint_interval] [batch_workflow.checkpoint_interval]
min = 1
max = 1000
description = "Checkpoint interval in task count" description = "Checkpoint interval in task count"
max = 1000
min = 1
[batch_workflow.max_checkpoints] [batch_workflow.max_checkpoints]
min = 1
max = 100
description = "Maximum checkpoints to retain per batch" description = "Maximum checkpoints to retain per batch"
max = 100
min = 1
# ============================================================================ # ============================================================================
# VAULT SERVICE CONSTRAINTS # VAULT SERVICE CONSTRAINTS
# ============================================================================ # ============================================================================
[vault_service.port] [vault_service.port]
min = 1024
max = 65535
description = "Vault service port number" description = "Vault service port number"
max = 65535
min = 1024
[vault_service.ha_enabled] [vault_service.ha_enabled]
description = "High availability mode for enterprise deployments" description = "High availability mode for enterprise deployments"
@ -339,24 +339,24 @@ description = "TLS certificate verification enabled"
# ============================================================================ # ============================================================================
[registry.workers] [registry.workers]
min = 1
max = 32
description = "Extension registry worker thread count" description = "Extension registry worker thread count"
max = 32
min = 1
[registry.cache_capacity] [registry.cache_capacity]
min = 10
max = 100000
description = "Cache capacity in number of entries" description = "Cache capacity in number of entries"
max = 100000
min = 10
[registry.cache_ttl] [registry.cache_ttl]
min = 30
max = 3600
description = "Cache TTL in seconds (30s-1hr)" description = "Cache TTL in seconds (30s-1hr)"
max = 3600
min = 30
[registry.server_port] [registry.server_port]
min = 1024
max = 65535
description = "Extension registry server port" description = "Extension registry server port"
max = 65535
min = 1024
# ============================================================================ # ============================================================================
# RAG SYSTEM CONSTRAINTS # RAG SYSTEM CONSTRAINTS
@ -367,84 +367,84 @@ allowed = [384, 768, 1536, 3072]
description = "Valid embedding vector dimensions" description = "Valid embedding vector dimensions"
[rag.chunk_size] [rag.chunk_size]
min = 128
max = 4096
description = "Document chunk size in characters" description = "Document chunk size in characters"
max = 4096
min = 128
[rag.chunk_overlap] [rag.chunk_overlap]
min = 0
max = 1024
description = "Overlap between chunks in characters" description = "Overlap between chunks in characters"
max = 1024
min = 0
[rag.top_k] [rag.top_k]
min = 1
max = 100
description = "Number of top results to retrieve" description = "Number of top results to retrieve"
max = 100
min = 1
[rag.similarity_threshold] [rag.similarity_threshold]
min = 0.0
max = 1.0
description = "Minimum similarity score (0.0-1.0)" description = "Minimum similarity score (0.0-1.0)"
max = 1.0
min = 0.0
[rag.batch_size] [rag.batch_size]
min = 1
max = 500
description = "Batch size for embedding operations" description = "Batch size for embedding operations"
max = 500
min = 1
# ============================================================================ # ============================================================================
# AI SERVICE CONSTRAINTS # AI SERVICE CONSTRAINTS
# ============================================================================ # ============================================================================
[ai_service.workers] [ai_service.workers]
min = 1
max = 32
description = "AI service worker thread count" description = "AI service worker thread count"
max = 32
min = 1
[ai_service.server_port] [ai_service.server_port]
min = 1024
max = 65535
description = "AI service server port" description = "AI service server port"
max = 65535
min = 1024
[ai_service.max_concurrent_tasks] [ai_service.max_concurrent_tasks]
min = 1
max = 100
description = "Maximum concurrent DAG task executions" description = "Maximum concurrent DAG task executions"
max = 100
min = 1
[ai_service.task_timeout] [ai_service.task_timeout]
min = 10000
max = 3600000
description = "Task timeout in milliseconds (10s-1hr)" description = "Task timeout in milliseconds (10s-1hr)"
max = 3600000
min = 10000
[ai_service.rag_timeout] [ai_service.rag_timeout]
min = 5000
max = 600000
description = "RAG service call timeout in milliseconds (5s-10min)" description = "RAG service call timeout in milliseconds (5s-10min)"
max = 600000
min = 5000
[ai_service.mcp_timeout] [ai_service.mcp_timeout]
min = 5000
max = 600000
description = "MCP service call timeout in milliseconds (5s-10min)" description = "MCP service call timeout in milliseconds (5s-10min)"
max = 600000
min = 5000
# ============================================================================ # ============================================================================
# PROVISIONING DAEMON CONSTRAINTS # PROVISIONING DAEMON CONSTRAINTS
# ============================================================================ # ============================================================================
[daemon.poll_interval] [daemon.poll_interval]
min = 5
max = 3600
description = "Polling interval in seconds (5s-1hr)" description = "Polling interval in seconds (5s-1hr)"
max = 3600
min = 5
[daemon.max_workers] [daemon.max_workers]
min = 1
max = 32
description = "Maximum worker threads for daemon operations" description = "Maximum worker threads for daemon operations"
max = 32
min = 1
[daemon.max_age] [daemon.max_age]
min = 3600
max = 604800
description = "Maximum age for daemon state data in seconds (1hr-7days)" description = "Maximum age for daemon state data in seconds (1hr-7days)"
max = 604800
min = 3600
[daemon.health_check_interval] [daemon.health_check_interval]
min = 10
max = 300
description = "Health check interval in seconds (10s-5min)" description = "Health check interval in seconds (10s-5min)"
max = 300
min = 10