# data

## Описание

Cервис доступа к данным и процедурам хранимым в БД

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

Настройки сервиса данных.

- **protocol** - используемый веб-протокол (по умолчанию `http`).
- **host** - имя хоста (по умолчанию - `localhost`).
- **db** - имя профиля подключения к базе данных (по умолчанию - `main`).
- **port** - порт для запуска (по умолчанию `3063`).
- **route** - используемый маршрут (по умолчанию `/api/v2.0/data`).
- **timeout** - настройка таймаута всегда берется из настороек подключения к БД (свойство `requestTimeout` из профиля подключения к базе данных в разделе `db`).
- **script** - путь к модулю, запускающему сервис (по умолчанию `ecosoft-lexema8/data`).
- **dataSizeLimit** - максимальный размер передаваемых данных в теле запроса, которые принимает сервис (по умолчанию `1mb`).

## Настройки подключения к базе данных

Раздел содержит описание профилей подключения к базам данных, которые используются в приложении:

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


-   **main**  - профиль подключения к основной базе данных по умолчанию. Обязателен к заполнению, если не указывается свойство  **applications.data.db**
    -   _**host**_  - имя хоста
    -   _**database**_  - имя базы данных
    -   _**dialect**_  - диалект СУБД
    -   _**instanceName**_  - имя экземпляра
    -   **port**  - порт сервера бд
    -   _**user**_  - логин
    -   _**password**_  - пароль
    -   _**isolationLevel**_  - уровень  [изоляции](https://docs.microsoft.com/ru-ru/sql/t-sql/statements/set-transaction-isolation-level-transact-sql?view=sql-server-2017)  транзакций. Доступные значения: 'READ_UNCOMMITTED', 'READ_COMMITTED', 'REPEATABLE_READ', 'SERIALIZABLE'. По умолчанию 'READ_UNCOMMITTED'.
    -   _**requestTimeout**_  - время таймаута запросов в миллисекундах. По умолчанию 15000.
    -   _**applicationName**_  - значение строки подключения для ведения журнала сервера БД. По умолчанию  _ara_.
    -   _**pool**_  - настройки пула соединений:
        -   _**max**_  - максимальное количество соединений в пуле. По умолчанию 20.
        -   _**min**_  - минимальное количество соединений в пуле. По умолчанию 0.
        -   _**idleTimeoutMillis**_  - максимальное время в миллисекундах, которое будет простаивать соединение в пуле, прежде чем будет освобождено. По умолчанию 10000.