# logic

## Описание

Сервис логики

!!! note
    Обязательный элемент системы. API доступно только внутри инфраструктуры серверной части lexema8. 

Сервис логики предназначен для получения информации о серверных объектах бизнес-логики: моделях, запросах, отчетах, sql-объектах.

Доступные типы объектов бизнес-логики:

+ models - модели
+ queries - запросы
+ sqlObjects - sql-объекты
+ reports - отчеты

В режиме разработки сервис логики поднимается с помощью dev-сервера и использует файлы проекта(node_modules и context).

В производственном режиме сервис логики запускается как отдельный самостоятельный docker-контейнер. Для его работы необходимо собрать логику с помощью команды build:logic. Эта команда копирует файлы с описанием моделей, запросов, sql-объектов и отчетов, а также связанные с ними файлы, в отдельный каталог. Из проекта копируются все файлы логики, из исходников подключенных библиотек копируются только файлы, указанные в файлах зависимостей.

## Настройки  сервиса логики.

!!! note
     Раздел applications { logic { }} конфигурационного файла ./config/production.js

- **protocol** - используемый веб-протокол (по умолчанию `http`).
- **host** - имя хоста (по умолчанию `localhost`).
- **port** - порт для запуска (по умолчанию `3072`).
- **timeout** - количество миллисекунд бездействия, после которого считается, что время ожидания истекло (по умолчанию `120`).
- **script** - путь к модулю, запускающему сервис (по умолчанию `ecosoft-lexema8-logic-service`).
- **noProxify** - настройка проксирования сервиса (по умолчанию `true`).
