HTTP-шлюз проекта Essence/CORE. Принимает запросы (query + action), прогоняет их через контексты и плагины и выполняет их у провайдеров (PostgreSQL, Oracle, REST, gRPC, Keycloak и др.).
Версия: 3.1.0. Лицензия: MIT.
Yarn-монорепозиторий. Ядро поднимает кластер Node.js-процессов (HTTP, admin, события, планировщик, локальная БД) и загружает плагины из каталогов.
| Каталог | Назначение |
|---|---|
server/ |
Ядро: HTTP, сессии, админка, загрузка плагинов |
plugininf/ |
Общие интерфейсы и утилиты плагинов |
contexts/ |
Контексты (маршруты API, сессии, аудит) |
providers/ |
Провайдеры данных и авторизации |
plugins/ |
Data-плагины (SQL, файлы, патчи, отчёты) |
events/ |
События (уведомления, семафоры, локализация) |
schedulers/ |
Планировщики |
dbms* |
Liquibase-схемы PostgreSQL |
template/dbms/ |
Шаблоны схем PostgreSQL и Oracle |
utils/gate-cli/ |
CLI: пакеты и шифрование паролей |
openapi/ |
OpenAPI 3-спецификация API |
Запрос идёт в контекст по cv_path (по умолчанию /api), затем: сессия → плагины → провайдер. Действия: sql, dml, auth, file, upload, getfile.
Конфигурация — YAML в resources/config/ (t_context.yaml, t_providers.yaml, t_plugins.yaml, t_query.yaml, t_events.yaml, t_schedulers.yaml). Логер — logger.json. Старый формат TOML не используйте: gate-cli умеет конвертировать .toml → .yaml.
Подробнее: каталог плагинов.
- Node.js
>= 22 - Yarn
>= 1.22(Classic / workspaces) - PostgreSQL — для схем CORE (Oracle поддерживается провайдерами и шаблоном)
yarn install
yarn buildСборка (gulp all) пишет артефакты в bin/. Выборочная сборка плагинов — через CONTEXT_PLUGINS, PROVIDER_PLUGINS, DATA_PLUGINS, EVENT_PLUGINS, SCHEDULERS_PLUGINS (имена через запятую, без учёта регистра).
Запуск из артефакта:
cd bin
yarn install
yarn serverHTTP по умолчанию слушает порт 8080. Каталог конфигов задайте через PROPERTY_DIR (сборка не копирует resources/ в bin/).
Очистка: yarn clear (удаляет bin/).
Схемы накатываются Liquibase-скриптами update / update.bat. Порядок: сначала dbms, затем зависимые схемы.
| Схема | Описание |
|---|---|
| dbms | Основная схема CORE (мета, страницы, запросы) |
| dbms_auth | Авторизация |
| dbms_integration | Интеграция |
| dbms_session | Сессии (TypeORM) |
| dbms_audit | Аудит |
| dbms_bpmn_integration | BPMN-интеграция |
| dbms_user_cache_redis | Кэш пользователей в Redis |
| template/dbms/postgresql | Шаблон прикладной схемы PostgreSQL |
| template/dbms/oracle | Шаблон прикладной схемы Oracle |
Значения по умолчанию — из кода. Путь или содержимое: ESSENCE_PW_* можно задать строкой или путём к файлу.
| Переменная | По умолчанию | Описание |
|---|---|---|
GATE_HOME_DIR |
каталог сервера | Домашняя папка шлюза |
GATE_CLUSTER_NUM |
число CPU | Число HTTP-воркеров |
GATE_HTTP_PORT |
8080 |
Порт HTTP |
GATE_UPLOAD_DIR |
системный tmp | Каталог загрузок (upload_ungate) |
GATE_LOCAL_DB |
nedb |
Локальное хранилище настроек |
GATE_NODE_NAME |
hostname | Имя ноды |
GATE_DEFAULT_TIMEZONE_DATE |
Europe/Moscow |
Таймзона дат в JSON |
GATE_JSON_DATE_FORMAT |
YYYY-MM-DDTHH:mm:ss |
Формат дат в JSON |
LOGGER_CONF |
$GATE_HOME_DIR/resources/config/logger.json |
Конфиг логера |
PROPERTY_DIR |
$GATE_HOME_DIR/resources/config |
Каталог настроек шлюза |
SESSION_SECRET |
встроенный | Секрет подписи сессии |
| Переменная | По умолчанию |
|---|---|
CONTEXT_PLUGIN_DIR |
$GATE_HOME_DIR/plugins/contexts |
PROVIDER_PLUGIN_DIR |
$GATE_HOME_DIR/plugins/providers |
DATA_PLUGIN_DIR |
$GATE_HOME_DIR/plugins/datas |
EVENT_PLUGIN_DIR |
$GATE_HOME_DIR/plugins/events |
SCHEDULER_PLUGIN_DIR |
$GATE_HOME_DIR/plugins/schedulers |
| Переменная | По умолчанию | Описание |
|---|---|---|
NEDB_MULTI_PORT |
33030 |
Порт сокета NeDB |
NEDB_MULTI_HOST |
127.0.0.1 |
Хост NeDB |
NEDB_TEMP_DB |
<tmp>/db |
Каталог временных БД NeDB |
| Переменная | По умолчанию | Описание |
|---|---|---|
GATE_ADMIN_CLUSTER_PORT |
43090 |
Порт admin-кластера |
GATE_ADMIN_CLUSTER_CERT |
$GATE_HOME_DIR/cert/server.crt |
Сертификат |
GATE_ADMIN_CLUSTER_KEY |
$GATE_HOME_DIR/cert/server.key |
Ключ |
GATE_ADMIN_CLUSTER_CA |
$GATE_HOME_DIR/cert/ca.crt |
CA |
| Переменная | Описание |
|---|---|
ESSENCE_PW_KEY_SECRET |
AES-ключ (строка или файл) |
ESSENCE_PW_SALT |
Соль AES |
ESSENCE_PW_DEFAULT_ALG |
Алгоритм (aes-256-gcm при наличии ключа) |
ESSENCE_PW_RSA |
RSA private key (строка или файл) |
ESSENCE_PW_RSA_PASSPHRASE |
Passphrase RSA-ключа |
Те же переменные использует gate-cli.
В Kubernetes контекст KubeProbe и discovery нод читают стандартные KUBERNETES_* / OPENSHIFT_KUBE_PING_*.
yarn create @essence-community/gate-cliСоздание пакетов (Oracle/Postgres) и шифрование паролей: utils/gate-cli.