결과 파일 다운로드 API
설명
분석이 종료된 후 결과를 다운로드하는 API입니다. 이 요청은 성공으로 종료된 분석에 대해서면 요청할 수 있습니다. 다운로드 요청을 전송하면 분석 결과를 파일로 받게 됩니다.
요청
사용자가 분석 요청 API로 분석을 요청했을 때 응답으로 받은 분석 ID가 필요합니다. 분석 ID를 확인하려면 요청 조회 API를 전송하거나 Sparrow On-Demand 홈의 대시보드를 통해 앞서 요청한 분석의 ID를 확인하세요.
응답
결과 파일 다운로드를 전송하면 zip 파일을 받게 됩니다. 자세한 내용은 응답을 참고하세요.
요청
응답
✔️ 성공 응답
결과 다운로드 요청에 성공하면 200 OK와 함께 result.zip 파일을 다운로드합니다.
responses:
'200':
description: 파일 다운로드
content:
application/download:
schema:
type: string
format: binary
result.zip/
/summary.json
/asset
/sbom
SPDX.spdx
CycloneDX.json
SWID.zip
...
/licenseNotice
HTML.html
MARKDOWN.md
TXT.txt
/issue
1.json
2.json
...
/workMessage.json
다운로드된 파일은 result.zip 형태로 압축되어 있습니다.
summary.json
분석에 대한 요약 정보가 있는 파일입니다. 분석 결과, 취약점 수, 분석 시간 정보 등이 포함됩니다.
{
"analysisId" : "ANALYSIS_ID",
"requestId" : "REQUEST_ID",
"status" : "COMPLETE",
"result" : "SUCCESS",
"toolType" : "TYPE",
"startTime" : "YYYY-MM-DDThh:mm:ss.sss±hh:mm",
"endTime" : "YYYY-MM-DDThh:mm:ss.sss±hh:mm",
"issueCount" : "TOTAL_ISSUES",
"issueCountRisk1" : "TRIVIAL_ISSUES",
"issueCountRisk2" : "LOW_ISSUES",
"issueCountRisk3" : "MEDIUM_ISSUES",
"issueCountRisk4" : "HIGH_ISSUES",
"issueCountRisk5" : "CRITICAL_ISSUES"
"memo" : "MEMO",
"versions" : "W: WORKER_VERSION, S: SAST_VERION, C: SCA_VERSION, D: DAST_VERSION",
"checkersHash" : "CHECKER_HASH",
"resultVersion" : "2",
"type" : "VCS",
"url" : "VCS_URL",
"branch" : "BRANCH_NAME",
"commitId" : "COMMIT_ID",
"tag": "TAG_NAME",
"bucket" : "BUCKET",
"object" : "OBJECT_NAME",
"endpoint" : "ENDPOINT",
"cloneSize" : "CLONE_SIZE",
"fileCount" : "RAW_FILES",
"componentCount" : "COMPONENTS",
"targetCount" : "TARGET_FILES",
"codeSize": "CODE_SIZE",
"targetUrl": "URL",
"urlCount": "URLS",
"requestCount": "REQUESTS",
"workerId" : "WORK_ID",
"resultCode" : "ERROR_CODE",
"failStatus" : null
}
- 
analysisId 분석 ID 분석에 대해 고유하게 생성된 ID입니다. 이후 분석에 대한 정보를 조회할 때 사용할 수 있습니다. 자세한 내용은 분석 조회를 참고하세요. 
- 
requestId 요청 ID 요청에 대해 고유하게 생성된 ID입니다. 이후 요청에 대한 정보를 조회할 때 사용할 수 있습니다. 자세한 내용은 요청 조회를 참고하세요. 
- 
status 분석 상태 분석이 진행되는 단계에 따른 상태이며 다음 중 하나로 표시됩니다. - STOP_PROCESS: 중지 요청을 받고 분석을 중지하는 중
- INIT: 분석 수행을 위해 환경을 준비하는 중
- READY: 환경이 구성되고 분석 대상을 준비하는 중
- PRE_PROCESS: 분석을 위해 분석 대상을 전처리하는 중
- ANALYSIS: 분석을 수행하는 중
- POST_PROCESS: 분석이 끝나고 결과를 처리하는 중
- COMPLETE: 분석이 종료된 상태
 
- 
result 분석 종료 결과 분석이 종료된 결과이며 다음과 같은 값을 가집니다. - SUCCESS: 분석이 성공적으로 완료된 상태
- FAIL: 분석을 올바르게 완료하지 못하고 실패한 상태
- STOP: 중지 요청을 받아 분석이 중지된 상태
 
- 
toolType 분석 유형 요청한 분석의 종류(TYPE)를 다음 중 하나의 값을 가집니다. - SAST: 소스코드 분석
- SCA: 오픈소스 분석
- DAST: 웹취약점 분석
 
- 
startTime 분석 시작 일시 분석할 시작한 날짜와 시간을 다음과 같은 형식으로 표시합니다.(YYYY-MM-DDThh:mm:ss.sss±hh:mm) 
- 
endTime 분석 종료 일시 분석이 종료된 날짜와 시간을 다음과 같은 형식으로 표시합니다.(YYYY-MM-DDThh:mm:ss.sss±hh:mm) 
- 
issueCount 총 이슈 수 분석에서 검출한 이슈의 개수(TOTAL_ISSUES)입니다. 
- 
issueCountRisk1 위험도 매우 낮음 이슈 수 검출된 이슈의 개수를 매우 높음, 높음, 보통, 낮음, 매우 낮음이라는 위험도에 따라 5단계로 구분합니다. 이 중에서 매우 낮음에 해당하는 이슈의 개수(TRIVIAL_ISSUES)입니다. 
- 
issueCountRisk2 위험도 낮음 이슈 수 검출된 이슈의 개수를 매우 높음, 높음, 보통, 낮음, 매우 낮음이라는 위험도에 따라 5단계로 구분합니다. 이 중에서 낮음에 해당하는 이슈의 개수(LOW_ISSUES)입니다. 
- 
issueCountRisk3 위험도 보통 이슈 수 검출된 이슈의 개수를 매우 높음, 높음, 보통, 낮음, 매우 낮음이라는 위험도에 따라 5단계로 구분합니다. 이 중에서 보통에 해당하는 이슈의 개수(MEDIUM_ISSUES)입니다. 
- 
issueCountRisk4 위험도 낮음 이슈 수 검출된 이슈의 개수를 매우 높음, 높음, 보통, 낮음, 매우 낮음이라는 위험도에 따라 5단계로 구분합니다. 이 중에서 높음에 해당하는 이슈의 개수(HIGH_ISSUES)입니다. 
- 
issueCountRisk5 위험도 매우 낮음 이슈 수 검출된 이슈의 개수를 매우 높음, 높음, 보통, 낮음, 매우 낮음이라는 위험도에 따라 5단계로 구분합니다. 이 중에서 매우 높음에 해당하는 이슈의 개수(CRITICAL_ISSUES)입니다. 
- 
memo 메모 분석을 요청할 때 입력한 설명입니다. 
- 
versions 버전 분석에 사용된 Sparrow On-Demand의 워커 및 엔진의 버전(W: WORKER_VERSION, S: SAST_VERION, C: SCA_VERSION, D: DAST_VERSION)입니다. 
- 
checkersHash 분석 규칙 파일 해시 분석에 사용된 Sparrow On-Demand의 분석 규칙 파일의 해시(CHECKER_HASH)입니다. 분석에 동일한 규칙을 사용했는지 구분하기 위해 표시됩니다. 
- 
resultVersion 결과 버전 분석 결과의 버전입니다. 
- 
type 분석 대상 유형 분석을 요청할 때 입력한 분석 대상 유형입니다. toolType이SAST또는SCA인 경우에만 표시됩니다.- VCS: VCS 저장소에 있는 소스를 분석합니다.
- OBJECT_STORAGE: 오브젝트 스토리지에 있는 소스를 분석합니다.
 
- 
url VCS URL 분석할 파일이 저장된 저장소의 URL(VCS_URL)입니다. type이VCS인 경우에 표시됩니다.
- 
branch 브랜치 분석하려는 파일이 업로드된 브랜치의 이름(BRANCH_NAME)입니다. type이VCS인 경우에 표시됩니다.
- 
commitId 커밋 ID 분석하려는 커밋 ID(COMMIT_ID)입니다. type이VCS인 경우에 표시됩니다.
- 
tag 태그 분석하려는 브랜치의 태그 정보(TAG_NAME)입니다. type이VCS인 경우에 표시됩니다.
- 
bucket 스토리지 버킷 type이OBJECT_STORAGE인 경우에 표시됩니다.
- 
endPoint 스토리지 엔드포인트 type이OBJECT_STORAGE인 경우에 표시됩니다.
- 
object 스토리지 오브젝트 이름 type이OBJECT_STORAGE인 경우에 표시됩니다.
- 
cloneSize 클론한 분석 대상 크기 원본 분석 대상에서 클론한 분석 대상의 크기(CLONE_SIZE)입니다. toolType이SAST또는SCA인 경우에만 표시됩니다.
- 
fileCount 원본 파일 수 원본 분석 대상에 포함된 파일의 개수(RAW_FILES)입니다. toolType이SAST또는SCA인 경우에만 표시됩니다.
- 
componentCount 분석 대상 컴포넌트 수 분석에서 검출된 컴포넌트의 개수(COMPONENTS)입니다. toolType이SAST또는SCA인 경우에만 표시됩니다.
- 
targetCount 분석 대상 파일 수 원본 분석 대상 중 컴포넌트를 추출하는데 사용된 분석 대상의 개수(TARGET_FILES)입니다. toolType이SAST또는SCA인 경우에만 표시됩니다.
- 
codeSize 분석 대상 소스코드 크기 원본 분석 대상 중 분석에 사용된 소스코드의 크기(CODE_SIZE)입니다. toolType이SAST또는SCA인 경우에만 표시됩니다.
- 
targetUrl 분석 대상 URL 분석을 요청할 때 입력한 분석 대상 URL(URL)입니다. toolType이DAST인 경우에만 표시됩니다.
- 
urlCount 수집된 URL 수 분석을 통해 분석 대상 URL로부터 수집된 URL의 개수(URLS)입니다. toolType이DAST인 경우에만 표시됩니다.
- 
requestCount 요청 횟수 분석을 통해 분석 대상 URL로 전송된 공격 요청의 개수(REQUESTS)입니다. toolType이DAST인 경우에만 표시됩니다.
- 
workerId 워커 ID 분석을 위해 구성된 환경 중 워커의 고유한 ID(WORK_ID)입니다. 
- 
resultCode 오류 코드 분석이 정상적으로 종료되지 않은 경우 표시되는 오류 코드(ERROR_CODE)입니다. 표시되는 코드에 대한 자세한 내용은 오류 코드 모음을 참고하세요. 
- 
failStatus 실패 시점의 분석 상태 분석이 정상적으로 종료되지 않고 실패한 경우 분석 상태를 다음 중 하나로 표시합니다. - STOP_PROCESS: 중지 요청을 받아 중지 중인 상태입니다.
- INIT: 분석 수행을 위한 자원할당을 기다리는 중입니다.
- READY: 자원을 할당 받고 분석 대상을 준비하는 단계입니다. 예) 소스코드 다운로드
- PRE_PROCESS: 분석 시작 전 각종 전처리를 하는 단계입니다. 예) 분석 대상 수집 등
- ANALYSIS: 분석이 수행되고 있는 중입니다.
- POST_PROCESS: 분석이 끝나고 결과를 처리하는 단계 입니다.
 
asset 폴더
분석에서 식별한 개별 분석 대상을 자산이라고 합니다. 이 파일에는 자산에 대한 정보가 포함되어 있습니다.
a / b / test.yaml;
e / d / e / test.java;
issue 폴더
분석에서 검출된 이슈에 대한 정보를 모아둔 폴더입니다. 폴더 안에 이슈 정보를 모아둔 다수의 json 파일이 포함되어 있습니다. 분석에 따라 제공하는 이슈 정보에 차이가 있다는 점에 유의하세요.
workMessage.json
분석과 관련되어 확인해야 할 주의 사항이나 경고를 기록한 작업 메세지를 모아둔 파일입니다.
licenseNotice
라이선스 고지문을 모아둔 폴더입니다. 폴더 안에 텍스트(.txt), 마크다운(.md) 및 HTML(.html) 형식의 파일이 포함되어 있습니다. 자세한 내용은 라이선스 고지문을 참고하세요.
sbom
SBOM 파일을 모아둔 폴더입니다. 형식 및 버전에 따라 다수의 SBOM 파일이 포함되어 있습니다. 자세한 내용은 SBOM을 참고하세요.
licenseNotice 및 sbom 폴더는 오픈소스 분석의 결과를 다운로드한 경우에만 포함됩니다.
❌ 실패 응답
인증 실패
인증 정보가 올바르지 않은 경우 401 Unauthorized 응답을 받습니다.
잘못된 요청
잘못된 요청인 경우 400 Bad Request 응답과 함께 다음 정보를 수신하게 됩니다.
resultCode: 요청에 대한 결과를 코드로 표시합니다. 자세한 내용은 오류 코드 모음을 참고하세요.