flusql/config.toml

169 lines
5.9 KiB
TOML
Raw Permalink Normal View History

2026-01-08 18:30:33 +03:00
# Конфигурация 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