Пользовательские параметры
Примечание
Функционал доступен только в модуле НРЕ
Пользовательским параметрам можно задавать значения, которые затем будут доступны для вставки в различных местах системы, используя имя параметра в placeholder следующего формата: #[property.name]
.
Значения пользовательским параметрам задаются в разделе "Параметры системы" во вкладке "Пользовательские параметры" в группе org.unidata.mdm.system.user.defined.properties.group
(группа появляется при наличии пользовательских параметров).
Добавление параметров
Чтобы добавить параметр:
Убедитесь, что открыт раздел "Параметры системы" и вкладка "Пользовательские параметры".
Нажмите кнопку
Добавить справа от заголовка секции "Пользовательские параметры".
Заполните поле Имя латинскими буквами без пробелов. Является системным именем параметра. Не должно совпадать с системными именами параметров системы, может содержать только латинские буквы, цифры, точку, дефис и подчёркивание.
Заполните поле Отображаемое имя. Может заполняться кириллицей и используется для отображения в интерфейсе.
Включите флаг "Секретный" для того, чтобы значение параметра было доступно только пользователям с соответствующими правами.
Значения секретных параметров хранятся в базе данных в зашифрованном виде и недоступны пользователям без права на ресурс "Параметры системы".
При необходимости заполните поле Описание дополнительной информацией о параметре.
Список пользовательских параметров сортируется по дате их создания.
Права доступа:
Возможность добавления/изменения/удаления параметров регулируется правом доступа "Управление пользовательскими параметрами".
Редактирование значений параметров регулируется правом доступа "Параметры системы".
Шифрование:
Для включения шифровки см. статью "Шифрование паролей".
В дистрибутив добавлен файл crypt-utils.jar (в директорию utils).
Включение шифрования также включит шифрование системных параметров, которые помечены как secret (в ответы на запросы получения параметров системы добавлен флаг secret).

Рисунок 1 - Пример отображения раздела "Параметры системы" - вкладка "Пользовательские параметры"
Использование параметров в системе
В текущей реализации пользовательские параметры можно использовать только в строковых параметрах операций.
У дескрипторов параметров операций появилось новое свойство: confidential (boolean):
Если параметр
confidential = false
, то в этом параметре нельзя использовать секретные пользовательские параметры,Если параметр
confidential = true
, то в этом параметре можно использовать секретные пользовательские параметры.Проверка происходит при сохранении и запуске операций.
В качестве confidential помечены следующие параметры операций:
Деперсонализация данных (
depersonalizationJob
), параметр "Узлы" (dataDepersonalizationNodes
), можно использовать секретные пользовательские параметры в паролях (нельзя использовать вне паролей);Задача миграции данных (
migrateDataJob
), параметр "URL базы данных" (jdbcSourceUrl
), можно использовать секретные пользовательские параметры в пароле (нельзя использовать вне пароля);Задача экспорта данных (
exportDataJob
), параметр "URL базы данных" (databaseUrl
), можно использовать секретные пользовательские параметры в пароле (нельзя использовать вне пароля).
Placeholder #[property.name] может быть:
Полным значением строкового параметра операции;
Частью значения строкового параметра операции;
Использоваться несколько раз в значении одного строкового параметра операции (могут использоваться разные пользовательские параметры, может использоваться один и тот же пользовательский параметр).
Для вставки в строковый параметр операции могут использоваться пользовательские параметры не только строкового типа, но и всех других типов (BOOLEAN подставляется в виде true/false).
В таблицах базы данных, связанных с операциями, параметры будут сохраняться с placeholder, а не с подставленными значениями. Актуальные значения параметров будут вычислены при выполнении операции.
Управление с помощью API
Запрос POST /v2/core/user-defined-properties - создает пользовательские параметры, доступно только при наличии уровня прав "Полные" на ресурс "Управление пользовательскими параметрами".
Запрос GET /v2/core/user-defined-properties - получает все пользовательские параметры, доступно всем.
Запрос DELETE /v2/core/user-defined-properties?id[]=name1&id[]=name2 - удаляет пользовательские параметры, доступно только при наличии уровня прав "Полные" на ресурс "Управление пользовательскими параметрами".
Параметры запроса:
id - уникальный ID параметра, не должен совпадать с ID параметров системы. Может содержать только символы: латинские буквы, цифры, точку, дефис и подчеркивание;
displayName - отображаемое имя;
notice - опциональное примечание;
type - тип (STRING, NUMBER, INTEGER, BOOLEAN), доступен только через API, не доступен в интерфейсе. При создании параметра в интерфейсе всегда используется STRING.
secret - признак секретного параметра:
Значения секретных параметров хранятся в базе данных в зашифрованном виде, если включено шифрование (значения пользовательских параметров и параметров системы хранятся в таблице org_unidata_mdm_system.configuration);
Если у пользователя нет прав на ресурс "Параметры системы", то пользователь не будет получать значения секретных пользовательских параметров;
Если у пользователя есть права на ресурс "Параметры системы", то пользователь будет получать незашифрованные значения секретных пользовательских параметров.