Демо-режим-витрина и управление .fdb
В v2.42 движок получил набор функций для публичных витрин и переноса баз между инсталляциями.
Скачивание и загрузка .fdb
В модалке «Управление базами данных» у каждой базы есть кнопка ⬇ скачать (GET /api/db/download?name=..., только для админа). Отдаётся консистентный снапшот файла — та же механика, что у бэкапов (Database.SnapshotToTempFile()): скачивание во время активной записи никогда не даст «рваный» файл. Рядом — строка ⬆ загрузить свой .fdb (существующий /api/upload): базу можно унести с одного сервера и поднять на другом двумя кликами.
SQL IntelliSense
В SQL-редакторе главной страницы — автодополнение и подсказки: ~40 ключевых слов и конструкций с примерами синтаксиса, агрегатные/строковые/оконные функции, таблицы текущей базы и колонки таблиц, упомянутых в запросе (лениво подгружаются и кешируются; таблица. подсказывает колонки именно этой таблицы). ↑/↓ — выбор, Tab/Enter — принять, Esc — закрыть; Ctrl+Enter по-прежнему выполняет запрос. Кнопка «💡 Подсказки» выключает функцию.
Демо-режим-витрина (read-only)
"demo_mode": true в settings.json или флаг -demo-mode (по умолчанию выключен) превращает инсталляцию в публичную витрину: полный интерфейс и read-only API, но никакие изменения невозможны, причём серверно и несколькими слоями сразу:
- deny-by-default guard: любой POST/PUT/DELETE/PATCH отклоняется 403 ещё до авторизации и роутинга, кроме явного read-only allowlist'а (login,
/api/query, рендер дашбордов, векторный поиск, публичные/share/) — эндпоинт, добавленный в будущем, в витрине заблокирован автоматически; - SQL-guard на всех точках выполнения SQL —
/api/query, wire-сессии PostgreSQL/MySQL, RPC: write-statement'ы отклоняются, tx-control (BEGIN/COMMIT) толерантно пропускается; - мутирующие RPC-методы (insert/update/delete/create_db/…) отклоняются целиком.
Скачивание .fdb в витрине работает (это GET и read-only) — посетители демо могут забрать образец базы. Демо-данные обновляются каждые 15 минут.
Лицензионная плашка
В обычном (не демо) режиме на авторизованных страницах показывается уведомление: «FileDB бесплатен для физических лиц. Юридическим лицам требуется лицензия» с двумя кнопками — подтверждение физлица скрывает плашку на случайные 15–60 минут, выбор «юрлицо» показывает текст лицензии и контакты. В демо-режиме тот же слот занимает незакрываемая плашка «🔒 Это демо-версия FileDB».