GET/api/monitor/feed
SOC 파이프라인 라이브 모니터 피드 (관측성 #208).
GET /api/monitor/feed?limit=N — SOC 파이프라인 라이브 모니터 피드 (관측성 #208).
목적(왜): "분석처럼 라이브 모니터 개념의 피드"(사용자 지시) — 인시던트가 파이프라인을 흐르는 걸
한 곳에서 본다: 라우팅(테넌트 프로젝트)·워커 상태·알림 수·SLA(초과/임박)·트레이스 수.
각 행을 클릭하면 /api/incidents/[key]/trace 로 노드별 프롬프트·데이터·결정을 펼친다.
인증/격리: requireUser + tenantScope — 접근 가능한 SOC 프로젝트만(super=전체, 테넌트=자기것).
projectVisibleForTenant 로 남테넌트 인시던트는 피드에서 제외(#203/#206 정합).
데이터소스: issues+incident_details+projects (JOIN) · worker_jobs · worker_traces · notifications (raw SQL).
Responses
200 성공401 미인증(JWT 쿠키 필요)403 권한 없음404 없음
cURLcurl -X GET https://sit.in-bridge.com/api/monitor/feed \
-H "Authorization: Bearer $TOKEN"
JavaScriptconst res = await fetch("https://sit.in-bridge.com/api/monitor/feed", {
method: "GET",
headers: {
"Authorization": `Bearer ${token}`
}
});
const data = await res.json();
GET/api/monitor/live-log
라이브 피드 드로어(#209) 초기 히스토리 시드.
GET /api/monitor/live-log?limit=N — 라이브 피드 드로어(#209) 초기 히스토리 시드.
목적(왜, 사용자 지시 2026-07-10): "드로어 라이브 피드에서 워커의 로그도 나오고 알림 로그도 나와야".
드로어는 SSE 로 라이브 이벤트만 쌓아 열면 비어 있었다. 열 때 이 엔드포인트로 **최근 워커 트레이스
(노드별 결정=워커 로그) + 최근 알림**을 한 번 불러와(폴링 아님, 1회 시드) 곧바로 로그가 보이게 한다.
라이브 SSE 는 그 위에 계속 append(dedupeKey 로 시드와 중복 제거).
인증/격리: requireUser + tenantScope — 워커 로그는 접근 가능한 SOC 프로젝트만, 알림은 내 것만.
데이터소스: worker_traces(decision) · notifications (raw SQL). 응답=LiveFeedEvent 유사 행(newest-first).
Responses
200 성공401 미인증(JWT 쿠키 필요)403 권한 없음404 없음
cURLcurl -X GET https://sit.in-bridge.com/api/monitor/live-log \
-H "Authorization: Bearer $TOKEN"
JavaScriptconst res = await fetch("https://sit.in-bridge.com/api/monitor/live-log", {
method: "GET",
headers: {
"Authorization": `Bearer ${token}`
}
});
const data = await res.json();