feat: 근로자 보안 링크(Worker Link) 발급, 안내, 문서제출, 응답제출 구현 - #76
Open
chaeliki wants to merge 34 commits into
Open
Conversation
…eType, WorkerLink 도메인 추가
…kerLinkTenantBootstrap port 추가
…d 테이블 migration 추가
This was referenced Aug 3, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
왜 필요한가요?
Closes #7
#7(근로자 링크)의 API 4개를 구현했습니다.
완료된 범위
API 4개
POST /tasks/{taskId}/worker-link근로자 링크 발급/재발급GET /public/worker-links/{token}근로자 공개 안내 조회POST /public/worker-links/{token}/documents근로자 문서 제출POST /public/worker-links/{token}/responses근로자 응답 제출보안 설계
WorkerLinkTenantBootstrap(AuthTenantBootstrap 패턴, JPA 구현 완료)ApprovalRequest.isValidFor()재사용)#13의StoredFile/FileStorage재사용,verified필드로 AVAILABLE 판단Cache-Control: no-storeActorType.WORKER_LINK)410으로 통일 (존재 여부 비노출)WorkerLink.conversationStatus를NEEDS_FOLLOWUP으로 전환발견하여 수정한 버그
SecurityConfig에 공개 API 경로permitAll()등록 누락 (실제로는 401로 막히던 문제)통합 테스트
WorkerLinkSecurityIntegrationTest4개 (전체 흐름, 미승인 Task 거부, 타 사업장 격리, 존재하지 않는 토큰)결정 사항
AuditAction.WORKER_LINK_RESPONSE_SUBMITTED추가,AuditTargetType은 기존TASK재사용 (ApprovalService 패턴 확인 후 결정)아직 확인 필요 — 후속 조치
/worker-portal라우트만 확인됨, 정확한 파라미터 전달 방식은 미확정. 현재는 원문 토큰만 반환SECURITY DEFINER함수 미배포#61완료 후 처리 예정검증
./gradlew clean test전체 통과