Jurnal de schimbări
Ce e nou.
Fiecare îmbunătățire a platformei, pe măsură ce se livrează.
· 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
Adaugă opţiunea poziţiei pe strat la modificatorul de filigran (în spatele/ deasupra conţinutului)
- Modificator de semnal de apă câștigă un câmp 'strat': 'în spatele' 'în spate' 'în spate' (defaults to 'behind') - ModifierLayer ia acum un "pass" recuzită ('sub'' 'deasupra' 'de peste'): - Pasul de mai jos: redă numere de pagini, etichete și filigrane cu strat="în spatele" - trece mai sus: redă doar filigrane cu strat="deasupra" - PdfCanvas redă două trece ModifierLayer Strat și unul după - Setări de filigran: comutaţie segmentată "Conţinut în spatele / deasupra conţinutului" introdusă deasupra comutatorului Solid Color
· kamo-internal
Adaugă modificator de filigran în set de unelte esign
- Tipul modificatorului de filigran: logoType (complet/simplu), startPage, endPage, rotation (−180 - Implicit la logo-ul complet, −45° rotatie, 50% dimensiune, 15% opacitate - ModifierLayer: WatermarkOverlay redă logo-ul tematicii org centrat + rotit pe pagină. Atunci când solidColor este activat, un filtru în linie SVG (feColorMatrix) înlocuiește culoarea fiecărui pixel păstrând în același timp canalul alfa - Set scule: Panou de setare cu filigran - Selector de tip logo (tigle vizuale care prezintă logo-uri de org reale) - Intrările în intervalul paginilor - Rotație, dimensiune și diapozitive opacitate - Toggle culoare solidă - Presetări de culori rapide (Primary, Secondary, Black, White) citite din CSS vars - ModernColorPicker pentru culoare personalizata atunci cand modul solid este activ - Add modificator menu câștigă opțiunea Watermark; lista de cărți arată opacitate pictogramă + rezumat
· kamo-internal
Extindeți modificatorul etichetei la grila completă de 8 poziții cu rotație LM/RM
- LabelModifier.position folosește acum ModifierPosition8 (aceeași grilă de 8 poziții ca Numere de Pagină) - LM (Middle Left): fiecare linie redată ca o pilulă verticală cu modul de scriere: vertical-rl + rotire (180deg) text citește CCW (bottom-to-top); linii stiva stânga-la-dreapta astfel încât linia 1 este cel mai aproape de marginea paginii, linia 3 este cea mai interioară - RM (Middle Right): fiecare linie utilizează modul de scris: vertical-rl (fără rotație suplimentară) - TM/BM disponibil acum pe Etichete (pilule orizontale standard, centrate) - Îndepărtaţi poziţiaGrid4 din set de unelte; Etichetele utilizează PoziţiaGrid8 cu un indiciu indicat la selectarea LM/RM - Modificator eliminatPosition4 tip (nu mai este necesar)
· kamo-internal
Adăugați instrumente/modificatoare tab-uri pentru a esigna Toolbox cu suprafeţe de pânză live
- Split Toolbox bara laterală stângă în Tools and Modificators tabs - Fila modificatoare: lista divizată + panoul setărilor (Opțiunea B) - Modificator de numere de pagini: pagina start/end, 8-position grid (TL/TM/TR/LM/RM/BL/BM/BR), format preset + personalizat ({n}/{total} jetoane) - Modificator etichetă: pagina start/end, grilă 4-corner, până la 3 linii de text stivuite - Cazuri multiple de fiecare tip susţinut - Carduri arată pictograma tip + rezumat (interval, poziție, text previzualizare) - Atractii ale cartii selectate in culoarea primara; sarcina setarilor in panoul inferior - ModulatorParticular Layer: suprafete de panza live redate pe pagina din gama definita, puncte-evenimente: zero, z-index sub campuri/annotari - DesignData extinsa cu modificatori[]
· kamo-marketing
Afișează numărătoarea jurnalului de astăzi în banner previzualizare cu link la /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
Adaugă Degetele de sus pas pentru a încărca indicatorul de progres, cale generatoare thumbnails stadiul WS
· SecurityService
Generație sincronă per pagină miniatură în timpul uploadului șablonului cu progres granular WS
- Adăugați dependență PDFBox la pom.xml - După stocarea PDF convertit, redați toate paginile prin PDFRenderer și încărcați fiecare ca {id} thumb p{n}.png - Eveniment de progres WS de generare thumbnails WS pe pagină (interval 72-95%) cu etichetă "Generated miniature N of M" - Restabilește toate procentele anterioare de etapă pentru a face loc: descărcarea 0-10, pregătirea 10-15, conversia 15-55, verificarea 55-63, stocarea 63-72, miniaturi 72-95, finalizarea 95-100
· SecurityService
Adaugă GET - Nu. Obiectivul final pentru a servi unghiile PNG per pagină
· DaemonService
Generate per-page thumbnails for all PDF pages, store as {id}_thumb_p{n}.png
· kamo-shared-library
Adaugă degetul marePageCount field and findNeedingPageThumbnails interogare pentru suport miniatură pe pagină
· 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
Adăugați editor șablon de e-semnătură cu pânză de design, signere și versiuni
Rescrierea completă a paginii /doc/sign/edit cu interfață tabla (Setări & Signere; Design), panza PDF.js cu suprapus teren dragabil, instrumente de adnotare, signer management, pagina miniatură bara laterală, versiunea istorie, și anula / redo. Include Zustand magazine, API proxy rute la ESigService, și 13 componente noi.
· 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
Adaugă entități model de semnătură electronică, enume și depozite
Noi entități JPA pentru sistemul de proiectare a modelului de semnătură electronică: ESignTemplate; ESignTemplateSigner, ESignTemplateDesignVersion și ESignTemplateFieldLink cu enumuri de sprijin și depozite de date de primăvară.
· kamo-marketing
Redactează numele secrete ale K8s în afișarea de changelog, înlocuiește cu ***
· kamo-marketing
Statistici server-side pentru totaluri reale, defilare infinită, număr de filtru precis
Stats bar și numărul de pastile de filtrare provin acum de la /api/changelog/public/stats (agregate DB reale, fără număr de pagini încărcate). Mai multe butoane de încărcare înlocuiți cu IntersectionObserver sul infinit care declanşează 600px înainte de Jos.
· SecurityService
Se adaugă /api/changelog/public/stats obiectivul pentru numărul total pe tip și proiect
· kamo-shared-library
Adăugați gindByProjectIn interogare la CommiteLogRepository pentru obiectivul statistici
· SecurityService
Adăugați validarea secretă a webhook pentru a modifica obiectivul jurnal
Apărare în profunzime: validează *** antetul pe SecurityService în plus față de validarea APIService gateway.
· 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
Configurează proiectele publice de schimb cu toate cele 23 de programe Forgejo

Universul tău te așteaptă.
Începeți gratuit în câteva minute.Adăugați produse oricând sunteți pregătit — fără migrare, fără autentificări noi.
Gratuit pentru totdeauna — nu este necesar un card de credit