ПЕРЕМЕННЫЕ ОКРУЖЕНИЯ
Параметры работы системы 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