1.6 KiB
1.6 KiB
SPRINT-004 QA Review — Iteration 1
- 검증일시: 2026-04-04 03:16 UTC
- 검증자: 다랑이 (Evaluator)
- 결과: ❌ FAILED (blocking 3건)
검증 항목
| 항목 | 결과 |
|---|---|
| npm install | ✅ |
| prisma generate | ✅ |
| npm test (backend) | ✅ 22/22 pass |
| npm run build (backend) | ✅ |
| npm run build (frontend) | ✅ 11 routes |
Sprint 003 non-blocking 수정 확인
| 항목 | 상태 |
|---|---|
| API Key Guard (passport-http-bearer) | ✅ |
| Helmet 적용 | ✅ |
| SisterNamePipe (name 검증) | ✅ |
| lib/sisters.ts 공통 함수 추출 | ✅ |
🔴 Blocking 이슈
B1: UpdateHarnessDto class-validator 미적용
- 파일:
admin/admin.controller.ts - 문제:
@IsString() @IsNotEmpty()없음 → 빈 content로 하네스 파일 삭제 가능 - 수정:
@IsString() @IsNotEmpty() @MaxLength(50000)추가
B2: getSisterLogs lines 파라미터 상한 없음
- 파일:
admin/admin.service.ts - 문제:
lines=999999999→ journalctl/tail 메모리 폭발 - 수정:
Math.min(Math.max(parseInt(lines, 10) || 100, 1), 500)clamp
B3: CORS methods에 PUT 누락
- 파일:
main.ts - 문제:
PUT /api/admin/harness/:name/:file가 preflight 차단 - 수정: methods 배열에
'PUT'추가
Non-blocking 이슈
| ID | 이슈 | 심각도 |
|---|---|---|
| N1 | 셸 escape에서 null byte 미처리 | Medium |
| N2 | localStorage 평문 API Key | Medium |
| N3 | CORS 에러에 origin 노출 | Low |
| N4 | resetSisterSession catch에서 activity.log 누락 | Low |
| N5 | /api/sisters 비인증 노출 (config/sessions 포함) | Low |