Интеграционный API
Интеграционный API используется для интеграции AppSec.Hub с различными инструментами и приложениями.
Описание REST API системы доступно в Swagger по адресу: <hub-url>/hub/rest/swagger-ui/index.html
.
Запуск импорта результатов сканирования
Данный программный интерфейс реализует загрузку результатов сканирования из инструмента (например, Checkmarx) в AppSec.Hub. При этом, на стороне AppSec.Hub создаются все необходимые объекты и связи (приложение, кодовая база, артефакт, пайплайн и т. д.), запускается импорт уязвимостей, осуществляется проверка прохождения QG. Однако само сканирование НЕ ВЫПОЛНЯЕТСЯ.
Примечание
Данный сервис только запускает процесс импорта, который выполняется в асинхронном режиме. Проверка статуса запуска проверяется с помощью сервиса Получение статуса сканирования.
Запрос
POST /import/results
Примечание
Данный эндпоинт является устаревшим (deprecated) и будет удалён в декабре 2025 года.
Параметры
Примечание
Обязательные параметры отмечены *.
Параметр | Тип | Описание |
---|---|---|
application * |
Object | Идентифицирует объект приложения application |
unit |
String | Связывает артефакт/кодовую базу/экземпляр приложения со структурной единицей. Если указанная структурная единица отсутствует, она создается |
source * |
List<Object> | Перечень исходных объектов source (одного и того же типа), которые были просканированы |
scans * |
List<Object> | Перечень объектов сканирования scan, содержащих результаты (уязвимости) для импорта |
qualityGateCode |
String | Код идентификации объекта Quality Gate (QG) в AppSec.Hub. При отсутствии используется QG из настроек пайплайна |
scanInitiator |
Object | Идентифицирует объект Scan initiator |
releaseObject |
Object | Идентифицирует объект Release object |
Application
Параметр | Тип | Описание |
---|---|---|
code * |
String | Код приложения в БД AppSec.Hub |
externalId |
String | Внешний ID нового приложения. Этот параметр используется при онбординге и впоследствии может игнорироваться |
Source
Codebase
Параметр | Тип | Описание |
---|---|---|
type * |
String | Тип анализируемого объекта Значение: codebase |
name |
String | Имя кодовой базы в AppSec.Hub. При отсутствии генерируется имя на основе appcode , url и branch |
url * |
String | Внешний URL для клонирования/чекаута репозитория кодовой базы |
checkoutPath * |
String | Директория расположения кодовой базы |
branch |
String | Ветвь или тег репозитория для основной кодовой базы. Значение по умолчанию: master |
commit |
String | Ветвь или тег репозитория для основной кодовой базы. Значение по умолчанию: master |
buildTool |
String | Инструмент сборки кодовой базы. Доступные значения: maven , gradle , nuget , npm , pip , nap Значение по умолчанию: nap |
branchFilter |
String | Фильтр сканируемых ветвей. Применяется для основной и дополнительных кодовых баз. Значение по умолчанию: аналогично параметру ––branch |
Artifact
Параметр | Тип | Описание |
---|---|---|
artifact * |
String | Параметры артефакта<adtifact-url> ;<artifact-name> ;Имя артефакта в AppSec.Hub |
type * |
String | Тип сканируемого объекта Значение: artifact |
Instance
Параметр | Тип | Описание |
---|---|---|
type * |
String | Тип сканируемого объекта Значение: instance |
name |
String | Имя инстанса в AppSec.Hub. При отсутствии генерируется на основе appcode и url |
url * |
String | URL установленного приложения |
Scan
Каждый объект представлен в одном из следующих форматов.
Checkmarx
Параметр | Тип | Описание |
---|---|---|
url * |
String | URL инструмента Checkmarx |
product * |
String | Идентификатор инструмента сканирования, который содержит импортируемые уязвимости Значение: checkmarx |
cxProject * |
String | Имя проекта в Checkmarx |
cxTeam |
String | Имя команды Checkmarx Значение по умолчанию: CxServer |
cxScanId |
String | ID сканирования в проекте Checkmarx. При отсутствии импортируются результаты последнего сканирования |
AppSec.Track
Параметр | Тип | Описание |
---|---|---|
url * |
String | URL инструмента AppSec.Track |
product * |
String | Идентификатор инструмента сканирования, который содержит импортируемые уязвимости Значение: appsec-track |
apptrackTeam * |
String | Имя команды AppSec.Track |
apptrackApp * |
String | Имя приложения AppSec.Track |
apptrackScanGuid * |
String | ID отчета приложения AppSec.Track |
Стингрей
Параметр | Тип | Описание |
---|---|---|
url * |
String | URL инструмента Стингрей |
product * |
String | Идентификатор инструмента сканирования Значение: stingray |
projectName ИЛИ scanId * |
String | Необходимо указать: - или projectName , если импортируется последнее сканирование в проекте- или scanId , если импортируется конкретный скан |
Scan initiator
Параметр | Тип | Описание |
---|---|---|
initiator |
String | Информация об инициаторе сканирования, например ссылка на задачу сканирования в TeamCity |
environment |
String | Рабочая среда инициатора сканирования |
Release object
Параметр | Тип | Описание |
---|---|---|
url |
String | URL-адрес артефакта (в менеджере репозиториев), который рассматривается как релизный объект |
Примеры
Checkmarx
{
"application": {
"code": "09022021_cli",
"externalId": "c361b656-fb8f-11eb-9a03-0242ac130003"
},
"unit": "core",
"source": [
{
"type": "codebase",
"name": "java-web-project-master",
"url": "http://gitlab.service.company.com/test/java-web-project",
"checkoutPath": "/",
"branch": "master",
"buildTool": "maven"
}
],
"scans": [
{
"url": "https://cx.dev.company.com",
"product": "checkmarx",
"cxProject": "kgr_19082021_2_-master_1",
"cxTeam": "/CxServer/asdfsadfASDFASDF/kgr_19082021_2"
}
],
"qualityGateCode": "No_Critical",
"scanInitiator": {
"initiator": "https://teamcity.your.company.com/buildConfiguration/Dvja_SecurityChecks/59863",
"environment": "{ \"ci\": {\"type\": \"Teamcity\", \"url\": \"https://teamcity.your.company.com\"}, \"trigger\": {\"type\": \"dependency\", \"link\": \"https://teamcity.your.company.com/buildConfiguration/Dvja_SecurityChecks/59863\"}"
},
"releaseObject": {
"url": "https://nexus.your.company.com/repository/docker-private/v2/java-web-project/manifests/1.17"
}
}
Checkmarx (несколько кодовых баз)
{
"application": {
"code": "09022021_cli",
"externalId": "c361b656-fb8f-11eb-9a03-0242ac130003"
},
"unit": "core",
"source": [
{
"type": "codebase",
"name": "java-web-project-master",
"url": "http://gitlab.service.company.com/test/java-web-project.git",
"checkoutPath": "/",
"branch": "master",
"buildTool": "maven"
},
{
"type": "codebase",
"name": "java-web-config-master",
"url": "http://gitlab.service.company.com/test/java-web-config.git",
"checkoutPath": "/conf",
"branch": "master",
"buildTool": "N/A"
}
],
"scans": [
{
"url": "https://cx.dev.company.com",
"product": "checkmarx",
"cxProject": "kgr_19082021_2_-master_1",
"cxTeam": "/CxServer/asdfsadfASDFASDF/kgr_19082021_2"
}
],
"qualityGateCode": "No_Critical",
"scanInitiator": {
"initiator": "https://teamcity.your.company.com/buildConfiguration/Dvja_SecurityChecks/59863",
"environment": "{ \"ci\": {\"type\": \"Teamcity\", \"url\": \"https://teamcity.your.company.com\"}, \"trigger\": {\"type\": \"dependency\", \"link\": \"https://teamcity.your.company.com/buildConfiguration/Dvja_SecurityChecks/59863\"}"
},
"releaseObject": {
"url": "https://nexus.your.company.com/repository/docker-private/v2/java-web-project/manifests/1.17"
}
}
Стингрей
{
"application": {
"code": "App1"
},
"source": [
{
"type": "artifact",
"name": "Apk1",
"url": "https://docker.company.com/nginx/apk/auth/app-prod-debug.apk"
}
],
"scans": [
{
"url": "https://demo.stingray-mobile.ru",
"product": "mdast",
"projectName": "Project1"
}
]
}
Ответ
Body
Параметр | Тип | Описание |
---|---|---|
scanTaskId * |
Integer | Идентификатор сканирования |
status * |
String | Статус процесса Доступное значение: Import started |
Пример
{
"scanTaskId": "12345",
"status": "Import started"
}
Получение статуса сканирования
Выполняет проверку статуса задачи на сканирование.
Запрос
GET /scan/{scanTaskId}/status
Параметры
Параметр | Тип | Описание |
---|---|---|
scanTaskId * |
Integer | ID задачи на сканирование, полученный в результате Запуска импорта результатов сканирования |
Ответ
Body
Параметр | Тип | Описание |
---|---|---|
status * |
String | Статус процесса импорта Доступные значения: PENDING , IN_PROCESS , BROKEN , IMPORTING ,SUCCESS , FAILED , CANCELLED . |
details * |
String | Подробная информация о возвращаемом статусе |
qgCheckResult |
List | Подробная информация о статусе прохождения Quality Gate в разрезе каждой практики (SAST, SCA, DAST) в запрошенном пайплайне. Внимание: Необходим, если QG сконфигурирован, а статус сканирования SUCCESS или FAILED |
summary |
Object | Итоговая информация об импортированных уязвимостях. Внимание: Необходим, если статус SUCCESS или FAILED |
taggingHistoryRecord |
Object | Информация о NXRM-тегировании |
scanResultsUrl |
String | URL для UI-страницы, с фильтрацией по ID сканирования |
Quality Gate
Параметр | Тип | Описание |
---|---|---|
practice * |
String | Имя практики Доступные значения: SAST , SCA , DAST |
status * |
String | Статус прохождения QG Доступные значения: PASSED , FAILED , N/A |
violations |
List | Перечень условий, по которым не был пройден QG |
Summary
Параметр | Тип | Описание |
---|---|---|
new * |
Object | Детальная информация о новых уязвимостях |
repeated * |
Object | Детальная информация о повторяющихся уязвимостях |
fixed * |
Object | Детальная информация об исправленных уязвимостях |
total * |
Object | Детальная информация об общем количестве открытых дефектов (новые и повторяющиеся) |
Summary — детальная информация
Параметр | Тип | Описание |
---|---|---|
critical * |
Integer | Количество критических импортированных уязвимостей с критическим уровнем серьезности |
high * |
Integer | Количество импортированных уязвимостей с высоким уровнем серьезности |
medium * |
Integer | Количество импортированных уязвимостей со средним уровнем серьезности |
low * |
Integer | Количество импортированных уязвимостей с низким уровнем серьезности |
Тегирование
Параметр | Тип | Описание |
---|---|---|
status * |
String | Статус тегирования Возможные значения: SUCCESSFUL , FAILED |
details * |
String | Подробная информация о возвращенных статусах |
appliedTags |
List | Перечень примененных тегов в NXRM |
Пример
{
"status": "FAILED",
"details": "QG is not passed. Import is finished. One ore more QG checks are not passed",
"qgCheckResult": [{
"practice": "SAST",
"status": "N/A",
"violations": null
}, {
"practice": "SCA",
"status": "FAILED",
"violations": ["Number of ALL SCA Security issues with HIGH severity (15) exceeds the limit (0)", "Number of ALL SCA Security issues with CRITICAL severity (29) exceeds the limit (0)"]
}, {
"practice": "DAST",
"status": "N/A",
"violations": null
}
],
"summary": {
"new": {
"critical": 29,
"high": 15,
"medium": 6,
"low": 86
},
"repeated": {
"critical": 0,
"high": 0,
"medium": 0,
"low": 0
},
"fixed": {
"critical": 0,
"high": 0,
"medium": 0,
"low": 0
},
"total": {
"critical": 29,
"high": 15,
"medium": 6,
"low": 86
}
},
"scanResultsUrl": "https://hub.dev.company.com/#/appprofile/2905/issues?scanId=12374"
}
Запуск сканирования и загрузка результатов сканирования из инструмента
Данный программный интерфейс реализует следующую функциональность:
- Запуск сканирования кодовых баз.
- Запуск сканирования артефактов.
- Запуск сканирования инстансов.
- Загрузка результатов сканирования из инструмента (без запуска сканирования).
Запрос
POST /integration
Примечание
Обязательные параметры отмечены *.
Body
В теле запроса должен быть передан один из следующих объектов, в зависимости от типа запроса:
- Запрос на сканирование кодовой базы.
- Запрос на сканирование артефакта.
- Запрос на сканирование экземпляра приложения.
- Запрос на импорт уязвимостей.
Запрос на сканирование кодовой базы
Параметр | Тип | Описание |
---|---|---|
onboardingType * |
String | Тип запроса Значение: CODEBASE |
application * |
Object | Идентифицирует объект приложения application |
sources * |
List<Object> | Перечень исходных объектов source типа codebase , подлежащих сканированию |
unit |
Object | Структурная единица приложения unit (компонент, модуль или микросервис). Связывает артефакт/кодовую базу/экземпляр приложения со структурной единицей. Если указанная структурная единица отсутствует, она создается |
name |
String | Имя кодовой базы |
scanInitiator |
Object | Идентифицирует объект Scan initiator |
releaseObject |
Object | Идентифицирует объект Release object |
release |
String | Имя релиза |
linkedArtifactVersion |
String | Версия артефакта, связанного с целевой кодовой базой. Используется для тегирования артефактов |
gitlabNotificationRequest |
Object | Параметры уведомления GitLab |
Запрос на сканирование артефакта
Параметр | Тип | Описание |
---|---|---|
onboardingType * |
String | Тип запроса Значение: ARTIFACT |
application * |
Object | Идентифицирует объект приложения application |
sources * |
List<Object> | Перечень исходных объектов source типа artifact , подлежащих сканированию |
unit |
Object | Структурная единица приложения unit (компонент, модуль или микросервис). Связывает артефакт/кодовую базу/экземпляр приложения со структурной единицей. Если указанная структурная единица отсутствует, она создается |
scanInitiator |
Object | Идентифицирует объект Scan initiator |
releaseObject |
Object | Идентифицирует объект Release object |
release |
String | Имя релиза |
Запрос на сканирование экземпляра приложения
Параметр | Тип | Описание |
---|---|---|
onboardingType * |
String | Тип запроса Значение: INSTANSE |
application * |
Object | Идентифицирует объект приложения application |
sources * |
List<Object> | Перечень исходных объектов source типа instance , подлежащих сканированию |
name |
String | Имя экземпляра приложения. Если не указано - может быть сгенерировано во время онбординга с помощью path + stage |
unit |
Object | Структурная единица приложения unit (компонент, модуль или микросервис). Связывает артефакт/кодовую базу/экземпляр приложения со структурной единицей. Если указанная структурная единица отсутствует, она создается |
scanInitiator |
Object | Идентифицирует объект Scan initiator |
releaseObject |
Object | Идентифицирует объект Release object |
release |
String | Имя релиза |
Запрос на импорт уязвимостей
Параметр | Тип | Описание |
---|---|---|
onboardingType * |
String | Тип запроса Значение: ISSUE_IMPORT |
application * |
Object | Идентифицирует объект приложения application |
sources * |
List<Object> | Перечень исходных объектов source (одного и того же типа), которые были просканированы и результаты которых необходимо импортировать |
scans * |
List<Object> | Перечень объектов сканирования scan, содержащих результаты (уязвимости) для импорта |
unit |
String | Структурная единица приложения unit (компонент, модуль или микросервис) |
scanInitiator |
Object | Идентифицирует объект Scan initiator |
releaseObject |
Object | Идентифицирует объект Release object |
release |
String | Имя релиза |
qualityGateCode |
String | Код идентификации объекта Quality Gate (QG) в AppSec.Hub. При отсутствии используется QG из настроек пайплайна |
Application
Параметр | Тип | Описание |
---|---|---|
code * |
String | Код приложения в БД AppSec.Hub |
externalId |
String | Внешний ID нового приложения. Этот параметр используется при онбординге и впоследствии может игнорироваться |
name |
String | Имя приложения |
Sources
Codebase
Параметр | Тип | Описание |
---|---|---|
type * |
String | Тип анализируемого объекта Значение: codebase |
name |
String | Имя кодовой базы в AppSec.Hub. При отсутствии генерируется имя на основе appcode , url и branch |
url * |
String | Внешний URL для клонирования/чекаута репозитория кодовой базы |
isMonorepo |
boolean | Флаг, указывающий, что сканируется конкретный путь репозитория в монорепозитории |
repositoryPath |
String | Обязательный параметр, если isMonorepo: true .Путь к директории в монорепозитории. Не должен быть указан, если isMonorepo: false |
checkoutPath * |
String | Директория расположения кодовой базы |
branch |
String | Ветвь или тег репозитория для основной кодовой базы. Значение по умолчанию: master |
commit |
String | Ветвь или тег репозитория для основной кодовой базы. Значение по умолчанию: master |
buildTool |
String | Инструмент сборки кодовой базы. Доступные значения: maven , gradle , nuget , npm , pip , nap Значение по умолчанию: maven |
branchFilter |
String | Фильтр сканируемых ветвей. Применяется для основной и дополнительных кодовых баз. Значение по умолчанию: аналогично параметру ––branch |
Artifact
Параметр | Тип | Описание |
---|---|---|
url * |
String | URL артефакта |
name * |
String | Имя артефакта в AppSec.Hub |
type * |
String | Тип сканируемого объекта Значение: artifact |
Instance
Параметр | Тип | Описание |
---|---|---|
type * |
String | Тип сканируемого объекта Значение: instance |
name |
String | Имя инстанса в AppSec.Hub. При отсутствии генерируется на основе appcode и url |
url * |
String | URL установленного приложения |
stage |
String | Стадия приложения |
apiPath |
String | Путь к спецификации API без URL хоста |
Unit
Параметр | Тип | Описание |
---|---|---|
name |
String | Имя структурной единицы |
code |
String | Код структурной единицы |
Scan initiator
Параметр | Тип | Описание |
---|---|---|
initiator |
String | Информация об инициаторе сканирования, например ссылка на задачу сканирования в TeamCity |
environment |
String | Рабочая среда инициатора сканирования |
Release object
Параметр | Тип | Описание |
---|---|---|
url |
String | URL-адрес артефакта (в менеджере репозиториев), который рассматривается как релизный объект |
Gitlab Notification Request
Параметр | Тип | Описание |
---|---|---|
projectId * |
String | ID проекта GitLab CI |
commitHash * |
String | Хеш коммита, запустившего сборку |
pipelineId |
String | ID пайплайна GitLab CI |
Scans
Каждый объект представлен в одном из следующих форматов.
Checkmarx
Параметр | Тип | Описание |
---|---|---|
url * |
String | URL инструмента Checkmarx |
product * |
String | Идентификатор инструмента сканирования, который содержит импортируемые уязвимости Значение: checkmarx |
cxProject * |
String | Имя проекта в Checkmarx |
cxTeam |
String | Имя команды Checkmarx Значение по умолчанию: CxServer |
cxScanId |
String | ID сканирования в проекте Checkmarx. При отсутствии импортируются результаты последнего сканирования |
AppSec.Track
Параметр | Тип | Описание |
---|---|---|
url * |
String | URL инструмента AppSec.Track |
product * |
String | Идентификатор инструмента сканирования, который содержит импортируемые уязвимости Значение: appsec-track |
team * |
String | Имя команды AppSec.Track |
application * |
String | Имя приложения AppSec.Track |
scanGuid * |
String | ID отчета приложения AppSec.Track |
Стингрей
Параметр | Тип | Описание |
---|---|---|
url * |
String | URL инструмента Стингрей |
product * |
String | Идентификатор инструмента сканирования Значение: stingray |
projectName ИЛИ scanId * |
String | Необходимо указать: - или projectName , если импортируется последнее сканирование в проекте- или scanId , если импортируется конкретный скан |
PT Application Inspector
Параметр | Тип | Описание |
---|---|---|
url * |
String | URL инструмента PT Application Inspector |
product * |
String | Идентификатор инструмента сканирования Значение: appinspector |
projectName * |
String | Имя проекта |
language * |
String | Имя команды Checkmarx Язык программирования |
scanResultId |
String | Необходимо указать, если импортируется конкретное сканирование |
Solar appScreener
Параметр | Тип | Описание |
---|---|---|
url * |
String | URL инструмента Solar appScreener |
product * |
String | Идентификатор инструмента сканирования, который содержит импортируемые уязвимости Значение: appscreener |
projectUuid * |
String | ID проекта в Solar appScreener |
scanUuid |
String | ID сканирования в проекте Solar appScreener. При отсутствии импортируются результаты последнего сканирования |
CodeScoring
Параметр | Тип | Описание |
---|---|---|
url * |
String | URL инструмента CodeScoring |
product * |
String | Идентификатор инструмента сканирования Значение: code-scoring |
projectName * |
String | Имя проекта |
Dependecy-Track
Параметр | Тип | Описание |
---|---|---|
url * |
String | URL инструмента Dependecy-Track |
product * |
String | Идентификатор инструмента сканирования Значение: dependency-track |
projectName * |
String | Имя проекта |
uuid * |
String |
Примеры
Запрос на сканирование кодовой базы
{
"application": {
"code": "app2",
"name": "app2"
},
"sources": [
{
"url": "https://gitlab.service.company.com/test-codebases/dvja.git",
"branch": "master",
"vcsType": "git",
"name": "dvja-master",
"buildTool": "maven",
"branchFilter": "master",
"type": "codebase",
"checkoutPath": "/"
}
],
"unit": {
"name": "unit_name1",
"code": "unit_name1"
},
"scanInitiator": {
"initiator": "http://jenkins.test.company.com/job/app2/job/7573_SAST_dvja-master/",
"environment": "some env data"
},
"releaseObject": {
"url": "https://nexus.test.company.com:8083/java-web-project:9.17"
},
"onboardingType": "CODEBASE"
}
Запрос на сканирование артефакта
{
"application": {
"code": "app2",
"name": "app2"
},
"sources": [
{
"type": "artifact",
"url": "https://nexus.test.company.com/repository/maven-releases/com/appsecco/dvja/5.09/dvja-5.09.war"
}
],
"unit": {
"name": "unit_name1",
"code": "unit_name1"
},
"scanInitiator": {
"initiator": "http://jenkins.test.company.com/job/app2/job/SCA_dvja.war/",
"environment": "some env data"
},
"releaseObject": {
"url": "https://nexus.test.company.com:8083/java-web-project:9.17"
},
"onboardingType": "ARTIFACT"
}
Запрос на сканирование экземпляра приложения
{
"application": {
"code": "app5",
"name": "app5"
},
"sources": [
{
"type": "instance",
"stage": "ST",
"url": "http://juice-shop.test.company.com",
"name": "app_instance",
"apiPath": "/files/openapi-swagger_basicauthentication.yaml"
}
],
"unit": {
"name": "unit_name_test_app",
"code": "unit_name_test_app"
},
"scanInitiator": {
"initiator": "http://jenkins.test.company.com/job/app5/job/DAST_juice-shop-ST/",
"environment": "some env data"
},
"releaseObject": {
"url": "https://nexus.test.company.com:8083/java-web-project:9.17"
},
"onboardingType": "APP_INSTANCE"
}
Запрос на импорт уязвимостей кодовой базы
CodeScoring
{
"application": {
"code": "app7"
},
"sources": [
{
"url": "https://gitlab.service.company.com/test-codebases/php-complex-website.git",
"branch": "main",
"vcsType": "git",
"checkoutPath": "/",
"buildTool": "composer",
"type": "codebase"
}
],
"scans": [
{
"url": "https://anteaters.clt.cdscrng.ru",
"product": "code-scoring",
"projectName": "serp1/dvja"
}
],
"onboardingType": "ISSUE_IMPORT"
}
AppSec.Track
{
"application": {
"code": "app3100"
},
"sources": [
{
"url": "https://gitlab.service.company.com/test-codebases/php-complex-website.git",
"branch": "main",
"vcsType": "git",
"checkoutPath": "/",
"buildTool": "composer",
"type": "codebase"
}
],
"scans": [
{
"url": "https://track.test.company.com",
"product": "appsec-track",
"team": "CBAppSecTrackTestImportResult",
"application": "CBAppSecTrackTestImportResult_java-web-project-master",
"scanGuid": "d48071de-3b92-4dfc-99ae-dadc4818421b"
}
],
"onboardingType": "ISSUE_IMPORT"
}
Checkmarx
{
"application": {
"code": "app100"
},
"sources": [
{
"url": "https://gitlab.service.company.com/test-codebases/php-complex-website.git",
"branch": "main",
"vcsType": "git",
"checkoutPath": "/",
"buildTool": "composer",
"type": "codebase"
}
],
"scans": [
{
"url": "https://cx.test.company.com",
"product": "checkmarx",
"cxProject": "template-for-import-scan-results-from-cx_application-with-team-cxserver-testteam",
"cxTeam": "/CxServer/TestTeam"
}
],
"onboardingType": "ISSUE_IMPORT"
}
PT Application Inspector
{
"application": {
"code": "app10"
},
"sources": [
{
"url": "https://gitlab.service.company.com/test-codebases/php-complex-website.git",
"branch": "main",
"vcsType": "git",
"checkoutPath": "/",
"buildTool": "composer",
"type": "codebase"
}
],
"scans": [
{
"url": "https://ptai.test.company.com/",
"product": "appinspector",
"projectName": "template-PTAI_java-web-project-master",
"scanResultId": "67cc8b01-d78f-486c-ad1a-7c06ccbd204b",
"language": "Java"
}
],
"onboardingType": "ISSUE_IMPORT"
}
Dependecy-Track
{
"application": {
"code": "app12"
},
"sources": [
{
"vcsType": "git",
"type": "codebase",
"url": "https://gitlab.service.company.com/open/maven-repository.git",
"branch": "master",
"checkoutPath": "/"
}
],
"scans": [
{
"url": "https://dep-track.test.company.com",
"product": "dependency-track",
"projectName": "template-DepTrack_maven-repository-master",
"uuid": "19abb95a-4733-4bd8-a350-d7741330dc1d"
}
],
"onboardingType": "ISSUE_IMPORT"
}
Запрос на импорт уязвимостей артефакта
AppSec.Track
{
"application": {
"code": "app4"
},
"sources": [
{
"type": "artifact",
"url": "https://nexus.test.company.com:8083/java-web-project:9.17",
"name": "java-web-project.docker"
}
],
"scans": [
{
"url": "https://track.test.company.com",
"product": "appsec-track",
"team": "AppSecTrackTestImportResult",
"application": "AppSecTrackTestImportResult_java-web-projectdocker",
"scanGuid": "67f34b1c-f635-4d87-bb78-22c4dda27efd"
}
],
"onboardingType": "ISSUE_IMPORT"
}
CodeScoring
{
"application": {
"code": "app8"
},
"sources": [
{
"type": "artifact",
"url": "https://nexus.test.company.com:8083/java-web-project:9.17"
}
],
"scans": [
{
"url": "https://anteaters.clt.cdscrng.ru",
"product": "code-scoring",
"projectName": "serp1/dvja"
}
],
"onboardingType": "ISSUE_IMPORT"
}
PT Application Inspector
{
"application": {
"code": "appCode"
},
"sources": [
{
"type": "artifact",
"url": "https://nexus.test.company.com/repository/npm-group/ngclipboard/-/ngclipboard-2.0.0.tgz"
}
],
"scans": [
{
"url": "https://ptai.test.company.com/",
"product": "appinspector",
"projectName": "template-PTAI_java-web-project-master",
"scanResultId": "67cc8b01-d78f-486c-ad1a-7c06ccbd204b",
"language": "Java"
}
],
"onboardingType": "ISSUE_IMPORT"
}
Dependecy-Track
{
"application": {
"code": "application2"
},
"source": [
{
"type": "artifact",
"url": "https://nexus.test.company.com:8083/java-web-project:9.17"
}
],
"scans": [
{
"url": "https://dep-track.test.company.com",
"product": "dependency-track",
"projectName": "template-DepTrack_maven-repository-master",
"uuid": "19abb95a-4733-4bd8-a350-d7741330dc1d"
}
]
}
Aqua Security
{
"application": {
"code": "app9"
},
"source": [
{
"type": "artifact",
"url": "https://nexus.test.company.com:8083/java-web-project:2.17"
}
],
"scans": [
{
"url": "https://aqua.demo.company.ru/",
"product": "aquasec",
"aquaRegistry": "template_nexus_aqua_java-web-projectdocker"
}
]
}
Запрос на импорт уязвимостей экземпляра приложения
Стингрей
{
"application": {
"code": <app_code>
},
"source": [
{
"type": "artifact",
"name": <name>,
"url": "https://docker.company.com/nginx/apk/auth/app-prod-debug-1.0.apk"
}
],
"scans": [
{
"url": "https://staging.stingray-mobile.ru",
"product": "mdast",
"scanId": <scan_id_from_stingray>
}
]
}
Ответ
Body
Параметр | Тип | Описание |
---|---|---|
taskId |
Object | ID и тип задачи |
onboardingType |
String | Тип онбординга |
Пример
{
"taskId": {
"id": 1219,
"type": "ONBOARDING"
},
"onboardingType": "CODEBASE"
}
Импорт отчета об уязвимостях из инструментов, не имеющих интеграции с AppSec.Hub
Запрос
POST /integration/report
Body (multipart/form-data)
Параметр | Тип | Описание |
---|---|---|
json * |
binary | Файл с метаданными отчета |
reportFile * |
binary | Файл отчета в формате AppSec.Hub |
json
Параметр | Тип | Описание |
---|---|---|
application * |
Object | Идентифицирует объект приложения application |
release |
String | Имя релиза |
unit |
Object | Структурная единица приложения unit (компонент, модуль или микросервис) |
qualityGateCode |
String | Код идентификации объекта Quality Gate (QG) в AppSec.Hub. При отсутствии используется QG из настроек пайплайна |
Application
Параметр | Тип | Описание |
---|---|---|
code * |
String | Код приложения в БД AppSec.Hub. Параметр является обязательным, если appId не существует.Один из параметров code , appId должен существовать |
appId * |
String | Внутренний идентификатор приложения. Параметр является обязательным, если code не существует.Один из параметров code , appId должен существовать |
externalId |
String | Указывает внешний идентификатор нового приложения. Этот параметр используется при онбординге и может быть проигнорирован в дальнейшем |
name |
String | Имя приложения |
Unit
Параметр | Тип | Описание |
---|---|---|
name |
String | Имя структурной единицы |
code |
String | Код структурной единицы |
Пример
Пример JSON-файла
{
"application": {
"code": "AppCode1",
"name": "AppName1",
"externalIdd": "ExternalId1"
},
"release": "release1",
"qualityGateCode": "QG1",
"unit": {
"code": "2b60310b-6efb-4f64-81de-e41f71edcd98",
"name": "UnitName1"
}
}
Ответ
Body
Параметр | Тип | Описание |
---|---|---|
taskId |
Object | ID и тип задачи |
onboardingType |
String | Тип онбординга |
Пример
{
"taskId": {
"id": 1219,
"type": "ONBOARDING"
},
"onboardingType": null
}
.