ПЕРЕМЕННЫЕ ОКРУЖЕНИЯ

Параметры работы системы PLAN-R настраиваются с помощью переменных среды, в данном разделе приводится описание параметров, за которые они отвечают.

Подключение к базе данных

DB_URL - Содержит строку в формате URI для подключения к базе данных PostgreSQL.

# Подключение к базе данных
DB_URL=postgresql://planr:planr@postgres/planr

Подключение к брокеру сообщений

RABBIT_URL - Содержит строку в формате URI для подключения к брокеру сообщений RabbitMQ.

# Подключение к брокеру сообщений
RABBIT_URL=amqp://planr:planr@rabbitmq/planr

Подключение к кешу данных Redis

REDIS_PASSWORD - Пароль для аутентификации в redis

## пароль для подключения к Redis
REDIS_PASSWORD=redis_password

REDIS_URL - Содержит строку в формате URI для подключения к кешу данных Redis.

# Подключение к кешу данных Redis
REDIS_URL=redis://:${REDIS_PASSWORD}@redis:6379

Настройка сервиса FACT-R

FACTR_ENABLED - Логическая переменная позволяет включить или выключить использование сервиса FACT-R.

Допустимые значения:

  • true - включить сервис
  • false - выключить сервис (умолчанию)
# Включить сервис **FACT-R**.
FACTR_ENABLED=true

FACTR_SYSTEM_SITE - Строковая переменная в формате FQDN определяющая адрес на котором доступен сервис FACT-R.

# Адрес сервиса **FACT-R**.
FACTR_SYSTEM_SITE=factr.my-domain

PLANR_URL - Строковая переменная определяющая адрес или FQDN сервера на котором развернут сервис PLAN-R к которому, необходимо подключиться.

# адрес или fqdn сервера с planr к которому, необходимо подключиться (по умолчанию, https://plan-r.ru)
PLANR_URL=https://plan-r.ru

FACTR_CERT_PATH - Строковая переменная определяющая путь к сертификату в .pem формате (содержит сертификат и закрытый ключ). Необходима если включено SSL/TLS (PROXY_SSL_ENABLED=true).

# Путь к сертификату **FACT-R**.
FACTR_CERT_PATH=/etc/ssl/certs/factr.pem

FACTR_AUTH - Строковая переменная определяющая список доступных методов аутентификации для приложения FACT-R.

Список допустимых значений:

  • local - включить локальную аутентификацию (умолчанию);
  • ldap - включить аутентификацию с использованием LDAP;
  • openid - включить аутентификацию с использованием провайдера OpenId.

Внимание! Перед тем как использовать аутентификацию для PLAN-R убедитесь, что соответствующие методы аутентификации включены и настроены. См. Типы аутентификации.

# Доступные виды аутентификации для приложения FACT-R.
# Включить аутентификацию с использованием LDAP и OpenID.
FACTR_AUTH=ldap,openid

FACTR_URL - Строковая переменная содержащая адрес или FQDN хоста на котором развёрнут сервис FACTR

Типы аутентификации

LOCAL_AUTH_ENABLED - Логическая переменная позволяет включить или выключить локальную аутентификацию пользователей.

Допустимые значения:

  • true - локальная аутентификация включена (умолчанию);
  • false - локальная аутентификация выключена.
# включить локальную аутентификацию пользователей
LOCAL_AUTH_ENABLED=true

LDAP_AUTH_ENABLED - Логическая переменная позволяет включить или выключить аутентификацию пользователей с помощью LDAP (Active Directory).

Допустимые значения:

  • true - аутентификация включена
  • false - аутентификация выключена (умолчанию)
# Включить аутентификацию пользователей через LDAP (Active Directory).
LDAP_AUTH_ENABLED=true

KERBEROS_ENABLED - Логическая переменная позволяет включить или выключить аутентификацию пользователей с помощью Kerberos.

Допустимые значения:

  • true - аутентификация включена;
  • false - аутентификация выключена (умолчанию).
# Включить аутентификацию пользователей через Kerberos.
KERBEROS_ENABLED=true

KERBEROS_CONF_PATH - Путь к файлу конфигурации kr5.conf на сервере

## путь к конфигруации kerberos
KERBEROS_CONF_PATH=./krb5.conf

KERBEROS_KEYTAB_PATH - путь к сгенерированному keytab файлу на сервере

## путь к сгенерированому keytab файлу
KERBEROS_KEYTAB_PATH=./planr.keytab

KERBEROS_LOG_LEVEL - включение логов kerberos

# включение логов kerberos
# KERBEROS_LOG_LEVEL=debug

SYSTEM_SITE - Строковая переменная содержащая адрес или FQDN хоста на котором развёрнуты сервисы PLAN-R

## FQDN хоста на котором запущены сервисы PLAN-R.
SYSTEM_SITE=localhost

API_KEY_AUTH_ENABLED - Логическая переменная позволяет включить или выключить аутентификацию с использованием токенов, используется для доступа сторонних приложений.

Допустимые значения:

  • true - аутентификация включена
  • false - аутентификация выключена (умолчанию)
# Включить аутентификацию с использованием токенов.
API_KEY_AUTH_ENABLED=true

OpenID

Заполните значения переменных среды, отвечающих за настройку параметров аутентификации с использованием протокола OpenID, для подключения данного типа аутентификации.
Существует два набора переменных, отвечающих за аутентификацию с использованием OpenID: одни отвечают за общую настройку Веб-клиента, другие с префиксом ADMIN отвечают за настройку Веб-консоли администрирования. Значение переменных с префиксом ADMIN перекрывают значения общих переменных.

Значения переменных указаны на примере SSO Keycloak.

# Область аутентификации клиента.
OPENID_ISSUER=https://OIDC.DOMAIN.COM/realms/REALMNAME

# Точка входа аутентификации.
OPENID_AUTHORIZATIONURL=https://OIDC.DOMAIN.COM/realms/REALMNAME/protocol/openid-connect/auth

# Точка входа для получения пользовательского токена.
OPENID_TOKENURL=https://OIDC.DOMAIN.COM/realms/REALMNAME/protocol/openid-connect/token

# Точка входа для получения информации о пользователе.
OPENID_USERINFOURL=https://OIDC.DOMAIN.COM/realms/REALMNAME/protocol/openid-connect/userinfo

# Наименование Jwt claim из которого получаем логин пользователя.
OPENID_USERNAMEFIELD=email

# Дополнительные scope для запроса информации о пользователе.
OPENID_SCOPES=phone,email

# Идентификатор клиента.
OPENID_CLIENTID=planrclient

# Секретный ключ клиента.
OPENID_CLIENTSECRET=lzkfjhFGwo3587hna3fh

# URL-адрес обратного вызова, вызывается после процесса завершения процесса аутентификации.
OPENID_CALLBACKURL=http://localhost:41000/api/v1/auth/openid

# URL на который будет осуществлено перенаправление после выхода пользователя из системы.
# {id_token_hint} - будет заменен на idtoken пользователя.
# {post_logout_redirect_uri} - будет заменен на url, на который необходимо перейти после выхода пользователя из системы.
# Параметры опциональные.
OPENID_END_SESSION_URL=http://OIDC.DOMAIN.COM/realms/REALMNAME/protocol/openid-connect/logout?id_token_hint={id_token_hint}&post_logout_redirect_uri={post_logout_redirect_uri}

# Область аутентификации клиента.
ADMIN_OPENID_ISSUER=https://OIDC.DOMAIN.COM/realms/ADMINREALMNAME

# Точка входа аутентификации.
ADMIN_OPENID_AUTHORIZATIONURL=https://OIDC.DOMAIN.COM/realms/ADMINREALMNAME/protocol/openid-connect/auth

# Точка входа для получения пользовательского токена.
ADMIN_OPENID_TOKENURL=https://OIDC.DOMAIN.COM/realms/ADMINREALMNAME/protocol/openid-connect/token

# Точка входа для получения информации о пользователе.
ADMIN_OPENID_USERINFOURL=https://OIDC.DOMAIN.COM/realms/ADMINREALMNAME/protocol/openid-connect/userinfo

# Наименование Jwt claim из которого получаем логин пользователя.
ADMIN_OPENID_USERNAMEFIELD=email

# Дополнительные scope для запроса информации о пользователе.
ADMIN_OPENID_SCOPES=phone,email

# Идентификатор клиента.
ADMIN_OPENID_CLIENTID=planradmin

# Секретный ключ клиента.
ADMIN_OPENID_CLIENTSECRET=lzkfjhFGwo3587hju3fh

# URL-адрес обратного вызова, вызывается после процесса завершения процесса аутентификации.
ADMIN_OPENID_CALLBACKURL=http://localhost:41000/admin/api/v1/auth/openid

# URL, на который будет осуществлено перенаправление после выхода администратора из системы.
# {id_token_hint} - будет заменен на idtoken администратора.
# {post_logout_redirect_uri} - будет заменен на url, на который необходимо перейти после выхода администратора из системы.
# Параметры опциональные.
ADMIN_OPENID_END_SESSION_URL=http://OIDC.DOMAIN.COM/realms/ADMINREALMNAME/protocol/openid-connect/logout?id_token_hint={id_token_hint}&post_logout_redirect_uri={post_logout_redirect_uri}

Настройка прокси

# Внешний порт сервера для доступа к основному приложению Plan-r
PROXY_PORT=80

# Внешний порт сервера для доступа к консоли администратора
PROXY_ADMIN_PORT=81

# Внешний порт сервера для доступа к приложению Plan-r по HTTPS
PROXY_SSL_PORT=443

# Включение/ выключение доступа по HTTPS, PROXY_CERT_PATH должна содержать путь к сертификату, который содержит в себе сертификат
# и закрытый ключ. Если используется внешний прокси сервер, рекомендуется выключить данную настройку
PROXY_SSL_ENABLED=false

# Путь к сертификату(если, PROXY_SSL_ENABLED=true)
PROXY_CERT_PATH=/ssl/cert.pem

# Включение/ выключение доступа к api FQDN/public-api
PROXY_API_ENABLED=true

# Включение/ выключение доступа к swagger FQDN/swagger
PROXY_SWAGGER_ENABLED=true

# Устанавливает максимальное время ожидания активности со стороны клиента.
PROXY_TIMEOUT_CLIENT=60

# Устанавливает максимальное время ожидания при попытке установить соединение с сервером (бэкэндом)
PROXY_TIMEOUT_CONNECT=120

# Задает максимальное время ожидания активности со стороны сервера (бэкэнда)
PROXY_TIMEOUT_SERVER=120

# Устанавливает максимальное время ожидания данных в туннельных соединениях, таких как TCP-туннели
# (например, при использовании HTTPS или WebSocket)
PROXY_TIMEOUT_TUNNEL=3600

# Устанавливает максимальное время, в течение которого сервер может поддерживать открытое соединение
# с клиентом в режиме HTTP Keep-Alive
PROXY_TIMEOUT_HTTP_KEEP_ALIVE=1

# Задает максимальное время ожидания для получения полного HTTP-запроса от клиента
PROXY_TIMEOUT_HTTP_REQUEST=120

# Устанавливает максимальное время, в течение которого запрос может находиться в очереди на обработку
PROXY_TIMEOUT_QUEUE=30

# Используется для установки времени, в течение которого HAProxy будет задерживать соединения с клиентами,
# которые ведут себя неправильно или подозрительно, например, при попытках DoS-атаки
PROXY_TIMEOUT_TARPIT=60

Доверенные сертификаты сервисов

NODE_EXTRA_CA_CERTS - строковая переменная используется для добавления дополнительных доверенных сертификатов (CA) для сервисов. Содержит путь к файлу корневого сертификата на хосте в формате .pem

## путь к корневому сертификату на хосте
NODE_EXTRA_CA_CERTS=/etc/ssl/certs/ca.pem

Более подробную информацию о добавлении доверенных корневых сертификатов сервисов, можно получить в разделе документации «Добавление корневого сертификата в систему PLAN-R»

NODE_TLS_REJECT_UNAUTHORIZED - переменная окружения, отключающая проверку сертификатов, между сервисами.

## отключение проверки подлинности сертификатов, между сервисами
NODE_TLS_REJECT_UNAUTHORIZED=0

Шифрация и подпись данных

Конфиденциальные данные, сохраняемые системой в базе данных или в кеш данных, шифруются по алгоритму AES-512. Шифруются:

  • пароли пользователей;
  • настройки подключения к почтовым серверам;
  • настройки подключения к хранилищам файлов;
  • настройки подключения к Active Directory.

SECRET_SALT - Инициализирующий вектор в виде строки, передаваемый в алгоритм шифрации.

SECRET_SALT=VS29L0duMK0DTf6wrqfOvg2h0nHOsjBWJdumehfI

SECRET_KEY - Ключ в виде строки, передаваемый в алгоритм шифрации.

SECRET_KEY=0nveAxy5GiIiFFDPstfe7jFlCnb0DL6zJoAJCTy9

Внимание! Переменные SECRET_SALT и SECRET_KEY должны быть изменены перед первым запуском системы и не должны изменяться в процессе её использования.

JWT_SECRET - Строка для подписи JWT токена аутентификации.

JWT_SECRET=0ehUQ3RXFiq19827BywlAt8ZifiVE1Dr

Внимание! Переменная JWT_SECRET должна быть изменена перед первым запуском системы.

JWT_EXPIRESIN - Время жизни JWT токена аутентификации. По умолчанию 7 дней.

JWT_EXPIRESIN=7d

FILE_TOKEN_SECRET - Строка для подписи JWT токена для выгрузки файлов из системы. В целях безопасности, чтобы пользователь мог выгрузить только те файлы, которые он запросил в рамках какой-либо операции, например при экспорте графика, ему отправляется токен для выгрузки файла. По полученному токену в рамках его жизни, указанному в переменной FILE_TOKEN_EXPIRESIN пользователь может скачать созданный файл.

FILE_TOKEN_SECRET=qxowf545VL7hivuDL2XF5TdQz8pAp95o

Внимание! Переменная FILE_TOKEN_SECRET должна быть изменена перед первым запуском системы.

FILE_TOKEN_EXPIRESIN - Время жизни JWT токена для выгрузки файлов из системы. По умолчанию 1 день.

FILE_TOKEN_EXPIRESIN=1d

Таймаут использования системы

USER_AFK_TIME - Переменная позволяет настроить автоматический выход пользователя из Веб-клиента и Веб-консоли администрирования в том случае, если пользователь бездействует. Время простоя пользователя указывается в минутах. Если значение не указано или равно 0, то время простоя пользователя учитываться не будет. Значение по умолчанию равно 0.

# Таймаут использования системы
USER_AFK_TIME=15

Логирование

LOGS_EXTEND - Логическая переменная позволяет включить в логирование событий системы дополнительные поля используемые внутри команд. Значение по умолчанию равно false.

Внимание! включение данного функционала приводит к значительному возрастанию логируемой информации, рекомендуется включать только для целей отладки системы.

# Включить дополнительную информацию в логи событий.
LOGS_EXTEND=true

LOGS_DEVICE_VENDOR - Строковая переменная определяющая производителя приложения. Может быть полезна для добавления информации о производителе.

# Включить информацию о производителе в логи событий.
LOGS_DEVICE_VENDOR=dppm

LOGS_DEVICE_PRODUCT - Строковая переменная определяющая наименование приложения. Может быть полезна для добавления информации о продукте.

# Включить информацию о наименование приложения в логи событий.
LOGS_DEVICE_PRODUCT=planr

LOGS_DEVICE_VERSION - Строковая переменная определяющая версию приложения, по умолчанию равна версии сборки приложения. Может быть полезна для добавления информации о версии приложения.

# Включить информацию о версии приложения в логи событий.
LOGS_DEVICE_VERSION=602.0

LOGS_SECURITY_SPLIT - Логическая переменная позволяющая включить вывод логов информационной безопасности (ИБ) в отдельный поток. К логам ИБ относятся логи команд управления пользователями, ролями пользователей, доступом к системе и интеграцией с ActiveDirectory. Логи будут перенаправляться на удаленный сервер по протоколу UDP или TCP. Значение по умолчанию false.

# Включить вывод логов информационной безопасности в отдельный поток.
LOGS_SECURITY_SPLIT=true

LOGS_SECURITY_SERVER_ADDRESS - Строковая переменная для указания IP адреса или FQDN сервера сбора логов ИБ.

# Указать адрес сервера сбора логов.
LOGS_SECURITY_SERVER_ADDRESS=127.0.0.1

LOGS_SECURITY_SERVER_PORT - Числовая переменная для указания порта сервера сбора логов ИБ. Значение по умолчанию 514.

# Указать порт сервера сбора логов.
LOGS_SECURITY_SERVER_PORT=514

LOGS_SECURITY_SERVER_PROTOCOL - Строковая переменная для указания сетевого протокола для передачи логов ИБ. Можно указать UDP или TCP протокол. Значение по умолчанию udp.

# Указать сетевой протокол передачи логов.
LOGS_SECURITY_SERVER_PROTOCOL=udp

LOGS_SECURITY_SERVER_TCP_RECONNECT - Логическая переменная позволяющая включить автоматическое переподключение к серверу логов для протокола TCP. Значение по умолчанию false.

# Включить автоматическое переподключение к серверу логов для протокола TCP.
LOGS_SECURITY_SERVER_TCP_RECONNECT=true

LOGS_SECURITY_ADD_DEVICE_INFO - Логическая переменная позволяющая включить добавление в логи ИБ, информации о производителе которая указана в переменных среды LOGS_DEVICE_*. Значение по умолчанию false.

# Включить добавление в логи ИБ информации о производителе.
LOGS_SECURITY_ADD_DEVICE_INFO=true

LOGS_SECURITY_CEF_ENABLED - Логическая переменная позволяющая включить вывод логов ИБ в формате CEF согласно стандарту определенному в Implementing ArcSight Common Event Format (CEF) - Version 26. Значение по умолчанию false.

# Включить вывод логов безопасности в формате CEF
LOGS_SECURITY_CEF_ENABLED=true

LOGS_SECURITY_CEF_DATE_FORMAT - Строковая переменная определяющая формат вывода даты в формате CEF. Значение по умолчанию MMM DD YYYY HH:mm:ss.SSS zzz.

Рекомендованные форматы даты согласно документации разработчика формата CEF:

  • MMM dd HH:mm:ss.SSS zzz
  • MMM dd HH:mm:sss.SSS
  • MMM dd HH:mm:ss zzz
  • MMM dd HH:mm:ss
  • MMM dd yyyy HH:mm:ss.SSS zzz
  • MMM dd yyyy HH:mm:ss.SSS
  • MMM dd yyyy HH:mm:ss zzz
  • MMM dd yyyy HH:mm:ss
# Установить формат даты логов безопасности в формате CEF
LOGS_SECURITY_CEF_DATE_FORMAT=MMM DD YYYY HH:mm:ss.SSS z

Описание доступных профилей

COMPOSE_PROFILES - переменная, которая используется для контроля запуска нужных сервисов.

## Активированный профиль
COMPOSE_PROFILES=all

Например, если планируется использовать внешнюю базу данных postgres, то её профиль необходимо исключить, тогда переменная примет следующие значения:

## Активированный профиль
COMPOSE_PROFILES=main,redis,rabbitmq,logging

Допустимые значения:

  • all - Старт приложения со всеми сервисами входящими в комплект поставки в полной конфигурации
  • main - Старт только основного приложения PLAN-R, без внешних сервисов, в этом случаи нужно обеспечить подключение приложения к необходимым сервисам postgresql, redis, rabbitmq и/или системе логирования.
  • postgres - Профиль для старта базы данных PostgreSQL из комплекта поставки.
  • rabbitmq - Профиль для старта брокера сообщений RabbitMQ из комплекта поставки.
  • redis - Профиль для старта кеша данных Redis из комплекта поставки.
  • logging - Старт системы логирования (Fluent-bit -> Loki -> Grafana).

Масштабирование приложения

При необходимости для улучшения производительности и быстродействия системы, количество реплик контейнеров, можно увеличивать.

# настройка количества реплик контейнеров
MAIN_REPLICA=1
ADMIN_REPLICA=1

DOCS_REPLICA=1
API_REPLICA=1
KERBEROS_REPLICA=1

PLANR_WORKER_REPLICA=8
IMPEX_WORKER_REPLICA=8
SCHEDULE_WORKER_REPLICA=1
NOTICE_WORKER_REPLICA=1
STORAGE_WORKER_REPLICA=1
COSTR_WORKER_REPLICA=2
CSHARP_WORKER_REPLICA=1

Версия приложения

TAG - переменная, которая задаёт версию используемого приложения Plan-R

TAG=602.5

604.0