Приложение 4. Конфигурационный файл app.properties
Параметры конфигурационного файла app.properties
Для удобства ряд системных настроек AppSec.Hub вынесен в конфигурационный файл app.properties. Если рекомендуемая директория установки AppSec.Hub не изменена, данный файл располагается здесь /opt/apphub/config/hub-core/.
Важно
После изменения параметров в файле app.properties необходимо выполнить рестарт системы, см. разделы «Остановка AppSec.Hub» и «Запуск AppSec.Hub».
Параметр | Описание | Значение по умолчанию |
---|---|---|
db.hub.driver |
Класс драйвера для БД | org.postgresql.Driver |
db.hub.url |
Адрес экземпляра PostgreSQL | jdbc:postgresql://$DB_HOST:$DB_PORT/$DB_NAME |
db.hub.schema |
Основная схема БД, в которой содержится оперативная информация о работе AppSec.Hub | hub |
db.hub.username |
Имя пользователя с доступом к основной схеме БД | hubapp |
db.hub.password |
Пароль пользователя с доступом к основной схеме БД | <Password> |
db.poolSize |
Размер пула соединений с БД | 10 |
encrypt.key |
Ключ шифрования паролей, используемых для доступа к инструментам ИБ. Размер ключа — 24 символа | <Random key> |
hub.app.url |
Внешний URL экземпляра AppSec.Hub | https://hub.your.company.com |
hub.dw.import.on.startup |
Автоматический запуск импорта данных в схему BI при старте приложения | false |
dw.scheduled Import.cron.expression |
Cron-выражение, задающее период импорта security issues | 0 0 1,22 * * ? |
hub.ci.jenkins. poll.period |
Промежуток в миллисекундах между обращениями AppSec.Hub к Jenkins | 10000 |
hub.ci.jenkins. poll.max.tries |
Количество обращений AppSec.Hub к Jenkins | 50 |
hub.avc.trai- ning.schedule |
Cron-выражение, задающее период тренировки модели AVC | 0 0 2 * * ? |
export.docker. repository.url- creation-strategy |
Cтратегия создания URL для репозиториев Docker. С использованием имени репозитория или порта | repositoryName | port |
hub.jira.users.maxResults |
Максимальное количество пользователей Jira | 1000 |
hub.jira.issues.maxResults |
Максимальное количество тикетов для экспорта |
1000 |
hub.config.importIssue ThreadPoolSize |
Размер пула потоков для импорта уязвимостей в AppSec.Hub | 8 |
hub.config.import ConfigThreadPoolSize |
Размер пула потоков для экспорта уязвимостей из инструментов | 8 |
hub.config.dwImport ThreadPoolSize |
Количество потоков импорта данных в Data Warehouse | 6 |
hub.config.orchestration ThreadPoolSize |
Количество потоков для работы с системами отслеживания дефектов | 16 |
hub.config.notification ThreadPoolSize |
Количество потоков для работы с рассылаемыми уведомлениями | 4 |
hub.defect.enable DefectSynchronization |
Включение/выключение автоматической синхронизации дефектов | false (выключено) |
hub.config.defect Synchronization ThreadPoolSize |
Общее количество одновременно запускаемых потоков синхронизации дефектов. Учитываются как потоки, запущенные «вручную», так и автоматически | 4 |
hub.defect.defect SynchronizationPeriod DurationCronExpression |
Cron-выражение, задающее период синхронизации | 0 0 0/1 * * ? (каждый час) |
hub.defect.defect SynchronizationPeriod |
Количество периодов синхронизации, заданных предыдущим параметром — общий период синхронизации определяется произведением значений двух последних параметров. Например, если значение параметра defect.defect SynchronizationPeriod DurationCronExpression оставить по умолчанию (1 час), а для параметра defect.defect SynchronizationPeriod задать значение «2», автоматическая синхронизация будет осуществляться каждые два часа |
1 |
hub.scan.check. cron.expression |
Cron-выражение, задающее период опроса статуса сборок в CI-инструментах и, тем самым, частоту обновления данных о статусе сканирования в системе | */30 * * * * * (30 секунд) |
hub.jira.description.length |
Максимальная длина описания дефекта, экспортируемого в Jira | 32767 |
hub.config.scanConfigImport IssueThreadPoolQueueCapacity |
Размер очереди задач импорта | 200 |
hub.grpc.max_inbound_message_size |
Максимальный размер сообщения, допустимый для приема по каналу gRPC | 10485760 |
management.metrics.enable.all |
Включение сбора метрик сервиса hub-core | true |
hub.config.gettingSourceCode. maxFileSizeInMegabytes |
Ограничение в мегабайтах максимального размера файла в разделе Path для SAST уязвимостей | 8 |
hub.jira.queriesPerSecond |
Ограничение количества запросов в секунду к Jira | 20.0 |
hub.jira.users.cache.maxSize |
Ограничение размера кэша пользователей из Jira | 100 |
hub.jira.users.cache.expiration.min |
Ограничение в минутах времени жизни кэша пользователей из Jira | 7200 |
hub.config.login.attemptsBeforeBlocking |
Количество неуспешных попыток входа пользователя до блокировки | 5 |
hub.config.login.blockingTimeInMinutes |
Время блокировки пользователя после достижения максимального количества неудачных попыток входа (в минутах) | 30 |
hub.ci.jenkins.pipelineTimeoutInMinutes |
Лимит времени на сканирование security pipeline в hub-engine (в минутах) | 10080 |
hub.http.client.tls.protocols |
Протоколы, используемые для соединения с инструментами. Значения могут быть выбраны в любой комбинации | TLSv1,TLSv1.1,TLSv1.2, TLSv1.3 |
hub.http.client.timeout.request |
Таймаут в настройках HTTP клиента | 60000 |
hub.http.client.timeout.read |
Таймаут в настройках HTTP клиента | 60000 |
hub.http.client.timeout.connect |
Таймаут в настройках HTTP клиента | 5000 |
hub.http.client.timeout.handshake |
Таймаут в настройках HTTP клиента | 10000 |
hub.scan.config.file.path |
Путь смонтированного тома в контейнере | /opt/zapfiles |
hub.issue.maxInsertSize |
Максимальное количество проблем безопасности в одном запросе в БД | 1000 |
hub.config.bulkIssuesThreadPoolQueueCapacity |
Размер очереди задач на обновление статусов уязвимостей по фильтру | 100 |
Пример конфигурационного файла app.properties
db.hub.driver=org.postgresql.Driver
db.hub.url=jdbc:postgresql://<pgsql_url>:<pgsql_port>/<hub_db_name>
db.hub.schema=hub
db.hub.username=hubapp
db.hub.password=<hub_app_password>
report.product.name=AppSec.Hub
report.issue.pdf.template=/usr/local/tomcat/webapps/hub/WEB-INF/classes/resources/issue-report-pdf-template.xsl
report.logo.path=/usr/local/tomcat/webapps/hub/WEB-INF/classes/resources/logo.svg
report.logo.path.png=/usr/local/tomcat/webapps/hub/WEB-INF/classes/resources/logo.png
db.poolSize=10
encrypt.key=<HUBAPP-ENC-KEY>
hub.app.url=https://appsechub.company.ru
hub.service.url=http://hub-core
hub.dw.import.on.startup=false
dw.scheduledImport.cron.expression = 0 0 1,22 * * ?
hub.ci.jenkins.poll.period=${ci.jenkins.poll.period:10000}
hub.ci.jenkins.poll.max.tries=${ci.jenkins.poll.max.tries:50}
hub.avc.training.schedule = 0 0 2 * * ?
export.docker.repository.url-creation-strategy=port
hub.jira.users.maxResults=${jira.users.maxResults:1000}
hub.config.importIssueThreadPoolSize=${config.importIssueThreadPoolSize:8}
hub.config.importConfigThreadPoolSize=${config.importConfigThreadPoolSize:8}
hub.config.defectSynchronizationThreadPoolSize=${config.defectSynchronizationThreadPoolSize:4}
hub.defect.defectSynchronizationPeriod=${defect.defectSynchronizationPeriod:1}
hub.defect.enableDefectSynchronization=${defect.enableDefectSynchronization:false}
hub.defect.defectSynchronizationPeriodDurationCronExpression=${defect.defectSynchronizationPeriodDurationCronExpression:0 0 0/1 * * ?}
hub.config.dwImportThreadPoolSize=${config.dwImportThreadPoolSize:6}
hub.config.orchestrationThreadPoolSize=${config.orchestrationThreadPoolSize:16}
hub.config.notificationThreadPoolSize=${config.notificationThreadPoolSize:4}
hub.jira.issues.maxResults=${jira.issues.maxResults:1000}
hub.scan.check.cron.expression=${scan.check.cron.expression:*/30 * * * * *}
hub.consul.host=http://consul:8500
hub.consul.token=<см. раздел «Установка, запуск и резервное копирование»>
hub.grpc.port=50051
hub.jira.description.length=300
hub.config.scanConfigImportIssueThreadPoolQueueCapacity=${config.scanConfigImportIssueThreadPoolQueueCapacity:200}
hub.grpc.max_inbound_message_size=${hub.grpc.max.inbound.message.size:10485760}
management.metrics.enable.all=${hub.core.management.metrics.enable.all:true}
hub.config.gettingSourceCode.maxFileSizeInMegabytes=${config.gettingSourceCode.maxFileSizeInMegabytes:8}
hub.jira.queriesPerSecond=${jira.queriesPerSecond:20.0}
hub.jira.users.cache.maxSize=${jira.users.cache.maxSize:100}
hub.jira.users.cache.expiration.min=${jira.users.cache.expiration.min:7200}
hub.config.login.attemptsBeforeBlocking=${config.login.attemptsBeforeBlocking:5}
hub.config.login.blockingTimeInMinutes=${config.login.blockingTimeInMinutes:30}
hub.ci.jenkins.pipelineTimeoutInMinutes=${ci.jenkins.pipelineTimeoutInMinutes:10080}
hub.http.client.tls.protocols=${http.client.tls.protocols:TLSv1,TLSv1.1,TLSv1.2,TLSv1.3}
hub.http.client.timeout.request=${http.client.timeout.request:60000}
hub.http.client.timeout.read=${http.client.timeout.read:60000}
hub.http.client.timeout.connect=${http.client.timeout.connect:5000}
hub.http.client.timeout.handshake=${http.client.timeout.handshake:10000}
hub.scan.config.file.path=/opt/zapfiles
hub.issue.maxInsertSize=${hub.core.issue.maxInsertSize:1000}
hub.config.bulkIssuesThreadPoolQueueCapacity=${config.bulkIssuesThreadPoolQueueCapacity:100}