在注册上传步骤中添加反应- 易控相片编辑器
镜像相片CropDialog来自卡莫内部的"神通"管理者: - 文件选择后立即打开裁剪对话框 - 通过拖放、通过滚动或滑动来缩放(1至5x) - 破损的圆形覆盖导线显示已收割的区域 - 帆布生产400×400 PNG 存储为 Base64 avatarUrl - 在预览中重新剪接按钮, 让用户在保存后调整
增加/api/geoip路由和电线国家自动检测
代理客户端IP到 SecurityService GeoLite2 查询,然后设置 在FormMyCountry中检测到的国家在页面加载中自动被检测到.
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 count...
SP6 寄存向导重构 – 分拆个人信息, 添加真实的注册 API
- 将FormPersonalInfo替换为FormName(名称字段)和FormAvatar(为13+提供生成/上载/skip模式的Avatar生成器) - 删除表格回收执行(从流程中取出回收字段) - 将FormPassportID重构为双字段布局:别名总是显示,电子邮件只显示为 13+;回调取代窗口全局 - 添加...
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 s...
Implement SP4 email verification and registration wiring
- Delete legacy email/VerificationEmail.java (hardcoded SMTP stub) - Add **************** (mirrors recovery package pattern) - Add **************** — token gene...
添加电子邮件验证 切换实体 + repo + User.alias/ 电子邮件验证 + UserRepo 查询;出错 1. 4.0 (SP4)
Add SP4 email_verification_tokens DDL + User alias/email_verified columns
连接真实的 API 调用/恢复页面( SP3)
以恢复 Api 调用替换所有假的Submit () stub 。 添加短消息检察官办公室 校验相位、种子电子邮件输入、新密码步骤和符号着陆 通过?token=URL参数.
Add AccountSettingsController + Service for phone + security questions (SP3)
Allows logged-in users to set/verify phone and configure 3 security questions. Routes to /api/account/* (session-authenticated via KSESSION_DATA).
Add BulkTextSmsClient + EmailTemplateServiceClient + PasswordRecoveryController (SP3)
Full password recovery flow: email-link, SMS OTP, security questions, seed phrase. Routes to /api/recover/* (unauthenticated). Uses SP1 email pipeline + VOIPSer...
Add InternalAuthFilter + POST /api/bulktext/send for service-to-service SMS (SP3)
添加回收实体 + repos; 起落至 1.3.0 (SP3)
添加密码重置托肯、 SmsOtp、 恢复会话、 账户验证码 JPA实体具有对应的SP3回收流寄存器.
Add SP3 recovery table DDL + User column additions to SchemaCleanupRunner
通过浏览器后端给定模式(SP2的一部分)的路由预览
电子邮件Template浏览器现在直接拥有预览模式,所以 管理器不再需要截取行级预览请求和 重定向到编辑模式 .
有线电子邮件模板编辑到真实的 API
从模板Api.get取出水分,通过模板Api.update保存. 类别 下拉由 API 驱动,带有内线类创建支付. 变量 picker 读取可变合同 模板密钥; CUSTOM 常见的设置. 需要/ 系统行编辑 显示适当的警告横幅。 预览按钮打开 后端发送的电子邮件TemplatePreview模式。 部分为SP2.
电线电子邮件Template浏览器到真实 API + 添加系统默认分页
将模拟数据的~140行替换为模板Api.list()调用. 有条件 第五个标签“ 默认系统” 仅用于顶级- org 管理员, 并制作 从响应。 从 Api.list () 类别中插入的分类过滤器 。 所有行动作 击出真实的 后端端点. 通过 handleApiError top 帮助器路由出错 。 部分为SP2.
添加电子邮件模板审查模式
在行动作预览上打开. 后端通过模板Api.preview(); 结果显示在样式隔离的沙盒内。 匹配 发送使用的精确代码路径,所以您所预览的是收件人得到的。 部分为SP2.
添加模板Api + 类Api + 可变客户端模块
包装SP1的/api/电子邮件/templates/ *和 QQ 有打入的 TypeScript 帮助器的结束点 。 缩放 SP1 的 TemplateKeys Javadoc 所以编辑器的可变拾取器显示已声明 REQUIRED模板的合同。 部分为SP2.
Wire EmailTemplateSeedClient into ****************
Thin RestTemplate client that POSTs to EmailService's **************** after an org + owner TeamMember are persisted. Retries twice with backoff; failure throws...
Add EmailTemplateCategoryController REST endpoints
**************** CRUD. Delete response includes reassignedCount — the number of templates that became uncategorized as a result of removing the category. Sessio...
Add EmailTemplateController REST endpoints + DTOs
Exposes /api/email/templates/* CRUD + preview + duplicate + reset-to-default + service-to-service /send + /seed-org/{orgId}. Top-level orgs (no parent) addition...
为服务到服务的终点添加内部AuthFilter
验证 / api/ 电子邮件/ templades/ send 和 上的 X- Internal- Auth 信头 /api/email/templades/种子-org/*路径. 绕过此过滤器的其他路径 (用户会话授权处理它们). 秘密来自INNALL AUTH SECRET (原始内容存档于2017-03-21)....
添加电子邮件TemplateCategory Services — CRUD 以表示覆盖的类别
在服务层强制执行的对大小写不敏感名称独有性 (比对DB中部分独有的索引). 删除无效类别 id 在删除类别行之前,先在受影响的模板上。 部分为SP1.
添加电子邮件模板服务 — CRUD + 发送+ 种子 + 重置到默认
交易邮件核心管弦乐手. 发送用户解析模板, 使对象/机构,从组织中选择该矿石的主要领域。 域,则 并用 NoReply- org. domain 的地址向 EmailSmtpService 移动。 包括种子ForOrg用于新更新的生命周期钩并重置 ToDefault 复制了系统列的内容,超过每行的 REQUIRED 。...
从地址添加“ noReply%%domain} ” 的无回放服务
地址交易邮件的单一真相来源 。 接受一个 域字符串,小写规范化,返回“Noply-%domain>”。 呼叫者必须解决 org 的域( 通过 Organization. domains 查看或 类似)并传入. 部分为SP1.
添加模板渲染器用于 QQVARQQ 替换
无国籍的regex制成器。 缺少 vars 替换空字符串和 发送带有模板Key + orgId的 WARN 日志进行归属 。 无 HTML 逃避 在 v1 中——值由服务器控制。 部分为SP1.
Add EmailTemplateSeedRunner for SYSTEM + per-org seeding
Runs at @Order(20) on KamoInitializerService startup. Loads canonical templates from kamo-shared-library resources; upserts SYSTEM rows (no clobber); backfills ...
Add partial unique indexes + CHECK constraints for email_templates
Hibernate ddl-auto can't generate partial unique indexes or computed-CHECK constraints. This commit adds them via the existing idempotent DDL runner pattern aft...
添加 Canonical Template Loader + Canonical Template 记录
阅读三个要求模板(WELCOME,PASWORD RESET, 来源于分类路径资源 **************** 使用时间 系统组播种服务。 部分为SP1.
添加可读 HTML + JSON 表示欢迎, PASWORD RESET, 电子邮件 验证
系统行的真实内容。 已装入 KamoInitializer 服务 由 CanonicalTemplate Loader 和 UPSERT 启动为电子邮件 templates 。 部分为SP1.
添加电子邮件模板实体+寄存器
每个模板存储一行系统 key(org id NULL, is system TRUE)+ 每个模板的每个字元一个克隆。 软引用 org id/ speciale id. 数据库 驱动时间戳; JSONB 用于身体 块和标记。 仓库提供 org 扫描、原子使用反增量和删除 通过取消CategoryForg进行清理。 ...
添加电子邮件Template 实体 + 寄存器
用于电子邮件模板的 Org 范围分类 。 软 BIGINT org id( 无 FK) 匹配现有模式。 案件不敏感名称独有 通过在KamoInitializer Service中添加的部分指数执行。 部分为SP1.
为交易模板添加模板状态 enum + TemplateKeys 常数
宣布REQURED/CUSTOM/ARCED生命周期状态和三个 所需的模板密钥(WELCOME、PASWORD RESET、EMAIL 核查)。 作为 Javadoc 记录的每个 REQUIRED 模板的可变合同 常数类; SP3和SP4呼叫者参考这些. 部分为SP1.
Seed KamoCRM with ALL_WORK_ELIGIBLE on fresh installs
The createOrg() helper applies this single argument to both ageReqTypeMember and ageReqTypeTeamMember; consistent with platform convention. Pairs with KamoCRMAg...
Add one-time runner to migrate KamoCRM agereq to ALL_WORK_ELIGIBLE
Conditional idempotent UPDATE runs on service startup; WHERE clause checks the expected old value so re-runs are no-ops. Errors are logged and swallowed — start...
由 KamoCRM 的回路连接到/欢迎登陆页面
实际相会. {域}登陆页欢迎/index. html — 一个静态 HTML 页面由 nginx 直接服务, 处理前自动流量 (抓取显示名称/房间,验证,重定向到与JWT相会). 在WelcomePage.web.tsx中只添加了PoweredByKamo反应组件 制作在"满足"的捆绑版,而不是在这个静态着陆上。 在...
整合标志+准确/整合元数据
集成网页和集成中心现在显示供应商的标志(使用现有的 QQ 主页的资产 TechStackBanner已经使用). 已删除 : /整合字幕,OG图像,和元数据描述. 变化 : 1. 集成类型获得可选标志Path:字符串字段. 2. 所有30个集成数据文件都使用标志Path指向 适当的/公用 SVG (谷歌工作空间使用...
向所有主页上列出的提供者扩展/整合
调整/整合页面与曝光的实际整合 主页 (TechStackBanner). 添加28个匹配的新整合页面 产品实际提供的内容: 语音电话( P) : - Ring Central(现有,重新归类为语音) - FreePBX(即将到来,由请求驱动) 简讯: - 特维里奥 - 风琴 - 小声点 - 资讯 电子邮件( G...
添加家用抵押经纪人行业页面
在/解决/抵押 -- -- 经纪人抵押的新行业解决方案页面 经纪人和贷款人。 遵循诚实的平台框架: 核心CRM + comms + Docs + AI 适用于借款人和转介合伙人 关系层,具有特定抵押功能(LOS集成, 信用拉动、费率表自动化、TRID/RESPA对接的呼叫记录、 贷款-英里石管模板、Refi-机会警报)...
增加92个高级管理办公室网页——行业、整合、词汇表
执行SEO内容扩展计划第一级:三个新内容 子系统,共有92个新的可爬行URL外加3个中枢页面. 1. 解决办法——36个行业登陆页 房地产、代理、专业服务、金融服务、法律、 保险、健身室、沙龙和疗养院、家庭服务、清洁 服务、景观美化、汽车修理、SaaS、电子商务、技术创业、公共卫生、 房地产管理、短期租金、建筑、非营...