变更记录
什么是新的。
平台的每一个改进,随着它的出货。
· kamo-shared-library
添加7个模块访问权限(IDs 112-118)
(原始内容存档于2013-10-12). ACCESS COMMERCE, VIEW CALENDAR, ACCESS CHAT, ACCESS MAIL, C. (原始内容存档于2019-10-21) (英语). ACCESSS VOIP, VIEW SUPPORT, 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倒置,过期文本,主题
- 在按钮下方添加纯文本验证链接作为复制-复制倒置 - 将过期变量从 {{ 过期 Minutes 切换为 {{ 过期 Text 。 人可读格式(如"一日"取而代之"1440分"). - 更新“ 验证与您的“ org” 账户相关的电子邮件 ”
· kamo-internal
将模板保存的外框的完整电子邮件 HTML 序列化
- 串行化Full-EmailHtml 包接品牌外框内块 (标题标识,标题/子标题,内容区域,页脚标识+org名). 使用绝对 URL 使电子邮件客户端能够获取图像 - 外框设置(日志选项、标题、字幕)保存到 bodyBlocks.outerFrame 并恢复模板载荷 - 手柄保存现在使用序列化 FullEmailHtml 所以发送的电子邮件匹配 构建器预览
· 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
在每次验证/修正尝试之前, 要求 *** 在验证页上
*** 在每个动作( 成功或失败) 后重置, 所以是新鲜的 。 每次尝试都需要解决.
· kamo-register
重命名/重新发送-核查页面为/核查
· kamo-register
为登录重定向添加/ 更新验证页面
创建一个独立/ 更新验证的路由, 接受 ? 电子邮件和 用户ID 查询参数,重新使用 PostConflictionScreen 来表示一致 电子邮件验证 UX. 使注册回复.别名可选,所以 页面无法使用注册别名.
· kamo-register
重新设计电子邮件校验屏幕 + 修复邮件重传错误
- 完成后Screen:以动画为背景的整页布局, 玻璃形态卡,标志,可视化6位数码箱,成功/可验证状态 - 重新认证:通过请求正文中的电子邮件(后端需要)
· kamo-register
匹配 kamo- 内部可视化存储 — 3 个大小, MinIO, 单独的上传步骤
作物对话框现在通过布局生成三个PNG blobs(50/150/350px),完全相同 {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}给Kamo -Internal的神通经理 注册后返回用户ID, blobs 已写入 {} (新的未经认证的终点) 由电子邮件 Verife=false 守护. avatarUrl 不再在注册中发送 JSON的身体。 \ N 阿凡达上传失败是非致命的,所以注册仍然完成.
· 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 VELIED 错误
当使用 EMAIL NOT VELIED 登录失败时,登录卡现在被替换为 a 已打磨“ 检查您的收件箱” 屏幕: 动画信封 SVG 并带有打开的相片和 浮起的花花花, 遮盖的邮件显示器, 带有30秒的再发送电子邮件按钮 SVG倒计时环,成功/误差/速率限制反馈提示,以及"返回到 签入"链接。 所有过渡都使用AnimatePresence并配有scale+fade. - app/api/login/route.ts:通过所有后端错误字段(不仅仅是消息),所以 用户ID 到达客户端 - 安全服务的新代理 **************** - app/page.tsx:电子邮件认证 卡片组件, 电子邮件 Verify State / reend Loading / 重新发送 Coldown / 重新发送状态, 重新认证回调, 30秒 冷却使用效果, 运行时的 EMAIL NOT VELIED 检测
· kamo-register
扩展图片上传支持 AVIF 和 SVG 格式
在文件输入接受列表中添加图像/avif和图像/svg+xml 验证正则ex. 更新提示标签以列出所有六种格式。 Kamo- 内部已接受图像/ *, 因此无需更改 .
· kamo-register
在注册上传步骤中添加反应- 易控相片编辑器
镜像相片CropDialog来自卡莫内部的"神通"管理者: - 文件选择后立即打开裁剪对话框 - 通过拖放、通过滚动或滑动来缩放(1至5x) - 破损的圆形覆盖导线显示已收割的区域 - 帆布生产400×400 PNG 存储为 Base64 avatarUrl - 在预览中重新剪接按钮, 让用户在保存后调整
· kamo-register
增加/api/geoip路由和电线国家自动检测
代理客户端IP到 SecurityService GeoLite2 查询,然后设置 在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
将 h*** 替换为“ 完成步骤” 中的 kamo- capcha- widget 内入
· kamo-register
添加/api/capcha/质疑代理路由
· kamo-register
添加 kamo- capcha- widget 供应商, 删除 h*** 包
· kamo-register
SP6 寄存向导重构 – 分拆个人信息, 添加真实的注册 API
- 将FormPersonalInfo替换为FormName(名称字段)和FormAvatar(为13+提供生成/上载/skip模式的Avatar生成器) - 删除表格回收执行(从流程中取出回收字段) - 将FormPassportID重构为双字段布局:别名总是显示,电子邮件只显示为 13+;回调取代窗口全局 - 添加已键入QQ的寄存器Api.ts - 为电子邮件验证码条目添加后补真Screen并重定向 SIGNED IN - Reform RegisterFlow:基于 should IncludeAgeCheck 和 is User13Plus 的动态步骤列表,以真实的 API 调用替换 handle*** Submit stub, 在成功时使 PostConfletionScreen 转换为 PostContent
· 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
添加电子邮件验证 切换实体 + repo + User.alias/ 电子邮件验证 + UserRepo 查询;出错 1. 4.0 (SP4)
· InitializerService
Add SP4 email_verification_tokens DDL + User alias/email_verified columns
· kamo-marketing
在页脚法律文本中添加商标免责声明
· kamo-internal
添加电话+安全问题的账户设置页面(SP3)
用 API 接线器添加QQ 安保事务/api/账户/*。 在所有三个地点同步导航.
· kamo-login
连接真实的 API 调用/恢复页面( SP3)
以恢复 Api 调用替换所有假的Submit () stub 。 添加短消息检察官办公室 校验相位、种子电子邮件输入、新密码步骤和符号着陆 通过?token=URL参数.
· kamo-login
添加/api/恢复代理 + recovery Api 客户端(SP3)
