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

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

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

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

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

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

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

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

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

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

# Подключение к кешу данных Redis
REDIS_URL=redis://127.0.0.1

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

Конфиденциальные данные, сохраняемые системой в базе данных или в кеш данных, шифруются по алгоритму 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

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

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

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}

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

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

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

Логирование

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

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

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

# Внешний порт сервера для доступа к основному приложению 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

Настройка сервиса 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 сервера на котором развернут клиентский API PLAN-R.

# Адрес клиентского API **PLAN-R**.
PLANR_URL=https://plan-r.my-domain

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

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

509.1-59ba7826