Tools/Modifiers 탭을 라이브 캔버스 오버레이로 할당합니다
- Split Toolbox는 도구 및 Modifiers 탭으로 사이드바를 왼쪽 - Modifiers 탭: 분할 목록 + 설정 패널 (옵션 B) - Page Numbers modifier: start/end 페이지, 8 위치 그리드 (TL/TM/TR/LM/RM/BL/BM/BR), 형식 ...
Correct 자전된 thumbnail 포지셔닝 및 회복 교체 변환
ThumbnailCanvas의 두 가지 버그 : 1. `height: \`${displayAspect * 100}%\``(ab-의 비율 높이 위치 요소 - 블록 높이가 제공 될 때 신뢰할 수없는 `aspectRatio: String(baseAspect)`를 가진 padding-top ...
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, ...
PDF를 방지하기 위해 PDF dim 루프가 끝날 때까지 Defer setTotalPages
50 페이지 PDF에서 setTotalPages를 호출하십시오. getPage() 치수 루프 마운트 즉시 50 ThumbnailCanvas 구성 요소. 각은 PDF.js로 돌아갑니다 (서버 thumbnails는 템플릿에 생성되지 않습니다), 공유에서 50 동시 작업을 할당 PDF.js ...
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...
SecurityService에서 ConversionService/DocsService로 모든 이미징 API 경로 마이그레이션
지금 변환 경로를 업로드 CONVERSION SERVICE URL을 통해 직접 호출: - POST /api/imaging/upload → /api/conversion/imaging/upload - POST /api/imaging/templates/upload → *********** ...
ImagingController 및 Bean/imaging 제거 — ConversionService 및 DocsService로 이동
Upload endpoints now live 에 ConversionService 에 /api/conversion/imaging/*. 모든 관리 및 다운로드 엔드포인트 지금 DocsService에서 /api/docs/imaging/*.
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...
Next.js 16.2.3, TypeScript 6.0.2, Node 24, React 19 유형으로 업그레이드
- 16.2.3 및 eslint-config-next와 같은 핀 - 정확한 6.0.2, @types/node를 ^24로 업그레이드 - 모션 ^12 (motion/react imports)와 Framer-motion 교체 - Node 24.14.1에 핀으로 .nvmrc 추가 - tscon...
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...
Delegate thumbnail 세대를 변환 서비스, PDFBox 의존성을 제거
generateAndStoreThumbnails 이제 변환 PDF 변환 서비스 *************** 응답을 압축, 각 상점 thumb p{n}.png in MinIO, 페이지 WS 진행 상황을 게시합니다. PDFBox 제거.
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...
Granular WS 진행으로 템플릿 업로드시 동기화 per-page thumbnail 발생
- pom.xml에 PDFBox 의존성 추가 - 변환 된 PDF를 저장 한 후, PDFRenderer를 통해 모든 페이지를 렌더링하고 {id} thumb p{n}.png로 업로드하십시오. - "Generated thumbnail N of M" 라벨이있는 페이지 (72-95% 범위) 당 ...
Thumbnail slivers를 겹쳐 쌓이는 페이지를 방지하고, PDF.js fallback를 가진 서버 측 엄밀을 추가하십시오
- flexShrink를 추가하십시오: PdfCanvas에 있는 0개에서 페이지 divs 그래서 페이지는 코드 란에서 압축하지 않습니다 - flexShrink를 추가하십시오: 같은 이유를 위한 PageThumbnailSidebar에 있는 엄밀한 품목에 0 - ThumbnailCanvas...
Generate per-page thumbnails for all PDF pages, store as {id}_thumb_p{n}.png
ThumbPageCount 필드 및 findNeedingPageThumbnails 쿼리에 대한 페이지 thumbnail 지원
Eager PDF 렌더링, 자연 스케일 정상화, 수평 스크롤 없음
- PdfCanvas: eager 렌더링 모든 페이지와 IntersectionObserver를 대체합니다. 관찰자 기반 접근은 디자인 탭이 시작될 때 신뢰할 수 없었습니다. display:none - 브라우저는 재화 교차 이벤트를 믿을 수 없습니다. 디스플레이의 조상이 전환 할 때 : ...
Next.js 16.2.3, TypeScript 6.0.2, Node 24, React 19 유형으로 업그레이드
- Next.js 16.2.3 과 Turbopack 과 기본적으로 dev 서버 - TypeScript 6.0.2 과 erasableSyntaxOnly 과 ES2022 대상 - @types/react@^19와 @types/react-dom@^19 (제 19 유형) - Node 24 호환성...
삭제 제거아이 DOM 충돌 PDF thumbnail 렌더링
Container.innerHTML + appendChild 패턴을 ThumbnailCanvas로 교체하십시오. React-managed <canvas> ref로. 오래된 접근은 React-owned를 맑게 했습니다. DOM 노드가 직접 시도할 때 React reconciliation이...
핸들 적용 가능한PlanIds 및 적용 가능한BillingCycles 문자열 배열
이 필드는 string[]로 입력되지만 .split(",")가 호출되었습니다. 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...
OTK auth에 프록시 경로를 재생, 사용되지 않은 esigProxy 헬퍼를 제거
OTK는 auth 메커니즘입니다 - 이전 세션 헤더 접근 설치된 보안 패턴을 우회. 이제 모든 esig 프록시 루트 사용 apiProxy.ts에서 generateOTK를 다시 생성합니다.
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...
ESigService 프록시 경로 대신 OTK 대신 직접 세션 헤더 사용
Read *** Next.js에서 Redis 세션과 orgId/memberId를 신뢰로 전달하십시오. 내부 K8s DNS를 통해 ESigService에 대한 헤더. OTK 의존성을 제거하십시오.
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 ...
Init endpoint를 사용하여 편집기로드에서 imgId에 의해 찾기 또는 생성 템플릿을 만듭니다
Create page는 URL에서 imgId를 전달합니다. 편집 페이지는 이제 호출 init endpoint를 찾아서 ESignTemplate를 만들고, 다음을 사용합니다 디자인 운영 및 버전 역사를 위한 UUID를 반환합니다.
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
E-signature 템플릿 편집기를 디자인 캔버스, Signers 및 버전으로 추가하십시오
탭 인터페이스(Settings & Signers)로 /doc/sign/edit 페이지를 다시 작성합니다. 디자인), 드래그 가능 필드 오버레이가있는 PDF.js 캔버스, 주석 도구, signer 관리, 페이지 thumbnail 사이드바, 버전 역사, 및 undo/redo. 지원하다 Zu...
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...
E-signature 템플릿 entities, enums 및 저장소 추가
E-signature 템플릿 디자인 시스템의 새로운 JPA entities: ESignTemplate, ESignTemplateSigner, ESignTemplateDesignVersion 및 ETemplateFieldLink 지원 enums와 봄 자료 저장소로.
접근 수준 API를 위한 backend와 frontend 사이에서 지도하는 정확한 분야 이름
Map backend securityLevelId→accessLevel, isOrganizationOwner→isOwner, API 경로의 memberType→isTeamMember. MANAGE MEMBER SECURITY 대신 EDIT MEMBER ACCESS LEVEL을 사용할 수...