flusql/config.toml
2026-01-08 18:30:33 +03:00

169 lines
5.9 KiB
TOML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Конфигурация 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