/** * PII (Personally Identifiable Information) 마스킹 유틸리티 * * 로그 파일에 저장되는 rawLLMOutput에서 민감한 정보를 마스킹합니다. * * 마스킹 대상: * - 이메일 주소 * - 전화번호 * - API 키 * - 비밀번호 * - 토큰 (Bearer, JWT 등) * - 기타 credential 정보 * * 보안 정책: * - 모든 민감 정보는 [TYPE] 형식으로 마스킹 * - 원본 정보는 복구 불가능하도록 완전히 제거 */ /** * PII 마스킹 결과 */ export interface PIIMaskingResult { masked: string; maskedCount: number; maskedTypes: string[]; } /** * PII 마스킹 옵션 */ export interface PIIMaskingOptions { /** * 마스킹할 타입 목록 (지정하지 않으면 모든 타입 마스킹) */ types?: Array<'email' | 'phone' | 'api_key' | 'password' | 'token' | 'credential'>; /** * 마스킹 플레이스홀더 사용 여부 (기본값: true) * false인 경우 빈 문자열로 대체 */ usePlaceholder?: boolean; } /** * PII 마스킹기 */ export declare class PIIMasker { /** * 텍스트에서 모든 PII를 마스킹합니다. * * PRD 0019: 보안 강화 (Phase 1) - PII 마스킹 강화 * 환경 변수 `ENABLE_PII_MASKING`으로 마스킹 활성화/비활성화 제어 * * @param text 원본 텍스트 * @param options 마스킹 옵션 * @returns 마스킹 결과 */ static mask(text: string, options?: PIIMaskingOptions): PIIMaskingResult; /** * 텍스트에 PII가 포함되어 있는지 확인합니다. * * @param text 확인할 텍스트 * @returns PII 포함 여부 */ static hasPII(text: string): boolean; /** * 텍스트에서 마스킹된 PII 타입 목록을 반환합니다. * * @param text 확인할 텍스트 * @returns 마스킹된 타입 목록 */ static detectPIITypes(text: string): string[]; /** * 객체의 PII 마스킹 * JSON 직렬화 후 마스킹하여 중첩 객체의 PII도 마스킹 * * PRD 0019: 보안 강화 (Phase 1) - PII 마스킹 강화 * 공통 유틸리티 함수로 추출하여 중복 코드 제거 * 환경 변수 `ENABLE_PII_MASKING`으로 마스킹 활성화/비활성화 제어 * * @param obj 마스킹할 객체 * @returns 마스킹된 객체 */ static maskObject(obj: unknown, visited?: WeakSet): Record; /** * Error 객체의 PII 마스킹 * error.message와 error.stack에 PII 마스킹 적용 * * PRD 0019: 보안 강화 (Phase 1) - PII 마스킹 강화 * 공통 유틸리티 함수로 추출하여 중복 코드 제거 * 환경 변수 `ENABLE_PII_MASKING`으로 마스킹 활성화/비활성화 제어 * * @param error 마스킹할 Error 객체 * @returns 마스킹된 Error 정보 객체 */ static maskError(error: Error): { message: string; name: string; stack?: string; }; } //# sourceMappingURL=pii-masker.d.ts.map