/api/hitl-executionsHITL 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
curl -X GET https://sit.in-bridge.com/api/hitl-executions \
-H "Authorization: Bearer $TOKEN"const res = await fetch("https://sit.in-bridge.com/api/hitl-executions", {
method: "GET",
headers: {
"Authorization": `Bearer ${token}`
}
});
const data = await res.json();