ervu-account-applications/config.md
2025-02-25 17:31:08 +03:00

39 KiB
Raw Blame History

Описание параметров конфигурации сервера приложений

Файл /standalone/configuration/standalone.xml

Общие

  • webbpm.db.pool_size. Нужен только для webbpm.mode = development.
  • webbpm.mode. Режим работы приложения. Значения - development, production.
    • development - в этом режиме используется соединение к БД проекта, заданное в Studio.
    • production - в этом режиме используется соединение к БД проекта, заданное с помощью jndi имени.

Пример:

<property name="bpmn.enable" value="false"/>

jBPM

  • com.arjuna.ats.arjuna.allowMultipleLastResources
  • webbpm.jbpm.audit-log.disabled - флаг, отвечающий за включение/отключение аудита jBPM
  • webbpm.jbpm.cleaner_cron - cron расписание автоматической очистки БД JBPM, по умолчанию "-" т.е. выключен. Очищаются незавершенные процессы.
  • webbpm.jbpm.cleaner_timeout - время, спустя которое процесс считается устаревшим. По умолчанию - 10 часов.
  • webbpm.jbpm.finished_process_cleaner_cron - cron расписание автоматической очистки аудита процессов в БД JBPM, по умолчанию "-" т.е. выключен
  • webbpm.jbpm.finished_process_cleaner_timeout - время, спустя которое процесс считается устаревшим. По умолчанию - 10 часов.

Пример:

<property name="com.arjuna.ats.arjuna.allowMultipleLastResources" value="true"/>
<property name="webbpm.db.pool_size" value="5"/>
<property name="webbpm.mode" value="development"/>

jBPM Runtime Strategy

Возможные варианты runtime strategy:

  • SINGLETON
  • PER_REQUEST (значение по умолчанию)
  • PER_PROCESS_INSTANCE
  • PER_CASE

Пример:

<property name="webbpm.jbpm.runtime_strategy" value="PER_PROCESS_INSTANCE"/>

Способы авторизации:

  • По Jwt токену, указанному в заголовке Authorization

Настройка авторизации по JWT

По умолчанию все верификации токена отключены. Для того, чтобы нстроить авторизацию, следует использовать следующие переменные среды:

Название переменной Тип Описание Пример Значение по умолчанию
security.jwt.validation.enable boolean Включает базовую верификацию токена, включающее в себя поле exp. true false
security.jwt.validation.issuer String Включает верификацию по issuer, включается только при security.jwt.validation.enable = true. При пустом значении не верифицируется. https://example.com null
security.jwt.validation.public_key String(base64) Включает верификацию по ключу, включается только при security.jwt.validation.enable = true. При пустом значении не верифицируется. ZGFzaGJvYXJk null
security.roles.allowed String[] Включает авторизацию по ролям. В случае, если пользователь не имеет ни одной указанной роли, доступ к ресурсам отклоняется role1,role2,role3 null

Настройка MFe:

Собранный образ фронтенда имеет возможность работать как полноценное standalone приложение, так и как удалённый модуль MFe. Для настройки Mfe следует указать следующие переменные:

  • MFE_BASE_URL - указывается frontend/.env, либо в переменных среды сборки приложения. При изменении переменной приложение надо пересобирать. По умолчанию /mfe/business-metrics
  • backend.url - если необходимо настроить url бэкенда, его можно указать в frontend/src/resources/app.config.json

Статистика

jbpm hibernate statistics

Статистика hibernate jbpm доступна по jmx по пути org.hibernate:type=Stats,name=jbpm. Полный список параметров можно посмотреть через jconsole.

По умолчанию включена, отключить можно настройкой webbpm.jbpm.hibernate_statistics.enabled:

<property name="webbpm.jbpm.hibernate_statistics.enabled" value="false"/>

Schedulers по очистке базы jbpm.

  • Очистка таблиц аудита от завершенных процессов по истечении таймаута

    • webbpm.jbpm.finished_process_cleaner_cron - задает расписание (spring cron), если настройка не задана - джоб не запускается
    • webbpm.jbpm.finished_process_cleaner_timeout - таймаут в часах (целое числовое значение)

    Пример:

    <property name="webbpm.jbpm.finished_process_cleaner_cron" value="0 * * * * *"/>
    <property name="webbpm.jbpm.finished_process_cleaner_timeout" value="2"/>
    

    Ограничения для запросов БД.

  • webbpm.db.query_limit_enabled - флаг, отвечающий за вывод сообщений о превышении лимитов на количество возвращаемых записей. По умолчанию - false.

  • webbpm.db.select_records_max_limit - максимальный лимит возвращаемых строк для запросов в БД, при превышении/равенстве данного лимита будет выброшена ошибка (целое числовое значение). По умолчанию - 100000

  • webbpm.db.select_records_min_limit - минимальный лимит возвращаемых строк для запросов в БД, при превышении/равенстве данного лимита в логи будет выведен warning (целое числовое значение). По умолчанию - 1000

  • webbpm.db.execution_time_threshold. The threshold for time of executing a statement. Система выводит сообщение в логи при превышении. Действует для запросов, созданных в jOOQ. По умолчанию - 1000 миллисекунд

  • webbpm.db.result_read_time_threshold. The threshold for time of fetching a set of records from a ResultSet. . Система выводит сообщение в логи при превышении. Действует для запросов, созданных в jOOQ. По умолчанию - 50 миллисекунд

  • webbpm.db.results_count_threshold. Система выводит сообщение в логи при превышении. Действует для запросов, созданных в jOOQ. По умолчанию - 1000 записей

  • webbpm.db.full_time_threshold. Ограничение на полное время выполнения запроса. Система выводит сообщение в логи при превышении. Действует для запросов, созданных в jOOQ. По умолчанию sum(webbpm.db.result_read_time_threshold, webbpm.db.execution_time_threshold) миллисекунд

  • webbpm.db.query_timeout. Ограничение на время выполнения запроса. При превышении запрос будет отклонен. Действует для запросов, созданных в jOOQ в dev режиме. По умолчанию 120 секунд.

Пример:

<property name="webbpm.db.query_limit_enabled" value="false"/>
<property name="webbpm.db.select_records_max_limit" value="100000"/>
<property name="webbpm.db.select_records_min_limit" value="1000"/>
<property name="webbpm.db.execution_time_threshold" value="1000"/>
<property name="webbpm.db.results_count_threhold" value="50"/>
<property name="webbpm.db.result_read_time_threshold" value="50"/>
<property name="webbpm.db.full_time_threshold" value="300"/>
<property name="webbpm.db.query_timeout" value="120"/>

Добавление версии приложения в URL при запросах к backend-у

При сборке приложения с профилем enable-version-in-url в URL будет добавляться версия приложения, указанная в pom.xml.
Шаблон URL:

<protocol>//<hostname>:<port>/backend<app-version>/<some-controller>

Включение регистрации пользователя

  1. Укажите конфигурацию почтового сервера для отправки писем с подтверждением регистрации. Для этого в файле проекта jndi-resources.xml добавьте ресурс SmtpConfiguration. Шаблон:
<jndi-resource name="java:comp/env/webbpm/testResource" type="bpmn.handler.common.SmtpConfiguration">{"host":"host","port":1234,"login":"user","password":"password","from":"email_from","senderName":"sender_name","isSecured":true}</jndi-resource>

Почтовый сервер - зарегистрированный актуальный почтовый адрес. В поле password нужно указывать не пароль для входа в почту, а создать пароль для приложений в учетке почты и указать его. 2. Для включения регистрации добавьте в standalone.xml свойство

<property name="registration.enabled" value="true"/>
  1. Также в standalone.xml укажите ресурс для отправки писем для подтверждения регистрации (из п.1)
<property name="mail.jndi.resource.name" value="java:comp/env/webbpm/testResource"/>
  1. При необходимости, отредактируйте шаблон письма для подтверждения регистрации (resources/src/main/resources/mail/confirmation.html)

  2. При необходимости, отредактируйте шаблон письма для восстановления пароля (resources/src/main/resources/mail/reset_password.html)

Настройка браузера для входа в систему с помощью Kerberos

  1. Запустите браузер firefox.
  2. В адресной строке введите about:config, нажать кнопку "я принимаю на себя риск"
  3. С помощью поиска найдите параметр network.negotiate-auth.trusted-uris и в качестве значения ввести домен(например для домена example.com надо ввести .example.com)
  4. Откройте в браузере приложение. Пример http://app.example.com/ . Приложение должно открыться без запроса логина/пароля

Восстановление структуры БД

На основе БД проекта с помощью jOOQ генерируются Java классы для каждого объекта БД. Это происходит по нажатию кнопки Обновить на панели БД в студии. При необходимости можно сформировать DDL на основе данных классов. Пример класса для генерации DDL

package ru.cg.webbpm.test_project.db_beans;

import org.jooq.*;
import org.jooq.impl.*;

public class Main {
  public static void main (String args []) {
    DefaultConfiguration defaultConfiguration = new DefaultConfiguration();
    defaultConfiguration.setSQLDialect(SQLDialect.POSTGRES);
    Queries ddl = DSL.using(defaultConfiguration).ddl(DefaultCatalog.DEFAULT_CATALOG);

    for (Query query : ddl.queries()) {
      System.out.println(query);
    }
  }
}

** ВНИМАНИЕ: **

  • этим способом нельзя восстановить функции/процедуры БД

см. также Generating DDL from objects

Распределенный кэш (Hazelcast)

В платформе подключен кэш. Он используется для подсчёта количества пользователей и кэширования подсистемы безопасности

  • webbpm.cache.hazelcast.port - входящий порт hazelcast. по дефолту 5701.
  • Обязательное задать одно из двух следующих параметров
    • webbpm.cache.hazelcast.hosts - список хостов серверов приложений. webbpm.cache.hazelcast.hosts = hostname1,hostname2,hostname3
    • webbpm.cache.hazelcast.kubernetes.service_name - имя сервиса в среде kubernetes, используемый для обнаружения других подов. Подходит как стратегия обнаружения, если используется kubernetes
  • webbpm.cache.hazelcast.outbound_port_definitions - исходящие порты hazelcast. по дефолту не задано, система сама выбирает свободные порты. Задать диапазон 5801 - 5820
  • webbpm.cache.hazelcast.backup_count. Нужны чтобы когда сервер выключается был доступен бекап. Если предполагается выключать несколько серверов за раз, то нужно увеличить. Данный бекап делает копии синхронно с основной записью и операция записи ждет пока будет записана везде. Можно делать бекап асинхронно, настраивается через async_backup_count подробнее про бекапы Hazelcast IMDG Reference Manual . по дефолту 1
  • webbpm.cache.hazelcast.async_backup_count
  • webbpm.cache.hazelcast.public_address
  • webbpm.cache.hazelcast.interfaces

Пример конфигурации:

         <property name="webbpm.cache.hazelcast.hosts" value="app1,app2"/>
         <property name="webbpm.cache.hazelcast.outbound_port_definitions" value="5801-5820"/>`

Подключение компоненты адреса в режиме ГАР (Государственный адресный реестр)

Необходимо задать параметры:

  • gar.enable - флаг, который включает/отключает сервис для работы с ГАР. Должен быть задан для работы компоненты в режиме ГАР. По умолчанию true, для отключения задать false.
  • gar.elastic.url.host - хост на котором развернут elasticsearch.
  • gar.elastic.password - пароль для аутентификации elasticsearch.

Дополнительные параметры:

  • gar.elastic.url.port - порт на котором развернут elasticsearch.
  • gar.elastic.username - логин для аутентификации elasticsearch.

Пример конфигурации:

         <property name="gar.enable" value="true"/>
         <property name="gar.elastic.url.host" value="localhost"/>
         <property name="gar.elastic.password" value="password"/>

Метрики

Отчет

Отчет собирается раз в 30 секунд по дефолту, меняется параметром webbpm.metrics.report_period_ms. Все метрики идут за отчетный период, после сбора отчета они сбрасываются.

Получить json со всеми метриками можно по урлу backend/metrics/v1/all - метрики будут с последнего собранного отчета, запрос не триггерит сбор отчета - это независимые операции. Отчет содержит только метрики по которым был совершен хотя бы один вызов в отчетный период. То есть, если какая-то операция не была совершена в отчетный период, то соответствующая ей метрика не попадет в отчет - ее не будет в json.

Значения метрик

Все метрики идут за отчетный период, после сбора отчета они сбрасываются. Нас в основном интересуют callsCountSum, latencyMin, latencyAvg, latencyMax

  • callsCountSum - количество завершенных вызовов
  • latencyMin - минимальное время выполнения
  • latencyAvg - среднее время выполнения
  • latencyMax - максимальное время выполнения
  • activeCallsCountMax - количество начатых, но еще не завершенных вызовов.
  • activeCallsLatencyMax - длительность самого долгого еще не завершенного вызова

Текущие метрики приложения

  • Получение коннекта из пула

    • webbpm.jbpm.db.connection.acquire
    • webbpm.security.db.connection.acquire
    • webbpm.db.connection.acquire
  • Время с момента получения коннекта до возврата его в пул

    • webbpm.jbpm.db.connection.in_use
    • webbpm.security.db.connection.in_use
    • webbpm.db.connection.in_use
  • Время выполнения запроса на бд проекта

    • webbpm.db.query.success.execution_time
  • Время выполнения запроса на бд проекта + время получения коннекта из пула

    • webbpm.db.query.success.full_time
  • active-users-count.indicatorMax

  • active-users-count-ttl.indicatorMax

    Количество пользователей

  • webbpm.active_users_counter.enabled - включает подсчет пользователей, нужно чтобы не запускать hazelcast на дев машинах. по дефолту false. На боевых серверах необходимо установить в true.

  • webbpm.active_users_counter.max_time_between_operations_in_seconds - время, которое пользователь считается активным после действия. по дефолту 15 минут.

  • webbpm.active_users_counter.hazelcast.app_pool_size. Запись в hazelcast производится асинхронно в отдельном пуле, не блокируя обработку http запроса. Это размер этого пула. по дефолту 4. Можно пока оставить 4 и последить за метриками pool.hazelcast-executor.queue.indicatorMax и pool.hazelcast-executor.activeThreads.indicatorMax. Если очередь будет сильно копиться, то увеличить.

Настройка логов

Все настройки делаются в файле standalone.xml, если не указано иначе.

Общие настройки

Платформа Web-bpm использует корневую категорию логирования ru.cg.webbpm, рекомендуется выставлять ее в уровень info. todo check prod config

<logger category="ru.cg.webbpm">
    <level name="INFO"/>
</logger>

При этом компоненты используемые в проекте могут использовать другие категории.

Параметры конфигурации

Рекомендованное использование: всегда в info.

Все параметры конфигурации загружаемые платформой web-bpm и пользовательским приложением через api webbpm логируются категорией ru.cg.webbpm.modules.core.app_info.api.property.BaseProperty. Она всегда должна быть выставлена в info.

Пример вывода:

2017-12-04 16:02:19,074 INFO  [ru.cg.webbpm.modules.core.app_info.api.property.BaseProperty] (EclipseGeminiBlueprintExtenderThread-1) System property [webbpm.active_users_counter.enabled] not set. Using default value [false]
2017-12-04 16:02:19,074 INFO  [ru.cg.webbpm.modules.core.app_info.api.property.BaseProperty] (EclipseGeminiBlueprintExtenderThread-1) System property [webbpm.active_users_counter.hazelcast.hosts] set to [127.0.0.1]

БД проекта

Логирование запросов в бд security и бд проекта

Рекомендованное использование: только при разработке.

Использовать только при разработке. Категория org.jooq.tools.LoggerListener в debug уровень.

<logger category="org.jooq.tools.LoggerListener">
    <level name="DEBUG"/>
</logger> 

Пример вывода:

2017-12-04 18:21:10,391 DEBUG [org.jooq.tools.LoggerListener] (default task-19) Executing query          : select "department"."department_name", "department"."department_id", "department"."parent_department_id", "department"."parent_department_id", "department"."department_id", (select (count(*) <> ?) from "public"."department" as "$$child" where "$$child"."parent_department_id" = "department"."department_id") as "$$hasChildren" from "public"."department" as "department" limit ?
2017-12-04 18:21:10,395 DEBUG [org.jooq.tools.LoggerListener] (default task-19) -> with bind values      : select "department"."department_name", "department"."department_id", "department"."parent_department_id", "department"."parent_department_id", "department"."department_id", (select (count(*) <> 0) from "public"."department" as "$$child" where "$$child"."parent_department_id" = "department"."department_id") as "$$hasChildren" from "public"."department" as "department" limit 2147483647
2017-12-04 18:21:10,568 DEBUG [org.jooq.tools.LoggerListener] (default task-19) Fetched result           : +-----------------+-------------+--------------------+--------------------+-------------+-------------+
2017-12-04 18:21:10,568 DEBUG [org.jooq.tools.LoggerListener] (default task-19)                          : |department_name  |department_id|parent_department_id|parent_department_id|department_id|$$hasChildren|
2017-12-04 18:21:10,568 DEBUG [org.jooq.tools.LoggerListener] (default task-19)                          : +-----------------+-------------+--------------------+--------------------+-------------+-------------+
2017-12-04 18:21:10,568 DEBUG [org.jooq.tools.LoggerListener] (default task-19)                          : |Головной офис 1  |            8|              {null}|              {null}|            8|true         |
2017-12-04 18:21:10,568 DEBUG [org.jooq.tools.LoggerListener] (default task-19)                          : |Головной офис 2  |            9|              {null}|              {null}|            9|true         |
2017-12-04 18:21:10,568 DEBUG [org.jooq.tools.LoggerListener] (default task-19)                          : |Головной офис 3  |           10|              {null}|              {null}|           10|true         |
2017-12-04 18:21:10,568 DEBUG [org.jooq.tools.LoggerListener] (default task-19)                          : |Подразделение 1.1|           11|                   8|                   8|           11|true         |
2017-12-04 18:21:10,568 DEBUG [org.jooq.tools.LoggerListener] (default task-19)                          : |Подразделение 1.2|           12|                   8|                   8|           12|true         |
2017-12-04 18:21:10,568 DEBUG [org.jooq.tools.LoggerListener] (default task-19)                          : +-----------------+-------------+--------------------+--------------------+-------------+-------------+
2017-12-04 18:21:10,568 DEBUG [org.jooq.tools.LoggerListener] (default task-19)                          : |...55 record(s) truncated...

Логирование больших запросов

Рекомендованное использование: всегда в info, с подобранными для проекта значениями. В проде значения должны быть проверены что они не вызывают излишнее логирование.

  1. Для отслеживания больших запросов в пользовательскую базу нужно задать параметры что считать большими запросами, логироваться будут запросы больше заданных показателей. Чтобы логировать все запросы можно задать значение -1. Добавляются как property в раздел system-properties:

    <property name="webbpm.db.full_time_threshold" value="1050"/>
    <property name="webbpm.db.results_count_threshold" value="1000"/>
    

    В info режиме работают:

    • webbpm.db.full_time_threshold - полное время выполнения запроса в миллисекундах. Включает построение запроса библиотекой, выполнение и загрузку результатов. Пример сообщения
      2023-01-11 13:09:38,361 WARN [ru.cg.webbpm.modules.database.impl.analytics.PerformanceListener] (default task-33) Query full time threshold exceeded. full_time=[6565ms] execution_time=[6565ms] read_time=[0ms] results_count=[4] query=[<your query>]
    • webbpm.db.results_count_threshold - количество записей, которое вернул запрос. Пример сообщения
      2023-01-11 13:10:34,088 WARN [ru.cg.webbpm.modules.database.impl.analytics.PerformanceListener] (default task-41) Query results count threshold exceeded. results_count=[11177] query=[<your query>]

    В debug режиме дополнительно к работающим в info:

    • webbpm.db.execution_time_threshold - время выполнения запроса + построения запроса библиотекой.
    • webbpm.db.result_read_time_threshold - время чтения результатов запроса
  2. После задания настроек нужно настроить логирование - категория ru.cg.webbpm.modules.database.impl.analytics.PerformanceListener, уровень info или debug.

    <logger category="ru.cg.webbpm.modules.database.impl.analytics.PerformanceListener">
      <level name="INFO"/>
    </logger>
    

JBPM

Основные настройки

JBPM использует 3 корневых категории логирования org.jbpm, org.drools, org.kie. Все они должны быть выставлены в warn.

<logger category="org.jbpm">
    <level name="WARN"/>
</logger>
<logger category="org.drools">
    <level name="WARN"/>
</logger>
<logger category="org.kie">
    <level name="WARN"/>
</logger>

Логирование запросов в БД

Рекомендованное использование: только при разработке.

Для логирования sql запросов нужно включить категорию org.hibernate.SQL в debug:

<logger category="org.hibernate.SQL">
    <level name="DEBUG"/>
</logger>

Чтобы вывести параметры запросов и результат выполнения категорию org.hibernate.type.descriptor.sql в trace:

<logger category="org.hibernate.type.descriptor.sql">
    <level name="TRACE"/>
</logger>

Пример вывода:

18:21:06,938 DEBUG [org.hibernate.SQL] (default task-47) select names0_.Task_Names_Id as Task_Nam7_16_0_, names0_.id as id1_16_0_, names0_.id as id1_16_1_, names0_.language as language2_16_1_, names0_.shortText as shortTex3_16_1_, names0_.text as text4_16_1_ from I18NText names0_ where names0_.Task_Names_Id=?
18:21:06,939 TRACE [org.hibernate.type.descriptor.sql.BasicBinder] (default task-47) binding parameter [1] as [BIGINT] - [180]
18:21:06,940 TRACE [org.hibernate.type.descriptor.sql.BasicExtractor] (default task-47) extracted value ([id1_16_1_] : [BIGINT]) - [539]
18:21:06,940 TRACE [org.hibernate.type.descriptor.sql.BasicExtractor] (default task-47) extracted value ([language2_16_1_] : [VARCHAR]) - [en-UK]
18:21:06,940 TRACE [org.hibernate.type.descriptor.sql.BasicExtractor] (default task-47) extracted value ([shortTex3_16_1_] : [VARCHAR]) - [Список записей]
18:21:06,941 TRACE [org.hibernate.type.descriptor.sql.BasicExtractor] (default task-47) extracted value ([text4_16_1_] : [CLOB]) - [Список записей]
18:21:06,941 TRACE [org.hibernate.type.descriptor.sql.BasicExtractor] (default task-47) extracted value ([Task_Nam7_16_0_] : [BIGINT]) - [180]
18:21:06,942 TRACE [org.hibernate.type.descriptor.sql.BasicExtractor] (default task-47) extracted value ([id1_16_0_] : [BIGINT]) - [539]

Дополнительные логи hibernate

Рекомендованное использование: только при разработке в случае необходимости.

  1. Время выполнения запроса и количество результатов.

    Включаются категорией org.hibernate.stat в debug. При этом в hibernate должен быть включен сбор статистики. Похоже что логируется только hql select запросов.

    <logger category="org.hibernate.stat">
      <level name="DEBUG"/>
    </logger>
    

    Пример вывода:

    18:21:06,858 DEBUG [org.hibernate.stat.internal.ConcurrentStatisticsImpl] (default task-41) HHH000117: HQL: select t from AuditTaskImpl t where t.taskId = :taskId, time: 6ms, rows: 1
    
  2. Показатели hibernate сессий

    Включаются категорией org.hibernate.engine.internal.StatisticalLoggingSessionEventListener в info. При этом в hibernate должен быть включен сбор статистики. Тут может быть интересно количество запросов, флашей и общее время на все запросы сессией.

    Пример вывода:

    2017-12-04 17:25:58,493 INFO  [org.hibernate.engine.internal.StatisticalLoggingSessionEventListener] (default task-21) Session Metrics {
      63408365 nanoseconds spent acquiring 17 JDBC connections;
      521509 nanoseconds spent releasing 17 JDBC connections;
      65732621 nanoseconds spent preparing 17 JDBC statements;
      31471897 nanoseconds spent executing 17 JDBC statements;
      0 nanoseconds spent executing 0 JDBC batches;
      0 nanoseconds spent performing 0 L2C puts;
      0 nanoseconds spent performing 0 L2C hits;
      0 nanoseconds spent performing 0 L2C misses;
      297556 nanoseconds spent executing 1 flushes (flushing a total of 16 entities and 0 collections);
      430168 nanoseconds spent executing 1 partial-flushes (flushing a total of 16 entities and 16 collections)
    }
    

Логирование hbm2ddl

Рекомендованное использование: всегда в trace.

Должно быть включено всегда. Позволяет убедиться что hibernate не накатывал никакие миграции на базу. Этот функционал отключен у нас в коде.

<logger category="org.hibernate.tool.hbm2ddl">
    <level name="TRACE"/>
</logger>

Описание параметров конфигурации клиентской части

Свойства задаются в файле frontend/src/resources/app-config.json или frontend.war/src/resources/app-config.json

Общие

  • dev_mode - настройка задающая dev_mode для просмотра логов (true/false). При отсутствие оставляет значение при сборке
  • guard.confirm_exit - выводить или нет диалог подтверждения, если обнаружены несохраненные данные в форме. Значение по умолчанию - false.
  • password.pattern - Регулярное выражение для валидации пароля.
  • password_pattern_error - Сообщение об ошибке валидации.
  • show.client.errors - отвечает за отображение ошибок javascript-a пользователю (должна использоваться только в тестовых контурах) по умолчанию выключена
  • 'available_task.single_fetch' - Отвечает за количество запросов available_task при завершении процесса. true - одиночный запрос, false/не указано - 10 запросов(старая реализация).

Вывод сообщений

  • message_service_error_timeout время в мс, в течение которого будет отображено сообщение об ошибке. Значение по умолчанию - таймаут не задан (окно не закрывается).
  • message_service_warning_timeout время в мс, в течение которого будет отображено предупреждающее сообщение. Значение по умолчанию - таймаут не задан (окно не закрывается).
  • message_service_success_timeout время в мс, в течение которого будет отображено сообщение об успехе. Значение по умолчанию - таймаут не задан (окно не закрывается).
  • message_service_info_timeout время в мс, в течение которого будет отображено информационное сообщение. Значение по умолчанию - таймаут не задан (окно не закрывается).

Электронная подпись

Esmart

  • electronic_sign.esmart_extension_url - url для создания расширенной подписи. Подробная информация по ссылке http://demo.esmart.ru
  • electronic_sign.tsp_address - адрес сервера службы штампов времени

Пример:

"electronic_sign.esmart_extension_url": "http://dsig.ibsdemo.ru/ibs_dsig/ibs_dSig.asmx"

Способ аутентификации

  • auth_method - способ аутентификации. Может принимать одно значение из списка: form, kerberos, cert_over_db, cert_over_ldap

Url проекта

  • backend.url - задает url для проека. Если параметра нет, то берется дефолтные:
window.location.protocol + '//' + window.location.hostname + ':' + window.location.port + '/backend'

Пример:

http://10.10.31.80:8080/

Таймер очистки закешированных значений фильтров

  • filter_cleanup_interval_hours - время жизни закешированного значения фильтра в часах. По умолчанию - 720 часов,
  • filter_cleanup_check_period_minutes - период проверки наличия просроченных закешированных значений в минутах. По умолчанию - 30 минут

Добавление версии приложения в URL при запросах к frontend-у

В модуле frontend в src/resources/app-config.json добавлены 2 переменные

  • "enable.version.in.url": "%enable.version.in.url%" - подставлять ли версию в URL приложения. По умолчанию false. Если сборка произведена
  • "app.version": "%project.version%" - версия приложения.
    с профилем enable-version-in-url, то значение будет true.

Добавление Jivo чат в проект

Свойства задаются в файле frontend/src/resources/app-config.json или frontend.war/src/resources/app-config.json

  • jivo_chat_widget_api_url - API url для работы Jivo чата. Необходимо заменить {WIDGET_ID} на реальный Widget API ID
  • jivo_chat_widget_enabled - параметр отвечающий за активацию Jivo чата. По дефолту false, для активации задать true.

Пример:

  "jivo_chat_widget_api_url": "https://code.jivo.ru/widget/{WIDGET_ID}",
  "jivo_chat_widget_enabled": false

Прочее

Смена удалённого репозитория

  1. Смените адрес NPM registry в файле frontend.npmrc. Пример - registry=https://repo.example.com/repository/npm-all/
  2. Поменяйте ссылки в блоке , файла pom.xml