Repository navigation
26.7.2
변경 사항
인증·백업 안정성, 프론트엔드 성능, 의존성 보안 및 배포 검증을 개선한 마이너 릴리즈입니다.
Added
- 보안 회귀 테스트 추가: 세션 만료·로그아웃·비밀번호 만료, 백업 실패 처리, 배포 구성, 프론트엔드 비밀번호 변경 흐름을 검증하는 테스트 21개 추가
- 비밀번호 만료 상태 전달: 서버 응답에
PASSWORD_EXPIRED오류 코드를 포함해 프론트엔드가 강제 변경 화면을 일관되게 표시
Changed
- 세션 검증 강화: JWT에 포함된 세션만 검증하고, 삭제·만료된 세션이 토큰 사용으로 되살아나지 않도록 활동 시간과 사용자·세션 ID를 함께 확인
- 중복 로그인 설정 반영: 중복 로그인을 허용한 경우 기존 세션을 유지하고, 로그아웃은 요청한 세션만 종료
- 백업 요청 검증 강화: 원격 백업 실행 전 SFTP 호스트·포트·계정·인증수단을 검증하고, 잘못된 설정은 파일 생성 전에 거부
- 예외·감사 로그 민감정보 보호: 중첩 객체와 배열 내부의 비밀번호·토큰·시크릿을 마스킹하거나 제거
- 프론트엔드 초기 번들 최적화: 페이지 lazy loading과 라이브러리별 청크 분리를 적용해 초기 JS 번들을 약 3.1MB에서 약 30KB로 축소
- 의존성 보안 업데이트:
multer,sanitize-html,uuid및 관련 lockfile을 갱신하고 ExcelJS의 취약 UUID 의존성을 override. 백엔드npm audit는 취약점 0건으로 정리 - 컨테이너 런타임 정렬: Docker 빌드/실행 이미지를 Node 22로 통일하고 Prisma 클라이언트 생성 단계에 OpenSSL 추가
- 프론트엔드 오류·타입 처리 정리: Axios 오류 메시지 처리 공통화, React Hook 의존성 정리, MUI Grid 호환 처리 및 lint 경고 제거
Fixed
- Prisma 마이그레이션 오류 처리 수정: 파이프라인 종료 코드가 누락되던 문제를 수정하고, 초기 마이그레이션을 동적으로 탐색해 P3005 복구 후 재시도
- 비밀번호 만료 사용자 접근 제어 수정: 비밀번호 변경·로그아웃 등 허용 경로를 제외한 API 접근을 서버에서 차단하고 프론트엔드 강제 변경 상태와 연동
- 원격 백업 실패 오표시·파일 잔류 방지: SFTP 설정 오류를 사전에 반환하고, 백업 성공 여부와 임시 파일 정리를 일관되게 처리
- 프론트엔드 번들 크기 경고 수정: 초기 번들 경고를 제거하고 ExcelJS·문서 내보내기·리치 텍스트 편집기 등을 필요한 화면에서만 로드
참고: 프론트엔드에는 공식 수정 릴리즈가 아직 없는
quill@2.0.3의 저위험 XSS advisory 1건이 남아 있습니다. 서버 측 HTML sanitization은 유지됩니다.
빠른 시작 (온라인 · 신규 설치)
V=26.7.2
curl -L -o docker-compose.yml https://github.com/HelloJamong/customer-vault/releases/download/$V/docker-compose.yml
curl -L -o .env https://github.com/HelloJamong/customer-vault/releases/download/$V/env.example
# .env 를 열어 JWT_SECRET, ENCRYPTION_KEY, 비밀번호, VERSION 등 수정
docker compose up -d온라인 · 업그레이드 (기존 설치)
V=26.7.2
curl -L -o docker-compose.yml https://github.com/HelloJamong/customer-vault/releases/download/$V/docker-compose.yml
# .env 의 VERSION=$V 로 수정
docker compose pull && docker compose up -d오프라인 · 폐쇄망 배포
인터넷이 없는 서버에서는 아래 이미지 번들을 함께 받아 반입합니다.
V=26.7.2
# 인터넷 되는 곳에서 3개 파일 다운로드:
# docker-compose.yml, env.example, customer-vault-images-$V.tar.gz
# → USB 등으로 폐쇄망 서버에 복사
# 폐쇄망 서버에서:
docker load -i customer-vault-images-$V.tar.gz # 4개 이미지(backend/frontend/mariadb/nginx) 로드
cp env.example .env # .env 에 VERSION=$V, NODE_ENV=production, 시크릿 설정
docker compose up -d # 로컬에 이미지가 있으면 pull 하지 않음Docker Images
docker pull igor0670/customer-storage-backend:26.7.2
docker pull igor0670/customer-storage-frontend:26.7.2