변경 로그
무슨 일이야?
플랫폼에 대한 모든 개선 사항, 그것이 선적.
· kamo-shared-library
7 모듈 접근 권한 추가 (IDs 112-118)
ACCESS COMMERCE, VIEW CALENDAR, ACCESS CHAT, ACCESS MAIL, 이메일, ACCESS VOIP, VIEW 지원, VIEW ANALYTICS
· SecurityService
Pass human-readable expiry time to email verification template
Add humanizeMinutes() helper that formats minutes as days/hours/minutes (e.g. "1 day" for 1440 min). Pass as {{expiryText}} to match updated canonical template variable.
· kamo-shared-library
이메일 검증 템플릿 개선 — URL fallback, expiry text, subject
- Copy-paste fallback로 버튼 아래의 일반 텍스트 검증 링크 추가 - {{expiryMinutes}}에서 {{expiryText}}으로의 폭발 변수를 전환하십시오. 인간 읽기 쉬운 체재 (예를들면 "1440 분 대신 1 일") - "당신의 {{orgName}} 계정과 관련된 이메일 확인"
· kamo-internal
템플릿에 외부 프레임이있는 전체 이메일 HTML을 직렬화
- serializeFullEmailHtml는 상표가 붙은 외부 구조에 있는 안 구획을 포장합니다 (헤드 로고, 제목/제목, 내용 영역, footer 로고 + org 이름) 절대 URL을 사용하므로 이메일 클라이언트는 이미지를 fetch 할 수 있습니다. - 외부 프레임 설정 (로고 옵션, 제목, 자막) 저장 bodyBlocks.outerFrame 및 템플릿 로드에 복원 - handleSave now uses serializeFullEmailHtml 그래서 이메일 일치를 보냈습니다 Builder 미리보기
· SecurityService
Add code-based email verification path to /verify-email endpoint
The endpoint now handles both token (link click) and userId+code (manual 6-digit entry). Token path unchanged; code path hashes the supplied code and matches against the active token for that userId.
· KlusterServices
Add weekly image prune and journal vacuum CronJob for k1m1
CronJob runs every Sunday 3am, privileged, pinned to k1m1. - crictl rmi --prune removes unused container images - nsenter journal vacuum enforces 500MB cap - CI/CD step added to deploy-services workflow
· KlusterServices
Add Docs deploy step to workflow
· kamo-register
Require *** 각 인증/수출 시도 전에 검증 페이지에
***는 각 활동 (교육 또는 실패) 후에 재시동합니다 그래서 신선한 해결은 각 후속 시도에 필요합니다.
· kamo-register
/resend-verification 페이지로 이동
· kamo-register
로그인을 위한 /resend-verification 페이지 추가
?email을 허용하는 독립 /resend-verification 경로 생성 ?userId 쿼리 params, reusing PostCompletionScreen 일관된 이메일 검증 UX. RegisterResponse.alias를 선택해 주세요. 페이지는 등록 별칭 없이 작동합니다.
· kamo-register
Redesign 이메일 검증 화면 + 수정 이메일 버그 수정
- PostCompletionScreen : 애니메이션 org 배경으로 전체 페이지 레이아웃, glassmorphism 카드, 로고, 시각적인 6 손가락 부호 상자, 성공/verified 국가 - resendVerification: 요청 본문에 이메일 전달 (backend는 그것을 요구합니다)
· kamo-register
매치 kamo-internal avatar 저장 - 3 크기, MinIO, 별도의 업로드 단계
Crop 대화 상자는 이제 캔버스를 통해 3 PNG blobs (50/150/350px)을 생산합니다. kamo-internal's AvatarManager에. 등록 후 userId, blobs 반환 ****************에 POSTed (새로운 unauthenticated endpoint emailVerified=false에 의해 보호해. avatarUrl은 더 이상 등록에 보내지 않습니다. JSON 몸. Avatar 업로드 실패는 아직 완료되지 않습니다.
· SecurityService
Add register-photo endpoint for unauthenticated post-registration avatar upload
POST **************** accepts userId + file/fileSm/fileMd/fileLg without a session. Guards: user must be unverified and have no avatar yet, preventing abuse against existing accounts. Stores files to MinIO with the same path structure and sized variants as the authenticated /avatars/photo endpoint.
· kamo-login
EMAIL NOT VERIFIED 오류를 부자 검증 카드로 교체
로그인이 EMAIL NOT VERIFIED로 실패하면 로그인 카드가 이제 대체됩니다. 광택 "Check your inbox"화면: 애니메이션 봉투 SVG 오프닝 플랩과 부동 스파클, 마스크 이메일 디스플레이, 30초 동안 이메일 버튼 SVG 카운트다운 링, 성공/error/rate-limit 피드백 경고, 그리고 "Back to 로그인" 링크. 모든 전환은 Scale+fade를 사용하여 AnimatePresence를 사용합니다. - app/api/login/route.ts: 모든 백엔드 오류 필드를 전달합니다 (만 메시지가 아닙니다) userId는 클라이언트에 도달 - *********** SecurityService에 새로운 프록시 *************** - 앱/page.tsx: 이메일Verify 카드 구성 요소, emailVerifyState / 재판매 / resendCooldown / resendStatus 상태, resendVerification 콜백, 30 초 cooldown useEffect, EMAIL NOT VERIFIED 탐지에서 performLogin
· kamo-register
AVIF 및 SVG 형식을 지원하는 사진 업로드 확장
이미지/avif 및 이미지/svg+xml 파일 입력에 추가 목록 및 유효한 regex. hint 레이블을 업데이트하여 모든 6 형식을 나열합니다. kamo-internal 이미 image/*를 수락하므로 변경이 필요 없습니다.
· kamo-register
React-easy-crop 사진 편집기 추가
Kamo-internal's AvatarManager의 PhotoCropDialog를 미러: - 자르기 대화 상자는 파일 선택 후 즉시 열립니다. - 드래그하여 팬, 스크롤 또는 슬라이더를 통해 급상승 (1–5×) - dashed 원형 오버레이 가이드는 작물한 지역을 보여줍니다 - 화포는 base64 avatarUrl로 저장된 400×400 PNG를 생성합니다 - 미리보기의 re-crop 버튼은 사용자가 저장 후 조정합니다
· kamo-register
/api/geoip 경로 및 와이어 국가 자동 탐지 추가
SecurityService GeoLite2 조회에 Proxies 클라이언트 IP는, 그 후에 놓습니다 FormMyCountry의 국가는 페이지 부하에서 자동으로 감지됩니다.
· SecurityService
Add GET /api/security/geoip/me for client IP country lookup
Reads real client IP from X-Forwarded-For / X-Real-IP headers, does a GeoLite2 lookup, and returns { country_code, country_name }. Used by kamo-register's country auto-detection step.
· kamo-register
완료 단계에서 kamo-capcha-widget 인라인으로 h ***를 대체하십시오
· kamo-register
/api/capcha/challenge 프록시 루트 추가
· kamo-register
Kamo-capcha-widget 공급 업체를 추가, h *** 패키지를 제거
· kamo-register
SP6 등록 마법사 refactor — 분할 PersonalInfo, 실제 등록 API 추가
- FormName(name field) 및 FormAvatar(Avatar Creator generator with generate/upload/skip mode for 13+)로 FormPersonalInfo를 대체합니다. - FormRecoveryEnforcement 삭제 (흐름에서 제거 된 복사 필드) - Refactor FormPassportID to dual-field layout: alias는 항상, 13+에 대한 이메일만 표시됩니다. 콜백은 창 글로벌을 대체합니다. - 등록 추가Api.ts with typed *********** - PostCompletionScreen을 이메일 검증 코드 입력 및 SIGNED IN 리디렉션 추가 - Refactor registerFlow : shouldIncludeAgeCheck 및 isUser13Plus에 기반을 둔 동적 단계 목록은 실제 API 호출을 가진 handle***Submit stub를 대체하고, PostCompletionScreen을 성공에 렌더링합니다
· InitializerService
SP5 migrate KamoCRM agereq to ALL_WORK_ELIGIBLE
Add KamoCRMAgeReqUpdateRunner (order 10) — conditional idempotent UPDATE on startup; WHERE clause checks old value so re-runs are no-ops. Errors are swallowed so startup is not blocked. Update DataLoader to seed ALL_WORK_ELIGIBLE on fresh installs.
· SecurityService
Implement SP4 email verification and registration wiring
- Delete legacy email/VerificationEmail.java (hardcoded SMTP stub) - Add **************** (mirrors recovery package pattern) - Add **************** — token generation/SHA-256 hashing, send/verify/resend flows backed by **************** - Add **************** — alias+email uniqueness checks, User creation, triggers verification email on register - SecurityController: wire RegistrationService into /register endpoint, add EMAIL_NOT_VERIFIED (403) gate on login, add POST /verify-email and POST /register/resend-verification endpoints - Bump kamo-shared-library to 1.4.0
· kamo-shared-library
EmailVerification 추가 Token entity + repo + User.alias/emailVerified + UserRepo 쿼리; 범 1.4.0 (SP4)
· InitializerService
Add SP4 email_verification_tokens DDL + User alias/email_verified columns
· kamo-marketing
상표 disclaimer를 footer 법률 텍스트에 추가
· kamo-internal
전화 + 보안 문제 (SP3)에 대한 계정 설정 페이지를 추가
API 배선을 가진 ***********를 추가하십시오 보안서비스 /api/account/*. Syncs nav 모든 3 위치.
· kamo-login
Wire real API 호출 /recover 페이지 (SP3)
모든 fakeSubmit() stubs를 RecoveryApi 호출로 대체합니다. SMS OTP 추가 단계, 씨앗 이메일 입력, 새로운 비밀번호 단계 및 토큰 착륙 ?token= URL 퍼머를 통해.
· kamo-login
/api/recover 프록시 + RecoveryApi 클라이언트 추가 (SP3)

당신의 우주는 기다리고 있습니다.
몇 분 안에 무료로 시작하세요. 준비가 되면 언제든지 제품을 추가할 수 있습니다.
영원히 무료 - 신용 카드 필요 없음