taekyoungc
5e8e81f404
feat: 지정판매소 개인정보(PII) 보호 — 마스킹·암호화·열람 게이트 (기본 OFF)
...
종량제3 세션 작업. 마스터 플래그(Config\Pii.designatedShopProtection)가 OFF면
현재 동작(원문 그대로) 유지, ON일 때만 마스킹·게이트 적용.
- 표시 계층 단일 지점 마스킹: 대표자명/전화/이메일/계좌/가상계좌 (목록·상세·엑셀·판매대장·전화주문)
- 원문 열람 게이트: 지자체 허용 IP 자동열람 or 2단계 인증(TOTP) step-up + 감사기록(revealPii)
- 정확일치 검색: 블라인드 인덱스(HMAC) 컬럼 있으면 사용, 없으면 평문 폴백
- 저장계층 암호화(encryptAtRest, 기본 OFF): 모델 콜백 + spark 명령 pii:protect-designated-shops
- SQL(추가·멱등): designated_shop_add_pii_bidx / local_government_add_allow_ips
- Auth: TOTP 실제 통과 시에만 세션 auth_2fa_verified=true
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-07-16 15:45:28 +09:00
..
2026-06-25 17:13:05 +09:00
2026-03-26 16:50:28 +09:00
2026-06-01 16:15:15 +09:00
2026-06-08 00:46:51 +09:00
2026-06-01 16:15:15 +09:00
2026-03-26 16:50:28 +09:00
2026-07-06 18:39:32 +09:00
2026-03-25 16:27:42 +09:00
2026-06-01 16:15:15 +09:00
2026-06-01 16:15:15 +09:00
2026-06-01 16:15:15 +09:00
2026-06-01 16:15:15 +09:00
2026-04-08 00:23:55 +09:00
2026-06-01 16:15:15 +09:00
2026-03-30 15:07:09 +09:00
2026-04-08 00:19:00 +09:00
2026-07-06 18:38:54 +09:00
2026-07-16 15:45:28 +09:00
2026-04-14 14:55:12 +09:00
2026-06-01 16:15:15 +09:00
2026-06-01 16:15:15 +09:00
2026-06-01 16:15:15 +09:00
2026-04-14 14:55:12 +09:00
2026-04-14 14:55:12 +09:00
2026-06-16 15:39:02 +09:00
2026-06-16 15:39:02 +09:00
2026-06-01 16:15:15 +09:00
2026-06-01 16:15:15 +09:00
2026-03-25 15:58:57 +09:00
2026-06-01 16:15:15 +09:00
2026-06-01 16:15:15 +09:00
2026-06-01 16:15:15 +09:00
2026-06-01 16:15:15 +09:00
2026-03-25 17:41:15 +09:00
2026-04-08 00:23:55 +09:00
2026-04-08 00:23:55 +09:00
2026-03-25 12:05:33 +09:00
2026-06-01 16:15:15 +09:00
2026-06-01 16:15:15 +09:00
2026-06-01 16:15:15 +09:00
2026-04-08 00:23:55 +09:00
2026-04-08 00:23:55 +09:00
2026-07-16 15:45:28 +09:00
2026-03-25 12:05:33 +09:00
2026-04-14 14:55:12 +09:00
2026-07-03 18:35:12 +09:00
2026-06-01 16:15:15 +09:00
2026-04-08 00:19:00 +09:00
2026-03-26 15:30:32 +09:00
2026-03-25 12:05:33 +09:00
2026-03-25 17:53:52 +09:00
2026-07-13 11:12:43 +09:00
2026-04-08 00:23:55 +09:00
2026-06-24 19:02:52 +09:00
2026-07-13 12:26:44 +09:00
2026-03-25 12:05:33 +09:00
2026-06-01 16:15:15 +09:00
2026-03-30 15:07:09 +09:00
2026-04-14 00:14:53 +09:00
2026-04-14 00:14:53 +09:00
2026-07-06 18:26:58 +09:00
2026-06-08 00:46:51 +09:00
2026-03-30 15:07:09 +09:00
2026-07-06 18:26:58 +09:00
2026-04-08 00:21:53 +09:00
2026-04-08 00:23:55 +09:00
2026-06-01 16:15:15 +09:00
2026-07-06 18:26:58 +09:00
2026-04-08 00:19:00 +09:00
2026-06-01 16:15:15 +09:00
2026-06-01 16:15:15 +09:00
2026-03-25 16:32:55 +09:00
2026-06-01 16:15:15 +09:00
2026-07-09 16:20:14 +09:00
2026-07-06 18:26:58 +09:00
2026-07-13 12:26:44 +09:00
2026-04-08 00:23:55 +09:00
2026-04-08 00:19:00 +09:00
2026-06-01 16:15:15 +09:00
2026-04-14 00:14:53 +09:00
2026-04-14 14:55:12 +09:00
2026-06-01 16:15:15 +09:00
2026-03-25 15:18:57 +09:00
2026-04-14 14:55:12 +09:00
2026-06-01 16:15:15 +09:00
2026-06-25 14:31:21 +09:00