Skip to content

[Worker][P1] 체류만료·퇴사 근로자 안전 보관과 업무 차단 규칙 구현 #193

Description

@hywznn

한 줄 목표

체류기간이 만료되었거나 퇴사한 근로자를 자동 삭제하지 않고 안전하게 보관하되, 과거 Task·문서·승인·감사 이력은 유지합니다.

중요한 정책

체류만료일이 지났다는 이유만으로 자동 퇴사·불법체류·삭제 처리하지 않습니다. 먼저 Server #184의 체류상태 확인을 거쳐 HR이 고용종료를 명시적으로 확인하고, 남은 업무가 없을 때만 보관합니다.

저장소별 구현

Server 안전 보관 규칙

  • 보관 시각·처리자·사유 저장
  • 진행 중 Task, 승인 대기, 유효 Worker Link가 있으면 차단
  • ACTIVE·ON_LEAVE 근로자는 보관 차단
  • HR·ADMIN 권한, tenant 격리, expected_version 적용
  • 기본 목록·AI Context·신규 Task 대상에서 보관 근로자 제외
  • 기존 Task·문서·응답·감사 이력 유지
  • WORKER_ARCHIVED 감사로그 기록
  • 동시 Task 생성과 보관 요청 직렬화

API

  • GET /api/v1/stay-verifications
  • POST /api/v1/stay-verifications/scan
  • PATCH /api/v1/stay-verifications/{verificationId}
  • GET /api/v1/workers/{workerId}/archive-eligibility
  • POST /api/v1/workers/{workerId}/archive

검증 결과

  • Server PostgreSQL 16 전체 테스트 688개, 실패 0건
  • 제한 Runtime DB Role과 tenant 격리 검증
  • Client 테스트 472개·빌드·lint 통과
  • AI 관련 테스트 48개와 전체 테스트 통과
  • Knowledge 계약 테스트 20개와 CI 통과

이번 범위에서 하지 않는 것

  • 만료일 기준 자동 삭제·자동 퇴사
  • 개인정보 원문과 원본 파일의 즉시 물리 삭제
  • 보유기간 만료 배치·백업 삭제
  • 법적 체류 상태 자동 판단
  • Infra 변경

연결 PR과 병합 순서

  1. Knowledge PR #54
  2. Server PR #198
  3. Server PR #199의 base를 main으로 변경하고 CI 재검증
  4. AI PR #57
  5. Client PR #355

각 PR 병합 시 연결 Issue를 자동 완료합니다.

Metadata

Metadata

Assignees

Labels

area:serverSpring Boot API·도메인·DB·tenant·Task Workflow 영역; Prompt·모델·Provider 구현 제외priority:P1핵심 작업 다음으로 처리할 중요 작업security:privacy개인정보·접근권한·토큰·보안 영향이 있는 작업status:in-review구현을 마치고 리뷰 또는 병합을 기다리는 작업type:feature사용자 또는 Agent가 사용하는 기능 개발

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions