REST API v2

FOSSLight Hub의 기능을 REST API로 호출할 수 있습니다.

시작하기

REST API를 호출하기 위해서는 TOKEN을 발행해야 합니다. 아래 단계를 따라 진행하세요.

  1. Admin 계정으로 로그인합니다.
  2. System > User Management 탭에서 각 User별로 Token을 발행할 수 있습니다.

REST API 종류

:sparkles: API 동작 확인은 하기 링크에서 가능합니다.

- Demo 서비스용 : https://demo.fosslight.org/swagger-ui/index.html (연동 서버 : https://demo.fosslight.org/)

Key Required Type Value
Authorization O String 발급받은 토큰 정보
Swagger UI 사용 시 Token 입력 방법
ℹ️ Swagger UI 사용 시 인증을 편리하게 하기 위해 제공하는 기능입니다. Curl이나 별도의 API 테스트를 진행할 경우, API마다 token 정보를 header에 포함해야 합니다.
• Authorize 버튼을 클릭합니다.
Authorize 버튼
• 팝업에서 Value에 token 정보를 입력한 후, Authorize 버튼을 클릭합니다.
Token 입력

1. OSS & License 정보 조회

API 응답 형식 설명
GET /api/v2/license JSON License 정보를 조회합니다.

  • licenseName: 조회할 라이선스 이름
  • licenseNameExact: true로 설정하면 정확히 일치하는 라이선스만 조회 (default=Y)
  • couterPerPage: 한 번에 조회할 아이템의 개수 (default = 10000)
  • page: 조회할 페이지 번호 (default = 1)
GET /api/v2/oss JSON Open Source 정보를 조회합니다.

  • downloadLocation: 조회할 download location 값
  • downloadLocationExact: true로 설정하면 정확히 일치하는 오픈소스만 조회 (default = Y)
  • ossName: 조회할 오픈소스 이름
  • ossNameExact: true로 설정하면 정확히 일치하는 오픈소스만 조회 (default = Y)
  • ossVersion: 조회할 오픈소스 버전
  • couterPerPage: 한 번에 조회할 아이템의 개수 (default = 10000)
  • page: 조회할 페이지 번호 (default = 1)
POST /api/v2/oss JSON (Admin only) Open Source 를 등록합니다.

  • downloadLocation: 조회할 download location 값
  • downloadLocationExact: true로 설정하면 정확히 일치하는 오픈소스만 조회 (default = Y)
  • ossName: 조회할 오픈소스 이름
  • ossNameExact: true로 설정하면 정확히 일치하는 오픈소스만 조회 (default = Y)
  • ossVersion: 조회할 오픈소스 버전
  • couterPerPage: 한 번에 조회할 아이템의 개수 (default = 10000)
  • page: 조회할 페이지 번호 (default = 1)
GET /api/v2/refine-download-location JSON (Admin only) OSS 정보를 정제합니다.

  • UPDATE DOWNLOAD LOCATION FORMAT: Download location을 업데이트
  • REMOVE DUPLICATED DOWNLOAD LOCATION: 중복 제거
  • PUT PURL: PURL 업데이트
  • REMOVE DUPLICATED PURL: 중복된 PURL 삭제
  • REORDER GITHUB PRIORITY: "github.com" 포함된 download location 우선순위 변경
  • REFINE ALL: 위 사항을 순서대로 실행

2. 3rd Party 정보 조회

API 응답 형식 설명
GET /api/v2/partners JSON 3rd Party의 정보를 조회합니다.

  • createDate: 3rd party 생성 날짜 기준으로 조회 (fromDate-toDate)
  • creator: 3rd party 생성자 정보 기준으로 조회
  • division: division 정보 기준으로 조회
  • partnerIdList: 3rd party ID 기준으로 조회. 리스트 형태로 여러 개 입력 가능
  • status: 3rd party의 상태 기준으로 조회
  • updateDate: 3rd party 수정 날짜 기준으로 조회 (fromDate-toDate)
  • couterPerPage: 한 번에 조회할 아이템의 개수 (default = 1000)
  • page: 조회할 페이지 번호 (default = 1)
GET /api/v2/partners/{id}/bom/file FILE 3rd party BOM export - 파일 형태로 다운로드

  • (required) format: 추출할 파일 포맷
  • (required) id: 조회할 대상인 3rd party ID
GET ​/api​/v2​/partners​/{id}​/bom/json-data JSON 3rd party BOM export - JSON 형태로 받음

  • (required) id: 대상 3rd party ID
POST /api/v2/partners/{id}/editors JSON 3rd party에 editor를 추가함

  • (required) emailList: 추가할 editor의 이메일 정보
  • (required) id: 대상 3rd party ID
(Deprecated)GET /api/v2/partners/{id}/file FILE 3rd party BOM export - 파일 형태로 다운로드

  • (required) format: 추출할 파일 포맷
  • (required) id: 조회할 대상인 3rd party ID
(Deprecated)GET ​/api​/v2​/partners​/{id}​/json-data JSON 3rd party BOM export - JSON 형태로 받음

  • (required) id: 대상 3rd party ID
(Deprecated)POST /api/v2/partners/{id}/watchers JSON 3rd party에 watcher를 추가함

  • (required) emailList: 추가할 watcher의 이메일 정보
  • (required) id: 대상 3rd party ID

3. Project 정보 조회, 생성, FOSSLight Report 등록, Packaging 파일 업로드, BOM Export, Project 비교

API 응답 형식 설명
GET /api/v2/projects JSON 아래 항목을 포함한 Project의 정보를 조회합니다.

  • createDate: Project 생성한 날짜 기준으로 조회 (fromDate-toDate)
  • creator: 생성한 사람 정보 기준으로 조회
  • division: division 정보 기준으로 조회
  • modelName: model 이름 기준으로 조회
  • prjIdList: project ID 기준으로 조회. list형태로 여러개 입력 가능
  • prjName: project 이름 기준으로 조회
  • prjNameExactYn: true로 설정하면 project name에 입력한 값과 정확히 일치하는 프로젝트만 조회
  • status: Project의 status기준으로 조회
  • updateDate: Project의 수정한 날짜 기준으로 조회 (fromDate-toDate)
  • couterPerPage: 한 번에 조회할 아이템의 개수 (default = 1000, max = 1000)
  • page: 조회할 페이지 번호 (default = 1)
POST /api/v2/projects JSON Project 생성을 위한 API. 생성된 project ID가 리턴됨

  • additional Information: 프로젝트의 추가 정보
  • distributionSite: 배포 사이트 선택 (/api/v2/codes 값으로 입력)
  • distributionType: 배포 타입 선택 (/api/v2/codes 값으로 입력)
  • networkServerType: 네트워크 서버 여부 선택
  • noticeType: 고지문 타입 선택 (/api/v2/codes 값으로 입력)
  • noticeTypeEtc: Platform-generate인 경우 타입 선택 (/api/v2/codes 값으로 입력)
  • (required) osType: OS 타입 선택 (/api/v2/codes 값으로 입력)
  • priority: 프로젝트의 긴급 여부에 따라 우선순위 선택 (/api/v2/codes 값으로 입력)
  • (required) prjName: 프로젝트 이름
  • prjVersion: 프로젝트 버전
  • publicYn: View Permission 정보 (Y: Everyone, N: Creator & Editor) (default = Y)
  • userComment: 유저 커맨트
GET /api/v2/projects/models JSON Project의 모델 정보 조회

  • (required) prjIdList: 조회할 대상인 project ID 정보. list형태로 입력 가능
DELETE /api/v2/projects/{id} JSON Project를 삭제함 (Distribution 진행되지 않은 프로젝트만 삭제 가능)

  • (required) id: 기준 project ID
GET /api/v2/projects/{id}/bom/compare-with/{compareId} JSON Project BOM Compare

  • (required) compareId: 비교할 project ID
  • (required) id: 기준 project ID
GET /api/v2/projects/{id}/bom/file JSON Project BOM export - 파일 형태로 다운로드

  • (required) format: 추출할 파일 포맷
  • (required) id: 대상 project ID
  • (required) saveFlag: API 실행 시점의 정보로, BOM을 최신화 할지 여부 선택 (default = Y)
GET /api/v2/projects/{id}/bom/json-data JSON Project BOM export - JSON 형태로 받음

  • (required) id: 대상 project ID
  • saveFlag: API 실행 시점의 정보로, BOM을 최신화 할지 여부 선택 (default = Y)
POST /api/v2/projects/{id}/editors JSON Project에 editor를 추가함

  • (required) emailList: 추가할 editor의 이메일 정보
  • (required) id: 대상 project ID
POST /api/v2/projects/{id}/models JSON Model 정보 문자열 목록을 통해 Project의 Model 정보를 업데이트합니다.
(단, Model을 추가할 뿐 Distribute 되지는 않습니다. Model 정보를 추가 후 Distribute가 필요한 경우 Distribution탭으로 이동 후 Distribute 진행해주시기 바랍니다.)

  • (required) id: 대상 project ID
  • (required) modelListToUpdate: Model 정보 문자열 목록 (format: MODEL_NAME|Category|Release Date)
    - ex. MODEL_NAME|ETC > Etc|20220428
POST ​/api​/v2​/projects​/{id}​/models​/upload JSON Model List 엑셀 파일을 통해 Project의 Model 정보를 업데이트합니다.
(단, Model을 추가할 뿐 Distribute 되지는 않습니다. Model 정보를 추가 후 Distribute가 필요한 경우 Distribution탭으로 이동 후 Distribute 진행해주시기 바랍니다.)

  • (required) id: 대상 project ID
  • (required) modelReport: Model List의 엑셀 파일 : Project > Project Information 탭 > Download 버튼 클릭
모델 리스트 엑셀 파일
GET /api/v2/projects/{id}/notice JSON Notice 파일을 받을 project ID

  • (required) id: 대상 project ID
POST /api/v2/projects/{id}/packages JSON Project에 package 파일 업로드

  • packageFile: 업로드할 패키지 파일
  • (required) id: 대상 project ID
  • verifyFlag: 업로드 한 파일에 대해 verify 진행 여부 (default = N)
GET /api/v2/projects/{id}/security/json-data JSON Project에서 검출된 보안취약점 정보를 JSON 형태로 받음

  • (required) id: 대상 project ID
(Deprecated)POST /api/v2/projects/{id}/watchers JSON Project에 watcher를 추가함

  • (required) emailList: 추가할 watcher의 이메일 정보
  • (required) id: 대상 project ID
POST /api/v2/projects/{id}/{tab_name}/oss-load - Project에 이전 프로젝트에서 리뷰된 오픈소스 정보를 로드함 (Identification confirm 된 프로젝트만 로드 가능)

  • (required) id: 대상 project ID
  • prjToLoad: 로드할 프로젝트 ID (search condition이 id인 경우 입력)
  • prjNameToLoad: 로드할 프로젝트 이름 (search condition이 name인 경우 입력)
  • prjVersionToLoad: 로드할 프로젝트 버전 (search condition이 name인 경우 입력)
  • resetFlag: 로드 할 때, 기존 입력된 정보들을 Reset할지 여부 (default = Y)
  • (required) searchCondition: 로드할 프로젝트를 검색하는 기준
  • (required) tab_name: 대상 탭 이름 (bin/dep/src)
POST /api/v2/projects/{id}/{tab_name}/reports - Project에 오픈소스 분석된 리포트 파일을 업로드함

  • ossReport: 업로드할 리포트 파일
  • comment: 사용자 comment
  • (required) id: 대상 project ID
  • resetFlag: 파일 업로드 시, 기존 입력된 정보들을 Reset할지 여부 (default = Y)
  • sheetNames: 업로드할 리포트 파일에서 특정 sheet name을 업데이트 하고자 하는 경우 입력. 입력하지 않는 경우 기본으로 DEP, SRC, BIN prefix에 맞춰서 정보를 불러옴. , 로 구분하여 여러 Sheet를 입력 가능
  • (required) tab_name: 대상 탭 이름
POST /api/v2/projects/{id}/{tab_name}/reset - Project > Identification에서 선택한 탭을 reset함

  • (required) id: 대상 project ID
  • (required) tab_name: 대상 탭 이름

4. Vulnerability 정보 조회

API 응답 형식 설명
GET /api/v2/max-vulnerabilities JSON OSS Name, Version별 max score와 CVE ID를 확인할 링크 조회

  • (required) OSS Name: 조회할 open source 이름
  • OSS Version: 조회할 open source 버전
GET /api/v2/vulnerabilities JSON CVE ID별 또는 OSS Name, Version별 CVE ID, CVSS Score, CVE ID Link, OSS 정보(OSS name, OSS version, Nickname)를 조회합니다.

  • cveId: 조회할 CVE ID
  • ossName: 조회할 open source 이름
  • ossVersion: 조회할 open source 버전

5. Self-Check 생성, FOSSLight Report 등록

API 응답 형식 설명
POST /api/v2/selfchecks JSON Self-Check Project를 생성하고, 생성된 Self-Check ID를 return 받음

  • (required) prjName: Self check project 이름
  • prjVersion: Self check project 버전
GET /api/v2/selfchecks/{id} JSON Self-Check project 조회

  • (required) id: 조회할 self check project ID
(Deprecated)GET /api/v2/selfchecks/{id}/export FILE Self-Check에서 Export한 결과 파일을 다운로드

  • (required) id: 조회할 self check project ID
GET /api/v2/selfchecks/{id}/bom/file FILE Self-Check에서 Export한 결과 파일을 다운로드

  • (required) id: 조회할 self check project ID
POST /api/v2/selfchecks/{id}/editors - Self-Check에 Editor를 추가

  • (required) emailList: 추가할 editor의 이메일 정보
  • (required) id: 대상 project ID
POST /api/v2/selfchecks/{id}/report - Self-Check에 오픈소스 분석된 리포트 파일을 업로드함

  • ossReport: 업로드할 리포트 파일
  • (required) id: 대상 self check project ID
  • resetFlag: 파일 업로드 시, 기존 입력된 정보들을 Reset할지 여부. N - 기존 OSS Table에 입력된 사항을 유지한 채 append (default = Y)
  • sheetNames: 업로드할 리포트 파일에서 특정 sheet name을 업데이트 하고자 하는 경우 입력. 입력하지 않는 경우 기본으로 DEP, SRC, BIN prefix에 맞춰서 정보를 불러옴. ,로 구분하여 여러 Sheet를 입력 가능
(Deprecated)POST /api/v2/selfchecks/{id}/watchers - Self-Check에 Watcher를 추가

  • (required) emailList: 추가할 watcher의 이메일 정보
  • (required) id: 대상 project ID

6. API 활용시, Code 값 확인

API 응답 형식 설명
GET /api/v2/codes JSON Project, 3rd Party 조회, Project 생성 시 사용할 Parameter의 값 List를 조회합니다.

  • (required) codeType: 코드를 조회하고 싶은 카테고리에 대해 약어로 입력합니다.
    • Division: DIV
    • OS Type: OS
    • Distribution Type: DSTT
    • Distribution Site: DSTS
    • Notice Type: NOTI
    • Notice Platform: NP
    • Priority: PRI
  • detailValue: codeType에 입력한 category 내의 상세값 입력

7. Binary DB 정보 조회

API 응답 형식 설명
GET /api/v2/binaries JSON Binary DB에서 하기 정보를 기준으로 조회합니다.

  • Binary Name
  • Checksum
  • TLSH
  • License
  • Download Location
  • OSS Name
  • OSS Version
  • Project Name

8. Compliance Status

API 응답 형식 설명
POST /api/v2/compliance/3rdparty-status JSON Compliance Status > 3rd Party Status 검색 기능으로 3rd Party 생성 날짜와 Division으로 조회합니다.

  • division: (/api/v2/codes 값으로 입력)
  • schEndDate: 검색할 범위 (생성날짜 기준)
  • schStartDate: 검색할 범위 (생성날짜 기준)
POST /api/v2/compliance/product-status JSON Compliance Status > Product Status 검색 기능으로 Project 생성 날짜, Model release date와 Division으로 조회합니다.

  • division: (/api/v2/codes 값으로 입력)
  • modelDistributedEndDate: 검색할 범위 (배포 날짜 기준)
  • modelDistributedStartDate: 검색할 범위 (배포 날짜 기준)
  • modelListInfo: 검색할 모델 정보
  • schEndDate: 검색할 범위 (생성날짜 기준)
  • schStartDate: 검색할 범위 (생성날짜 기준)

오류코드

Error 발생 시 HTTP Response Code가 2xx 이외의 값이 리턴 됩니다.