Сервис лицензирования Платформы
Сервис лицензирования предназначен для хранения, обработки и выдачи информации о лицензиях Платформы.
Сервис реализован на языке 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
},
...
]
}