Add esign repos to JPA repository scan so ESignTemplateRepository bean is found
DocsService was crashing on startup because ESignTemplateRepository lives in com.kamo.z.shared.esign.repos which wasn't included in the @EnableJpaRepositories s...
使用24小时窗口代替 UTC 日期来计算今天的更改日志
服务器运行于 UTC 中, 因此在晚上的美国时区返回 ISOString () 明天的日期,没有承诺匹配。 换句话说,用一个24小时的滚动窗.
改变日志的 API 路径上的力量动力学, 防止僵化日期缓存
接下来,Js在建设时静静地抓取路由处理器 将新日期( ) 冻结到构建日期, 因此今天的更改日志计数从未更新 .
系统 Docs 标签只使用系统 Docs 旗子, 在原始 Docs 中显示所有文件
原始 Docs 标签现在显示此 org/ asocType 的所有文件 由屁股过滤对象。 系统 Docs 标签发送系统 Docs Only: true 只获取带有空/空屁股对象的文档.
Use **************** for hasDesignVersion, add systemDocsOnly filter
hasDesignVersion now checks if an esign template exists with current_design_version > 0, instead of using isSigTemplate which is true for all uploads through th...
默认 assoc ObjectID 到当前成员ID 进行适当的 Doc 标签过滤
未提供 Oid URL 参数时, 原始文档和已修改的文档标签 现在由当前成员的ID查询,而系统文档查询则使用 面向 Org 文档的空屁股对象 .
Add @JsonIgnoreProperties to UploadTemplateRequest to prevent hash null on unknown fields
The frontend sends accessLevel, description, folderId, docTypeId in the metadata JSON. Jackson was failing to parse the entire metadata object when encountering...
在幽灵的直观位置 放置空地
使用活性. rect.current.xxx. 翻译( DragOverlay 鬼的客户端矩形)代替 匹配已翻译的矩形, 因此字段现在精确降落在用户的位置 释出.
运行所有 esig API 调用 extratToApi () 以修正失败
所有10 esig 路由处理器都指向 ESIG SERVICE URL 解决 到一个不存在的 Kamowsesig 服务代理。 将每个处理器替换为 extendToApi () 所以请求流经标准的 API 网关 (APISERvice → ESigService)使用OTK认证. 此定义 “ 未能保存签名者” 错误和所...
Replace upsertSigners with full delete+insert to handle frontend temp UUIDs
The frontend assigns temporary crypto.randomUUID() values to newly-added signers before any backend call. The previous upsert-by-uid logic would throw 404 for t...
正确的旋转缩略图定位并恢复旋转变换
缩略图中的两个错误 : 1. 已替换为 " 高度: {${出处-}* 100{} (abs-的高度百分比) 定位元素——当含有块高时不可靠 padding-top)带有 “ spectRatio: String( baseAspect) ” , 因此浏览器会获取 高度从明确设置的宽度。 宽度现在为"BaseAspec...
Move scroll ownership from PdfCanvas to canvasContainerRef
PdfCanvas root Box previously had overflow-auto + h-full, making it its own scroll container. This meant: - scrollbarGutter: stable on canvasContainerRef had no...
Fit to Width calculates actual container width instead of resetting to zoom 1
Reads **************** (which accounts for the stable scrollbar gutter) and the page's natural width via **************** then computes fitZoom = (availableWidt...
Replace all hardcoded purple with var(--color-primary) on Settings & Signers page
Signers icon, icon background, count badge, Add Signer buttons, Add First Signer button, empty-state illustration tint, add-another hover, and the ALL_OF_TYPE s...
Remove fixed height and scroll bars from field properties panel
The panel had two vertical scrollbars: 1. DesignTab wrapper had height: 200 + overflowY: auto 2. FieldPropertiesPanel root had height: 200 + overflow: hidden, ...
拖放设置 TotalPages 直至PDF dim 循环后防止 PDF.js 工人饱和
在一个50页的 PDF 上, 在 GetPage () 尺寸回路挂载前调用 setTotalPages 所有50个缩略图 Canvas组件 立即。 每个都回到PDF.js(服务器) 缩略图不是为模板生成的, 排出共享的50个并行任务 PDF.js 网络工人 — 压倒它并导致阴暗循环的GetPage()呼叫 无限期地停顿...
Expand component scan and add full datasource/JPA/Redis/MinIO config
ConversionServiceApplication was only scanning com.kamo.ConversionService, missing all shared library beans (ImageService, MinIOStorageService, MemberRepository...
Add kamo-shared-library build stage to resolve missing dependency
The Dockerfile was trying to fetch kamo-shared-library from Maven Central, which doesn't exist there. Mirror the SecurityService pattern: clone the shared libra...
Prevent page stacking, fix thumbnail slivers, add server-side thumbnails with PDF.js fallback
- Add flexShrink: 0 to page divs in PdfCanvas so pages don't compress in flex column - Add flexShrink: 0 to thumbnail items in PageThumbnailSidebar for same rea...
Eager PDF 渲染、 自然尺度正常化、 无水平滚动
- PdfCanvas:用急切的全页渲染器替换截面观察员。 在开始设计标签时,基于观察员的方法是不可靠的 显示 : 无 —— 浏览器无法可靠地重燃交叉事件 当祖先从显示:无向可见过渡时。 - PdfCanvas: 添加自然尺度正常化(TARGET PAGE WIDTH PQQ-612) 转换服务公司的一些PDF使用非标...
Eliminate removeChild DOM conflict in PDF thumbnail rendering
Replace container.innerHTML + appendChild pattern in ThumbnailCanvas with a React-managed <canvas> ref. The old approach cleared React-owned DOM nodes directly,...
将可应用的 PlanId 和可应用的 BillingCycles 作为字符串数组处理
这些字段被打成字符串 [] 但有. split ("") 调用它们, 导致 TypeScript 构建失败 .
为模板输入端点添加 CockroachDB 交易重试
CockroachDB 可序列隔离可触发 RETRY SERIALIZIBAL 在 中读取的文本模式。 重复最多3次 在例外链中检测“ retrich txn” 时带有后退.
Revert proxy routes to OTK auth, remove unused esigProxy helper
OTK is the correct auth mechanism — the prior session-header approach bypassed the established security pattern. All esig proxy routes now use generateOTK from ...
正确 OTK 语言 重写密钥格式并添加成像模板列表终点
OTK 密钥使用 OTK<id> 和 QQid > (无冒号) 匹配 Next.js 代理 。 通过共享查询成像模板时添加 POST /api/esig/templates/ list 库 ImgRepository,从安全服务中移动此能力.
对 EsigService 代理路由使用直接会话头而不是OTK
从 Redis 在 Next.js 读取 *** 会话,并通过 orgId/ memberId 作为信任 通过内部K8s DNS向ESigService发送信头. 删除 OTK 依赖 .
Replace OTK auth with trusted session headers for internal K8s calls
EsigService是内部的 — Next.js 后端从 Redis 读取会话 和通过 OrgId/memberId/userId作为 X-Org-Id, X-member-Id, X-User-Id 标题. 服务间通信不需要OTK往返.
在编辑器加载时使用内端点查找或创建模板
创建页面通过 imgId 在 URL 中 。 编辑页面现在称为 输入查找或创建 EsignTemplate 的终点,然后使用 返回UUID用于设计操作和版本历史.
Scan all shared library repository packages to resolve bean dependencies
ComponentScan picks up shared library services which depend on repos in donotmodify.dao.repos and commerce packages — must scan those too.
Remove .mvn/ copy from Dockerfile — directory does not exist in this project
校正访问级别 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...