添加电子签名模板实体、目录和寄存器
电子签名模板设计系统的新JPA实体:ESignTemplate, EsignTemplate 签名器, EsignTemplate 设计软件, 以及 EsignTemplate FieldLink 配有支持的enums和Spring Database.
校正访问级别 API 的后端和前端之间的字段名称映射
地图后端安全级Id-accessLevel,是OrganizationOwner-isOwner,成员Type-isTeam Member在API路由中. 修正右侧检查以使用 EDIT member ACCESS LEVEL 而不是 MANAGE MEmber SECURITY 。 固定所有者切换,通过单独的API呼叫...
在无法订阅 API 时为要约页添加静态倒置
生产中还没有QQ表 API 返回错误。 回到硬码升级和计划数据 所以无论后端状态如何,要约页面都有效. 将结束日期设定为4/20/2026.
更新 Api 促销类型以匹配新列表 < string > 后端响应
应用的PlanIds和可应用的BillingCycles现在是数组,而不是JSON字符串.
Extend 18DOFF promotion end date to 2026-12-31
The April 14 end date was causing the offer page to show as expired.
Validate Forgejo HMAC-SHA256 signature instead of plain secret header
Forgejo sends webhook secret as X-Gitea-Signature / X-Forgejo-Signature HMAC-SHA256 hash, not as a plain header value. Read body, verify HMAC, then forward to S...
服务器侧统计表,用于真实总数、无限滚动、准确的过滤计数
定点棒和过滤药的计数来自/api/changlog/公共/统计 (真正的 DB 汇总数,而非加载页数). 已替换加载更多按钮 与 Intersection 观察员无限滚动,在 下边.
添加 Webhook 秘密验证到更改log 端点
深入防御:验证 *** 页眉 除了APIService网关验证之外,还有安全服务侧.
Expose changelog webhook through APIService with secret key auth
Adds POST /api/changelog/webhook route that validates *** header before forwarding to SecurityService. Secret configured via CHANGELOG_WEBHOOK_SECRET env var / ...
删除 JSON 为订阅计划 ID 阵列解析工作
后端现在返回合适的数组而不是 JSON 字符串,所以 在附加、捆绑、 并推广电网电池渲染器.
Use List<String> instead of manual JSON strings for promotion plan/cycle IDs
Update KamoCRMPricingLoader to use List.of() for applicablePlanIds and applicableBillingCycles, matching the shared library's migration from JSON strings to ent...
移动订阅 JSON 字段到基于实体的@ ManyTOMY 关系
替换 jsonb 字符串列(兼容的 PlanIds,包括 InPlanIds,可应用的 PlanIds, 包含合适的 JPA @ ManyToMany 加入表格和 @ ElementCollection。 更新服务层以解析计划实体而非序列化 JSON,并更新 从字符串升级到列表<String>,以便与添加/捆绑的 DT...
添加对大小写不敏感的文本替换以用于更改日志显示
将内部工具名称取而代之(Docs- >) 医生, Meet- >Meet, Capcha- > Capcha, Avatar 创建者- > Avatar 创建者等) 标题中 和描述之前.
添加 Live 更改日志页面, 包含时间线 UI、 过滤器和数据
服务器端从客户端的SecurityService获取更改日志 提供项目/类型过滤、日期分组、可扩展描述, 和更多的加载。 添加了导航和页脚链接.
在成员设置中添加访问级别编辑器, 并使用 org 专用标签替换
重命名 CLIENT MEMBER 和 InterNAL TEAM MEMBER 在图像访问级别Type.ts中带有{var}占位符 。 将访问级别部分添加到角色PermissionsTab中,由 EDIT MEMEBER ACCESS LEVEL 右上下级规则进行编辑控制. 更新 DocManager 访问级别标签,...
Add member access level and owner status endpoints
Add GET and PATCH **************** endpoints for reading and updating access levels with full permission enforcement. Update organization creation to use create...
Use createOrganizationOwner for admin members, rename INTERNAL to TEAM_MEMBER
Update owner creation to use new createOrganizationOwner method which handles admin role assignment and PRIVILEGED access level automatically. Replace all Image...
添加成员访问级别系统,包括所有者升级和安全控制
重命名 CLIENT MEMBER 和 InterNAL TEAM MEMBER 在图像访问级别Type 中, Org 专用标签的占位符 。 将安全级别从团队成员调至成员进行普遍出入控制。 加入 OrganizationOwner 旗下为Team Member 。 添加 EDIT member ACCESS LEVEL...
Proper image-to-PDF conversion with sizing, centering, and multi-page TIFF
- Images scaled to fill page (max width or height) maintaining aspect ratio - Images centered on the page - Multi-page TIFF: one PDF page per TIFF page - Letter...
Add granular conversion progress stages with 8 distinct WebSocket updates
Stages: downloading (0-15%) → preparing (15-20%) → converting (20-65%) → verifying (65-75%) → storing (75-90%) → finalizing (90-100%) → complete
Handle image files (JPG, PNG, TIFF, etc.) directly via PDFBox instead of Docs
Docs can't convert images to PDF. Added ImageToPdfService that embeds images into a PDF page using PDFBox. Docs is only used for office document formats (DOC, D...
Use imgRepository.findByDat() instead of lazy imgDat.getImages()
Quartz jobs run outside JPA sessions, so lazy collection access on ImgDat.images throws LazyInitializationException. Use explicit repository query instead.
Add extensive logging to synchronous conversion flow, fix bucket lookup
Use img.getAssocId() for bucket instead of local assocType variable. Add step-by-step logging for download, conversion call, and result.
在 JPQL 查询中通过 System WIDE 作为参数而不是 FQCN
Hibernate 可能无法在 JPQL 中解决完全合格的 enum 名称 各个版本。 Pass Image AssocType.SYSTEM WIDE 作为命名参数代替.
