hitl-executions

Sentivex Incidents Ticket API

GET/api/hitl-executions

HITL Executor 실행 로그(SOAR 액션 로그).

GET /api/hitl-executions?projectId=X&cursor=&limit= — HITL Executor 실행 로그(SOAR 액션 로그). 목적: 사람 결정(SoR — issue_comments authorMeta.decision)이 HITL Executor 배치를 통해 고객별 SOAR 로 디스패치된 이력을 최신순으로 조회한다. 배경(왜 존재): `hitl_executions` 는 `scripts/hitl-executor.mjs` 가 write-only 로 쌓아온 감사 테이블인데 읽는 API 가 없어(감사 #5-(2) PARTIAL) sentivex SOC 대시보드 §11 "SOAR 위젯"이 __empty 였다. read 라우트만 신설(테이블·스키마 불변). sentivex-web docs/29 §1-4·§1-7 계약. 데이터소스: `hitl_executions`(projectId 컬럼 없음 → `issueId → issues.projectId` 조인으로 스코프) + `issues.key`. 인증: requireUser + requireProjectAccess(projectId) — pm-session 교환토큰(OPEN 모드 포함) 소비. 반환: { hitlExecutions: [{ id, issueId, issueKey, decision, action, connector, status, result, dispatchedAt, createdAt }], nextCursor, hasMore }. 주의: 점수/등급 없음(감사 로그) — no-score 원칙과 무관. status ∈ pending|dispatched|skipped|failed|done, decision ∈ approve|reject|escalate|resolve|hold, connector ∈ record|n8n|noop|….

Responses

200 성공401 미인증(JWT 쿠키 필요)403 권한 없음404 없음
cURL
curl -X GET https://sit.in-bridge.com/api/hitl-executions \
  -H "Authorization: Bearer $TOKEN"
JavaScript
const res = await fetch("https://sit.in-bridge.com/api/hitl-executions", {
  method: "GET",
  headers: {
    "Authorization": `Bearer ${token}`
  }
});
const data = await res.json();