Backend — transport - xxriny/KNU-PROJECT GitHub Wiki
1. backend/transport/init.py
| 라인 | 코드 | 설명 |
|---|---|---|
| — | (빈 파일) | 패키지 초기화 |
2. backend/transport/connection_manager.py
| 라인 | 코드 | 설명 |
|---|---|---|
| 8 | ConnectionManager |
active_connections: set — 활성 WS 연결 관리, send_json() 전송 + 실패 시 연결 제거 |
| 27 | manager |
싱글턴 인스턴스 |
3. backend/transport/ws_handler.py
| 라인 | 코드 | 설명 |
|---|---|---|
| 8–67 | websocket_pipeline() |
WS accept → 메시지 루프, type 필드 기반 라우팅: analyze→분석, revise →수정, idea_chat→아이디어, stream_pipeline_updates() 실시간 전송, ConnectionClosed 처리 |
4. backend/transport/rest_handler.py
| 라인 | 코드 | 설명 |
|---|---|---|
| 27–41 | 보안 헬퍼 | _normalize_path(), _is_within_root()(경로 순회 방지), register_project_root(), is_allowed_project_file() |
| 45–76 | Pydantic 요청 스키마 | AnalysisRequest, RevisionRequest, IdeaChatRequest, ScanRequest, ReadFileRequest, DeleteSessionRequest, HealthResponse |
| 80 | rest_router |
FastAPI APIRouter 인스턴스 |
| 83 | GET /health |
헬스체크 엔드포인트 |
| 88 | GET /api/config |
모델/버전 정보 반환 |
| 95 | POST /api/scan-folder |
폴더 스캔 + 프로젝트 루트 등록 |
| 110 | POST /api/read-file |
파일 읽기(경로 보안 검증 포함) |
| 134 | POST /api/analyze |
execute_pipeline() 호출 |
| 163 | POST /api/revise |
수정 파이프라인 실행 |
| 177 | POST /api/idea-chat |
아이디어 채팅 실행 |
| 191 | DELETE /api/session/{run_id} |
세션 파일 삭제 |