Маршрутизация всех вызовов API esig через forwardToApi() для исправления сбоев сохранения
Все 10 обработчиков маршрута Esig указывали на ESIG SERVICE URL, который разрешает к несуществующему доверенному лицу камовсига. Заменить каждого куратора forwa...
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...
Add /api/esig/** gateway routing to ESigService
Route all /api/esig/** requests through the existing API gateway to the dedicated ESigService (kamowsesig-service) instead of the non-existent proxy target. Add...
Добавить опцию положения слоя в модификатор Watermark (за / над контентом)
WatermarkModifier получает «слойное» поле: «за» | «выше» (по умолчанию — «за»). - ModifierLayer теперь принимает "пропускной" реквизит (ниже "выше"): - ниже про...
Добавить модификатор Watermark в набор инструментов
- Тип WatermarkModifier: logoType (полный/простой), startPage, endPage, ротация (-180-180), размер (10-90% ширины страницы), непрозрачность (2-60%), solidColor ...
Только покажите намёк на токен формата номера страницы при выборе Custom
Расширить модификатор этикетки до полной 8-позиционной сетки с вращением LM/RM
- LabelModifier.position теперь использует ModifierPosition8 (та же 8-позиционная сетка, что и номера страниц) - LM (Middle Left): каждая строка отображается ка...
Добавьте вкладки Tools/Modifiers для подписи Toolbox с наложениями живого холста
- Сплит Toolbox левая боковая панель в Tools и Modifiers вкладки - Вкладка Модификаторов: раздельный список + панель настроек (вариант B) - Модификатор номеров ...
Переключите предпросмотр-баннер-текст на встроенный поток, чтобы ссылка changelog находилась на одной линии
Корректировка поворотного положения миниатюры и восстановление преобразования вращения
Два бага в ThumbnailCanvas: 1. Заменить "высота: \"${displayAspect * 100}%\" (процентная высота на абс- позиционируемый элемент — ненадежный, когда высота блок...
Показать сегодняшнее количество changelog в баннере предварительного просмотра со ссылкой на /changelog
Fix floating zoom control visibility and polish thumbnail placeholders
- Move floating zoom controls outside the scroll container and use position:absolute so they remain visible at all times regardless of scroll position; offs...
Page selection with animated glow border synced between canvas and thumbnail sidebar
- DesignTab holds selectedPageIndex as the single source of truth - Clicking any page in the main canvas selects it (onPageSelect) - Clicking a thumbnail select...
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...
Auto-select first signer, fix zoom control scrollbar gap, animate properties panel
- Toolbox auto-selects the first signer's UID when signers go from 0→1 - Canvas container uses scrollbar-gutter: stable so the sticky zoom/undo control mainta...
Reorder tabs, gate field tools by signer, redesign Settings & Signers tab
- Design is now the first tab; Settings & Signers is second - Toolbox shows "Add Signer" CTA (navigates to Settings) when no signers exist - Signature Tools, Id...
Render field controls as actual-looking form elements with signer color tinting
Each field type now renders a visual representation of the real control (text input, checkbox, toggle, dropdown, radio group, date picker, etc.) tinted with the...
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 не затухнет, чтобы предотвратить насыщение рабочего PDF.js
На 50-страничном PDF вызов setTotalPages перед установкой петли размерности getPage() Все 50 компонентов ThumbnailCanvas немедленно. Каждый возвращается в PDF.j...
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...
Переместите все маршруты API визуализации из SecurityService в ConversionService/DocsService
Маршруты загрузки теперь вызывают ConversionService напрямую через CONVERSION SERVICE URL: - POST /api/imaging/upload → /api/conversion/imaging/upload - POST/ap...
Удалите ImagingController и beans/imaging — перейдите в ConversionService и DocsService
Конечные точки загрузки теперь находятся в ConversionService по адресу /api/conversion/imaging/*. Все конечные точки управления и загрузки теперь живут в DocsSe...
Add imaging management endpoints — move all non-upload imaging from SecurityService
- Add 17 imaging DTOs to beans/imaging/ (folders, documents, templates, updates) - Add ImagingController at /api/docs/imaging with all management + download end...
Add imaging upload endpoints — move all upload logic from SecurityService
- Add JPA, Redis, NATS, kamo-shared-library, JJWT, commons-io, jackson-hibernate6 to pom.xml - Add datasource, Redis master/replica, NATS, MinIO config to appli...
Обновление до Next.js 16.2.3, TypeScript 6.0.2, Node 24, React 19 типов
- Pin рядом с 16.2.3 и eslint-config-next - Обновить шрифт до 6.0.2, @types/node до ^24 - Заменить кадр-движение на движение ^12 (импорт движения/реакции) - Доб...
Delegate thumbnail generation to ConversionService, remove PDFBox dependency
ThumbnailGenerationJob now POSTs the converted PDF to ConversionService **************** unzips the response, and stores each thumb_p{n}.png in MinIO. PDFBox re...
Делегировать генерацию миниатюр в ConversionService, удалить зависимость от PDFBox
pOST теперь конвертирует PDF в ConversionService **************************** отключает ответ, сохраняет каждый thumb p{n}.png в MinIO и публикует на странице W...
Add ThumbnailService and POST **************** endpoint
Accepts a PDF file, renders each page at 150 DPI via PDFBox, packs per-page PNGs into a ZIP (thumb_p0.png, thumb_p1.png, …) and returns it. Centralises all thum...
Добавить шаг Thumbnails для загрузки индикатора прогресса, трек генерации thumbnails этап WS
Синхронная генерация миниатюр на странице во время загрузки шаблона с гранулированным прогрессом WS
Добавить зависимость от PDFBox в pom.xml После хранения преобразованного PDF, отобразите все страницы через PDFRenderer и загрузите каждую как {id} thumb p{n}.p...
Предотвратите укладку страниц, исправьте миниатюры, добавьте миниатюры на стороне сервера с резервным копированием PDF.js
Добавить flexShrink: 0 на страницы divs в PdfCanvas, чтобы страницы не сжимались в гибких столбцах Добавить flexShrink: 0 к миниатюрам в PageThumbnailSidebar по...
Добавить GET **************************** конечная точка для обслуживания миниатюр PNG на странице
Generate per-page thumbnails for all PDF pages, store as {id}_thumb_p{n}.png
Добавить поле thumbPageCount и найтиNeedingPageThumbnails запрос для поддержки миниатюр на странице
Стремительный PDF-рендеринг, нормализация естественного масштаба, отсутствие горизонтальной прокрутки
- PdfCanvas: замените IntersectionObserver на полные рендеринга страницы. Подход, основанный на наблюдении, был ненадежным при запуске вкладки дизайна. с диспле...
Обновление до Next.js 16.2.3, TypeScript 6.0.2, Node 24, React 19 типов
Next.js 16.2.3 с Turbopack по умолчанию TypeScript 6.0.2 с возможностью стирания SyntaxOnly и целью ES2022 - @types/react@19 и @types/react-dom@^19 (React 19 ty...
Устранение конфликта Child DOM в рендеринге миниатюр PDF
Заменить container.innerHTML + appendChild pattern в ThumbnailCanvas React-managed <canvas> ref. Старый подход очистил React Узлы DOM напрямую, в результате чег...
Обработка применимых PlanIds и применимых BillingCycles в качестве струнных массивов
Эти поля набираются в виде строки, но на них есть .split("). Вызывает сбои в сборке TypeScript.
Add CockroachDB transaction retry for template init endpoint
CockroachDB serializable isolation can trigger RETRY_SERIALIZABLE on the read-then-write pattern in initTemplate. Retries up to 3 times with backoff when detect...
Вернуть прокси-маршруты в OTK auth, удалить неиспользуемый помощник esigProxy
OTK — это правильный механизм аута — подход предыдущего заголовка сессии. Обойдя установленный шаблон безопасности. Все прокси-маршруты esig используются Снова ...
Correct OTK Redis key format and add imaging template list endpoint
OTK keys use OTK<id> and ***<id> (no colon) matching the Next.js proxy. Added POST /api/esig/templates/list to query imaging templates via shared library ImgRep...
Используйте заголовки сеансов вместо OTK для прокси-маршрутов ESigService
Читайте *** сессию от Redis в Next.js и передайте orgId/memberId как надежный Заголовки в ESigService через внутренние K8s DNS. Устранение зависимости OTK.
Replace OTK auth with trusted session headers for internal K8s calls
ESigService is internal — the Next.js backend reads the session from Redis and passes orgId/memberId/userId as X-Org-Id, X-Member-Id, X-User-Id headers. No OTK ...
Используйте конечную точку init для поиска или создания шаблона imgId на загрузке редактора
Страница создания проходит imgId в URL. Страница редактирования теперь называется конечная точка init, чтобы найти или создать шаблон ESign, затем использует Ве...
Как вы видите судоходство?
Все это приходит в ваше рабочее пространство самостоятельно. Начните с бесплатного плана и прочитайте эту страницу через месяц.
