diff --git a/16_API_명세서.md b/16_API_명세서.md new file mode 100644 index 0000000..29d9597 --- /dev/null +++ b/16_API_명세서.md @@ -0,0 +1,724 @@ +# GUARDiA ITSM — 전체 기능 목록 및 API 명세서 + +> **버전:** 2.0.0 | **총 라우트:** 588개 | **기준일:** 2026-05-30 +> **Base URL:** `http://localhost:8001` +> **인증:** JWT Bearer Token (`POST /api/auth/login` → `access_token`) + +--- + +## 목차 + +| 번호 | 도메인 | 엔드포인트 수 | +|------|--------|-------------| +| 1 | [인증 / 사용자 관리](#1-인증--사용자-관리) | 16 | +| 2 | [SR 서비스 요청](#2-sr-서비스-요청) | 9 | +| 3 | [승인 워크플로우](#3-승인-워크플로우) | 6 | +| 4 | [대시보드](#4-대시보드) | 3 | +| 5 | [CMDB / 인프라](#5-cmdb--인프라) | 17 | +| 6 | [PMS (프로젝트 관리)](#6-pms-프로젝트-관리) | 91 | +| 7 | [인시던트 / 장애](#7-인시던트--장애) | 11 | +| 8 | [문제 관리 (Problem)](#8-문제-관리) | 13 | +| 9 | [변경 관리 (CAB)](#9-변경-관리-cab) | 18 | +| 10 | [보안](#10-보안) | 38 | +| 11 | [AI / 자동화](#11-ai--자동화) | 48 | +| 12 | [모니터링](#12-모니터링) | 25 | +| 13 | [운영 관리](#13-운영-관리) | 47 | +| 14 | [통합 연동](#14-통합-연동) | 34 | +| 15 | [준수성 / 품질](#15-준수성--품질) | 18 | +| 16 | [고객 포털](#16-고객-포털) | 9 | +| 17 | [포트폴리오 / 리소스](#17-포트폴리오--리소스) | 8 | +| 18 | [인프라 확장](#18-인프라-확장) | 7 | +| 19 | [메신저 봇](#19-메신저-봇) | 2 | +| 20 | [라이선스](#20-라이선스) | 6 | + +--- + +## 1. 인증 / 사용자 관리 + +| Method | Endpoint | 설명 | 인증 | +|--------|----------|------|------| +| POST | `/api/auth/login` | 로그인 (JWT 발급) | ❌ | +| POST | `/api/auth/login/mfa` | MFA 2단계 인증 | ❌ | +| POST | `/api/auth/logout` | 로그아웃 | ✅ | +| GET | `/api/auth/me` | 내 정보 조회 | ✅ | +| POST | `/api/auth/change-password` | 비밀번호 변경 | ✅ | +| GET | `/api/auth/users` | 사용자 목록 | ADMIN | +| GET | `/api/auth/mfa/status` | MFA 상태 조회 | ✅ | +| POST | `/api/auth/mfa/setup` | MFA 등록 시작 | ✅ | +| POST | `/api/auth/mfa/enable` | MFA 활성화 | ✅ | +| POST | `/api/auth/mfa/disable` | MFA 비활성화 | ✅ | +| POST | `/api/auth/admin/users/{id}/mfa-reset` | MFA 초기화 | ADMIN | +| POST | `/api/auth/admin/users/{id}/unlock` | 계정 잠금 해제 | ADMIN | +| GET | `/api/auth/admin/users/{id}/lock-status` | 잠금 상태 조회 | ADMIN | +| GET | `/api/auth/oauth/providers` | OAuth 제공자 목록 | ❌ | +| GET | `/api/auth/oauth/{provider}/start` | OAuth 로그인 시작 | ❌ | +| GET | `/api/auth/oauth/{provider}/callback` | OAuth 콜백 | ❌ | + +**OAuth 지원 플랫폼:** Google, GitHub, 카카오, 네이버, Keycloak(SSO) + +--- + +## 2. SR 서비스 요청 + +| Method | Endpoint | 설명 | 인증 | +|--------|----------|------|------| +| GET | `/api/tasks` | SR 목록 (필터: status/type/priority/keyword) | ✅ | +| POST | `/api/tasks` | SR 생성 (AI 자동 분류 + SLA 자동 설정) | ❌ | +| GET | `/api/tasks/stats` | SR 통계 | ✅ | +| GET | `/api/tasks/sla/violations` | SLA 위반 목록 | ✅ | +| POST | `/api/tasks/bulk` | SR 대량 처리 (최대 100건) | ✅ | +| GET | `/api/tasks/{sr_id}` | SR 상세 조회 | ✅ | +| PATCH| `/api/tasks/{sr_id}/status` | SR 상태 변경 | ✅ | +| GET | `/api/tasks/{sr_id}/sla` | SLA 현황 조회 | ✅ | +| GET | `/api/tasks/{sr_id}/ai-suggestion` | AI 분류 결과 조회 | ✅ | + +**상태 전이:** RECEIVED → PARSED → PENDING_APPROVAL → APPROVED → IN_PROGRESS → PENDING_PM_VALIDATION → COMPLETED + +**Bulk action:** `STATUS_CHANGE | ASSIGN | CLOSE | PRIORITY_CHANGE` + +--- + +## 3. 승인 워크플로우 + +| Method | Endpoint | 설명 | 인증 | +|--------|----------|------|------| +| GET | `/api/approvals/{sr_id}` | SR 승인 목록 | ✅ | +| POST | `/api/approvals/{sr_id}` | 승인/반려 처리 | PM/ADMIN | +| GET | `/api/approvals/pending/overdue` | 기한 초과 승인 목록 | PM/ADMIN | +| POST | `/api/approvals/{id}/delegate` | 결재 위임 | ✅ | +| POST | `/api/approvals/{id}/sign` | 전자서명 | ✅ | +| POST | `/api/approvals/{id}/extend-deadline` | 마감 연장 | PM/ADMIN | + +--- + +## 4. 대시보드 + +| Method | Endpoint | 설명 | 인증 | +|--------|----------|------|------| +| GET | `/api/dashboard/me` | 역할별 개인화 대시보드 | ✅ | +| GET | `/api/dashboard/stats/trend` | 7일 SR 추이 | ✅ | +| GET | `/api/dashboard/events` | SSE 실시간 이벤트 스트림 | ✅ | + +**역할별 응답:** +- ADMIN: 전체 현황 + 엔지니어 워크로드 + 승인 대기 +- PM: 승인 큐 + 기관 현황 +- ENGINEER: 내 담당 SR + 이달 통계 +- CUSTOMER: 내 기관 SR + 만족도 + +--- + +## 5. CMDB / 인프라 + +### CI (Configuration Item) + +| Method | Endpoint | 설명 | +|--------|----------|------| +| GET | `/api/cmdb/ci` | CI 목록 | +| POST | `/api/cmdb/ci` | CI 등록 | +| GET | `/api/cmdb/ci/stats` | CI 통계 | +| POST | `/api/cmdb/ci/import-servers` | 서버 일괄 CI 변환 | +| GET | `/api/cmdb/ci/{ci_id}` | CI 상세 | +| PATCH | `/api/cmdb/ci/{ci_id}` | CI 수정 | +| DELETE | `/api/cmdb/ci/{ci_id}` | CI 삭제 | +| GET | `/api/cmdb/ci/{ci_id}/relations` | CI 의존관계 | +| GET | `/api/cmdb/ci/{ci_id}/history` | CI 변경 이력 | +| POST | `/api/cmdb/ci/relations` | CI 관계 등록 | +| DELETE | `/api/cmdb/ci/relations/{id}` | CI 관계 삭제 | + +### 서버 / 기관 + +| Method | Endpoint | 설명 | +|--------|----------|------| +| GET | `/api/cmdb/servers` | 서버 목록 | +| POST | `/api/cmdb/servers` | 서버 등록 | +| GET | `/api/cmdb/servers/{id}` | 서버 상세 | +| PATCH | `/api/cmdb/servers/{id}` | 서버 수정 | +| GET | `/api/cmdb/institutions` | 기관 목록 | +| GET | `/api/cmdb/institutions/{code}/servers` | 기관별 서버 | + +--- + +## 6. PMS (프로젝트 관리) + +### 프로젝트 + +| Method | Endpoint | 설명 | +|--------|----------|------| +| GET | `/api/si/projects` | 프로젝트 목록 | +| POST | `/api/si/projects` | 프로젝트 생성 | +| GET | `/api/si/projects/{id}` | 프로젝트 상세 | +| PATCH | `/api/si/projects/{id}` | 프로젝트 수정 | +| DELETE | `/api/si/projects/{id}` | 프로젝트 삭제 | +| PATCH | `/api/si/projects/{id}/phase` | 단계 전환 | +| GET | `/api/si/projects/{id}/summary` | 진척 요약 | +| GET | `/api/si/projects/{id}/rtm` | RTM (요구사항↔WBS↔TC) | +| GET | `/api/si/projects/{id}/checklist` | 단계별 체크리스트 | +| PATCH | `/api/si/projects/{id}/checklist/{cid}` | 체크리스트 완료 | +| POST | `/api/si/projects/{id}/convert-to-sm` | SM 전환 | + +### WBS + +| Method | Endpoint | 설명 | +|--------|----------|------| +| GET | `/api/si/projects/{id}/wbs` | WBS 목록 | +| POST | `/api/si/projects/{id}/wbs` | WBS 항목 등록 | +| POST | `/api/si/projects/{id}/wbs/bulk` | WBS 일괄 등록 | +| GET | `/api/si/projects/{id}/wbs/gantt` | Gantt 차트 데이터 | +| GET | `/api/si/projects/{id}/wbs/{item_id}` | WBS 상세 | +| PATCH | `/api/si/projects/{id}/wbs/{item_id}` | WBS 수정 | +| PATCH | `/api/si/projects/{id}/wbs/{item_id}/progress` | 진척률 갱신 | +| DELETE | `/api/si/projects/{id}/wbs/{item_id}` | WBS 삭제 | + +### 산출물 (Deliverables) + +| Method | Endpoint | 설명 | +|--------|----------|------| +| GET | `/api/si/projects/{id}/deliverables` | 산출물 목록 | +| POST | `/api/si/projects/{id}/deliverables` | 산출물 등록 | +| GET | `/api/si/projects/{id}/deliverables/summary` | 제출 현황 요약 | +| GET | `/api/si/projects/{id}/deliverables/{did}` | 산출물 상세 | +| PATCH | `/api/si/projects/{id}/deliverables/{did}` | 산출물 수정 | +| DELETE | `/api/si/projects/{id}/deliverables/{did}` | 산출물 삭제 | +| POST | `/api/si/projects/{id}/deliverables/{did}/submit` | 제출 처리 | +| POST | `/api/si/projects/{id}/deliverables/{did}/review` | 검토 결과 등록 | + +### 보고서 + +| Method | Endpoint | 설명 | 형식 | +|--------|----------|------|------| +| GET | `/api/si/projects/{id}/report/daily` | 일일 보고서 | `?format=excel\|html\|pdf\|docx\|pptx` | +| GET | `/api/si/projects/{id}/report/weekly` | 주간 보고서 | 동일 | +| GET | `/api/si/projects/{id}/report/monthly` | 월간 보고서 | 동일 | +| GET | `/api/si/projects/{id}/report/status` | 현황 JSON | — | +| POST | `/api/si/projects/{id}/report/send` | 메신저 자동 발송 | — | + +### 이슈 / 위험 / 마일스톤 / 요구사항 / 변경요청 / 테스트 + +각 도메인별 CRUD + 상태 전환 엔드포인트 (약 50개) + +--- + +## 7. 인시던트 / 장애 + +| Method | Endpoint | 설명 | +|--------|----------|------| +| GET | `/api/incidents` | 장애 목록 | +| POST | `/api/incidents` | 장애 등록 | +| GET | `/api/incidents/stats` | 통계 | +| GET | `/api/incidents/{id}` | 장애 상세 | +| PATCH | `/api/incidents/{id}` | 장애 수정 | +| PATCH | `/api/incidents/{id}/status` | 상태 변경 | +| POST | `/api/incidents/{id}/close` | 종료 (RCA 포함) | +| POST | `/api/incidents/{id}/auto-rca` | **AI 자동 RCA 분석** | +| POST | `/api/incidents/{id}/link-sr` | SR 연결 | +| DELETE | `/api/incidents/{id}/link-sr/{sr_id}` | SR 연결 해제 | +| GET | `/api/incidents/{id}/srs` | 연결된 SR 목록 | + +--- + +## 8. 문제 관리 + +| Method | Endpoint | 설명 | +|--------|----------|------| +| GET | `/api/problem/` | 문제 목록 | +| POST | `/api/problem/` | 문제 등록 | +| GET | `/api/problem/known-errors` | Known Error DB | +| GET | `/api/problem/stats` | 통계 | +| GET | `/api/problem/{id}` | 문제 상세 | +| PATCH | `/api/problem/{id}` | 문제 수정 | +| POST | `/api/problem/{id}/auto-rca` | **AI 자동 RCA** | +| POST | `/api/problem/{id}/rca` | RCA 직접 기록 | +| POST | `/api/problem/{id}/workaround` | 임시 해결 등록 | +| POST | `/api/problem/{id}/resolve` | 해결 처리 | +| POST | `/api/problem/{id}/close` | 종결 | +| POST | `/api/problem/{id}/notes` | 활동 노트 추가 | +| GET | `/api/problem/{id}/notes` | 활동 노트 목록 | + +--- + +## 9. 변경 관리 (CAB) + +| Method | Endpoint | 설명 | +|--------|----------|------| +| GET/POST | `/api/change/rfc` | RFC 목록/등록 | +| GET | `/api/change/rfc/{id}` | RFC 상세 | +| PATCH | `/api/change/rfc/{id}` | RFC 수정 | +| POST | `/api/change/rfc/{id}/submit` | 제출 | +| POST | `/api/change/rfc/{id}/vote` | CAB 투표 | +| POST | `/api/change/rfc/{id}/decide` | 결정 | +| POST | `/api/change/rfc/{id}/schedule` | 일정 확정 | +| POST | `/api/change/rfc/{id}/start` | 구현 시작 | +| POST | `/api/change/rfc/{id}/complete` | 완료 | +| POST | `/api/change/rfc/{id}/fail` | 실패 처리 | +| GET | `/api/change/rfc/{id}/votes` | 투표 결과 | +| GET/POST | `/api/change/freeze` | 동결 기간 관리 | +| GET | `/api/change/freeze/check` | 동결 여부 확인 | +| DELETE | `/api/change/freeze/{id}` | 동결 삭제 | +| GET | `/api/change/calendar` | 변경 캘린더 | +| GET | `/api/change/stats` | 통계 | + +--- + +## 10. 보안 + +### 취약점 스캔 (D-4) + +| Method | Endpoint | 설명 | +|--------|----------|------| +| POST | `/api/vuln/scan` | 서버 취약점 스캔 | +| GET | `/api/vuln/scans` | 스캔 이력 | +| GET | `/api/vuln/scans/{id}` | 스캔 결과 | +| POST | `/api/vuln/quick-check` | 빠른 점검 | +| GET | `/api/vuln/cve/{cve_id}` | CVE 상세 | +| POST | `/api/vuln/cvss` | CVSS 점수 계산 | +| GET | `/api/vuln/stats` | 통계 | +| GET | `/api/vuln/policies` | 스캔 정책 | +| GET | `/api/vuln/patches` | 패치 이력 | +| POST | `/api/vuln/scans/{id}/patch` | 패치 완료 등록 | +| GET | `/api/vuln/patch-stats` | 패치 현황 통계 | +| GET | `/api/vuln/overdue-patches` | 미패치 목록 | + +### PAM 특권 접근 관리 (D-3) + +| Method | Endpoint | 설명 | +|--------|----------|------| +| POST | `/api/pam/sessions` | PAM 세션 발급 | +| GET | `/api/pam/sessions` | 세션 목록 | +| POST | `/api/pam/sessions/{id}/checkout` | 세션 체크아웃 | +| POST | `/api/pam/sessions/{id}/checkin` | 세션 반납 | +| POST | `/api/pam/sessions/{id}/approve` | 승인 | +| POST | `/api/pam/sessions/{id}/reject` | 거부 | +| POST | `/api/pam/sessions/{id}/execute` | 명령 실행 | +| POST | `/api/pam/sessions/{id}/terminate` | 강제 종료 | +| GET | `/api/pam/sessions/{id}/commands` | 명령 이력 | +| GET | `/api/pam/policies` | 접근 정책 | +| GET | `/api/pam/stats` | 통계 | + +### 감사 로그 (D-5, 불변 해시체인) + +| Method | Endpoint | 설명 | +|--------|----------|------| +| GET | `/api/audit` | 감사 로그 목록 | +| GET | `/api/audit/{id}` | 로그 상세 | +| POST | `/api/audit/record` | 수동 로그 기록 | +| GET | `/api/audit/stats` | 통계 | +| GET | `/api/audit/verify` | 해시체인 검증 | +| GET | `/api/audit/verify/{from}/{to}` | 구간 검증 | +| GET | `/api/audit/export` | 감사 로그 내보내기 | +| GET | `/api/audit/entity/{type}/{id}` | 엔티티별 로그 | + +### LDAP/AD 연동 (D-1) + +| Method | Endpoint | 설명 | +|--------|----------|------| +| POST | `/api/ldap/authenticate` | LDAP 인증 | +| GET | `/api/ldap/config` | 설정 조회 | +| PUT | `/api/ldap/config` | 설정 변경 | +| POST | `/api/ldap/test` | 연결 테스트 | +| POST | `/api/ldap/sync/{username}` | 사용자 동기화 | +| GET | `/api/ldap/users` | LDAP 사용자 목록 | +| GET/PUT | `/api/ldap/group-map` | 그룹↔역할 매핑 | +| GET | `/api/ldap/status` | 연결 상태 | + +--- + +## 11. AI / 자동화 + +### AI 에이전트 시스템 + +| Method | Endpoint | 설명 | +|--------|----------|------| +| GET/POST | `/api/agents` | 에이전트 목록/등록 | +| GET | `/api/agents/stats` | 통계 | +| POST | `/api/agents/{id}/heartbeat` | 하트비트 | +| GET/POST | `/api/agents/{id}/tasks` | 에이전트 태스크 | +| POST | `/api/agents/{id}/pause/resume` | 일시정지/재개 | +| POST | `/api/agents/finetune/start` | 파인튜닝 시작 | +| GET | `/api/agents/llm/health` | Ollama 상태 | + +### 이상 탐지 (B-1) + +| Method | Endpoint | 설명 | +|--------|----------|------| +| POST | `/api/anomaly/detect` | 이상 탐지 실행 | +| GET | `/api/anomaly/summary` | 탐지 요약 | +| GET | `/api/anomaly/events` | 이벤트 목록 | +| PATCH | `/api/anomaly/events/{id}/acknowledge` | 인지 처리 | +| PATCH | `/api/anomaly/events/{id}/resolve` | 해결 처리 | +| GET/POST | `/api/anomaly/rules` | 규칙 관리 | +| POST | `/api/anomaly/metrics` | 메트릭 수집 | +| POST | `/api/anomaly/simulate` | 시뮬레이션 | + +### 예측 유지보수 (B-6) + +| Method | Endpoint | 설명 | +|--------|----------|------| +| POST | `/api/predictive/analyze/{source}` | 예측 분석 | +| GET | `/api/predictive/health/{source}` | 건강도 조회 | +| GET | `/api/predictive/lifecycle` | 수명 예측 | +| POST | `/api/predictive/batch` | 일괄 분석 | +| GET/PUT | `/api/predictive/thresholds` | 임계값 관리 | + +### 챗봇 (B-2) + +| Method | Endpoint | 설명 | +|--------|----------|------| +| POST | `/api/chatbot/message` | 메시지 전송 | +| GET | `/api/chatbot/sessions` | 세션 목록 | +| DELETE | `/api/chatbot/sessions/{key}` | 세션 삭제 | +| GET | `/api/chatbot/history/{key}` | 대화 이력 | + +### 코드 리뷰 (B-3) + +| Method | Endpoint | 설명 | +|--------|----------|------| +| POST | `/api/code-review` | 심층 리뷰 | +| POST | `/api/code-review/quick-scan` | 빠른 스캔 | +| GET | `/api/code-review/{id}` | 리뷰 결과 | +| GET | `/api/code-review/{id}/findings` | 발견 항목 | + +### KB 자동 업데이트 (B-4) / 오케스트레이션 (B-5) + +다수의 에이전트 협업 및 KB 관리 엔드포인트 (약 15개) + +### 학습 루프 (Self-Improving) + +| Method | Endpoint | 설명 | +|--------|----------|------| +| POST | `/api/learning/detect-recurrence` | 재발 패턴 탐지 | +| GET | `/api/learning/patterns` | 학습 패턴 | +| GET | `/api/learning/lessons` | 교훈 목록 | +| GET | `/api/learning/stats` | 학습 통계 | +| POST | `/api/learning/mine` | 패턴 마이닝 | + +--- + +## 12. 모니터링 + +### Scouter APM + +| Method | Endpoint | 설명 | +|--------|----------|------| +| GET | `/api/scouter/status` | 연결 상태 + 현황 | +| GET | `/api/scouter/servers` | 모니터링 서버 목록 | +| GET | `/api/scouter/servers/{hash}/metrics` | 실시간 메트릭 | +| GET | `/api/scouter/servers/{hash}/services` | 활성 서비스 | +| GET | `/api/scouter/servers/{hash}/xlog` | X-Log (트랜잭션) | +| GET | `/api/scouter/alerts` | 경보 목록 | +| POST | `/api/scouter/agent/deploy` | 에이전트 SSH 배포 | + +### SSL 인증서 관리 + +| Method | Endpoint | 설명 | +|--------|----------|------| +| GET | `/api/ssl/summary` | 만료 현황 요약 | +| GET | `/api/ssl/expiring` | 만료 임박 목록 | +| POST | `/api/ssl/check/{id}` | 인증서 점검 | +| POST | `/api/ssl/renew/{id}` | 갱신 요청 | +| GET | `/api/ssl/history/{id}` | 이력 조회 | + +### 네트워크 토폴로지 + +| Method | Endpoint | 설명 | +|--------|----------|------| +| GET | `/api/topology/graph` | 전체 CI 그래프 (D3.js) | +| GET | `/api/topology/graph/{ci_id}` | 서브그래프 | +| GET | `/api/topology/health` | 헬스 오버레이 | +| GET | `/api/topology/page` | 인터랙티브 뷰어 HTML | + +### 메트릭 / Grafana + +| Method | Endpoint | 설명 | +|--------|----------|------| +| GET | `/api/metrics/prometheus` | Prometheus 형식 | +| GET | `/api/metrics/summary` | 메트릭 요약 | +| GET | `/api/metrics/health` | 헬스체크 | +| POST | `/api/metrics/query` | 메트릭 조회 | + +--- + +## 13. 운영 관리 + +### 배포 파이프라인 (Vibe) + +| Method | Endpoint | 설명 | +|--------|----------|------| +| GET/POST | `/api/vibe` | 세션 목록/생성 | +| POST | `/api/vibe/{id}/build` | 빌드 트리거 | +| POST | `/api/vibe/{id}/deploy` | 배포 트리거 | +| POST | `/api/vibe/{id}/impact-analysis` | **배포 영향 분석** | +| POST | `/api/vibe/{id}/request-approval` | 승인 요청 | +| GET | `/api/vibe/{id}/build/stream` | 빌드 로그 SSE | + +### 배치 작업 + +| Method | Endpoint | 설명 | +|--------|----------|------| +| GET/POST | `/api/batch/jobs` | 배치 목록/등록 | +| POST | `/api/batch/jobs/{id}/enable` | 활성화 | +| POST | `/api/batch/jobs/{id}/run` | 즉시 실행 | +| GET | `/api/batch/runs/{id}/stream` | 실행 로그 SSE | + +### On-Call 관리 + +| Method | Endpoint | 설명 | +|--------|----------|------| +| GET | `/api/oncall/on-duty` | 현재 당직자 | +| GET | `/api/oncall/today` | 오늘 당직 | +| POST | `/api/oncall/escalate` | 에스컬레이션 | +| POST | `/api/oncall/rotate/trigger` | 수동 로테이션 | + +### 작업 타임테이블 + +| Method | Endpoint | 설명 | +|--------|----------|------| +| GET | `/api/timetable` | 작업 목록 | +| POST | `/api/timetable` | 작업 등록 | +| GET | `/api/timetable/stats` | 통계 | +| GET | `/api/timetable/export/excel` | Excel 다운로드 | + +### PM (예방 점검) + +| Method | Endpoint | 설명 | +|--------|----------|------| +| GET/POST | `/api/pm/schedules` | PM 스케줄 관리 | +| POST | `/api/pm/schedules/{id}/trigger` | 수동 실행 | +| GET | `/api/pm/results/{id}` | 점검 결과 | +| GET | `/api/pm/results/{id}/report` | 점검 보고서 | + +--- + +## 14. 통합 연동 + +### 외부 API 게이트웨이 + +| Method | Endpoint | 설명 | +|--------|----------|------| +| GET/POST | `/api/gateway/integrations` | 연동 목록/등록 | +| POST | `/api/gateway/integrations/{id}/test` | 연동 테스트 | +| POST | `/api/gateway/webhook/{key}` | 웹훅 수신 | +| POST | `/api/gateway/send/{id}` | 아웃바운드 발송 | + +### Jira/Confluence 연동 (G-9) + +| Method | Endpoint | 설명 | +|--------|----------|------| +| POST | `/api/gateway/jira/sync/{sr_id}` | SR → Jira 이슈 | +| GET | `/api/gateway/jira/status/{key}` | Jira 상태 조회 | +| GET | `/api/gateway/jira/projects` | Jira 프로젝트 목록 | +| POST | `/api/gateway/confluence/publish` | KB → Confluence | + +### 그룹웨어 전자결재 + +| Method | Endpoint | 설명 | +|--------|----------|------| +| POST | `/api/groupware/send-approval` | 결재 요청 발송 | +| POST | `/api/groupware/callback` | 승인/반려 콜백 | +| GET | `/api/groupware/approvals` | 결재 이력 | +| GET | `/api/groupware/config` | 연동 설정 현황 | + +**지원 플랫폼:** 카카오워크, 네이버웍스, 한컴오피스, 사용자 정의 웹훅 + +### SIEM 보안 이벤트 + +| Method | Endpoint | 설명 | +|--------|----------|------| +| POST | `/api/siem/events` | 이벤트 전송 | +| POST | `/api/siem/events/batch` | 일괄 전송 | +| POST | `/api/siem/alert/receive` | SIEM 경보 수신 (역방향) | +| GET | `/api/siem/events` | 이벤트 조회 | +| GET | `/api/siem/stats` | 연동 통계 | + +**지원 플랫폼:** Elasticsearch, Splunk HEC, OpenSearch + +### 메신저 봇 + +| Method | Endpoint | 설명 | +|--------|----------|------| +| POST | `/api/messenger/webhook` | 이벤트 수신 | +| POST | `/api/messenger/bot/command` | 봇 명령어 처리 | + +**슬래시 명령어:** + +| 명령어 | 기능 | +|--------|------| +| `/sr <제목>` | SR 빠른 접수 | +| `/status` | 시스템 현황 | +| `/license` | 라이선스 상태 | +| `/bulk ` | SR 대량 처리 | +| `/pms <코드>` | 프로젝트 현황 | +| `/report <코드> [daily\|weekly\|monthly]` | 보고서 발송 | +| `/deliverables <코드>` | 산출물 현황 | +| `/issues <코드>` | 미결 이슈 | +| `/scan` | 보안 점검 | +| `/checklist` | 공공기관 체크리스트 | +| `/perf [url]` | 성능 테스트 | +| `!vibe`, `!build`, `!deploy` | 배포 제어 | +| `!sm`, `!health`, `!log` | SM 원격 제어 | + +--- + +## 15. 준수성 / 품질 + +### 시큐어코딩 / 웹접근성 / 개인정보보호 + +| Method | Endpoint | 설명 | +|--------|----------|------| +| POST | `/api/compliance/scan` | 전체 프로젝트 스캔 | +| GET | `/api/compliance/results` | 최근 결과 조회 | +| GET | `/api/compliance/rules` | 점검 규칙 목록 | +| POST | `/api/compliance/scan/file` | 단건 파일 점검 | +| GET | `/api/compliance/report/html` | HTML 보고서 | +| GET | `/api/compliance/report/excel` | Excel 보고서 | + +**점검 규칙:** SC-8개 (시큐어코딩) + WA-7개 (웹접근성) + PI-6개 (개인정보) + +### 성능 테스트 (JMeter) + +| Method | Endpoint | 설명 | +|--------|----------|------| +| POST | `/api/perf/upload/jtl` | JTL 파일 업로드 분석 | +| POST | `/api/perf/run` | 내장 부하 테스트 | +| GET | `/api/perf/results` | 결과 목록 | +| GET | `/api/perf/results/{id}` | 결과 상세 | +| GET | `/api/perf/results/{id}/html` | HTML 보고서 | +| GET | `/api/perf/results/{id}/excel` | Excel 보고서 | + +**측정 지표:** TPS, 평균/P50/P90/P95/P99 응답시간, 에러율 + +### 공공기관 체크리스트 + +| Method | Endpoint | 설명 | +|--------|----------|------| +| GET | `/api/public/checklist` | 19개 항목 목록 | +| POST | `/api/public/checklist/{id}/check` | 항목 완료 처리 | +| GET | `/api/public/status` | 이행 현황 요약 | +| GET | `/api/public/report/html` | HTML 보고서 | + +**법적 근거:** 행안부 정보화사업 관리지침, 개인정보보호법, 장애인차별금지법 + +--- + +## 16. 고객 포털 + +| Method | Endpoint | 설명 | +|--------|----------|------| +| POST | `/api/portal/sr` | SR 접수 (AI 자동분류) | +| GET | `/api/portal/sr` | 내 SR 목록 | +| GET | `/api/portal/sr/{sr_id}` | SR 상세 + 타임라인 | +| POST | `/api/portal/sr/{sr_id}/rate` | 처리 만족도 평가 | +| POST | `/api/portal/faq/suggest` | **AI 자가해결 추천** | +| GET | `/api/portal/catalog` | 서비스 카탈로그 | +| GET | `/api/portal/announcements` | 공지사항 | +| GET | `/api/portal/stats` | 내 기관 통계 | + +--- + +## 17. 포트폴리오 / 리소스 + +| Method | Endpoint | 설명 | +|--------|----------|------| +| GET | `/api/portfolio/dashboard` | 전체 프로젝트 포트폴리오 | +| GET | `/api/portfolio/kpi` | 집계 KPI | +| GET | `/api/portfolio/projects/{id}/resources` | 인원 배치 현황 | +| POST | `/api/portfolio/projects/{id}/resources` | 인원 배치 등록 | +| GET | `/api/portfolio/resources/availability` | 가용 인력 조회 | +| GET | `/api/portfolio/resources/{user}/skills` | 역량 조회 | +| POST | `/api/portfolio/resources/{user}/skills` | 역량 등록 | + +--- + +## 18. 인프라 확장 + +### Zero Trust 지속 인증 + +| Method | Endpoint | 설명 | +|--------|----------|------| +| POST | `/api/infra/zero-trust/verify` | 세션 재검증 | +| GET | `/api/infra/zero-trust/sessions` | 활성 세션 목록 | + +### Kubernetes 모니터링 + +| Method | Endpoint | 설명 | +|--------|----------|------| +| GET | `/api/infra/k8s/pods` | 파드 목록/상태 | +| GET | `/api/infra/k8s/services` | 서비스 목록 | +| GET | `/api/infra/k8s/nodes` | 노드 리소스 | + +### ERP 예산 연동 + +| Method | Endpoint | 설명 | +|--------|----------|------| +| GET | `/api/infra/erp/budget/{code}` | 예산 조회 + 동기화 | +| GET | `/api/infra/erp/status` | 연동 설정 현황 | + +--- + +## 19. 메신저 봇 (상세) + +``` +POST /api/messenger/webhook + Body: MessengerEvent { event, room, sr_id, title, ... } + 응답: { ok: true } + +POST /api/messenger/bot/command + Body: BotCommand { room, user, command } + 응답: BotReply { room, text } +``` + +--- + +## 20. 라이선스 + +| Method | Endpoint | 설명 | +|--------|----------|------| +| GET | `/api/license/status` | 라이선스 상태 | +| POST | `/api/license/trial` | 7일 무료 체험 시작 | +| POST | `/api/license/activate` | 라이선스 키 등록 | +| POST | `/api/license/verify` | 키 검증 (등록 없음) | +| DELETE | `/api/license/` | 비활성화 | +| GET | `/api/license/history` | 등록 이력 | + +**에디션:** TRIAL (7일) / COMMUNITY (무료) / STANDARD / ENTERPRISE + +--- + +## 공통 규칙 + +### 인증 + +```http +Authorization: Bearer {access_token} +``` + +### 응답 코드 + +| 코드 | 의미 | +|------|------| +| 200 | 성공 | +| 201 | 생성 성공 | +| 204 | 삭제 성공 | +| 400 | 잘못된 요청 | +| 401 | 인증 필요 | +| 403 | 권한 없음 | +| 404 | 리소스 없음 | +| 409 | 충돌 (중복) | +| 422 | 유효성 검증 실패 | +| 500 | 서버 오류 | +| 503 | 외부 서비스 불가 (Ollama/SIEM/K8s 미설정) | + +### 보안 정책 + +- 서버 자격증명 (IP, SSH 비밀번호) API 응답에서 완전 제외 +- 스택트레이스 미노출 — SR ID + 요약 메시지만 반환 +- AES-256-GCM 암호화 저장 (os_pw_enc) +- root SSH 직접 접속 금지 — opsagent 계정 전용 +- 모든 LLM 추론: localhost:11434 (Ollama) 전용, 외부 API 절대 금지 + +### Copyright + +``` +Copyright © 2026 GUARDiA All Rights Reserved. +X-Powered-By: GUARDiA ITSM 2.0 +X-Copyright: Copyright 2026 GUARDiA All Rights Reserved +```