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