# Конфигурация flusql Database Server [server] # Порт сервера port = 5432 # Хост сервера host = "127.0.0.1" # Максимальное количество одновременных соединений max_connections = 100 # Таймаут соединения в секундах timeout = 30 # Размер пула потоков thread_pool_size = 4 # Включить отладку debug = false # Путь к PID файлу (опционально) # pid_file = "/var/run/flusql.pid" [database] # Директория для хранения данных data_dir = "./data" # Автоматически создавать базу данных при первом подключении auto_create = true # Режим транзакций transaction_mode = "write_ahead_log" # Размер кэша в МБ cache_size_mb = 100 # Размер страницы в байтах (должен быть степенью двойки: 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536) page_size = 8192 # Включить MVCC (Multi-Version Concurrency Control) mvcc_enabled = true # Включить WAL (Write-Ahead Logging) wal_enabled = true # Максимальный размер WAL в МБ max_wal_size_mb = 100 # Автоматическая проверка целостности при запуске integrity_check = true # Частота автоматического сохранения в секундах auto_save_interval = 60 # Максимальное количество открытых файлов БД max_open_files = 1000 [logging] # Уровень логирования (trace, debug, info, warn, error) level = "info" # Путь к файлу логов log_file = "flusql.log" # Максимальный размер файла логов в МБ max_size_mb = 10 # Количество ротируемых файлов backup_count = 5 # Формат логов (text, json) format = "json" # Включить логирование в stdout stdout_enabled = true # Включить логирование в stderr stderr_enabled = false # Включить логирование SQL запросов sql_logging = true # Порог для медленных запросов в секундах (опционально) # slow_query_threshold_sec = 5 [lua] # Включен ли Lua интерпретатор enabled = true # Путь к директории со скриптами scripts_dir = "./lua-scripts" # Максимальное время выполнения скрипта в секундах timeout_seconds = 30 # Максимальная память для Lua VM в МБ memory_limit_mb = 100 # Разрешить доступ к файловой системе filesystem_access = false # Разрешить сетевые операции network_access = false # Список разрешенных модулей allowed_modules = ["string", "table", "math", "os"] [cluster] # Включен ли режим кластера enabled = false # Идентификатор узла node_id = "node_1" # Адрес узла node_address = "127.0.0.1:8080" # Режим кластера mode = "single" # Список узлов кластера # nodes = ["node_2@127.0.0.1:8081", "node_3@127.0.0.1:8082"] # Интервал heartbeat в секундах heartbeat_interval = 5 # Таймаут heartbeat в секундах heartbeat_timeout = 30 # Включить автоматическое восстановление auto_recovery = true # Максимальное количество реплик max_replicas = 3 [plugins] # Включена ли система плагинов enabled = true # Директория для плагинов plugins_dir = "./plugins" # Включить изоляцию плагинов (sandbox) sandbox_enabled = true # Максимальное количество плагинов max_plugins = 50 # Автозагрузка плагинов при старте auto_load = true # Включить горячую перезагрузку плагинов hot_reload = false # Таймаут выполнения плагина в секундах plugin_timeout_sec = 30 # Максимальный размер памяти плагина в МБ max_memory_mb = 100 # Разрешенные API для плагинов allowed_apis = ["database", "table", "query", "event", "log"] # Запрещенные функции Lua blocked_functions = [ "io.popen", "os.execute", "os.exit", "debug.debug", "debug.getregistry", "debug.setmetatable" ] [http] # Включен ли HTTP сервер enabled = false # Хост для HTTP сервера host = "127.0.0.1" # Порт HTTP сервера port = 8080 # Порт HTTPS сервера https_port = 8443 # Включена ли поддержка HTTP/2 http2_enabled = false # Включена ли поддержка TLS tls_enabled = false # Путь к сертификату TLS (если tls_enabled = true) # tls_cert_path = "/path/to/cert.pem" # Путь к приватному ключу TLS (если tls_enabled = true) # tls_key_path = "/path/to/key.pem" [replication] # Включена ли репликация enabled = false # Режим репликации mode = "async" # Мастер-сервер для репликации # master = "master@127.0.0.1:5432" # Список слейв-серверов # slaves = ["slave1@127.0.0.1:5433", "slave2@127.0.0.1:5434"] [network] # IP-адрес для прослушивания host = "127.0.0.1" # Порт для прослушивания port = 8080 # Разрешить удаленные подключения allow_remote = false # Таймаут соединения в секундах connection_timeout = 30 # Максимальное количество соединений max_connections = 100 # Размер буфера для сетевых операций в байтах buffer_size = 8192