diff --git a/journey/troubleshooting/260303_51123_gateway_rb8001_연결점검_23서버_전달사항.md b/journey/troubleshooting/260303_51123_gateway_rb8001_연결점검_23서버_전달사항.md new file mode 100644 index 0000000..c426bc7 --- /dev/null +++ b/journey/troubleshooting/260303_51123_gateway_rb8001_연결점검_23서버_전달사항.md @@ -0,0 +1,43 @@ +# 23 서버 전달사항: 게이트웨이-8001 연결 점검 결과 + +**날짜**: 2026-03-03 +**작성자**: Codex +**관련 파일**: `robeing-gateway/app/main.py`, `robeing-gateway/app/routers/slack.py`, `robeing-gateway/app/services/slack_proxy.py` + +--- + +## 문제 상황 +- 요청사항: `51124 rb8001(8001) 배포본`이 `51123 robeing-gateway(8100)`를 통해 계획대로 전달되는지 확인. +- 제약: `수정금지` 조건으로 코드/설정 변경 없이 확인만 수행. + +## 확인한 사실 +- 게이트웨이 상태 + - `robeing-gateway` 컨테이너: `Up (healthy)` + - `GET /healthz`: `200 {"status":"ok"}` +- 게이트웨이 대상 설정 + - 컨테이너 환경변수: `ROBEING_DEFAULT_HOST=192.168.219.52`, `ROBEING_DEFAULT_PORT=8001`, `ROBEING_DEFAULT_ID=rb8001` +- Run ID 전파 구현 + - `app/main.py`의 `/api/chat`에서 `X-Run-Id` 생성/전달 및 응답 `run_id` 기본값 주입 확인 + - `app/routers/slack.py` + `app/services/slack_proxy.py`에서 `X-Run-Id` 헤더 생성/전달 확인 + +## 핵심 점검 결과 +- 아키텍처 적합성(게이트웨이 단일 진입) 관점에서 **부분 불일치** 확인. +- 근거: + - 게이트웨이 범용 프록시는 `GET /api/{path:path}`만 존재 (`robeing-gateway/app/main.py`) + - 계획 핵심 신규 API는 `POST` 중심 (`/api/self-improvement/*`, `/api/prompt-db/*`) + - 실제 호출 결과: + - `POST /api/self-improvement/runs` -> `405 Method Not Allowed (allow: GET)` + - `POST /api/prompt-db/templates` -> `405 Method Not Allowed (allow: GET)` + - `POST /api/self-improvement/policy-versions` -> `405 Method Not Allowed (allow: GET)` +- 대조 확인: + - 동일 경로를 rb8001(192.168.219.52:8001)로 직접 호출 시 `401 Unauthorized` 반환 + - 즉, rb8001 경로 자체는 존재하며 인증이 필요한 상태이고, 게이트웨이에서 먼저 `POST`가 차단되고 있음. + +## 부가 관찰 +- Slack 검증 스크립트 실행 시 등록 사용자 이벤트가 `403` 발생. +- 게이트웨이 로그에서 `No bot token found`, `No UUID found`가 함께 관찰됨. +- 이 항목은 신규 self-improvement/prompt-db 경로 이슈와 별개로, Slack 사용자 매핑/토큰 데이터 상태 점검이 필요함. + +## 교훈 +- `51123 gateway`가 단일 진입점인 구조에서는 신규 백엔드 API가 추가될 때 `HTTP method(특히 POST/PUT/DELETE)`까지 포함한 프록시 경로를 동시에 열어야 한다. +- `직접 upstream 성공`과 `gateway 경유 성공`은 별도 검증 항목이므로 배포 완료 판단 전에 둘 다 확인해야 한다.