Expose thumb and converted file sizes in DocumentMetadata
Adds thumbFileSize, convertedFileSize, and convertedThumbFileSize to the DocumentMetadata DTO and populates them in convertToMetadata() from the ImgDat and its ...
Add stored size tooltip to Size cell in doc manager
Tooltip shows the breakdown of actual storage used per document: original file, thumbnails (original + converted combined), and converted doc — plus a total. Th...
Move doc manager action buttons to toolbar search row
- Removed Create Document, Upload Document, Bulk Upload, and Refresh from the gradient hero header - Hero header is now title/description only - Create Document...
Store memberType in Redis session at login
Adds CASE WHEN e.id IS NOT NULL THEN 'TEAM_MEMBER' ELSE 'MEMBER' END to the login SQL query and passes the result through createSession into Redis, so frontend ...
Add document sharing endpoints to ImagingController
Adds: shares/by-image, shares/create, shares/update/{id}, shares/delete/{id}, shares/shared-with-me, **************** **************** shares/resolve-alias
Add findActiveSharesForSwMember and countNewSharesForSwMember queries to ImgShareRepository
Add ?next= forward parameter support for post-login redirect
Captures ?next=/path from URL and carries it through both manual login and auto-login flows, appending it to the OTK redirect URL so kamo-internal can redirect ...
Implement document sharing system with share dialog, Shared With Me tab, and shareable links
- Add ShareDocumentDialog with permission-based member/team/dept/jobTitle recipient picker - Wire Share button in DocManager toolbar (MY_DOCS only) - Add Shared...
Add doc sharing security rights (SHARE_DOCS_SEARCH_MEMBERS, SHARE_DOCS_ALIAS_MEMBERS, SHARE_DOCS_SEARCH_TEAM_MEMBERS, SHARE_DOCS_ALIAS_TEAM_MEMBERS)
New RoleRightType entries (IDs 108-111) under ServiceType.DOCS to control member document sharing permissions with search vs alias-only access patterns.
Real BLAKE3 hashing and pre-upload dedup check in doc manager
- Replace BLAKE3 placeholder with real blake3 WASM in fileHashing.ts - Add check-hashes and register-existing API proxy routes - MultiFileUploader now checks se...
Add check-hashes and register-existing endpoints for upload dedup
- POST /check-hashes: client sends hashes before upload, server returns whether file exists - POST /register-existing: creates Img record pointing to existing I...
Add real BLAKE3 hashing, pre-upload dedup check, and org-scoped dedup
- Replace BLAKE3 placeholder with real BouncyCastle Blake3Digest in HashUtils - Add dedupScope column to ImgOrgAssoc (GLOBAL or ORG, default GLOBAL) - Add org-s...
Add thumbnail backfill endpoint for existing converted documents
POST /backfill-thumbnails processes up to 20 converted documents that are missing thumbnails per call, generating per-page PNGs and storing them in MinIO. Call ...
Add async conversion + thumbnail generation for regular document uploads
Previously only template uploads triggered the conversion/thumbnail pipeline. Now regular uploads also convert to PDF and generate per-page thumbnails asynchron...
Redesign Prepare Selected tab with reordering, preview, and bulk download
Replace mock Options panel with functional document preparation UI. Documents are reorderable via drag-and-drop and arrow buttons, with checkboxes for deselecti...
Add bulk download (merged PDF/ZIP) and general-purpose thumbnails
Remove e-signature template guard from thumbnail endpoint so all documents can serve per-page thumbnails. Add isThumbAvail and thumbPageCount to DocumentMetadat...
Include folderName, folderPath, and docTypeName in DocumentMetadata response
Add isConverted, hasDesignVersion, isHidden to DocumentMetadata response
The /api/docs/imaging/list endpoint now returns conversion status from ImgDat and design version status (isSigTemplate) so the frontend can enable/disable the E...
Restructure DocManager tabs, add Edit icon, embed editor and multi-file uploader
Create MultiFileUploader component with per-file conversion pipeline
Fix watermark above-layer z-index, add page right-click menu, add page above/below, improve drag indicator
- ModifierLayer: 'above' pass now uses zIndex 20 so watermarks render on top of fields and annotations - PdfCanvas: right-click context menu with rotate, delete...
Drag-and-drop field placement, floating annotation toolbar, and PDF page spacing
- Replace click-to-place with @dnd-kit drag-and-drop for all signature, identity, and input field tools; drag ghost matches the exact visual appearance of the...
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...
Add layer position option to Watermark modifier (behind / above content)
- WatermarkModifier gains a 'layer' field: 'behind' | 'above' (defaults to 'behind') - ModifierLayer now takes a 'pass' prop ('below' | 'above'): - below pass...
Add Watermark modifier to esign toolbox
- WatermarkModifier type: logoType (full/simple), startPage, endPage, rotation (−180–180), size (10–90% of page width), opacity (2–60%), solidColor toggle, colo...
Extend Label modifier to full 8-position grid with LM/RM rotation
- LabelModifier.position now uses ModifierPosition8 (same 8-position grid as Page Numbers) - LM (Middle Left): each line rendered as a vertical pill with writin...
Add Tools/Modifiers tabs to esign Toolbox with live canvas overlays
- Split Toolbox left sidebar into Tools and Modifiers tabs - Modifiers tab: split list + settings panel (Option B) - Page Numbers modifier: start/end page, 8-...
Show today's changelog count in preview banner with link to /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...
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...
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...
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...
Add Thumbnails step to upload progress indicator, track generating_thumbnails WS stage
Synchronous per-page thumbnail generation during template upload with granular WS progress
- Add PDFBox dependency to pom.xml - After storing converted PDF, render all pages via PDFRenderer and upload each as {id}_thumb_p{n}.png - Publish generating_t...
Add GET **************** endpoint to serve per-page PNG thumbnails
Generate per-page thumbnails for all PDF pages, store as {id}_thumb_p{n}.png
Add thumbPageCount field and findNeedingPageThumbnails query for per-page thumbnail support
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...
Add e-signature template editor with design canvas, signers, and versioning
Complete rewrite of /doc/sign/edit page with tabbed interface (Settings & Signers, Design), PDF.js canvas with draggable field overlay, annotation tools, signer...
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, Fo...
Add e-signature template entities, enums, and repositories
New JPA entities for the e-signature template design system: ESignTemplate, ESignTemplateSigner, ESignTemplateDesignVersion, and ESignTemplateFieldLink with sup...
Like what you see shipping?
All of it arrives in your workspace on its own. Start on the free plan and read this page again in a month.
