Skip to main content
Version: 2506.1

결과 파일 다운로드 API


설명

분석이 종료된 후 결과를 다운로드하는 API입니다. 이 요청은 성공으로 종료된 분석에 대해서면 요청할 수 있습니다. 다운로드 요청을 전송하면 분석 결과를 파일로 받게 됩니다.

요청

사용자가 분석 요청 API로 분석을 요청했을 때 응답으로 받은 분석 ID가 필요합니다. 분석 ID를 확인하려면 요청 조회 API를 전송하거나 Sparrow On-Demand 홈의 대시보드를 통해 앞서 요청한 분석의 ID를 확인하세요.

응답

결과 파일 다운로드를 전송하면 zip 파일을 받게 됩니다. 자세한 내용은 응답을 참고하세요.

요청

pathName :analysisIdapi 스펙과 일치하지 않는 pathName 입니다.

응답

✔️ 성공 응답

결과 다운로드 요청에 성공하면 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 분석 대상 유형 분석을 요청할 때 입력한 분석 대상 유형입니다. toolTypeSAST 또는 SCA인 경우에만 표시됩니다.

    • VCS: VCS 저장소에 있는 소스를 분석합니다.
    • OBJECT_STORAGE: 오브젝트 스토리지에 있는 소스를 분석합니다.
  • url VCS URL 분석할 파일이 저장된 저장소의 URL(VCS_URL)입니다. typeVCS인 경우에 표시됩니다.

  • branch 브랜치 분석하려는 파일이 업로드된 브랜치의 이름(BRANCH_NAME)입니다. typeVCS인 경우에 표시됩니다.

  • commitId 커밋 ID 분석하려는 커밋 ID(COMMIT_ID)입니다. typeVCS인 경우에 표시됩니다.

  • tag 태그 분석하려는 브랜치의 태그 정보(TAG_NAME)입니다. typeVCS인 경우에 표시됩니다.

  • bucket 스토리지 버킷 typeOBJECT_STORAGE인 경우에 표시됩니다.

  • endPoint 스토리지 엔드포인트 typeOBJECT_STORAGE인 경우에 표시됩니다.

  • object 스토리지 오브젝트 이름 typeOBJECT_STORAGE인 경우에 표시됩니다.

  • cloneSize 클론한 분석 대상 크기 원본 분석 대상에서 클론한 분석 대상의 크기(CLONE_SIZE)입니다. toolTypeSAST 또는 SCA인 경우에만 표시됩니다.

  • fileCount 원본 파일 수 원본 분석 대상에 포함된 파일의 개수(RAW_FILES)입니다. toolTypeSAST 또는 SCA인 경우에만 표시됩니다.

  • componentCount 분석 대상 컴포넌트 수 분석에서 검출된 컴포넌트의 개수(COMPONENTS)입니다. toolTypeSAST 또는 SCA인 경우에만 표시됩니다.

  • targetCount 분석 대상 파일 수 원본 분석 대상 중 컴포넌트를 추출하는데 사용된 분석 대상의 개수(TARGET_FILES)입니다. toolTypeSAST 또는 SCA인 경우에만 표시됩니다.

  • codeSize 분석 대상 소스코드 크기 원본 분석 대상 중 분석에 사용된 소스코드의 크기(CODE_SIZE)입니다. toolTypeSAST 또는 SCA인 경우에만 표시됩니다.

  • targetUrl 분석 대상 URL 분석을 요청할 때 입력한 분석 대상 URL(URL)입니다. toolTypeDAST인 경우에만 표시됩니다.

  • urlCount 수집된 URL 수 분석을 통해 분석 대상 URL로부터 수집된 URL의 개수(URLS)입니다. toolTypeDAST인 경우에만 표시됩니다.

  • requestCount 요청 횟수 분석을 통해 분석 대상 URL로 전송된 공격 요청의 개수(REQUESTS)입니다. toolTypeDAST인 경우에만 표시됩니다.

  • workerId 워커 ID 분석을 위해 구성된 환경 중 워커의 고유한 ID(WORK_ID)입니다.

  • resultCode 오류 코드 분석이 정상적으로 종료되지 않은 경우 표시되는 오류 코드(ERROR_CODE)입니다. 표시되는 코드에 대한 자세한 내용은 오류 코드 모음을 참고하세요.

  • failStatus 실패 시점의 분석 상태 분석이 정상적으로 종료되지 않고 실패한 경우 분석 상태를 다음 중 하나로 표시합니다.

    • STOP_PROCESS: 중지 요청을 받아 중지 중인 상태입니다.
    • INIT : 분석 수행을 위한 자원할당을 기다리는 중입니다.
    • READY: 자원을 할당 받고 분석 대상을 준비하는 단계입니다. 예) 소스코드 다운로드
    • PRE_PROCESS: 분석 시작 전 각종 전처리를 하는 단계입니다. 예) 분석 대상 수집 등
    • ANALYSIS: 분석이 수행되고 있는 중입니다.
    • POST_PROCESS: 분석이 끝나고 결과를 처리하는 단계 입니다.

asset 폴더

분석에서 식별한 개별 분석 대상을 자산이라고 합니다. 이 파일에는 자산에 대한 정보가 포함되어 있습니다.

  • 소스코드 및 오픈소스 분석: 분석 대상인 파일의 목록
  • 웹취약점 분석: 수집된 URL의 목록
  • a / b / test.yaml;
    e / d / e / test.java;

    issue 폴더

    분석에서 검출된 이슈에 대한 정보를 모아둔 폴더입니다. 폴더 안에 이슈 정보를 모아둔 다수의 json 파일이 포함되어 있습니다. 분석에 따라 제공하는 이슈 정보에 차이가 있다는 점에 유의하세요.

  • 소스코드 분석: 이슈 검출 규칙의 이름, 파일, 라인 등
  • 오픈소스 분석: 이슈 검출 규칙의 이름, 오픈소스의 이름, 라이선스 정보 등
  • 웹취약점 분석: 이슈 검출 규칙의 이름, 분석 대상 URL, 파라미터를 비롯한 요청 정보 등
  • workMessage.json

    분석과 관련되어 확인해야 할 주의 사항이나 경고를 기록한 작업 메세지를 모아둔 파일입니다.

    licenseNotice

    라이선스 고지문을 모아둔 폴더입니다. 폴더 안에 텍스트(.txt), 마크다운(.md) 및 HTML(.html) 형식의 파일이 포함되어 있습니다. 자세한 내용은 라이선스 고지문을 참고하세요.

    sbom

    SBOM 파일을 모아둔 폴더입니다. 형식 및 버전에 따라 다수의 SBOM 파일이 포함되어 있습니다. 자세한 내용은 SBOM을 참고하세요.

    info

    licenseNoticesbom 폴더는 오픈소스 분석의 결과를 다운로드한 경우에만 포함됩니다.

    ❌ 실패 응답

    인증 실패

    인증 정보가 올바르지 않은 경우 401 Unauthorized 응답을 받습니다.

    잘못된 요청

    잘못된 요청인 경우 400 Bad Request 응답과 함께 다음 정보를 수신하게 됩니다.

  • resultCode: 요청에 대한 결과를 코드로 표시합니다. 자세한 내용은 오류 코드 모음을 참고하세요.