Changelog
Cosa c'è di nuovo.
Ogni miglioramento alla piattaforma, come si spedisce.
· 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
Aggiungere l'opzione di posizione del livello al modificatore Watermark (dietro / sopra il contenuto)
- WatermarkModifier acquisisce un campo 'strato': 'dietro' | 'above' (predefiniti da 'dietro') - ModifierLayer ora prende un prop 'pass' ('below' | 'above'): - di seguito passo: rende numeri di pagina, etichette e filigrane con layer='behind' - passo sopra: rende solo filigrane con strato='above' - PdfCanvas rende due pass ModifierLayer — uno prima di FieldOverlay/Annotation Livello e uno dopo — in modo che i filigrani possono sedersi dietro o sopra di tutti i contenuti posizionati - Toolbox WatermarkSettings: toggle segmentato "Behind Content / Sopra Contenuto" inserito sopra l'interruttore di colore solido
· kamo-internal
Aggiungi modificatore di filigrana per esign toolbox
- WatermarkModifier tipo: logoTipo (pieno/semplice), startPage, endPage, rotazione (−180–180), dimensione (10–90% della larghezza della pagina), opacità (2–60%), toggle solidoColore, colore (hex) - Predefiniti al logo completo, −45° rotazione, 50% dimensione, 15% opacità - ModifierLayer: WatermarkOverlay rende il logo tema org incentrato + ruotato sulla pagina. Quando il colore solido è abilitato, un filtro SVG in linea (feColorMatrix) sostituisce il colore di ogni pixel preservando il canale alfa — dà una silhouette pulita riempire senza tela o problemi CORS - Toolbox: WatermarkSettings pannello con - Selettore di tipo logo (tegole visive con logo org effettivo) - Ingressi dell'intervallo di pagina - Rotazione, dimensioni e cursori di opacità - Toggle di colore solido - Preimpostazioni a colori (Primary, Secondary, Black, White) leggere dai vars CSS - ModernColorPicker per il colore personalizzato quando la modalità solida è attiva - Aggiungi menu modificatore guadagna opzione filigrana; elenco carte mostra icona di opacità + sommario
· kamo-internal
Estendere il modificatore dell'etichetta alla griglia completa di 8 posizioni con rotazione LM/RM
- LabelModifier.position ora utilizza ModifierPosition8 (stessa griglia a 8 posizioni come numeri di pagina) - LM (Middle Left): ogni linea resa come una pillola verticale con scrittura-mode: verticale-rl + ruota(180deg) — testo legge CCW (bottom-to-top); linee stack sinistra a destra in modo che la linea 1 è più vicina al bordo di pagina, la linea 3 è più dentro - RM (Middle Right): ogni riga utilizza scrittura-mode: verticale-rl (non rotazione supplementare) — testo legge CW (top-to-bottom); riga-reverse in modo che la linea 1 sia al bordo destro, le linee vengono verso l'interno - TM/BM ora disponibile su Etichette (standard pillola orizzontale, centrato) - Removed PositionGrid4 from Toolbox; Etichette utilizzare PositionGrid8 con un accenno mostrato quando LM/RM è selezionato - Rimuoveto ModifierPosition4 tipo (non più necessario)
· kamo-internal
Aggiungi Strumenti/modifica schede per disegnare Toolbox con sovrapposizioni in tela dal vivo
- Split Toolbox barra laterale sinistra in Strumenti e schede Modifiers - Scheda Modificatori: elenco diviso + pannello impostazioni (Opzione B) - Modificatore numeri di pagina: inizio/fine pagina, griglia a 8 posizioni (TL/TM/TR/LM/RM/BL/BM/BR), preimpostazioni di formato + token personalizzati ({n}/{total}) - Modificatore di etichette: start/end page, griglia a 4 ghiande, fino a 3 righe di testo impilate - Assunzioni multiple di ogni tipo supportato - Le carte mostrano l'icona del tipo + sommario (linea, posizione, testo di anteprima) - Caratteristiche della scheda selezionata nel colore primario; carico delle impostazioni nel pannello inferiore - Componente ModifierLayer: sovrapposizioni in tela live rese per-pagina all'interno della gamma definita, puntatore-eventi: nessuna, z-index sotto i campi/annotazioni - DesignData esteso con modificatori[] — persistito tramite salvataggio/carico/versione/undo-redo
· kamo-marketing
Mostra il conteggio dei changelog di oggi in anteprima banner con link a /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
Aggiungi il passo Thumbnails per caricare l'indicatore di progresso, traccia generante thumbnails
· SecurityService
Generazione di miniature sincrona per pagina durante il caricamento del modello con progresso granulare WS
- Aggiungi dipendenza PDFBox da pom.xml - Dopo aver memorizzato PDF convertito, rendere tutte le pagine tramite PDFRenderer e caricare ciascuna come {id} thumb p{n}.png - Pubblica l'evento di progresso WS generato thumbnails per pagina (intervallo 72-95%) con l'etichetta "Generated thumbnail N of M" - Ridimensionare tutte le percentuali di fase precedenti per fare spazio: scaricare 0-10, preparare 10-15, convertire 15-55, verificare 55-63, memorizzare 63-72, miniature 72-95, finalizzare 95-100
· SecurityService
Aggiungi GET Non e' vero. endpoint per servire le miniature PNG per pagina
· DaemonService
Generate per-page thumbnails for all PDF pages, store as {id}_thumb_p{n}.png
· kamo-shared-library
Aggiungi pollicePagePaese campo e trovareNeedingPageThumbnails query per il supporto per-pagina thumbnail
· 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
Aggiungi e-signature template editor con design tela, firmatari e versione
Riscrittura completa della pagina /doc/sign/edit con interfaccia a schede (Settings & Signers, Design), tela PDF.js con sovrapposizione di campo trascinabile, strumenti di annotazione, signer gestione, pagina thumbnail sidebar, cronologia delle versioni e disfare/redo. Include Negozi di Zustand, percorsi proxy API per ESigService e 13 nuovi componenti.
· 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
Aggiungi entità dei modelli di e-signature, enum e repository
Nuove entità JPA per il sistema di progettazione di modelli di firma elettronica: ESignTemplate, ESignTemplateSigner, ESignTemplateDesignVersione e ESignTemplateFieldLink con enums di supporto e repository di dati di primavera.
· kamo-marketing
Redact K8s nomi segreti nel display changelog, sostituire con *****
· kamo-marketing
Stazioni lato server per totali reali, scorrimento infinito, conta filtri accurati
Stats bar e conta pillole filtro ora provengono da /api/changelog/public/stats (reali aggregati DB, non conteggi di pagine caricate). Più pulsante con IntersezioneObserver scorrimento infinito che innesca 600px prima del In fondo.
· SecurityService
Aggiungi /api/changelog/public/stats endpoint per conteggi aggregati per tipo e progetto
· kamo-shared-library
Aggiungi query findByProjectIn a CommitLogRepository per le statistiche endpoint
· SecurityService
Aggiungere la convalida segreta webhook per changelog endpoint
Difesa-in-profondità: convalida *** intestazione sul lato SecurityService oltre alla validazione del gateway 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
Configure changelog progetti pubblici con tutti i 23

Il tuo universo ti sta aspettando.
Aggiungi i prodotti quando sei pronto: nessuna migrazione, nessun nuovo login, nessuna richiesta di pagamento.
Gratis per sempre — nessuna carta di credito richiesta