.. _smev_ql_func: Функции СМЭВ QL Сервера ^^^^^^^^^^^^^^^^^^^^^^^^^^ Администрирование и конфигурирование ###################################### Создание СМЭВ QL Сервера """"""""""""""""""""""""""" Данная функция позволяет создать рабочий экземпляр СМЭВ QL сервера с помощью команды, выполняемой утилитой. .. table:: Настраиваемые параметры +----------+-----------------------------------------------+--------------------------------------------------------+ | Параметр | Описание | Где задается | +==========+===============================================+========================================================+ | app name | Имя создаваемого экземпляра СМЭВ QL сервера. | в командной строке | | | Параметр является обязательным для заполнения | ``java -jar smevql-server-all.jar new `` | +----------+-----------------------------------------------+--------------------------------------------------------+ **Предварительное состояние:** 1. Развернут дистрибутив СМЭВ QL сервер. 2. Запущена консоль утилиты для работы со СМЭВ QL. **Сценарий выполнения** 1) Администратор сервера в консоли вводит команду создания нового экземпляра СМЭВ QL с указанием имени: ``java -jar smevql-server-all.jar new `` 2) Система выполняет создание экземпляра СМЭВ QL сервера с заданным именем: - если во время выполнения команды возникла ошибка, то сценарий завершается с результирующим состоянием 2; - иначе, команда выполнена успешно, создана первичная структура папок и файлов, завершение сценария с результирующим состоянием 1. **Результирующее состояние:** 1. СМЭВ QL сервер успешно запущен, создана первичная структура папок и файлов. 2. Ошибка выполнения команды. **Первичная структура папок и файлов** .. table:: Первый уровень вложенности корневой папки **smevql** +------------------+-----------+----------------------------------------------+---------------------+ | Название | Тип | Описание | Уровень вложенности | +==================+===========+==============================================+=====================+ | application.yaml | yaml-file | Файл с описанием настроек СМЭВ QL сервер | 1 | | | | (подробнее см. :ref:`smev_ql_config`) | | +------------------+-----------+----------------------------------------------+---------------------+ | credentials.yaml | yaml-file | Файл с описанием представления СМЭВ QL | 1 | | | | сервер (подробнее см. :ref:`smev_ql_config`) | | +------------------+-----------+----------------------------------------------+---------------------+ | logs | folder | Папка с лог-файлами СМЭВ-QL сервер | 1 | +------------------+-----------+----------------------------------------------+---------------------+ | models | folder | Папка с описанием моделей данных | 1 | +------------------+-----------+----------------------------------------------+---------------------+ | readme.md | md-file | read-файл в формате markdown, описывает | 1 | | | | основные функции СМЭВ QL | | +------------------+-----------+----------------------------------------------+---------------------+ | smevql.jar | jar-file | Jar-файл с кодом СМЭВ QL | 1 | +------------------+-----------+----------------------------------------------+---------------------+ | sources | folder | Папка с описанием источников данных | 1 | +------------------+-----------+----------------------------------------------+---------------------+ | states | folder | Папка с описанием машин состояний | 1 | +------------------+-----------+----------------------------------------------+---------------------+ .. table:: Содержимое папки **models** +---------------------+-----------+----------------------------------------------+---------------------+ | Название | Тип | Описание | Уровень вложенности | +=====================+===========+==============================================+=====================+ | base | folder | Папка с версиями описания структуры базовой | 2 | | | | модели данных | | +---------------------+-----------+----------------------------------------------+---------------------+ | - current (symlink) | symlink | Ссылка на папку модели по умолчанию | 3 | +---------------------+-----------+----------------------------------------------+---------------------+ | - 1.0 | folder | Папка с версией базовой модели данных | 3 | +---------------------+-----------+----------------------------------------------+---------------------+ | - model | yaml-file | Файл с описанием базовой модели данных | 4 | +---------------------+-----------+----------------------------------------------+---------------------+ | custom | folder | Папка с версиями описания пользовательской | 2 | | | | модели данных | | +---------------------+-----------+----------------------------------------------+---------------------+ | - current (symlink) | symlink | Ссылка на папку модели по умолчанию | 3 | +---------------------+-----------+----------------------------------------------+---------------------+ | - 1.0 | folder | Папка с версией базовой модели данных | 3 | +---------------------+-----------+----------------------------------------------+---------------------+ | - model | yaml-file | Файл с описанием базовой модели данных | 4 | +---------------------+-----------+----------------------------------------------+---------------------+ .. table:: Содержимое папки **sources** +---------------------+-----------+----------------------------------------------+---------------------+ | Название | Тип | Описание | Уровень вложенности | +=====================+===========+==============================================+=====================+ | current (symlink) | symlink | Ссылка на папку модели по умолчанию | 2 | +---------------------+-----------+----------------------------------------------+---------------------+ | 1.0 | folder | Папка с версией модели источников | 3 | +---------------------+-----------+----------------------------------------------+---------------------+ | - source | yaml-file | Файл с описанием модели источников | 4 | +---------------------+-----------+----------------------------------------------+---------------------+ .. table:: Содержимое папки **logs** +----------------------+----------+------------------+---------------------+ | Название | Тип | Описание | Уровень вложенности | +======================+==========+==================+=====================+ | environment_name.log | log-file | Лог-файл СМЭВ QL | 2 | +----------------------+----------+------------------+---------------------+ Содержимое папки **states**: По умолчанию, пустая папка, содержимое заполняется в процессе создания машин-состояний. Конфигурирование СМЭВ-QL сервер """""""""""""""""""""""""""""""""" Пример конфигурации файла ``application.yml`` для **СМЭВ QL сервера** см. в разделе :ref:`smev_ql_config` Руководства администратора. Запуск, остановка, перезапуск приложения СМЭВ QL сервер """""""""""""""""""""""""""""""""""""""""""""""""""""""""" Примеры команд и их описание приведено в :ref:`quick_start`. Генерация OpenAPI СМЭВ-QL """""""""""""""""""""""""" *Раздел в разработке* Регистрация OpenAPI СМЭВ QL в ПОДД СМЭВ4 """""""""""""""""""""""""""""""""""""""""""" *Раздел в разработке* Работа с моделями #################### *Раздел в разработке* Работа с источниками данных ################################# Создание модели источников данных """""""""""""""""""""""""""""""""" Данная функция позволяет добавлять новую версию описания модели источников данных СМЭВ-QL. В качестве источников данных для СМЭВ-QL сервер могут выступать: REST-интерфейс витрины данных (Prostore); Другой СМЭВ-QL сервер Модель источников данных СМЭВ-QL хранится в файловой системе СМЭВ-QL сервера по пути: ``sources/custom/1.0/source.yaml`` **Общий сценарий выполнения** 1. Администратор сервера в консоли вводит команду генерации новой пустой модели источника: ./smevql g source 2. Система создаёт новую версию папки и файла модели источника с пустыми значениями - source.yaml 3. Администратор сервера открывает на редактирование файл модели источника source.yaml и заполняет параметры необходимыми значениями. .. _source_create: .. figure:: img/source_create.png :align: center :alt: Создание модели источников данных Создание модели источников данных **Структура source.yaml** Описание источника данных в формате YAML имеет следующую структуру: .. code-block:: yaml prostore_source: type: rest version: 1.0 adapter: prostore protocol: http host: localhost port: 9090 path: api/v1/datamarts/query?format=json template: '{ "query": "%{request}", "queryId": "%{request_id}" }' payload-path: result headers: - accept: application/json - content-type: application/json threads-count: 10 connection-timeout: 0 smevql_server_source: type: rest version: 1.0 adapter: smevql protocol: https host: localhost port: 9091 path: api/query?format=json template: '{ "query": "%{request}" }' payload-path: result headers: - accept: application/json - content-type: application/json В рамках файла ``source.yaml`` источник всегда имеет название с постфиксом **_source**. При этом именем источника в моделях данных считается часть **БЕЗ** учета данного постфикса. То есть источник **egrn_source** в модели данных ``model.yaml`` необходимо указывать как **egrn**. **Загрузка модели источников** Источники данных считываются, валидируются и загружаются в память из папки ``sources`` при запуске СМЭВ QL сервера. По-умолчанию используется версия источника, на которую ссылается symlink ``current``, при его отсутствии по-умолчанию считается **старшая** версия. Источники и версии, **начинающиеся с подчеркивания (_) НЕ загружаются**, они находятся в стадии проектирования. Работа с картами машин состояний ################################## *Раздел в разработке* Обработка входящего REST-запроса изменения данных витрины ######################################################### *Раздел в разработке* Уведомления при изменении данных витрины (push-сервис) ########################################################## *Раздел в разработке*