Перейти к основному содержимому

Сервис лицензирования Платформы

Сервис лицензирования предназначен для хранения, обработки и выдачи информации о лицензиях Платформы.

Сервис реализован на языке Java (Liberica JDK версия 17.0.9-11 ) и представляет из себя контейнер Docker (версия не ниже 19.03.8), запуск которого осуществляется в соответствии с инструкцией по развёртыванию Платформы. В случае успешного запуска, сервис будет доступен по адресу: https://<hostname>/services/licenses_module.

Порядок настройки

Настройка сервиса лицензирования Платформы включает в том числе и настройку данных о продукте.

Параметры настройки

Параметры настройки сервиса лицензирования задаются следующими способами:

  1. Файл licenses-settings.json.
  2. Переменная окружения.
  3. Глобальная конфигурация nginx Платформы.
  4. Конфигурация сервиса Платформы.

Наименование параметра настройки не зависит от способа задания.

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

  1. Параметру присваивается значение из файла licenses-settings.json.
  2. Параметру присваивается значение из переменной окружения.
  3. Параметру присваивается значение из Global Parameters nginx. Посмотреть значения можно в Консоли администрирования Платформы в разделе Configuration, нажав на кнопку Global Parameters.
  4. Параметру присваивается значение из конфигурации сервиса Платформы.
  5. Параметру присваивается значение из переменной окружения.

Например, если параметр задан в файле settings.json, в переменной окружения и в глобальной конфигурации nginx, результирующему параметру конфигурации будет присвоено значение из окружения.

Основные параметры конфигурации сервиса, соответствующие им переменные окружения, задаваемые при запуске контейнера Docker-сервиса, и параметры конфигурации сервиса конфигурации Платформы приведены в таблице ниже.

НаименованиеЗначение по умолчаниюПримечания
RABBITMQ_URIamqp://admin:admin@rabbitmq:5672Параметр осуществления аудита операций сервиса.
discovery:heartbeat.period10000Интервал между проверками работоспособности Discovery-сервиса. Значение параметра указывается в миллисекундах.
licenses.module:namelicenses_moduleНаименование сервиса.
licenses.module:skills[ "licenses processing", "Product" ]Значение параметра представляет собой массив строк.
ConfigServer{ConfigServer}Базовый url Платформы. (В случае, если Платформа развёрнута без дополнительных настроек, это путь до nginx)
identityConfiguration__identityServiceUrl{ConfigServer}/identityUrl функционала identity
spring.datasource.driver-class-name{Не задано}Настройки для подключения к базе данных
SPRING_DATASOURCE_URL{Не задано}Настройки для подключения к базе данных
SPRING_DATASOURCE_USERNAME{Не задано}Настройки для подключения к базе данных
SPRING_DATASOURCE_PASSWORD{Не задано}Настройки для подключения к базе данных
http:request:timeout10Величина интервала ожидания отклика по протоколу HTTP(S), выраженная в секундах.
logging:LogLevel:DefaultdebugУровень логирования корневого журнала сервиса.
ApiConfiguration__ClientSecrets__0__ClientId{Не задано}Логин клиента identity.
ApiConfiguration__ClientSecrets__0__Secret{Не задано}Пароль клиента identity.
ApiConfiguration__ClientSecrets__1__ClientId{Не задано}Логин клиента identity.
ApiConfiguration__ClientSecrets__1__Secret{Не задано}Пароль клиента identity.
ApiConfiguration__ClientSecrets__2__ClientId{Не задано}Логин клиента identity.
ApiConfiguration__ClientSecrets__2__Secret{Не задано}Пароль клиента identity.
ApiConfiguration__ClientSecrets__3__ClientId{Не задано}Логин клиента identity.
ApiConfiguration__ClientSecrets__3__Secret{Не задано}Пароль клиента identity.
ApiConfiguration__ClientSecrets__4__ClientId{Не задано}Логин клиента identity.
ApiConfiguration__ClientSecrets__4__Secret{Не задано}Пароль клиента identity.
ApiConfiguration__ClientSecrets__5__ClientId{Не задано}Логин клиента identity.
ApiConfiguration__ClientSecrets__5__Secret{Не задано}Пароль клиента identity.
ProductName{Не задано}Наименование продукта
ProductVersion{Не задано}Версия продукта
PlatformVersion{Не задано}Версия Платформы
DiscoveryNodeFileLocation/usr/src/nodeId.txtМестоположение файла с сохранённым nodeId Discovery-сервиса
StandNameLocalStandНазвание стенда, на котором развёрнут сервис
Kafka__AuditProducerTopic{stand}-AuditТопик Kafka для отправления сообщений аудита
audit.kafka.repeatslocalhost:9094Сервер Kafka
TracesEnabledfalseФлаг, определяющий нужно ли отправлять трейсы
OTEL_EXPORTER_OTLP_TRACES_ENDPOINT-Endpoint для отправки трейсов

Модели данных

Модели данных сервиса лицензирования Платформы.

Параметры выборки поля данных лицензии

Наименование поляТип поляОписание поля
productIDstring($uuid)идентификатор продукта
keystringключ поля данных лицензии

Данные о лицензии

Наименование поляТип поляОписание поля
licensorIDstring($uuid)идентификатор лицензиара
licensorNamestringнаименование лицензиара
licenseeIDstring($uuid)идентификатор лицензиата
licenseeNamestringнаименование лицензиата
licenseIDstring($uuid)идентификатор лицензии
licenseDatestring($date-time)дата выдачи лицензии

Параметры поля данных лицензии

Наименование поляТип поляОписание поля
keystringключ поля данных лицензии
valuestringзначение поля данных лицензии
typestringтип значения поля данных лицензии (допустимые значения ARRAY, BINARY, BOOLEAN, NULL, NUMBER, OBJECT, STRING)

Параметры добавления лицензии

Наименование поляТип поляОписание поля
jwsstringлицензия
keystringключ проверки лицензии

Данные о продукте

Наименование поляТип поляОписание поля
productIDstring($uuid)идентификатор продукта
namestringнаименование продукта

Идентификатор продукта

Наименование поляТип поляОписание поля
idstring($uuid)идентификатор продукта

Управление лицензиями

Управление лицензиями: добавление лицензии, выборка данных лицензии, удаление лицензии — осуществляется с помощью методов API.

Пример файла лицензии
{
"ProductInfo": {
"Id": "CA9419A4-8A7B-410B-9FAE-84A85E953630",
"Name": "Продукт v2.0"
},
"LicenseInfo": {
"Issuer": {
"Id": "4EDE00AA-C7BF-4724-8AE7-50AD49778677",
"Name": "Платформа"
},
"Customer": {
"Id": "7A14B3A3-2F1A-454B-B45C-D7D93DA67A64",
"Name": "ООО \"Разработка ПО\""
},
"License": {
"IssueDate": "2021-01-11T18:25:43+03:00",
"Id": "1EE7A378-56B3-4773-B470-5F379C17FDA3"
}
},
"LicenseData": [
{
"Key": "Value1",
"Value": 115
},

...

]
}