Resolve duplicate emailTemplateServiceClient bean conflict
**************** and **************** were identical @Components with the same default bean name, causing **************** at startup. Delete the duplicate in r...
Bump kamo-shared-library to 1.4.0
Docker Stage 1 builds kamo-shared-library main (now 1.4.0) and installs it to the local .m2; the service pom still referenced 1.0.0 which Maven could not find, ...
应用SP6正确性和执行质量修正
C1: 使用 NEXT PUBLIC H*** TE KEY env var 而不是硬码占位符 C2: 更改注册 Response.userId 和全部 API 参数从数字到字符串( CockroachDB 独有的 rowid 精度) C3: 手柄中清晰的 stale *** sord (set***Token (nu...
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...
Address 4 code-review findings in registration and login paths
- Hide raw exception message in /register 500 path; log instead - Fail-closed (503) on email-verified DB check failure in login - verifyEmailToken throws if use...
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.
删除未使用的电子邮件GeneralManager.tsx(~560行已死代码)
组件从未被进口到任何地方。 它的切换(弹出处理, 未订阅、 发送跟踪、 电子邮件默认) 没有后端 纯粹是化妆品 每一个特征都会被运送 当相应的后端存在时,通过自己的光谱. 部分为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.
Append Z to dateCommitted so JS parses it as UTC
LocalDateTime.toString() produces no timezone designator, causing JavaScript's new Date() to treat the UTC value as local time and display timestamps 7-8 hours ...
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 ...
Convert PT midnight cutoff to UTC for today-count query
Commits are stored in UTC but the cutoff was a naive LocalDateTime in PT, causing yesterday-evening PT commits (00:00–06:59 UTC) to be counted as today.
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...
Bump kamo-shared-library 版本为 1.2.0,用于 SP1 添加
添加电子邮件Template、电子邮件TemplateCategory、模板状态、模板关键字、 Canonical Template, Canonical Template Loader, 和 Canonical HTML 资源.
添加 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.