실시간 탐지 시나리오 복원
지정한 버전의 스냅샷으로 실시간 탐지 시나리오를 되돌립니다. 변경 이력 목록 조회 → 변경 이력 조회로 복원 대상 버전을 식별한 뒤 이 API를 호출합니다. 복원이 성공하면 해당 시점의 구성이 현재 시나리오에 적용되며 새 버전이 자동으로 생성됩니다. 참조 객체(스키마, 티켓 분류, 수집기 등)가 누락되었거나 이름이 중복되는 등 유효성 검증에 실패하면 시나리오는 변경되지 않고 실패 사유가 failures 배열로 반환됩니다.
필요 권한
관리자 이상의 계정으로 이용할 수 있습니다.
HTTP 요청
POST /api/sonar/stream-rules/:guid/versions/:version/restore
cURL 예시
curl -H "Authorization: Bearer <API_KEY>" \
-X POST \
https://HOSTNAME/api/sonar/stream-rules/3b05608f-8dd0-4218-9d6d-391515b6280d/versions/2/restore
요청 매개변수
경로 매개변수
| 키 | 타입 | 설명 | 비고 |
|---|---|---|---|
| guid | 문자열 | 실시간 탐지 시나리오 GUID | 36자 |
| version | 32비트 정수 | 복원할 스냅샷 버전 번호 |
정상 응답
{
"result": true,
"failures": []
}
- result (불리언): 복원 성공 여부. 성공 시
true. - failures (배열): 유효성 검증 실패 항목 목록. 성공 시 빈 배열.
유효성 검증 실패 응답
복원하려는 스냅샷이 현재 시스템 상태와 일치하지 않을 경우 (예: 참조하던 스키마, 티켓 분류, 수집기, 알람 그룹 등이 삭제된 경우 또는 이름이 중복되는 경우) HTTP 상태 코드 200 응답이지만 result가 false로 반환되며, failures 배열에 실패 사유가 포함됩니다.
{
"result": false,
"error_msg": "validation-falied",
"failures": [
{
"field": "schema",
"value": "edr-process",
"reason": "not-found"
}
]
}
- result (불리언): 복원 실패 시
false - error_msg (문자열): 오류 식별자. 항상
validation-falied(소스 코드의 표기 그대로). - failures (배열): 유효성 검증 실패 항목 목록
- field (문자열): 검증에 실패한 필드 이름.
schema,ticket_repo,address_group,rule_category,audit_category,reviewer,auditor,alarm_group,logger,logger_model,ticket_assignee,name중 하나. - value (문자열): 검증에 실패한 필드의 값
- reason (문자열): 실패 사유.
not-found(참조 객체가 존재하지 않음) 또는duplicate(이름이 다른 시나리오와 중복) 중 하나.
- field (문자열): 검증에 실패한 필드 이름.
오류 응답
매개변수 누락
HTTP 상태 코드 400 응답
{
"error_code": "null-argument",
"error_msg": "version should be not null"
}
식별자가 GUID 형식이 아닌 경우
HTTP 상태 코드 400 응답
{
"error_code": "invalid-param-type",
"error_msg": "guid should be guid type."
}
지정한 시나리오가 존재하지 않는 경우
HTTP 상태 코드 500 응답
{
"error_code": "illegal-state",
"error_msg": "stream rule not found: 3b05608f-8dd0-4218-9d6d-391515b6280d"
}
지정한 버전의 스냅샷이 존재하지 않는 경우
HTTP 상태 코드 500 응답
{
"error_code": "illegal-state",
"error_msg": "stream rule snapshot not found: 3b05608f-8dd0-4218-9d6d-391515b6280d v9"
}
권한이 없는 경우
HTTP 상태 코드 500 응답
{
"error_code": "illegal-state",
"error_msg": "no-permission"
}