Skip to content

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

Closed

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를 자동 완료합니다.

Activity

  1. self-assigned this
    on Aug 16, 2026
  2. added
    area:serverSpring Boot API·도메인·DB·tenant·Task Workflow 영역; Prompt·모델·Provider 구현 제외
    priority:P1핵심 작업 다음으로 처리할 중요 작업
    security:privacy개인정보·접근권한·토큰·보안 영향이 있는 작업
    status:backlog해야 하지만 아직 시작 조건이 갖춰지지 않은 작업
    type:feature사용자 또는 Agent가 사용하는 기능 개발
    status:in-progress담당자가 현재 구현 중인 작업
    and removed
    status:backlog해야 하지만 아직 시작 조건이 갖춰지지 않은 작업
    on Aug 16, 2026
  3. hywznn commented on Aug 16, 2026

    @hywznn
    MemberAuthor

    작업 시작합니다. Server #184의 V54 다음 번호인 V55를 예약합니다. 과거 업무·문서 참조는 유지하고 기본 목록·AI Context·신규 업무 대상에서만 안전하게 제외합니다.

  4. hywznn commented on Aug 16, 2026

    @hywznn
    MemberAuthor

    번호 예약을 정정합니다. #184가 공용 스키마 V54와 PostgreSQL RLS 호환 스캔 함수 V55를 함께 사용하므로, 이 이슈의 근로자 보관 Migration은 V56을 사용합니다.

  5. hywznn commented on Aug 16, 2026

    @hywznn
    MemberAuthor

    구현 Draft PR #199를 연결했습니다.

    Flyway 예약은 선행 #184의 V54·V55 다음인 **V56(공통 worker_archive)·V57(PostgreSQL RLS 정책 준비)**을 사용합니다. 다음 사용 가능 번호는 V58입니다.

    자동 삭제 없이 보관 메타데이터만 추가하고, 재직 상태·미완료 Task·대기 승인·유효 Worker Link가 있으면 차단합니다. 기본 Worker 목록·AI 대상 탐색·신규 Task 대상에서는 제외하지만 기존 상세·Task·문서·응답·감사 기록은 보존합니다.

  6. added
    status:in-review구현을 마치고 리뷰 또는 병합을 기다리는 작업
    and removed
    status:in-progress담당자가 현재 구현 중인 작업
    on Aug 16, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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