mybpm!
Скачать в формате: PDF pdf DOCX word

Переменные окружения

Переменные окружения (далее п.о.) задаются для запуска API-сервера. В таблице перечислен минимальный набор п.о. с примерами значений

Переменная окружения Пример значения
MYBPM_COMPANY_CODE greetgo
MYBPM_ZOOKEEPER_SERVERS localhost:10012
MYBPM_KAFKA_SERVERS localhost:10011
MYBPM_MONGO_SERVERS mongodb://mybpm:123@192.168.111.1:11017, 192.168.111.2:11018, 192.168.111.3:11019/admin
MYBPM_AUX1_DB_NAME mybpm_aux1
MYBPM_AUX1_HOST localhost
MYBPM_AUX1_PORT 10018
MYBPM_AUX1_USER_NAME mybpm
MYBPM_AUX1_PASSWORD 4jk3hb2145hj23bv4123jkb4
MYBPM_ELASTIC_SEARCH_SERVERS localhost:10016

В следующей таблице указан более расширенный пример доступа к кафке:

Переменная окружения Пример значения
MYBPM_KAFKA_SERVERS localhost:10011
MYBPM_KAFKA_CON_001 sasl.jaas.config = TXT:org.apache.kafka.common.security.plain.PlainLoginModule...
MYBPM_KAFKA_CON_002 sasl.mechanism = TXT:PLAIN
MYBPM_KAFKA_CON_003 security.protocol = TXT:SASL_SSL
MYBPM_KAFKA_CON_004 ssl.truststore.location = Base64_to_file :4hJ1/v324gHkjY43bjk51b5v234v423v4...
MYBPM_KAFKA_CON_005 ssl.truststore.password = TXT :SuperSecret

Ниже смотрите детальное описание п.о.:


MYBPM_APP_PREFIX

Префикс для БД

Возможные значения:
[a-z][a-z1-9]*

Данный префикс используется для определения баз данных, например если указать префикс tor, то в MongoDB будут использоваться базы данных tor_mybpm, tor_mybpm_aux1 и так далее для всех БД. Если префикс не указать, то имена будут использоваться без префикса. Это нужно, чтобы можно было на одной среде развернуть несколько независимых друг от друга платформ MyBPM.


MYBPM_LICENCE_NUMBER

Номер лицензии платформы MyBPM

Возможные значения:
6120b632-f91a-416d-a7d0-180ffd7ce380

Для активации функционирования платформы MyBPM в соответствии с закупленной лицензией, необходимо номер этой лицензии указать в данной п.о.

Так же необходимо обеспечить доступ платформы к лицензионному сервису платформы MyBPM. Или настроить прокси-сервер к одному или нескольким адресам лицензионного сервиса.


MYBPM_LICENCE_SERVICE_ADDRESSES

Альтернативные адреса лицензионного сервиса.

Возможные значения:
http://some-host:port,https://some-another-host

ИЛИ

X,http://some-host:port,https://some-another-host

Список адресов лицензионного сервиса разделённые запятой. Так же в начале можно поставить X (большая латинская буква "икс") с запятой - это отменит использование пред-настроенных адресов лицензионного сервиса.

Если не указать эту п.о., то будут использоваться пред-настроенные адреса лицензионного сервиса.

Платформа по очереди будет вызывать адреса лицензионного сервиса. И как только один адрес сработает, то произойдёт полноценная активация платформы в соответствии с лицензией, номер которой указан в п.о. MYBPM_LICENCE_NUMBER. Если ни один адрес не сработает, то произойдёт полная блокировка работы платформы.

Если необходимо иметь возможность просматривать данные, которые ходят на лицензионный сервис, то можно сделать прокси сервер перенаправляющий REST-запросы на один из адресов лицензионного сервиса. Прокси сервер может работать как на протоколе HTTP, так и на протоколе HTTPS.

Важно чтобы прокси сервер перебрасывал заголовок signature как в запросе, так и в ответе запроса - без него платформа не сможет убедиться в актуальности лицензионного сервиса, и будет заблокирована.


MYBPM_ALL_CONSUMERS_OFF

Отключение всех исторических consumer-ов

Возможные значения:
true, false

Исторический consumer - это такой consumer, который считывает данные из кафки с начала времён. Каждое сообщение в таком consumer-е обрабатывается только один раз на одном сервере, даже если настроено несколько серверов обрабатывающих данный consumer.

Данная п.о. позволяет отключить все исторические consumer-ы, вне зависимости от того, что установлено в конфигурации ZooKeeper. Чтобы это сделать, нужно установить данную п.о. в значение true (см. kz.greetgo.mybpm_util_light.etc.Env.envBool).

Если эта п.о. не установлена или имеет другое значения, то consumer-ы запускаются и настраиваются по конфигурации из ZooKeeper.

MYBPM_ALL_KAFKA_NOTIFICATIONS_OFF

Отключение всех consumer-ов-оповещений

Возможные значения:
true, false

Consumer-оповещение - это такой consumer, который считывает данные из кафки с момента запуска. Притом каждое сообщение считывается ВСЕМИ серверами, которые обрабатывают этот consumer-оповещение.

Данная п.о. позволяет отключить все consumer-оповещения, вне зависимости от того, что установлено в конфигурации ZooKeeper. Чтобы это сделать, нужно установить данную п.о. в значение true (см. kz.greetgo.mybpm_util_light.etc.Env.envBool).

Если эта п.о. не установлена или имеет другое значения, то consumer-ы-оповещения запускаются и настраиваются по конфигурации из ZooKeeper.

ВНИМАНИЕ: Серверы, которые обрабатывают WebSocket-ы, должны иметь все consumer-оповещения ВКЛЮЧЁННЫМИ.

Данная переменная окружения применяется для тех серверов, которые обрабатывают только исторические consumer-ы. На таких серверах, не нужны оповещения, так как они не работают с пользователями. И желательно их отключить данной п.о.


MYBPM_PLUGINS

Активация установленных плагинов

Возможные значения:
Идентификаторы плагинов через запятую без пробелов

Чтобы установить плагин, недостаточно его jar-файл поместить на место загружаемых библиотек, нужно ещё его активировать. Для этого нужно его идентификатор указать в списке активируемых идентификаторов в этой п.о.


MYBPM_DISABLE_CACHE

Отключение всего кэша

Возможные значения:
true, false

Установка данной п.о. в значение true (см. kz.greetgo.mybpm_util_light.etc.Env.envBool) позволяет полностью отключить все кэши в системе.


MYBPM_USE_SHENANDOAH

Использовать SHENANDOAH

Возможные значения:
yes, чё-то другое

SHENANDOAH - это прогрессивный сборщик мусора, но по-умолчанию в виртуальной Java-машине активирован другой. Чтобы активировать этот, нужно установить данную п.о. в значение yes. Другие значения и отсутствие данной п.о. активируют сборщик мусора по умолчанию.


MYBPM_CONSUMER_DIR

Имя директории куда помещаются конфиги консьюмеров

Возможные значения:
строка из латинских символов, цифр и деления (/)

По умолчанию система располагает файлы конфигурации консьюмеров в ZooKeeper по пути:

/mybpm/consumers

Это расположение можно поменять. Например, если задать данной п.о. значение:

MYBPM_CONSUMER_DIR=hello/world

То расположение файлов конфигурации измениться на следующее:

/mybpm/consumers-hello/world

Т.е. к прежнему значению добавиться тире ("-") и после него то, что в п.о.


MYBPM_AD_USER и MYBPM_AD_PASS

Параметры доступа к Active Directory (AD)

Возможные значения:
строка из латинских символов, цифр

Параметры доступа к AD находятся ZooKeeper-е в файле конфигурации:

/mybpm/configs/AdConfig.txt

Кроме всего прочего имя пользователя и пароль доступа задаются в параметрах: adUsername, adPassword в открытом виде. Но в этом файле их можно не задавать, а передать через указанные п.о. и они будут приоритетными по сравнению со значениями из файла конфигурации.


MYBPM_JAVA_DEBUG

Активация Java-отладки

Возможные значения:
yes, чё-то ещё

По умолчанию Java-машина запускается без внешнего отладчика. Для его активации необходимо установить данную п.о. в значение yes. Это запустит отладчик на порту 5005.

После запуска с этой переменной к системе можно подключаться отладчиком и делать точки остановки и пошагово отлаживать программу.

Так же есть возможность запустить систему в остановленном режиме, т.е. система остановиться на первой команде и работать не будет, а будет ждать подключения отладчика, чтобы он запустил её дальше или посмотрел, что происходить в самом начале, для этого нужно установить п.о. MYBPM_JAVA_DEBUG_SUSPEND=y


MYBPM_JAVA_DEBUG_SUSPEND

Остановки при запуске

Возможные значения:
y, n

Эта п.о. используется совместно с MYBPM_JAVA_DEBUG. Установив данную п.о. в значение 'y' система запуститься в остановленном режиме, т.е. система остановиться на первой команде и дальше работать не будет, а будет ждать подключения отладчика, чтобы он запустил её дальше или посмотрел, что происходить в самом начале.


MYBPM_JAVA_CONSOLE

Активировать консоль jconsole на порту 1099

Возможные значения:
yes, пусто

Если установить данную п.о. в значение yes, то после запуска системы к ней можно будет подключиться с помощью утилиты jconsole по порту 1099.


MYBPM_MAIN_CLASS

Сменить главный класс: kz.greetgo.mybpm.server.war.app.MybpmServer

Возможные значения:
Полное имя класса с фунцией main

По умолчанию система запускается с класса:

 kz.greetgo.mybpm.server.war.app.MybpmServer

Который поднимает сервер приложения на порту 8080. Этот класс можно сменить, указав другой через эту п.о. - это позволит запустить какие-нибудь альтернативные сервера или задачи.


MYBPM_JAVA_OPTS

Дополнительные опции к Java-машине

Возможные значения:
Опции к Java-машине, которые обычно начинаются с -X

В данной переменной можно указать дополнительные опции к Java-машине, например по ограничению занимаемой памяти.

Например:

MYBPM_JAVA_OPTS="-Xms16G -Xmx16G"

Позволяет ограничить кучу в 16-ю гигабайтами ОЗУ.


MYBPM_COMPANY_CODE

Код главного аккаунта

Возможные значения:
greetgo

Эту переменную всегда нужно устанавливать и устанавливать в значение greetgo.

Ранее можно было выбирать главные аккаунты, но с какого-то момента, добавилась возможность добавлять аккаунты динамически и главный аккаунт навсегда закрепился за greetgo.


MYBPM_AUX1_HOST, MYBPM_AUX1_PORT, MYBPM_AUX1_DB_NAME, MYBPM_AUX1_USER_NAME, MYBPM_AUX1_PASSWORD

Доступ к PostgreSQL

Возможные значения:
строка из латинских символов, цифр

Данные п.о. определяют параметры доступа к БО PostgreSQL AUX1. А именно:


MYBPM_ELASTIC_SEARCH_SERVERS, MYBPM_ELASTIC_SEARCH_USER, MYBPM_ELASTIC_SEARCH_PASS, MYBPM_ELASTIC_SEARCH_CA_CRT

Параметры доступа к эластику

Возможные значения:
строка из латинских символов, цифр

Данные п.о. определяют параметры доступа к серверу эластика. Главным п.о. является MYBPM_ELASTIC_SEARCH_SERVERS - в зависимости от его значения используются другие п.о.

П.о. MYBPM_ELASTIC_SEARCH_SERVERS может иметь следующие варианты:

Вариант со схемой доступа http:

MYBPM_ELASTIC_SEARCH_SERVERS=[host1]:[port1],[host2]:[port2],[host3]:[port3]

или

MYBPM_ELASTIC_SEARCH_SERVERS=http://[host1]:[port1],[host2]:[port2],[host3]:[port3]

Вариант со схемой доступа https:

MYBPM_ELASTIC_SEARCH_SERVERS=https://[host1]:[port1],[host2]:[port2],[host3]:[port3]

где:

П.о. MYBPM_ELASTIC_SEARCH_USER и MYBPM_ELASTIC_SEARCH_PASS используются для указания авторизации и аутентификации.

Если используется схема доступа https, то можно использовать п.о. MYBPM_ELASTIC_SEARCH_CA_CRT, в которой указать полный путь к файлу сертификата соединения. Обычно этот файл имеет имя ca.crt


MYBPM_CORS

Отключение проверки CORS

Возможные значения:
ALL, или чё-то другое

Если установить эту п.о. в значение ALL, то уберётся контроль CORS с запросов - это нужно для тестирования клиента в режиме отладки. Любые другие значение, как и отсутствие самой п.о. контроль CORS оставляет на высоком уровне.


MYBPM_LOG_DIR

Базовый путь размещения файлов логирования системы

Значение по-умолчанию (если п.о. не указана или пустая):
/var/log/mybpm
Возможные значения:
абсолютный путь к сущестующей директории, в которую есть доступ на запись

Определяет пусть к существующей директории, в которой система будет создавать файлы логирования


MYBPM_ZOOKEEPER_SERVERS, MYBPM_ZOO_AUTH_..., MYBPM_ZOO_CONF_...

Определяет параметры доступа к кластеру ZooKeeper.

На платформе MyBPM получение доступа к системе происходит с помощью CuratorFrameworkFactory. Ниже схематично показан псевдокод подключения к Zookeeper-у.

  //@formatter:off
  String connectStr = "some-zoo-host:4324,another-zoo-host:6453";

  List<AuthInfo> authInfoList = new ArrayList<>();
  authInfoList.add(new AuthInfo("Client", Base64.getDecoder().decode("U2hhcm9uLlN0b25lOmQ1Wmgxa3MwM3Q=")));
  authInfoList.add(new AuthInfo("Server", Base64.getDecoder().decode("RGVuLkJyb3duOkRaek41WE1qNEU=")));

  final ZKClientConfig zkClientConfig = new ZKClientConfig();
  zkClientConfig.setProperty("zookeeper.sasl.client", "true");
  zkClientConfig.setProperty("zookeeper.ssl.quorum.trustStore.location", "/path/to/client-truststore.jks");
  zkClientConfig.setProperty("zookeeper.ssl.quorum.trustStore.password", "very-secret");

  try (CuratorFramework client = CuratorFrameworkFactory.builder()
                                                        .connectString(connectStr)
                                                        .zkClientConfig(zkClientConfig)
                                                        .authorization(authInfoList)
                                                        .build()) {
    // working with client
  }
//@formatter:on

Где:

base64_to_text( "U2hhcm9uLlN0b25lOmQ1Wmgxa3MwM3Q=" ) равно "Sharon.Stone:d5Zh1ks03t"
base64_to_text( "RGVuLkJyb3duOkRaek41WE1qNEU="     ) равно "Den.Brown:DZzN5XMj4E"

Чтобы платформа MyBPM подобным образом подключалась к Zookeeper необходимо передать следующие п.о. (формат docker consumer):

environment:
    MYBPM_ZOOKEEPER_SERVERS: "some-zoo-host:4324,another-zoo-host:6453"
    MYBPM_ZOO_AUTH_001: "Client : U2hhcm9uLlN0b25lOmQ1Wmgxa3MwM3Q="
    MYBPM_ZOO_AUTH_002: "Server : RGVuLkJyb3duOkRaek41WE1qNEU="
    MYBPM_ZOO_CONF_001: "zookeeper.sasl.client = TXT: true"
    MYBPM_ZOO_CONF_002: "zookeeper.ssl.quorum.trustStore.location = Base64_to_File: h34b2j4b234=="
    MYBPM_ZOO_CONF_003: "zookeeper.ssl.quorum.trustStore.password = TXT: very-secret"

Здесь представьте, что h34b2j4b234== - это Base64 код содержимого файла /path/to/client-truststore.jks.

Далее детальное описание п.о.:

MYBPM_ZOOKEEPER_SERVERS

Определяет список серверов кластера ZooKeeper.

Возможные значения п.о.:

Разделённый запятыми последовательности хост:порт
MYBPM_ZOO_AUTH_...

Определяет параметры авторизации. Платформа MyBPM считывает все п.о., которые начинаются на MYBPM_ZOO_AUTH_ и каждую превращает в объект класса AuthInfo (этот класс имеется в примере кода выше). Все эти объекты складывает в массив и передаёт коду обеспечения доступа к Zookeeper (он находиться внутри класса CuratorFramework - это показано на примере кода выше).

Класс авторизации содержит два поля:

public class AuthInfo {
    final String scheme;  // схема авторизации
    final byte[] auth;    // данные для авторизации
}

Эти поля заполняются из значения п.о., которое должно иметь конкретный формат, а именно:

<schema> : <base64-код>

Где:

<schema> - это текст содержащий схему авторизации, и он передаётся в поле AuthInfo.scheme.

<base64-код> - это текст, представляющий собой Base64-код массива байтов, который передаётся в поле AuthInfo.auth.

MYBPM_ZOO_CONF_...:

Определяет конфигурацию подключения к Zookeeper-у. Платформа MyBPM считывает все п.о., начинающиеся с префикса MYBPM_ZOO_CONF_, и каждое значение превращает в пару ключ-значение. Потом эти пары передаются объекту класса ZKClientConfig с помощью метода setProperty(...) - тем самым определяя конфигурацию доступа. На примере кода выше это показано.

Формат значения данных п.о. следующий:

<имя-параметра> = <ТИП> : <значение-параметра>

Где:

<имя-параметра> - текст, представляющий имя параметра, который передаётся в качестве ключа в метод setProperty(...) первым аргументом.

<ТИП> - текст, представляющий тип значения. Может иметь следующие варианты: TXT, Base64_To_File - ниже описаны их значения.

<значение-параметра> - тест, который используется в зависимости от типа. Пробелы всегда обрезаются с обеих сторон.

Если <ТИП> == 'TXT', то это обозначает, что <значение-параметра> нужно передать в качестве значения в метод setProperty(...) вторым аргументом.

Если <ТИП> == 'Base64_To_File', то это обозначает, что <значение-параметра> должно представлять собой Base64-код содержимого некого файла. Платформа MyBPM возьмёт этот Base64-код, превратит его в массив байт, и сохранит во временный файл. А в качестве значения в метод setProperty(...) вторым аргументом подставит абсолютный путь к этому файлу. После этого система авторизации внутри класса CuratorFramework сможет получить к нему доступ и использовать по назначению.

ПРИМЕЧАНИЕ

Иногда для доступа к Zookeeper-у необходимо при запуске Java-машины определить параметр:

-Djava.security.auth.login.config=/path/to/zookeeper-jaas.conf

Для этого можно использовать п.о. MYBPM_SYSTEM_PROPERTY_ (его описание ищите на этой странице)


MYBPM_KAFKA_SERVERS, MYBPM_KAFKA_CON_...

Определяют параметры доступа к кафке.

Возможные значения для MYBPM_KAFKA_SERVERS:
Разделённый запятыми последовательности хост:порт

Определяет список серверов кластера Kafka. Эта переменная присваивается параметру

bootstrap.servers

В списке параметров доступа к Кафке как для поставщика данных (Producer) так и для потребителя данных (Consumer).

Например, для подключения к Кафке в виде поставщика данных можно воспользоваться кодом:

  Map<String, Object> prop=new HashMap<>();

        prop.put("bootstrap.servers","localhost:13113"); // Вот сюда вставляется значение из п.о. MYBPM_KAFKA_SERVERS
        prop.put("key.serializer",StringSerializer.class.getName());
        prop.put("value.serializer",StringSerializer.class.getName());
        prop.put("request.timeout.ms","5000");
        prop.put("max.block.ms","5000");
        prop.put("metadata.fetch.timeout.ms","5000");
        prop.put("enable.auto.commit","false");
        prop.put("acks","all");

        try(KafkaProducer<String, String> producer=new KafkaProducer<>(prop)){
        // working with producer ...
        }

В этом коде в параметр bootstrap.servers вставляется значения из п.о. MYBPM_KAFKA_SERVERS. Остальные параметры платформа MyBPM генерирует по другой логике, в зависимости от ситуации.

Может случиться так, что доступ к Кафке предоставляется через безопасное соединение, и тогда Java-код должен выглядеть примерно так:

  Map<String, Object> prop=new HashMap<>();

        //
        prop.put("key.... 
        //.... (здесь параметры не связанные с доступом)
        //

        prop.put("bootstrap.servers","localhost:13113");

        prop.put("sasl.mechanism","PLAIN");
        prop.put("security.protocol","SASL_SSL");
        prop.put("ssl.truststore.location","/some/path/to/existing/file/client.truststore.jks");
        prop.put("ssl.truststore.password","111222");
        prop.put("sasl.jaas.config","org.apache.kafka.common.security.plain.PlainLoginModule"+
        " required serviceName=\"Kafka\" username=\"alice\" password=\"alice-secret\";");

        try(KafkaProducer<String, String> producer=new KafkaProducer<>(prop)){
        // working with producer ...
        }

Т.е. нужно передать дополнительные параметры. Притом есть параметры, которые представляют путь к существующему файлу. Этот файл нужно подготовить, передать на сервер, и указать к нему путь.

Значения MYBPM_KAFKA_CON_...

Кроме MYBPM_KAFKA_SERVERS можно ещё определить несколько дополнительных п.о. которые будут дополнительно добавляться к списку параметров доступа к Кафке.

Чтобы это сделать нужно указать несколько п.о., которые начинаются с MYBPM_KAFKA_CON_ и имеют только цифры после этого префикса, которые нужно для того, чтобы можно было указать несколько параметров с одним смыслом.

Значения у этих п.о. должны иметь вид:

<имя-параметра> = <ТИП> : <значение-параметра>

Где:

<имя-параметра> - это строка, которая будет передаваться в качестве ключа в объект prop (см. Java-код выше).

<ТИП> - одно из значений: TXT или Base64_to_File

<значение-параметра> - строка, которая будет обрабатываться в зависимости от <ТИП>-а.

Если <ТИП> = TXT, то это обозначает, что <значение-параметра> будет переходить в prop как есть - один-к-одному.

Если <ТИП> = Base64_to_File, то это обозначает, что <значение-параметра> должно представлять собой код Base64. Система возьмёт этот код Base64, превратит его в последовательность байт, и сохранит его во временный файл. А в объект prop будет передана строка с абсолютным путём к этому файлу.

Таким образом Вы можете передать файл, не имея доступа к серверу.

Другими словами Вы можете сделать так:

Получите из Вашего файла код Base64, например командой:

base64 -w0 имя_исходного_файла > имя_файла_где_будет_сохранён_base64

Допустим у Вас получился код (Ваш код может быть значительно длинней):

4kjh32b454/534b256k45b64l3b21434==

Этот код передайте в переменную окружения следующим образом (здесь использован синтаксис docker compose):

environment:
    MYBPM_KAFKA_CON_004:  "ssl.truststore.location = Base64_to_File:4kjh32b454/534b256k45b64l3b21434=="

И тогда в объект prop прилетит параметр с ключом ssl.truststore.location и значением некого абсолютного пути к файлу, содержимое которого будет соответствовать указанному Вами коду Base64.

Если у Вас есть доступ к серверу, то вы можете скопировать файл на сервер, например по пути:

/ssl/client.truststore.jks

И указать переменную окружения:

environment:
    MYBPM_KAFKA_CON_004:  "ssl.truststore.location = TXT:/ssl/client.truststore.jks"

Путь будет скопирован в объект prop как есть - один-к-одному.


MYBPM_MONGO_SERVERS, MYBPM_MONGO_DB, MYBPM_MONGO_USER, MYBPM_MONGO_PASS

Параметры доступа к кластеру MongoDB

Данные п.о. определяют параметры доступа к кластеру MongoDB. Основной п.о. является MYBPM_MONGO_SERVERS - в зависимости от её значение определяется, будут ли использоваться другие п.о.

Далее действуют следующие сокращения:

Если {servers} содержит подстроку '://', то для доступа к кластеру MongoDB используется только данное значение. Что в ней может лежать описано здесь: https://www.mongodb.com/docs/manual/reference/connection-string/

Если {servers} НЕ содержит подстроку '://', то строка доступа к кластеру определяется по следующей формуле:

Если {user} определено и НЕ пустое

mongodb://{user}:{pass}@{servers}/{db}

Если {user} НЕ определено или пустое

mongodb://{servers}/{db}

Притом "/{db}" добавляется только в том случае, если {db} определено и НЕ пустое


MYBPM_MONGO_FILES_SERVERS, MYBPM_MONGO_FILES_DB, MYBPM_MONGO_FILES_USER, MYBPM_MONGO_FILES_PASS

Параметры доступа к кластеру MongoDB для хранения файлов

Эти п.о. используются так же как и MYBPM_MONGO_[SERVERS,USER...], но для доступа к кластеру MongoDB, в котором хранятся файлы.

Если данные п.о. не заданны, то используются переменные MYBPM_MONGO_[SERVERS,USER...] для доступа к кластеру файлов. Т.е. в таком случае файлы хранятся там, же где и остальные данные.


MYBPM_SCHEDULER_OFF

Если эта переменна установлена в yes, то шедулер не запускается


MYBPM_CACHE_REDIS_HOST_PORT

В этой переменной нужно передать хост, порт, логин и пароль разделённые двоеточием, которые указывают на сервер redis. Он будет использоваться для кэширования. Если эта переменная окружения не указана, то будет использоваться внутренний кэш на основе библиотеки caffeine.

Переменная может содержать только хост, например:

192.168.11.23

В этом случае система будет обращаться по адресу 192.168.11.23 и порту 6379

Переменная может содержать хост и порт, разделённые двоеточием, например:

redis.super.host.kz:40110

В этом случае система будет обращаться по адресу redis.super.host.kz и порту 40110

Переменная может содержать хост, порт, логин и пароль, разделённые двоеточием, например:

redis.wood.com:34089:SharonStone:4gjv321gh5v:4v::23

В этом случае система будет обращаться по адресу redis.wood.com и порту 34089 под пользователем SharonStone и паролем: 4gjv321gh5v:4v::23


MYBPM_TOPIC_SUFFIX_REFRESH

Добавление суффикса топику REFRESH

Возможные значения:
строка из латинских символов, цифр

Данная переменная окружения позволяет добавить суффикс к топику REFRESH в кафке. Если эта переменная не определена или имеет пустое значение, то топик так и называется REFRESH. Но если эта переменная равна например:

MYBPM_TOPIC_SUFFIX_REFRESH = 123

То топик REFRESH не используется, а вместо него используется топик REFRESH123.


MYBPM_ELASTIC_NUMBER_OF_REPLICAS

Количество реплик, которые есть у каждого основного шарда в ElasticSearch.

Возможные значения:
целочисленные значения

Данная переменная окружения позволяет настройку количества репликационных шардов при создании основного шарда. Если эта переменная не указана, значение по умолчанию для данной переменной окружения является 1. Если значение данной переменной окружения является:

MYBPM_ELASTIC_NUMBER_OF_REPLICAS = 2

Тогда при создании индекса, будет создано 2 репликационных шарда для основного шарда.


MYBPM_SCRIPTS_SHOW_PANEL_WITH_OLD_ELEMENTS

Открывает панель с устаревшими компонентами в редакторе скриптов.

Возможные значения:
yes,no

Старыми компонентами в скриптах пользоваться нельзя, поэтому панель для них убрана. НО... если всё-таки сильно хочется, то можно установить эту переменную окружения со значением yes и панель станет доступна


MYBPM_SYSTEM_PROPERTY_...

Задаёт системные параметры внутри виртуальной Java-машины

Возможные значения:
<имя-параметра> = <ТИП> : <значение-параметра>

Где:

<имя-параметра> - это строка, которая будет передаваться в качестве имени системного параметра

<ТИП> - одно из значений: TXT или Base64_to_File

<значение-параметра> - строка, которая будет обрабатываться в зависимости от <ТИП>-а.

Если <ТИП> = TXT, то это обозначает, что <значение-параметра> будет переходить как есть - один-к-одному. Другими словами для значения:

<имя-параметра> = TXT : <значение-параметра>

Будет устанавливаться следующее значение системного параметра:

System.setProperty( "<имя-параметра>", "<значение-параметра>" );

Если <ТИП> = Base64_to_File, то это обозначает, что <значение-параметра> должно представлять собой код Base64. Система возьмёт этот код Base64, превратит его в последовательность байт, и сохранит её во временный файл. А в системный параметр будет передана строка с абсолютным путём к этому файлу. Другими словами для значения:

<имя-параметра> = Base64_to_File : jk34hb5hjg4352hv35vj==

Будет устанавливаться следующее значение системного параметра:

System.setProperty( "<имя-параметра>", "/абсолютный/путь/к/файлу/c/содержимым/jk34hb5hjg4352hv35vj==" );

С помощью переменных, которые начинаются на MYBPM_SYSTEM_PROPERTY_ можно передать системные параметры в виртуальную машину Java - по одному параметру за одну переменную окружения. Системные параметры внутри виртуальной машины доступны с помощью функции:

System.getProperty("system.param.key")

Например, если в docker compose указать переменные окружения:

environment:
  MYBPM_SYSTEM_PROPERTY_001: "some.key = TXT: some-value"
  MYBPM_SYSTEM_PROPERTY_002: "test.config = Base64_to_File: jhkb45hj3kB254BV/24hgV355=="

То внутри Java-машины можно будет вызвать:

System.getProperty("some.key"); 

И он вернёт строку: "some-value". А если вызвать:

System.getProperty("test.config"); 

То он вернёт путь к файлу, в котором лежат байты из Base64-кода: jhkb45hj3kB254BV/24hgV355==