티켓 목록 조회

검색 조건과 일치하는 티켓 목록을 조회합니다.

필요 권한

사용자 이상의 계정으로 이용할 수 있습니다. 사용자 역할은 권한이 부여된 티켓 분류에 속한 티켓만 조회할 수 있습니다.

HTTP 요청

GET /api/sonar/tickets
cURL 예시
curl -H "Authorization: Bearer <API_KEY>" \
     https://HOSTNAME/api/sonar/tickets
요청 매개변수
필수타입설명비고
offsetX32비트 정수건너뛸 갯수기본값 0
limitX32비트 정수최대 갯수최소 0, 최대 1000. 미지정 시 1000
fromX날짜시작 일시yyyy-MM-dd HH:mm:ssZ 형식. 범위에 시작 일시 포함
toX날짜끝 일시yyyy-MM-dd HH:mm:ssZ 형식. 범위에 끝 일시 포함
statusesX문자열 목록상태쉼표(,)로 구분. 하단 상태 코드 참조
keywordsX문자열검색 키워드
prioritiesX32비트 정수 목록중요도 목록상 (3), 중 (2), 하 (1). 다중 선택 시 쉼표(,)로 구분
assigneesX문자열 목록할당자 목록쉼표(,)로 구분된 계정 GUID 목록
approversX문자열 목록결재자 목록쉼표(,)로 구분된 계정 GUID 목록
sort_typeX문자열정렬 유형ASC, DESC 중 하나
sort_columnX문자열정렬 기준id, created_at, updated_at, closed_at 중 하나

티켓 상태 코드

  • 신규 (NEW)
  • 할당 (ASSIGNED)
  • 처리중 (IN_PROGRESS)
  • 결재중 (SUBMITTED)
  • 승인 (APPROVED)
  • 반려 (REJECTED)
  • 완료 (CLOSED)

정상 응답

{
  "total": 15,
  "tickets": [
    {
      "id": 2,
      "repo_guid": "5f0ba741-7551-400d-8bd6-1f14a6e8536d",
      "repo_name": "위협분석",
      "guid": "49272877-75f2-4c2f-9301-d21c4f9a106d",
      "title": "웹 서버 설정 수집 시도: 20.0.31.172",
      "priority": "LOW",
      "status": "ASSIGNED",
      "format": "JSON",
      "count": 7,
      "attack": true,
      "incident": false,
      "assignees": [
        {
          "company_guid": "6fbe27b7-f1ae-4d7a-a1a5-76d8fa9aa311",
          "company_name": "로그프레소",
          "user_guid": "bfd00bb0-be99-4fd5-8380-166f544975fa",
          "user_name": "구동언",
          "task_type": "ASSIGNEE",
          "task_status": "ASSIGNED",
          "x_login": null,
          "x_user": null,
          "x_dept": null
        }
      ],
      "approvers": [],
      "created": "2022-09-14 17:34:19+0900",
      "updated": "2022-09-14 23:55:29+0900",
      "closed": null,
      "x_login": null,
      "x_user": null,
      "x_dept": null
    }
  ]
}
  • (32비트 정수) total
  • (배열) tickets
    • id (32비트 정수): 티켓 ID
    • repo_guid (문자열): 티켓 유형 식별자
    • repo_name (문자열): 티켓 유형 이름
    • site_guid (문자열): 사이트 식별자
    • site_name (문자열): 사이트 이름
    • guid (문자열): 티켓 식별자
    • title (문자열): 제목
    • priority (문자열): 중요도. 상 (HIGH), 중 (MEDIUM), 하 (LOW) 중 하나.
    • status (문자열): 상태. 신규 (NEW), 할당 (ASSIGNED), 처리중 (IN_PROGRESS), 결재중 (SUBMITTED), 승인 (APPROVED), 반려 (REJECTED), 완료 (CLOSED) 중 하나.
    • format (문자열): 티켓 형식. JSON, MARKDOWN, PLAIN 중 하나. 위협 탐지 티켓은 JSON 형식으로 정보 기록.
    • count (32비트 정수): 중복 축약 건수.
    • attack (불리언): 분석 후 기록한 정탐 여부. 탐지 자체가 정확하다면 true로 기록함.
    • incident (불리언): 분석 후 기록한 사고 발생 여부. 엔드포인트 감염 발생 등 즉각적 대응이 필요한 상황인 경우 true로 기록함.
    • assignees (배열): 티켓 할당자 목록
      • company_guid (문자열): 회사 (테넌트) 식별자
      • company_name (문자열): 회사 (테넌트) 이름
      • user_guid (문자열): 할당자 계정 식별자
      • user_name (문자열): 할당자 성명
      • task_type (문자열): ASSIGNEE 고정.
      • task_status (문자열): 할당 (ASSIGNED), 처리중 (IN_PROGRESS), 완료 (CLOSED) 중 하나.
      • x_login (문자열): 할당자 계정 삭제 시 기록되는 로그인 계정 이름
      • x_user (문자열): 할당자 계정 삭제 시 기록되는 사용자 성명
      • x_dept (문자열): 할당자 계정 삭제 시 기록되는 부서 이름
    • approvers (배열): 티켓 결재자 목록
      • company_guid (문자열): 회사 (테넌트) 식별자
      • company_name (문자열): 회사 (테넌트) 이름
      • user_guid (문자열): 결재자 계정 식별자
      • user_name (문자열): 결재자 성명
      • task_type (문자열): APPROVER 고정.
      • task_status (문자열): 할당 (ASSIGNED), 승인 (ASSIGNED), 반려 (REJECTED) 중 하나.
      • x_login (문자열): 결재자 계정 삭제 시 기록되는 로그인 계정 이름
      • x_user (문자열): 결재자 계정 삭제 시 기록되는 사용자 성명
      • x_dept (문자열): 결재자 계정 삭제 시 기록되는 부서 이름
    • created (문자열): 생성일시. yyyy-MM-dd HH:mm:ssZ 형식
    • updated (문자열): 수정일시. yyyy-MM-dd HH:mm:ssZ 형식
    • closed (문자열): 완료일시. yyyy-MM-dd HH:mm:ssZ 형식
    • x_login (문자열): 티켓 작성 계정 삭제 시 기록되는 로그인 계정 이름
    • x_user (문자열): 티켓 작성 계정 삭제 시 기록되는 사용자 성명
    • x_dept (문자열): 티켓 작성 계정 삭제 시 기록되는 부서 이름
    • x_site (문자열): 사이트 삭제 시 기록되는 사이트 이름

오류 응답

offset, limit 값이 정수가 아닌 경우

HTTP 상태 코드 400 응답

{
  "error_code": "invalid-argument",
  "error_msg": "'offset' parameter should be int type"
}
offset, limit 값이 음수인 경우

HTTP 상태 코드 400 응답

{
  "error_code": "invalid-argument",
  "error_msg": "'offset' must be greater than or equal to 0."
}
from, to 날짜 포맷이 잘못된 경우

HTTP 상태 코드 400 응답

{
  "error_code": "invalid-argument",
  "error_msg": "'from' parameter should be date format (yyyy-MM-dd HH:mm:ss+0000)"
}
정의되지 않은 상태 코드를 사용한 경우

HTTP 상태 코드 400 응답

{
  "error_code": "invalid-argument",
  "error_msg": "'statuses' should contain elements that is one of NEW, ASSIGNED, IN_PROGRESS, SUBMITTED, APPROVED, REJECTED, CLOSED."
}
정의되지 않은 중요도 값을 사용한 경우

HTTP 상태 코드 400 응답

{
  "error_code": "invalid-argument",
  "error_msg": "element of priorities should be one of 1 (LOW), 2 (MEDIUM), 3 (HIGH). input is 4"
}
정의되지 않은 정렬 유형을 사용한 경우

HTTP 상태 코드 400 응답

{
  "error_code": "invalid-argument",
  "error_msg": "sort_type should be one of ASC or DESC. input is NONE"
}
허용되지 않은 정렬 컬럼을 지정한 경우

HTTP 상태 코드 400 응답

{
  "error_code": "invalid-argument",
  "error_msg": "sort_column should be one of id, created_at, updated_at, closed_at."
}
assignees, approvers 목록의 값이 GUID 형식이 아닌 경우

HTTP 상태 코드 400 응답

{
  "error_code": "invalid-argument",
  "error_msg": "assignees should contains only guid values."
}