Файл конфигурации расположен в /etc/polymatica/polymatica.conf
Настройки кластера
Адрес подключения для менеджера и сервера к мастеру:
plm.cluster.master.address = <ip>
Порт подключения для менеджера и сервера к мастеру:
plm.cluster.master.port = 8080
Включить режим работы в одной директории репозитория (для мастера и менеджера):
plm.cluster.one_repo_mode
Разрешить мастеру создавать дочерние серверы (для режима работы на одном узле):
plm.cluster.master.enable_servers
Время ожидания запроса на ping в секундах (для менеджера или сервера):
plm.cluster.ping_timeout = <time>
Настройки логгеров
Лог системных событий
Включить логирование:
plm.log.main.enabled
Уровень логирования (см. Логирование):
plm.log.main.loglvl = 4
Разбивать содержимое файла логгера main на отдельные файлы по модулям:
plm.log.main.split
plm.log.main.file.path
.Выводить лог в stdout. Игнорируется если выставлен параметр plm.daemon_mode_enable:
plm.log.main.log_to_stdout
Сохранять лог в файл:
plm.log.main.log_to_file
Путь до директории, куда должны писаться логи (путь относительно корня репозитория):
plm.log.main.file.path = logs/main
Ротация файлов основного лога:
plm.log.max_files
Включить поддержку системы подготовки отчётов о падениях Google Crashpad.
plm.crashpad_enabled
Путь до вспомогательной утилиты Crashpad, которая отвечает за формирование отчётов о падениях в случае их возникновения.
plm.crashpad_handler
/usr/sbin/plm_crashpad_handler
Лог действий пользователя
plm.log.user_actions.enabled plm.log.user_actions.loglvl = 1 #plm.log.user_actions.log_to_stdout plm.log.user_actions.log_to_file plm.log.user_actions.file.path = logs/user_actions/user_actions
Лог SQL-сервера (для Polymatica Analytics в режиме ODBC-источника)
#plm.log.sqlserver.enabled plm.log.sqlserver.loglvl = 1 plm.log.sqlserver.log_to_stdout plm.log.sqlserver.log_to_file plm.log.sqlserver.file.path = logs/sqlserver
Лог экспорта
plm.log.export.enabled plm.log.export.loglvl = 1 plm.log.export.log_to_file plm.log.export.file.path = logs/export/Userlog_export.csv
Отключение логирования запросов (если эта опция включена, то в логах не будет подробностей содержания запроса: только факт, что он был, время, что за команда и присвоенный идентификатор)
plm.log.filter_out_queries
Директория, в которую производится локальный экспорт из закрытого контура:
plm.export_path = /usr/share/polymatica/export
HTTP-сервер
Порт для подключения к HTTP-серверу (порт, по которому доступен веб-интерфейс):
plm.http_server.port = 8080
Адрес HTTP-сервера, значение по умолчанию определено макросом PLM_HTTP_SERVER_DEFAULT_ADDRESS:
plm.http_server.address = 0.0.0.0
Уровень логирования, значение по умолчанию Error:
plm.http_server.log_level = 7
Путь до файлов web-интерфейса, значение по умолчанию: PLM_HTTP_SERVER_RESOURCE_DEFAULT_PATH:
plm.http_server.resources_path = /usr/share/polymatica/web
Удалять данный префикс из URI path:
#plm.http_server.root_context_prefix = /polymatica/
Включить заголовки кэширования ресурсов:
plm.http_server.enable_cache_headers
Включить заголовки кеширования ресурсов в ответе (приведено состояние по умолчанию - кеширование выключено):
Cache-Control: no-store, no-cache, private Pragma: no-cache
Использовать защищённое соединение:
plm.http_server.use_https
Местонахождение файла ключа (ключ в формате PEM):
plm.http_server.ssl_key = /путь/к/файлу/ключа/ключ.key
Местонахождение файла сертификата:
plm.http_server.ssl_cert = /путь/к/файлу/сертификата/сертификат.crt
SQL-сервер
Включить функциональность SQL ODBC-сервера:
plm.sql_server.enable
Порт для подключения к SQL ODBC-серверу:
plm.sql_server.port = 9090
Адрес SQL сервера, значение по умолчанию определено макросом PLM_SQL_SERVER_DEFAULT_ADDRESS:
plm.sql_server.address = 0.0.0.0
Максимальное количество выдаваемых записей за один запрос, значение по умолчанию определено макросом PLM_SQL_SERVER_DEFAULT_DATA_ROW_LIMIT:
plm.sql_server.limit_entries_per_page = 200
Локали для данных SQL сервера, значение по умолчанию определено макросом PLM_SQL_SERVER_DEFAULT_DATA_LOCALE:
plm.sql_server.locale = en
Менеджер ресурсов
Таймаут фактической очистки дискового хранилища от удаленных в интерфейсе пользовательских ресурсов (в секундах):
plm.manager.clear_tmp_dir_timeout = 43200
Разрешить учетной записи пользователя работать в одной авторизованной сессии одновременно из нескольких браузеров и в окнах инкогнито (множественная сессия):
plm.allow_multiple_sessions
- Когда параметр отсутствует, новая авторизация продолжает работу из предыдущей сессии, а предыдущая сессия автоматически закрывается.
- Выход из множественной сессии автоматически закроет её во всех браузерах и окнах инкогнито.
- Параметр игнорируется в присутствии параметра
plm.multiple_sessions_mode
, см. ниже.
Расширенное управление сессией:
plm.multiple_sessions_mode = значение
Принимает значения:
- off – поведение параметра с таким значением аналогично отсутствию параметра
plm.allow_multiple_sessions
, – см. выше, – при этом состояние самого параметраplm.allow_multiple_sessions
игнорируется; - resume – поведение параметра с таким значением аналогично наличию параметра
plm.allow_multiple_sessions
, – см. выше, – при этом состояние самого параметраplm.allow_multiple_sessions
игнорируется; - renew – разрешить учетной записи пользователя начинать новую сессию из нескольких браузеров и в окнах инкогнито с сохранением существующей сессии.
В режиме renew завершение одной из сессий НЕ затрагивает другие открытые сессии.
Путь до каталога с бинарными файлами проекта, значение по-умолчанию: PLM_MANAGER_BINARY_DIRECTORY_PATH, опция командной строки: --binary-path или -B:
plm.manager.binary_path = ./
Номер порта, на котором Менеджер ожидает подключений по внутреннему протоколу, значение по-умолчанию определено макросом PLM_MANAGER_DEFAULT_PORT, опция командной строки --port или -P
plm.manager.port = 50000
Включить режим отладки Менеджера, используется совместно с plm.manager.enable_builtin_server, в этом режиме все модули в системе будут создаваться непосредственно в Менеджере, т.е. в рамках одного процесса
plm.manager.debug_mode
Менеджер может выступать в качестве сервера:
plm.manager.enable_builtin_server
URI для подтверждения автоматической аутентификации пользователей:
plm.manager.auto_authentication_uri = https://polymatica.ru/
Тип автоматической аутентификации (зависит от клиента), возможные варианты: DEFAULT, ECASA, ASNA, SIMPLE, SIMPLE_API, OAUTH2:
plm.manager.auto_authentication_type = DEFAULT
Если используется сторонняя БД с пользователями и группами:
plm.manager.use_external_users_groups_bd
Параметры синхронизации с LDAP-сервером, DN в LDAP:
#plm.manager.auto_authentication_ldap_dn = <cn=polymatica,ou=users...>
Базовый DN:
#plm.manager.auto_authentication_ldap_base_dn = <...>
Тип соединения:
#plm.manager.auto_authentication_ldap_secured
Пароль:
#plm.manager.auto_authentication_password = password
Запрос к LDAP-серверу для фильтрации записей:
#plm.manager.auto_authentication_ldap_filter = (&(ObjectClass=user))
Атрибут, значение которого будет являться логином в Polymatica:
#plm.manager.auto_authentication_ldap_login_attribute = sAMAccountName
IP адрес Менеджера, опция командной строки --manager-address или -A:
plm.manager.ip_address = 127.0.0.1
Временной интервал ( в секундах ), по истечению которого вернется ошибка на фронт если сессия заблокирована, значение по-умолчанию определено макросом PLM_MANAGER_USER_SESSION_BUSY_TIMEOUT:
plm.manager.session_busy_timeout = 600
Временной интервал сохранения ресурса на диске после удаления в секундах:
plm.manager.max_allowed_age_us = 86400
Запрет автоматического обновления кубов:
#plm.manager.prohibit_auto_update_for_cubes
Сканирование репозитория:
#plm.manager.enable_scan_repo
Временной интервал, отображающий периодичность сканирования репозитория, в секундах:
#plm.manager.scan_repo_timeout = 120
Проверка лицензии без подключения к удаленному серверу:
plm.manager.license_server.var1.address = moscow0.polymatica.ru plm.manager.license_server.var1.port = 60000 plm.manager.license_server.var2.address = moscow1.polymatica.ru plm.manager.license_server.var2.port = 60000 plm.manager.license_server.var3.address = moscow2.polymatica.ru plm.manager.license_server.var3.port = 60000
Таймаут ожидания инициализации нового домена, секунд, значение по умолчанию определено в PLM_MANAGER_DOMAIN_CONNECT_TIMEOUT
plm.manager.domain_connect_timeout = 10
Путь до файла ключа, используемого для подключения к серверу лицензий, значение по-умолчанию определено макросом PLM_MANAGER_SSL_KEY_DEFAULT_PATH:
plm.manager.ssl_key = ./plm_client.key
Путь до файла сертификата, используемого для подключения к серверу лицензий, значение по-умолчанию определено макросом PLM_MANAGER_SSL_CERTIFICATE_DEFAULT_PATH:
plm.manager.ssl_cert = ./plm_client.crt
Путь до файла CA сертификата, используемого для подключения к серверу лицензий, значение по-умолчанию определено макросом PLM_MANAGER_SSL_CA_CERTIFICATE_DEFAULT_PATH:
plm.manager.ssl_ca = ./polymatica.crt
Путь до репозитория (используется для отладки системы, под руководством технической поддержки, опция командной строки --repo или -R):
plm.manager.repo_directory = /var/plmrepo/
Временной интервал (в секундах), по истечении которого, и при отсутствии активности, пользовательская сессия будет закрыта:
plm.manager.user_session_timeout = 1800
Выполнять очистку удалённых (временных) файлов (кубов, пользователей, профилей, сценариев и т.д.) при запуске приложения при условии, что с момента удаления файла прошло больше, чем plm.manager.clear_tmp_dir_timeout секунд:
plm.manager.clear_tmp_onstart = false
Добавление пользователей, использующих Simple API, в единую группу. Название по умолчанию - shared_resources.
plm.manager.simple_api_group_name = shared_resources
Скрыть кнопку "Отказаться" от мультисферы в окне Мультисферы:
plm.manager.user_can_not_reject_cubes = true
Запретить сохранять слои в сценарии и профили только учетным записям с ролью «Администратор системы».
plm.manager.user_can_not_save
Модуль импорта
Максимальное количество используемых потоков, по умолчанию 2:
plm.import.thread_number = 4
Используется в случае нескольких источников, максимальное число потоков, занятых одновременно загрузкой, должно быть в диапазоне от 1 до plm.import.thread_number, если не указано или указано вне диапазона, используется plm.import.thread_number – 1, если plm.import.thread_number не указано, то кол. ядер – 3:
plm.import.max_read_datasource_number = 2
Размер буфера для одного элемента текстовых размерностей, значение по-умолчанию PLM_IMPORT_DEFAULT_DATA_SIZE:
plm.import.data_size = 4096
Количество строк выбираемых из БД за одну итерацию цикла, (fetch_row_count * 4 и fetch_row_count * 8 должно быть кратно размеру страницы), значение по-умолчанию PLM_IMPORT_DEFAULT_FETCH_ROW_COUNT:
plm.import.fetch_row_count = 20480
Максимальный объем данных для превью, мегабайт, значение по умолчанию PLM_IMPORT_DEFAULT_PREVIEW_MAX_DATA_SIZE:
plm.import.preview_max_data_size = 10
Используемая версия протокола драйвера, значение по-умолчанию PLM_IMPORT_DEFAULT_DRIVER_PROTOCOL_VERSION:
plm.import.driver_protocol_version = 7.2
Таймаут логина при подключении через ODBC, значение по-умолчанию PLM_IMPORT_DEFAULT_ODBC_LOGIN_TIMEOUT:
plm.import.odbc_login_timeout = 20
Таймаут соединения при подключении через ODBC, значение по умолчанию PLM_IMPORT_DEFAULT_ODBC_CONNECTION_TIMEOUT, 0 - без ограничений:
plm.import.odbc_connection_timeout = 300
Таймаут запроса при подключении через ODBC, значение по умолчанию PLM_IMPORT_DEFAULT_ODBC_QUERY_TIMEOUT, 0 - без ограничений:
plm.import.odbc_query_timeout = 300
Таймаут соединения с источником JDBC в секундах, 0 – без ограничений, по умолчанию 900:
plm.import.jdbc_network_timeout = 900
Количество выделяемых блоков (буферов) при загрузке данных, значение по умолчанию определено макросом PLM_IMPORT_DEFAULT_BLOCKS_COUNT:
plm.import.datasource_blocks
Номер версии протокола TDS для драйвера ODBC freeTDS. Если параметр не задан, то будет использована встроенная в freeTDS функция автоматического определения версии протокола:
plm.import.tds_version = 7.4
Модуль кластеризации
Лимит объектов кластеризации для иерархического алгоритма, значение по умолчанию определено макросом PLM_CLUSTER_HIERARCHICAL_OBJECT_LIMIT:
plm.clusterization.hierarchical_object_limit = 5000
Максимальное количество запускаемых потоков. значение по-умолчанию определено макросом PLM_CLUSTER_DEFAULT_THREAD_NUMBER:
plm.clusterization.default_thread_number = 4
Максимальное количество итераций алгоритма K-means, значение по-умолчанию определено макросом PLM_CLUSTER_KMEANS_MAX_ITERATION:
plm.clusterization.kmeans_max_iteration = 1000
Модуль карт
Имя базы данных в PostgreSQL/PostGIS (значение по умолчанию определено макросом PLM_GEO_DEFAULT_POSTGRES_POSTGIS_DATABASE_NAME):
plm.geo.postgres_postgis_databse_name = gis
Имя пользователя в базе данных PostgreSQL/PostGIS (значение по умолчанию определено макросом PLM_GEO_DEFAULT_POSTGRES_POSTGIS_LOGIN):
plm.geo.postgres_postgis_login = postgres
Пароль для доступа к базе данных PostgreSQL/PostGIS (значение по умолчанию определено макросом PLM_GEO_DEFAULT_POSTGRES_POSTGIS_PASSWD, port 5454):
plm.geo.postgres_postgis_passwd = YZ$xvt8M27e?u^QS
Адрес базы данных PostgreSQL/PostGIS (значение по умолчанию определено макросом PLM_GEO_DEFAULT_POSTGRES_POSTGIS_HOST):
plm.geo.postgres_postgis_host = http://moscow5.polymatica.ru
Порт для обращения к базе данных PostgreSQL/PostGIS (значение по умолчанию определено макросом PLM_GEO_DEFAULT_POSTGRES_POSTGIS_PORT):
plm.geo.postgres_postgis_port = 5454
Адрес и порт геокодера:
plm.geo.nominatim_host = http://moscow2.polymatica.ru plm.geo.nominatim_port = 8085
Адрес тайлового менеджера:
plm.geo.tiles_uri = maps.polymatica.ru/osm plm.geo.tiles_port = 443
Максимальное количество запускаемых потоков, значение по-умолчанию определено макросом PLM_GEO_DEFAULT_THREAD_NUMBER:
plm.geo.thread_number = 4
По умолчанию отсутствие параметра - это формат Д-Ш (как в GeoJson). При указании True будет производиться своп координат на Ш-Д для всех внутренних видов координат.
plm.geo.geocoder_raw_swap_coords = true
Другие настройки
Путь до временной директории, если не указан, то используется каталог tmp в репозитории:
plm.tmp_directory = /tmp
Режим демона (используется для отладки системы, под руководством технической поддержки, опция командной строки --daemon или -d):
plm.daemon_mode_enable
Путь до рабочей директории (используется для отладки системы, под руководством технической поддержки, опция командной строки --work-dir или -w):
plm.work_dir = /usr/share/polymatica/
Переменные окружения, устанавливаемые при старте программы (путь до каталога, содержащего файл odbcinst.ini):
plm.environment.var1.name = ODBCSYSINI plm.environment.var1.value = ./
Путь до каталога с настройками для SQL*Net (файл sqlnet.ora):
plm.environment.var3.name = TNS_ADMIN plm.environment.var3.value = ./
Выставляется формат представления времени, где H - час, M - минуты, S - секунды, значение по умолчанию определено макросом PLM_DEFAULT_TIME_TEMPLATE, в качестве разделителя нельзя использовать %:
plm.time_template = HH:MM:SS
Выставляется формат представления даты, где D - день, M - месяц, Y - год, значение по умолчанию определено макросом PLM_DEFAULT_DATE_TEMPLATE, в качестве разделителя нельзя использовать %:
plm.date_template = YYYY-MM-DD
Сортировка
Переключает режим построения сортировочного индекса с std::sort на более быстрый boost::radix_sort.
plm.import.use_boost_radix_sort = true
Потоки
Максимальное количество запускаемых потоков, значение по-умолчанию определено макросом FORECAST_DEFAULT_THREAD_NUMBER:
plm.forecast.thread_number = 4
Максимальное количество запускаемых потоков, значение по-умолчанию определено макросом PLM_GRAPH_DEFAULT_THREAD_NUMBER:
plm.graph.thread_number = 4
Настройки кастомизации
Интерфейс
Включить функциональность перехода между сценариями.
plm.user_interface.scenario_hyperlink_enabled
В мультисфере для вынесенных вверх размерностей колонку «Всего» отображать слева перед размерностями.
plm.user_interface.top_total_transfer
В мультисфере для вынесенных влево размерностей строку «Всего» отображать сверху над размерностями.
plm.user_interface.left_total_transfer
В мультисфере количество столбцов для загрузки в буфер. Минимальная – максимальная границы: 60 – 90.
plm.user_interface.view_fetch_cols = 75
В мультисфере количество строк для загрузки в буфер. Минимальная – максимальная границы: 40 – 90.
plm.user_interface.view_fetch_rows = 65
В мультисфере для вынесенных размерностей применять правила:
- Если для одной из размерностей установлен фильтр, то в фильтрах других размерностей должны остаться доступны только значения, подпадающие под значение установленного фильтра.
- Если исходя из прав доступа пользователя размерность недоступна, то в фильтрах размерностей соответствующее значение должно быть недоступно.
plm.user_interface.indirect_filters
Запоминать состояние элементов для первых N строк в таблице до её перестроения по следующим правилам:
- Параметр не задан: сохраняется и восстанавливается состояние всей таблицы целиком так, как это было до правок текущей задачи.
- Параметр равен 0: ничего не сохраняется и не восстанавливается.
- Параметр равен N, где N – положительное число: сохраняются и восстанавливаются первые от начала таблицы N строк (отсчёт строк ведётся по элементам последней размерности слева и сверху соответственно).
plm.user_interface.olap.marks.restore_rows = 100
Не отображать кнопку logout для всех пользователей за исключением пользователей с ролью администратора или с ролью создания пользователей/мультисфер.
plm.user_interface.enabled_logout = false
Убрать из контекстного меню мультисферы все пункты кроме "Открыть" и убрать кнопку "Смена пароля" и "Выход" для всех пользователей за исключением пользователей с ролью "Администратор" или "Создание сфер".
plm.user_interface.enabled_sharing = false
Не отображать кнопку предоставления доступа к сценариям/профилям для всех пользователей за исключением пользователей с ролью "Администратор"
plm.user_interface.users_cant_share = true
Добавить кнопку удаленного экспорта
plm.user_interface.enable_remote_export_button
Параметры перехода из Polymatica Analytics по ссылке
plm.user_interface.link_outside.url - URL plm.user_interface.link_outside.in_current_tab - режим открытия URL: true - открывать url на текущей вкладке; false - на новой вкладке plm.user_interface.link_outside.url_tip - подсказка для URL
Разрешить "временным" (is_guest=true) пользователям экспорт данных:
plm.user.guest_can_export
Настройка количества строк в одном листе Excel(0 - отсутствует ограничение на количество строк):
plm.export.xlsx.sheet_max_rows=0
Настройка отображения заголовков на каждом листе:
plm.export.xlsx.sheets_header=true
Стандартный разделитель системы - точка - целой и дробной части числа, может быть изменён в параметре:
plm.user_interface.decimal_separator = .
Настройка разделителей и кодировок CSV. Список допустимых кодировок зависит от машины, на которой запущен сервер. Следует обратить внимание, что для кодировок в список допустимых могут выводиться синонимы.
Пример настроек:
plm.export.csv.separator = ; plm.export.csv.quote_char = " plm.export.csv.encoding = UTF-8 plm.export.csv.decimal_separator = ,
В случае совпадения разделителя строки (plm.export.csv.quote_char) с любым из разделителей (plm.export.csv.decimal_separator, plm.export.csv.separator) экспорт прерывается ошибкой.
Включение авторизации через IAM ЕЦП "Гостех"
Включить поддержку входа в систему через IAM ЕЦП "Гостех" можно следующими параметрами:
plm.login.bearer.jwt.enabled plm.login.bearer.jwt.permission_admin_claim = MSR.permission.OLAP_Administrator
После включения становится доступна авторизация по предъявлению JWT-токена через заголовок Authorization запроса на эндпойнт /api/v2/login/bearer/jwt.
В токене должна содержаться следующая информация:
- Логин
- ФИО
- Почта
- Код ОКАТО
- Код МО
Если вход выполнен успешно, то создаётся новая или обновляется существующая учетная запись с указанным логином и открывается новая локальная сессия.