GUARDiA ITSM API 명세서
Copyright © 2026 (주)지오정보기술 · Base URL:
http://<host>:8001개요
API 목록
보안 제약
응답 코드
602
총 API 수
73
도메인 태그
71
기능 영역
1,000+
지원 공공기관
검색 결과가 없습니다.
보안 제약 (불변 규칙)
| 규칙 | 내용 |
|---|---|
| 외부 API 금지 | on-premise Ollama만 허용. 외부 API 호출 절대 금지 |
| 자격증명 보호 | IP, SSH계정, 비밀번호를 API 응답 / 메신저 / 에러메시지에 절대 노출 금지 |
| 암호화 필수 | os_pw_enc 컬럼 AES-256-GCM 암호화 저장 (IV 12B + 암호문 + GCM Tag 16B) |
| root 금지 | root SSH 직접 접속 금지 — opsagent 전용 계정 사용 |
| 에러 응답 | 스택트레이스 미노출 — SR ID + 요약 메시지만 전달 |
| ServerOut 스키마 | ip_addr, ssh_user, os_pw_enc 컬럼 API 응답에서 완전 제외 |
| 감사 로그 | 모든 명령/결과 TB_AUDIT_LOG SHA-256 해시체인 기록 |
| MFA | 관리자/sm 역할 MFA 활성화 권고 (TOTP) |
RBAC 역할
| 역할 | 코드 | 권한 범위 |
|---|---|---|
| 관리자 | admin | 전체 |
| PM | pm | 승인 / 보고 / SLA / 프로젝트 |
| SM 엔지니어 | sm | SR 처리 / 배포 / SSH |
| 개발자 | dev | 코드리뷰 / Vibe CD |
| 고객 | customer | 포털 SR 접수 / 조회 |
| 뷰어 | viewer | 읽기 전용 |
인증 방식
Authorization: Bearer <JWT 토큰>
Content-Type: application/json
# 토큰 발급
POST /api/auth/login → { "username": "...", "password": "..." }
# MFA 2단계
POST /api/auth/login/mfa → { "token": "<TOTP 6자리>" }
# 토큰 만료: 24시간 (TRIAL_DURATION_DAYS 환경변수)
감사 로그 해시체인
hash = SHA256(prev_hash + actor + action + detail + timestamp)
GET /api/audit/verify → 전체 무결성 검증
GET /api/audit/verify/{a}/{b} → 구간 검증
공통 HTTP 응답 코드
| 코드 | 의미 | 설명 |
|---|---|---|
| 200 | OK | 조회 성공 |
| 201 | Created | 생성 성공 |
| 204 | No Content | 삭제 성공 (응답 바디 없음) |
| 400 | Bad Request | 입력값 오류 |
| 401 | Unauthorized | 인증 실패 또는 토큰 만료 |
| 403 | Forbidden | 권한 없음 (RBAC) |
| 404 | Not Found | 리소스 없음 |
| 409 | Conflict | 중복 또는 상태 충돌 |
| 422 | Unprocessable Entity | Pydantic 유효성 오류 |
| 429 | Too Many Requests | Rate Limit 초과 |
| 500 | Internal Server Error | 서버 오류 (상세 로그는 서버에만 기록) |
에러 응답 형식
{
"detail": "SR-1234: 상태 전이 불가 (현재: closed)",
"error_code": "SR_INVALID_STATE",
"sr_id": "SR-1234"
}
# 에러 코드 전체 목록: GET /api/admin/errors/codes
SLA 기준
| 우선순위 | 응답 | 해결 |
|---|---|---|
| CRITICAL | 15분 | 2시간 |
| HIGH | 1시간 | 4시간 |
| MEDIUM | 4시간 | 24시간 |
| LOW | 24시간 | 72시간 |