Журнал змін
Что нового.
Все усовершенствования платформы, как только она будет запущена.
· APIService
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. Adds esig.service.url config property with the correct K8s internal service URL as default.
· kamo-internal
Додавання параметра положення шару до модифікатора водяного знака (behind / вище вмісту)
- WatermarkModifier отримує поле 'шар': 'behind'above' (за замовчуванням 'behind') - МодифікаторLayer тепер займає проп ('below'above'): - нижче проходу: додає номери сторінок, етикетки та водяні знаки з шаром='behind' - над переходом: подає тільки водяні знаки з шаром='above' - PdfCanvas надає два МодифікаторLayer переходить — один перед FieldOverlay/Annotation Шар і один після того, як водяні знаки можуть сидіти як за межами, так і на верхній частині всього розміщеного вмісту - Toolbox WatermarkSettings: відрізаний перемикач "Попередній вміст / над змістом" вставляється над перемикачем суцільного кольору
· kamo-internal
Додати модифікатор водяного знака для вилучення коробки інструментів
- Тип водяного знакаModifier: логотипТип (повний/простір), початокПage, кінецьПейдж, обертання (−180–180), розмір (10–90% від ширини сторінки), непрозорість (2–60%), оболонка твердого заліза, колір (hex) - За замовчуванням до повного логотипу, −45° обертання, 50% розмір, 15% непрозорість - МодифікаторLayer: WatermarkOverlay надає логотип теми org, розташованому на сторінці. При включенні твердогобара, інлайн SVG фільтр (feColorMatrix) замінює кожен колірпікселя при збереженні альфа-каналу - дає чистий силует, наповнений без полотен або занепокоєння CORS - Інструментбокс: панель інструментів WatermarkSettings з - Вибір типу логотипа (візуальна плитка, що показує актуальні логотипи org) - вхідні сторінки - Обертання, розмір і непрозорість слайдерів - Суцільний колір окуляри - Швидке встановлення кольорових пресетів (Primary, Secondary, Black, White) - ModernColorPicker для індивідуального кольору, коли твердий режим активний - Додати модифікатор меню набирає опцію водяного знака; список карт показує значок непрозорості + резюме
· kamo-internal
Розширений модифікатор етикеток для повної 8-місної сітки з поворотом LM/RM
- LabelModifier. В даний час використовується ModifierPosition8 (наприклад, 8-позиційна сітка як номери сторінок) - ЛМ (Middle Ліворуч): кожен рядок, що подається як вертикальна таблетка з письмово-моде: вертикально-рл + обертати (180deg) - текстові читання CCW (знизу вгору); лінії стек ліворуч так лінії 1 найближчий до краю сторінки, лінія 3 є найбільш вхідної - RM (Middle Right): кожен рядок використовує письмово-моде: вертикально-рл (не додаткове обертання) — текстові зчитування CW (top-to-знизу); ряд зворотний так рядок 1 знаходиться на правому краю, лінії приходять всередину - ТМ/BM тепер доступні на етикетках (стандартні горизонтальні таблетки, центровані) - Вилучено позиціюGrid4 з Toolbox; Використовуйте етикетки позиційGrid8 з натяком, що відображається, коли LM/RM вибрано - Вилучено модифікаторPosition4 типу (не потрібно більше)
· kamo-internal
Додавання вкладок інструментів/моделяторів для виписки інструментів з накладками живого полотна
- Split Toolbox лівий бічний панель у вкладки Інструменти та модифікаторів - Вкладка модифікаторів: розбити список + панель налаштувань (Option B) - модифікатор сторінок: початок/кінцева сторінка, 8-положення сітки (TL/TM/TR/LM/LM/BL/BM/BR), формат пресети + на замовлення ({n}/{total} токени) - Код етикетки: початок/кінцева сторінка, 4-кутникова сітка, до 3 складених текстових ліній - Кілька екземплярів кожного типу - значок типу карт + резюме (постанова, позиція, текст попереднього перегляду) - Вибрані карти виділяється в початковому кольорі; настройка навантаження в нижній панелі - МодифікаторLayer компонент: живі полотнисті, які надають пер-сторінку в межах визначеного діапазону, тостер-венти: ні, z-index нижче полів/анотацій - DesignData розширено з модифікаторами [] — персистований за допомогою збереження / завантаження/версії/undo-redo
· kamo-marketing
Показати сьогодні зміни в списку попереднього перегляду банера з посиланням на /changelog
· kamo-internal
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; offset 28px from right to account for scrollbar gutter - Rewrite ThumbnailCanvas placeholder logic: containers now render at US Letter aspect ratio before any image loads, then animate to the true aspect ratio once the thumbnail resolves; paddingTop is applied imperatively via a ref to bypass MUI's spacing system - Aspect ratio transitions smoothly with a spring curve when rotation changes (portrait ↔ landscape morph) - Spinner fades/shrinks out and thumbnail fades/scales in with a polished keyframe sequence on load
· kamo-internal
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 selects the page AND scrolls to it in the main canvas - Selected page in the main canvas gets a 2.2s pulsing theme-colored glow: three-layer box-shadow (solid ring + spread + ambient) breathing from dim to bright - Selected thumbnail in the sidebar gets a matching but proportionally smaller glow - When a page is selected via the main canvas, the thumbnail sidebar auto-scrolls the corresponding thumbnail into view (scrollIntoView nearest) - Replaced the broken useVisiblePage stub (always returned 0) with real selectedPageIndex prop - Page container converted from plain <div> to MUI Box to support sx/@keyframes - Unselected pages gain a subtle hover shadow for discoverability
· kamo-internal
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 maintains a consistent right-edge gap regardless of scrollbar visibility - Properties panel slides up (spring easing, 380ms) on open and slides down (ease-in, 240ms) on close using MUI Slide with cubic-bezier(0.34,1.56,0.64,1) - Switching between fields triggers a subtle fade+translate keyframe (220ms) via React key on the inner content wrapper, keeping the outer container mounted - Panel gains a soft top shadow (0 -8px 32px) to lift it visually off the canvas
· kamo-internal
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, Identity Fields, and Input Fields are disabled (grayed out with lock icon) until a signer is selected; Annotation Tools remain always available - Settings & Signers tab fully redesigned: two-column full-height layout — left panel (380px) for template name, scope selector, and association type; right panel (flex) for the scrollable signers list with sticky header, empty state, and add-another footer
· kamo-internal
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 assigned signer's color. Resize handles are now 4 corner-only circular dots instead of 8 directional handles.
· DocsService
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 endpoints: - Folders: GET/POST list+create, PATCH rename, DELETE, POST move-doc - Config: GET assoc-config, GET doc-types - Documents: GET download, DELETE delete, GET metadata, POST list - Updates: PATCH update/description, filename, hidden, access-level, doc-type, folder - Trash: PATCH trash/restore - History: GET history/changes, GET history/downloads - Templates: POST templates/list, PATCH templates/{id}/status, GET templates/{id}/converted-pdf, GET templates/{id}/thumbnail/{page}
· ConversionService
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 application.yml - Add OTKPreAuthFilter + KSessionService for OTK-based auth - Add ImagingUploadController at /api/conversion/imaging: - POST /upload — regular document upload - POST /templates/upload — full synchronous pipeline (upload → Docs convert → thumbnail generation → NATS WebSocket progress events) - Fix thumbnail object naming to use originalDat.getId() consistently with DaemonService and the download endpoint
· ConversionService
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 thumbnail generation logic in ConversionService; callers store the ZIPed results themselves.
· kamo-internal
Додати Thumbnails крок, щоб завантажити індикатор прогресу, відстеження генерації thumbnails WS етап
· SecurityService
Синхронний пер-сторінок великого пальця під час завантаження шаблону з гранульованим прогресом WS
- Додати залежність PDFBox до pom.xml - Після зберігання перетворений PDF, надайте всі сторінки за допомогою PDFRenderer і завантажте кожну як {id} thumb p{n}.png - Публікова генерація thumbnails WS подія прогресу на сторінці (72-95% діапазону) з етикеткою "Генерований палець N M" - Визначте всі попередні відсоткові проценти, щоб зробити номер: завантаження 0-10, приготування 10-15, перетворення 15-55, перевірка 55-63, зберігання 63-72, ескізів 72-95, завершення 95-100
· SecurityService
Додати GET ****************************************************************************************************************************************************************************************************************************************************************************** Кінцева точка для подачі на сторінку PNG пальці
· DaemonService
Generate per-page thumbnails for all PDF pages, store as {id}_thumb_p{n}.png
· kamo-shared-library
Додати thumbPageCount поле і знайтиПрихованеPageThumbnails запиту для підтримки веб-сторінок
· ESigService
Add template init endpoint to find-or-create templates by imgId
The create page uploads to the imaging system and redirects with imgId. The edit page now calls POST /api/esig/templates/init with the imgId to find an existing template or create a new one in DRAFT status.
· kamo-internal
Додати редактор шаблонів електронних знаків з дизайнерським полотном, знаками та версіями
Повний перезапис сторінки / док / позначений / вихід з інтерфейсом вкладок (Налаштування та підписники, Дизайн), PDF.js полотно з перетягуванням поля, анотаційні інструменти, вивіска управління, сторінка мініатюрної бічної панелі, історія версій та невдоволення. Включає Zustand магазини, API проксі маршрути до ESigService, і 13 нових компонентів.
· ESigService
Initial ESigService Spring Boot project for e-signature template management
New microservice with REST API for e-signature template CRUD, signer management, design version snapshots, and field link tracking. Includes OTK auth filter, Forgejo CI/CD pipeline, and K8s deployment manifests.
· kamo-shared-library
Додавання електронних підписів шаблонів, оманів та репозицій
Нові суб'єкти JPA для системи розробки шаблонів електронних знаків: ESignTemplate, ESignTemplateSigner, ESignTemplateDesignVersion та ESignTemplateFieldLink з підтримкою енумів та репозиторій вихідних даних.
· kamo-marketing
Redact K8s секретні імена у вікні зміни, замініть ***
· kamo-marketing
Статус на сервери
Стовпи бару та фільтра тепер приходять з /api/changelog/public/stats (реабілітативні агрегати DB, не завантажені рахунки сторінок). Замінена кнопка з IntersectionObserver нескінченний прокрутка, яка запускає 600px до дно.
· SecurityService
Додавання /api/changelog/public/stats endpoint для сукупних підрахунків за типом та проектом
· kamo-shared-library
Додати пошукByProjectIn запиту на CommitLogRepository для кінцевої точки статистики
· SecurityService
Додавання перевірки секрету webhook для зміни кінцевої точки
Оборона-глибина: дійсні *** заголовок на Надання послуг безпеки на додаток до перевірки воріт APIService.
· 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 / K8s secret.
· SecurityService
Налаштуйте зміни журналів публічних проектів 23 Forgejo repos

Твій всесвіт чекає.
Почати безкоштовно за декілька хвилин. Додати продукти, коли ви будете готові — без перенесення, без нових реєстрацій.
Безкоштовно назавжди — не потрібна кредитна карта