Tambahkan opsi posisi lapis ke pemodifikasi Watermark (isi belakang / di atas)
- WatermarkModifier memperoleh sebuah ruas 'layer': 'behind' 14; 'above' (baku ke 'behind') - Modifierplains now takes a 'pass' prop ('below' 124; 'above'): - d...
Tambahkan pemodifikasi Watermark ke esign toolbox
- tipe WatermarkModifier: logoType (full / simple), startPage, endPage, rotasi (reti180-180), ukuran (10-90% dari lebar halaman), opasitas (2-60%), solidColor t...
Panjangkan pemodifikasi Label ke grid 8- posisi penuh dengan rotasi LM / RM
- LabelModifier.position sekarang menggunakan ModifierPosition8 (grid 8- posisi sama dengan Nomor Halaman) - LM (Kiri Tengah): setiap baris dirender sebagai pil...
Tambahkan Tab Perkakas / Pengubah ke esign Kotak Alat dengan overlay kanvas hidup
- Pecah Toolbox batang sisi kiri ke Tab Perkakas dan Pengubah - Tab pengubah: daftar split + panel pengaturan (Opsi B) - Pemodifikasi Nomor Halaman: halaman awa...
Tukar preview- banner- teks ke aliran inline sehingga link changelog duduk di baris yang sama
Merubah posisi thumbnail dan mengembalikan transformasi rotasi
Dua bug di ThumnailCanvas: 1. Ditempatkan kembali 'tinggi:\' ${displalayAspeccy * 100}%\ "(persentase tinggi di ak- elemen terposisi - tidak dapat diandalkan k...
Tampilkan jumlah changelog hari ini dalam panji pratilik dengan link ke / 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, ...
Defer setTotalPages until after PDF dim loop untuk mencegah saturasi pekerja PDF.js
Pada PDF halaman 50, memanggil setTotalPages sebelum getPage () loop mounts dimensi semua 50 ThumnailCanvas komponen segera. Setiap orang kembali ke PDF.js (ser...
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...
Migrasi semua pencitraan rute API dari SecurityService ke ConversionService / DocsService
Upload rute sekarang call ConversionService langsung melalui CONVERSION _ SERVICE _ URL: - POST / api / pencitraan / upload objek / api / converse / imaging / u...
Hapus Pengatur Gambar dan pencitraan kacang - pindah ke Layanan Percakapan dan Layanan Dokter
Upload titik akhir sekarang hidup dalam Layanan Percakapan di / api / converse / imaging / *. Semua manajemen dan download titik akhir sekarang hidup dalam Laya...
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...
Upgrade to Next.js 16.2.3, TypeScript 6.0.2, Node 24, React 19 tipe
- Pin di samping 16.2.3 dan eslint- konfigurasi - sebelah yang cocok - Tipedo upgrade ke 6.0.2, @ tipe / node ke ^ 24 - Ganti framer-motion dengan mosi ^ 12 (mo...
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...
Hapus pembuatan thumbnail ke Layanan Percakapan, hapus ketergantungan PDFBox
generate ANTStoreThumbnails now POST the dikonversi PDF to ConversionService * * * * * * * * * * * * * * * unzips the response, store each thumb _ p {n} .png da...
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...
Tambah langkah Thumbnails untuk mengunggah indikator kemajuan, trek menghasilkan _ thumbnail WS tahap
Sinkronisasi per- halaman pembuatan thumbnail selama upload template dengan kemajuan WS granular
- Tambahkan ketergantungan PDFBox ke pom.xml - Setelah menyimpan PDF terkonversi, membuat semua halaman melalui PDFRenderer dan upload setiap sebagai {id} _ thu...
Mencegah stacking halaman, memperbaiki thumbnail slivers, menambahkan server-sisi thumbnail dengan PDF.js fallback
- Tambahkan flexShrink: 0 ke divs halaman di PdfCanvas sehingga halaman tidak compress dalam kolom flex - Tambahkan flexShrink: 0 ke butir thumbnail dalam Batan...
Tambah GET * * * * * * * * * * * * * * * titik akhir untuk melayani gambar mini PNG halaman
Generate per-page thumbnails for all PDF pages, store as {id}_thumb_p{n}.png
Tambahkan ruas penghitungan thumpageCount dan cari permintaan TeedingPageThumbnail untuk dukungan thumbnail per halaman
Render PDF pemuat, normalisasi skala alami, tak ada gulungan horisontal
- PdfCanvas: ganti IntersectionObserver dengan render- semua halaman. Pendekatan observer- berbasis tidak dapat diandalkan ketika tab desain dimulai dengan tamp...
Upgrade to Next.js 16.2.3, TypeScript 6.0.2, Node 24, React 19 tipe
- Next.js 16.2.3 dengan Turbopack sebagai server default dev - TypeScript 6.0.2 dengan erasableSyntax Hanya dan target ES2022 - @ tipe / bereaksi @ ^ 19 dan @ t...
Hapus konflik DPR Anak dalam rendering thumbnail PDF
Ganti convener.innerHTML + appendChild pola dalam ThumnailCanvas dengan Reakt- dikelola < kanvas > ref. Pendekatan lama dibersihkan Reakt- dimiliki Titik DOM se...
Handle applicablePlands dan applicableBillingCycles sebagai string array
Bidang ini diketik sebagai string [] tetapi memiliki .split (",") memanggil mereka, menyebabkan kegagalan membangun 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...
Revert rute proksi ke OTK auth, hapus pembantu esigProxy yang tidak digunakan
OTK adalah mekanisme auth yang benar - pendekatan header sesi sebelumnya Melewati pola keamanan yang ditetapkan. Semua rute proksi esig sekarang gunakan generat...
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...
Gunakan header sesi langsung daripada OTK untuk rute proksi ESigService
Baca * * * sesi dari Redis dalam Next.js dan lulus orgId / memberId sebagai dipercaya tajuk ke ESigService melalui DNS K8s internal. Menghapus ketergantungan OT...
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 ...
Gunakan titik akhir init ke find-or-create template oleh idId pada load penyunting
Halaman pembuatan melewati imgId dalam URL. Halaman penyuntingan kini memanggil init titik akhir untuk menemukan atau membuat EjigTemplate, kemudian menggunakan...
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...
Scan all shared library repository packages to resolve bean dependencies
ComponentScan picks up shared library services which depend on repos in donotmodify.dao.repos and commerce packages — must scan those too.
Remove .mvn/ copy from Dockerfile — directory does not exist in this project
Tambah penyunting templat e- signature dengan kanvas desain, penanda, dan versi
Lengkap tulis ulang halaman / doc / sign / edit dengan antar muka bertab (Pengaturan & Signers, Desain), kanvas PDF.js dengan overlay field dapat dilepas, alat-...
Seperti apa yang Anda lihat pengiriman?
Semua itu tiba di ruang kerjamu sendiri. Mulailah dengan rencana gratis dan baca halaman ini lagi dalam sebulan.
