HBAD290_전자 서명
(Hereby) 관리자 패널 > 기타 > 전자 서명
| 메타 | 앱: 관리자 패널 (HBAD)대상 사용자: 조건1 [문서 관리] 권한 보유 역할프로토타입: TBU관련 정책: [[POL_급여정본경계]] · [[POL_권한(RBAC)]]Status: confirmed (전송 flow 실행 검증 · 7/12)Owner: 카나 |
개요
전자 서명은 관리자가 문서 템플릿을 직원에게 전송하고, 발송·서명·수신 상태를 추적하는 화면이다. 사이드바 "기타" 그룹의 "전자 서명" 진입점이다."전자서명 목록"은 발송 건별 상태 추적 그리드(9컬럼)이며 e_sign_records를 근거로 한다. 우측 상단 "전송"으로 신규 발송을 생성하며, 직원·템플릿 선택 전에는 disabled다.직원 검색 드롭다운(항목 "이름 (사번)")과 템플릿 검색 드롭다운에서 각각 선택하면 "전송"이 활성화되고, 실행 시 목록 최상단에 신규 행이 추가된다 — 수신자 이메일은 선택 직원의 이메일로 자동 채워지고, 초기 상태는 "작성중인 계약", 전송일시가 기록된다(7/12 실행 검증). 발송·서명 이력은 급여명세서 등 문서 교부의 입증층으로, HR 급여 관리 앱의 발송 시트([[HBHR270_전자서명 발송·eCount 연동 시트 (2섹션)]] 섹션 A, 🔒잠금)와 동일한 e_sign_records 원천을 공유한다.
문서 히스토리
- 2026-07-06 최초 작성 - 카나/콸
- 2026-07-10 라이브 기능 검토 반영 (연결 상태·상태 필터 enum) - 카나/콸
- 2026-07-12 실행 검증 반영 (전송 flow·자동 채움·초기 상태, 콸 승인) - 카나/콸
- 2026-07-13 버튼 행동 명세 보강 - 카나/콸
- 2026-07-21 GC700 깊이 재작성 - 카나/콸
- 2026-07-21 가독성 패스 (GUIDE §7) - 카나/PM
- 2026-07-21 셀 스타일 확정판 적용 (콸 승인) - 카나/PM
- 2026-08-06 Hereby Sign 연동 프로비저닝 게이트 반영(c9bde29) - 카나/PM
- 2026-09-05 리스트 새로고침 시 Sign 상태 동기화 + 최신순 정렬 반영(#614 머지 9/4, a5f3341) — 목록 갱신 시 서명 상태가 Sign 서버와 sync, 기본 정렬 최신 생성순. 세부 UI 표기는 실사 대기 - 카나/PM
Data I/O
Server → Client
변수
| 메타 | $ |
| 메타 | $ |
| 메타 | $ |
| 메타 | $ |
| 메타 | $ |
| 메타 | $ |
| 메타 | $ |
Client → Server
| 액션 | 전달 값 | tRPC procedure | 권한 토큰 |
|---|---|---|---|
| 전송 | herebyTemplateId · 수신자(employeeId) | e_sign_records 생성 (sentById · sentAt 기록) | 문서 관리 (라벨 기반, 매핑 TBU) |
| 서명 링크 열기 | herebyRedirectUrl | (외부 이동) | 문서 관리 (추정) |
| 상태 필터 | status enum | 목록 재조회 | 문서 관리(조회) |
외부 통합
| 외부 시스템 | 데이터 | 동기/비동기 | 비고 |
|---|---|---|---|
| Hereby 전자서명 | herebyTemplateId / herebyContractId · herebyRedirectUrl | 비동기(연동 상태 수신) | 외부 서명 플로우. 연결 상태 = "전자서명 연결 정상" / "상태 수신 대기" |
| HR 급여 시트 (HBHR270) | 동일 e_sign_records 원천 공유 | 동기 참조 | 섹션 A 🔒잠금 교부 입증층 |
전자 서명 사양표
| 번호 | 항목/기능명 | 타입 | 사양 및 기능 설명 | 연관/영향 범위 | 비고 |
|---|---|---|---|---|---|
| 00 | 진입 조건 | - | • 조건1 [문서 관리] 보유 시 사이드바 "기타" 그룹에 노출 | 권한 트리(문서) | |
| 01 | 초기 상태 | Output | • 진입 시 전자서명 목록(9컬럼) + 연결 상태 인디케이터 표시. 전송 버튼은 disabled 상태 (연동 게이트 통과 시) | e_sign_records[] | |
| 02 | 연동 프로비저닝 게이트 | Output | • 연동 상태(esignIntegrationStatus.status)가 'linked'가 아니면 템플릿·기록 영역을 숨기고 상단에 ds-notice 배너 표시. 'linked'일 때만 기존 템플릿·기록 화면 노출• 배너 제목/톤 (CASE 구조): - CASE01 [ provisioning]: "전자서명 연동을 설정하는 중입니다"- CASE02 [ error·revoked]: "전자서명 연동에 문제가 있습니다" (danger 톤)- CASE03 [그 외]: "전자서명 연동이 필요합니다" (info 톤) • 배너 본문: - CASE01 [ errorMessage 있음]: errorMessage 내용- CASE02 [ errorMessage 없음 · non-provisioning]: "관리자 계정으로 Hereby Sign 연동을 설정하면 전자서명을 사용할 수 있습니다."• "연동 설정" 버튼 (라벨/상태 CASE 구조): - CASE01 [ error·revoked]: "다시 시도"- CASE02 [실행 중]: "설정 중..." - CASE03 [ provisioning]: 비활성• 클릭 시: 조직 프로비저닝 자동 실행( provisionESignIntegration) → 조직 자동 생성 | esignIntegrationStatus.status (enum: provisioning / linked / error / revoked) · esignIntegrationStatus.errorMessage · provisionESignIntegration | c9bde29 · 백엔드 hereby-sign-provisioning.service |
| 10 | 연결 상태 | Badge | • 외부 전자서명 연동 상태를 표시하는 인디케이터 - CASE01 [연동 정상]: "전자서명 연결 정상" - CASE02 [상태 미수신]: "상태 수신 대기" | Hereby 전자서명 연동 | |
| 11 | 직원 검색 | Search | • 연동 상태 'linked'일 때만 노출 (§02 게이트 통과 시)• 발송 대상 직원을 검색·선택하는 드롭다운. placeholder "직원 검색 (이름 / 사번 / 이메일)...", 후보 항목 표기 "이름 (사번)" • 선택 시: 발송 대상 직원 확정 (전송 선행 조건) | employees | TBU: 검색 0건 |
| 12 | 템플릿 검색 | Search | • 연동 상태 'linked'일 때만 노출 (§02 게이트 통과 시)• 발송할 문서 템플릿을 검색·선택하는 드롭다운. placeholder "템플릿 검색..." (예: "표준근로계약서 (기간의 정함이 없는 경우)") • 선택 시: 발송 템플릿 확정 (전송 선행 조건) | herebyTemplateId | TBU: 후보 0건 |
| 13 | 상태 필터 | Filter | • 발송 상태별로 목록을 거르는 드롭다운. "전체 상태" + 작성 중 / 예약 / 실패 / 대기 중 / 체결 / 비활성 • 선택 시: 해당 상태 목록 재조회 - CASE01 [필터 결과 0건]: 빈 상태 | e_sign_records.status | |
| 14 | 전송 | Button | • 선택한 직원·템플릿으로 신규 발송 건을 생성하는 기능. 직원·템플릿 선택 전에는 disabled • 클릭 시: 즉시 실행 → 목록 최상단에 신규 행 추가 (수신자 이메일 = 직원 이메일 자동 채움 · 초기 상태 "작성중인 계약" · 전송일시 기록, 7/12 실행 검증) - CASE01 [직원·템플릿 미선택]: disabled - CASE02 [둘 다 선택]: 활성 | e_sign_records insert · Hereby 연동 | 발송 트리거 · TBU: 전송 실패 피드백(단건 정상 flow만 검증) |
| 20 | 전자서명 목록 | Grid | • 연동 상태 'linked'일 때만 노출 (§02 게이트 통과 시, 기록 영역)• 발송 건별 상태를 추적하는 그리드 (9컬럼, 하단 "목록 컬럼" 참조). 페이지네이션 포함 - CASE01 [발송 0건]: 빈 상태 (원문 문구 TBU) | e_sign_records[] | 교부 입증층 · Empty 원문 TBU |
| 30 | 페이지네이션 | Pagination | • 목록 페이지를 이동하는 컨트롤 (« ‹ 1 › ») • 클릭 시: 해당 페이지 목록 표시 | - | |
| 90 | 권한별 차이 | - | • 조건1 [문서 관리] 미보유 시 "기타 > 전자 서명" 메뉴 미노출 | RBAC |
전자서명 목록 컬럼 (9컬럼, 라이브 census 원문)
| # | 컬럼 | 타입 | 설명 | 연관 (ERD) |
|---|---|---|---|---|
| 1 | 사번 | Text | 수신 직원 사번 | employees.employeeNumber (employeeId) |
| 2 | 직원 | Text | 수신자 성명 (발송 시점 스냅샷) | e_sign_records.recipientNameSnapshot |
| 3 | 템플릿 | Text | 발송 문서 템플릿명 (스냅샷) | e_sign_records.templateNameSnapshot · herebyTemplateId |
| 4 | 수신자 이메일 | Text | 수신자 이메일 주소 (스냅샷). 전송 시 직원 이메일 자동 채움 | e_sign_records.recipientEmailSnapshot |
| 5 | 상태 | Badge | 상태 배지 (하단 "상태 enum" 표 참조). 값 없음: 미서명 등은 배지 표기만 | e_sign_records.status · errorMessage |
| 6 | 전송일시 | DateTime | 발송 일시 (교부 시점 입증). 전송 시 기록 | e_sign_records.sentAt |
| 7 | 서명일시 | DateTime | 수신자 서명 완료 일시. 미서명 시 공란("-") | e_sign_records.signedAt |
| 8 | 링크 | Link | Hereby 서명 페이지 링크. 없으면 hide(추정) | e_sign_records.herebyRedirectUrl |
| 9 | 관리 | Button | 행 관리(재전송/상세 등 — 동작 상세 = TBU) | — |
상태 enum (exec-diff §5 원문)
| 구분 | 값 | 근거 |
|---|---|---|
| 상태 필터 enum (6종) | 작성 중 / 예약 / 실패 / 대기 중 / 체결 / 비활성 | 라이브 필터 드롭다운 원문 |
| 배지 표기 추가 관찰 (3종) | 작성중인 계약 / 예약 전송 / 내 입력 대기 | 전송 직후 신규 행 초기 상태 = "작성중인 계약" (7/12 실행 검증) |
| 데이터 상태값 | 계약 파기 | 필터 enum에 없음 — 데이터상 존재 (라이브 관찰) |
권한 / 상태 요약
| 시나리오 | 트리거 | 결과 화면 | 비고 |
|---|---|---|---|
CASE01 [선택 전] | 진입 | 전송 disabled | 실발송 방지 |
CASE02 [직원·템플릿 선택] | 둘 다 선택 | 전송 활성 | 전송 선행 조건 |
CASE03 [전송 실행] | 전송 클릭 | 신규 행(이메일 자동 채움 · 상태 "작성중인 계약" · 전송일시) | 7/12 실행 검증 |
CASE04 [수신자 서명] | Hereby 서명 완료 | signedAt 기록 · 상태 "체결"(추정) | 외부 flow |
CASE05 [권한 미보유] | 메뉴 접근 | 미노출 | RBAC gate |
Open Question
| 구분 | 미확인 항목 |
|---|---|
| 상태 enum | "계약 파기" · "작성중인 계약" / "예약 전송" / "내 입력 대기" 배지의 status enum 매핑(상태 필터 6종과의 관계) |
| 전송 flow | "전송" 실행 후 수신자 다건 발송·계약 연동(herebyContractId) 여부 (단건 전송 flow는 검증됨) |
| 목록 관리 | "관리" 컬럼 동작(재전송/취소/상세 보기) |
| 에러·Empty | 전송 실패 피드백 · 직원/템플릿 검색 결과 0건 · 목록 Empty 원문 처리 (라이브 미검증) |
| 앱 경계 | HBAD290 전자 서명(관리자 발송)과 HBHR270 발송 시트(급여 명세서 교부)의 발송 주체·문서 유형 경계 |