@@ -37,14 +37,56 @@ YM TestCase는 3개 컴포넌트로 구성되며, 각각 독립적으로 버전
3737## 현재 버전
3838
3939```
40- YM TestCase System v1.0.1 .0 (2026-04-01)
41- ├── Frontend v1.0.1 .0
42- ├── Backend v1.0.1 .0
40+ YM TestCase System v1.0.2 .0 (2026-04-01)
41+ ├── Frontend v1.0.2 .0
42+ ├── Backend v1.0.2 .0
4343└── Database v0.3.0.0
4444```
4545
4646---
4747
48+ ## v1.0.2.0 (2026-04-01) — 보안 검수 지적사항 13건 수정
49+
50+ ### 컴포넌트 버전
51+
52+ | 컴포넌트 | 이전 | 이후 | 변경 사유 |
53+ | ---| ---| ---| ---|
54+ | System | 1.0.1.0 | ** 1.0.2.0** | 보안 취약점 13건 수정 |
55+ | Frontend | 1.0.1.0 | ** 1.0.2.0** | 전체 시트 보기 no 오염 방지, 테스트런 권한 가드, 멤버 관리 API 변경 |
56+ | Backend | 1.0.1.0 | ** 1.0.2.0** | TC 이력 권한 체크, 프로젝트 삭제 파일 정리, 첨부파일 권한 fallback 등 9건 |
57+ | Database | 0.3.0.0 | 0.3.0.0 | 변경 없음 |
58+
59+ ### 보안 수정 (치명 1건 + 높음 4건 + 중간 4건)
60+
61+ - ** [ 치명] TC 이력 API 접근권한 누락** : ` GET /api/history/testcase/{id} ` 에 프로젝트 멤버 권한 체크 추가
62+ - ** [ 높음] 프로젝트 삭제 시 첨부파일 미삭제** : cascade DB 삭제 외에 실파일도 함께 삭제
63+ - ** [ 높음] 첨부파일 권한 fallback ValueError** : 시스템 역할→프로젝트 역할 매핑으로 500 에러 방지
64+ - ** [ 높음] 테스트런 test_plan_id 미검증** : 같은 프로젝트 플랜인지 검증, 크로스 프로젝트 연결 차단
65+ - ** [ 높음] 전체 시트 보기 no 값 오염** : 원본 no 보존(` _originalNo ` ), autoSave 시 복원 전송
66+ - ** [ 중간] 프로젝트 admin 사용자 목록 조회** : ` /available-users ` 엔드포인트 신규 추가
67+ - ** [ 중간] 멤버 추가 역할 리셋값** : ` "viewer" ` → ` "tester" ` 로 수정
68+ - ** [ 중간] TC 수정 시 시트 무결성 검사** : update/bulk_update에도 폴더·존재 여부 검증 적용
69+ - ** [ 중간] 대시보드 heatmap 집계 불일치** : 전체 모드를 TC별 최신 런 결과 기준으로 변경
70+
71+ ### 재검증 수정 (3건)
72+
73+ - 신규 프로젝트 첫 TC 생성 회귀 수정 (기본 시트 자동 생성)
74+ - 빈 상태 placeholder 새 실행 버튼 권한 가드 추가
75+ - 테스트런 삭제 버튼 admin 전용(` canDeleteRun ` ) 분리
76+
77+ ### 추가 수정
78+
79+ - 리포트 카테고리 요약에 NA/NS 집계 추가
80+ - E2E/매뉴얼 "Excel Import" → "Import" 동기화
81+
82+ ### 테스트
83+
84+ - 보안 수정 대상 TC ** 28건 신규 추가** (9개 클래스)
85+ - 프론트 단위 테스트 동기화 (ProjectMembers, TestRunManager)
86+ - ** 최종 결과** : vitest 358 passed, backend pytest 144 passed, E2E 93 passed
87+
88+ ---
89+
4890## v1.0.1.0 (2026-04-01) — 로그인 유지 기능 및 토큰 만료 개선
4991
5092### 컴포넌트 버전
0 commit comments