Сервис лицензирования Платформы
Сервис лицензирования предназначен для хранения, обработки и выдачи информации о лицензиях Платформы.
Сервис реализован на языке Java (Liberica JDK версия 17.0.9-11 )
и представляет из себя контейнер Docker
(версия не ниже 19.03.8), запуск которого осуществляется в соответствии с инструкцией по развёртыванию Платформы. В случае успешного запуска, сервис будет доступен по адресу: https://<hostname>/services/licenses_module
.
Порядок настройки
Настройка сервиса лицензирования Платформы включает в том числе и настройку данных о продукте.
Параметры настройки
Параметры настройки сервиса лицензирования задаются следующими способами:
- Файл
licenses-settings.json
. - Переменная окружения.
- Глобальная конфигурация nginx Платформы.
- Конфигурация сервиса Платформы.
Наименование параметра настройки не зависит от способа задания.
Результирующий параметр настройки сервиса, который будет использоваться во время работы, вычисляется по следующему алгоритму:
- Параметру присваивается значение из файла
licenses-settings.json
. - Параметру присваивается значение из переменной окружения.
- Параметру присваивается значени е из Global Parameters nginx. Посмотреть значения можно в Консоли администрирования Платформы в разделе Configuration, нажав на кнопку Global Parameters.
- Параметру присваивается значение из конфигурации сервиса Платформы.
- Параметру присваивается значение из переменной окружения.
Например, если параметр задан в файле settings.json
, в переменной окружения и в глобальной конфигурации nginx, результирующему
параметру конфигурации будет присвоено значение из окружения.
Основные параметры конфигурации сервиса, соответствующие им переменные окружения, задаваемые при запуске контейнера Docker-сервиса, и параметры конфигурации сервиса конфигурации Платформы приведены в таблице ниже.
Наименование | Значение по умолчанию | Примечания |
---|---|---|
RABBITMQ_URI | amqp://admin:admin@rabbitmq:5672 | Параметр осуществления аудита операций сервиса. |
discovery:heartbeat.period | 10000 | Интервал между проверками работоспособности Discovery-сервиса. Значение параметра указывается в миллисекундах. |
licenses.module:name | licenses_module | Наименование сервиса. |
licenses.module:skills | [ "licenses processing", "Product" ] | Значение параметра представляет собой массив строк. |
ConfigServer | {ConfigServer} | Базовый url Платформы. (В случае, если Платформа развёрнута без дополнительных настроек, это путь до nginx) |
identityConfiguration__identityServiceUrl | {ConfigServer}/identity | Url функционала identity |
spring.datasource.driver-class-name | {Не задано} | Настройки для подключения к базе данных |
SPRING_DATASOURCE_URL | {Не задано} | Настройки для подключения к базе данных |
SPRING_DATASOURCE_USERNAME | {Не задано} | Настройки для подключения к базе данных |
SPRING_DATASOURCE_PASSWORD | {Не задано} | Настройки для подключения к базе данных |
http:request:timeout | 10 | Величина интервала ожидания отклика по протоколу HTTP(S), выраженная в секундах. |
logging:LogLevel:Default | debug | Уровень логирования корневого журнала сервиса. |
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-сервиса |
StandName | LocalStand | Название стенда, на котором развёрнут сервис |
Kafka__AuditProducerTopic | {stand}-Audit | Топик Kafka для отправления сообщений аудита |
audit.kafka.repeats | localhost:9094 | Сервер Kafka |
TracesEnabled | false | Флаг, определяющий нужно ли отправлять трейсы |
OTEL_EXPORTER_OTLP_TRACES_ENDPOINT | - | Endpoint для отправки трейсов |
Модели данных
Модели данных сервиса лицензирования Платформы.
Параметры выборки поля данных лицензии
Наименование поля | Тип поля | Описание поля |
---|---|---|
productID | string($uuid) | идентификатор продукта |
key | string | ключ поля данных лицензии |
Данные о лицензии
Наименование поля | Тип поля | Описание поля |
---|---|---|
licensorID | string($uuid) | идентифи катор лицензиара |
licensorName | string | наименование лицензиара |
licenseeID | string($uuid) | идентификатор лицензиата |
licenseeName | string | наименование лицензиата |
licenseID | string($uuid) | идентификатор лицензии |
licenseDate | string($date-time) | дата выдачи лицензии |
Параметры поля данных лицензии
Наименование поля | Тип поля | Описание поля |
---|---|---|
key | string | ключ поля данных лицензии |
value | string | значение поля данных лицензии |
type | string | тип значения поля данных лицензии (допустимые значения ARRAY, BINARY, BOOLEAN, NULL, NUMBER, OBJECT, STRING) |
Параметры добавления лицензии
Наименование поля | Тип поля | Описание поля |
---|---|---|
jws | string | лицензия |
key | string | ключ проверки лицензии |
Данные о продукте
Наименование поля | Тип поля | Описание поля |
---|---|---|
productID | string($uuid) | идентификатор продукта |
name | string | наименование продукта |
Идентификатор продукта
Наименование поля | Тип поля | Описание поля |
---|---|---|
id | string($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
},
...
]
}