Move loginOrgOpt declaration outside try block to fix scope error
The variable was declared inside the first try block but referenced in the second try block for parent branch title resolution.
Add kamo.commerce.enabled=true to k8s configmap
This is the file the CI pipeline actually applies (k8s/configmap.yaml). Required for CommerceService and EngagementLifecycle to load under the new @ConditionalO...
Add KAMO_COMMERCE_ENABLED=true to k8s configmap
Required for CommerceService and EngagementLifecycle to load now that they use @ConditionalOnProperty instead of @ConditionalOnBean.
Enable commerce beans via kamo.commerce.enabled property
CommerceService and EngagementLifecycle now use @ConditionalOnProperty instead of @ConditionalOnBean. Set kamo.commerce.enabled=true so they load in SecuritySer...
Remove duplicate session timeout system from Redis records
Session expiry is now managed solely by the Redis key TTL. The internal createdAt/expiresIn fields stored inside the Redis value have been removed — they formed...
Enable commerce JPA repos for POSController/CommerceService
SecurityService POSController depends on CommerceService which uses engagement, order, intent, etc. repositories. These live in com.kamo.z.shared.commerce.* but...
Resolve Map type inference in POS controllers for CI compilation
- Use explicit Map<String, Object> in ResponseEntity Map.of() calls - Fixes 'incompatible types: inference variable V has incompatible bounds' when mixing DTO...
Update NATS and MinIO configuration to use new VPN IPs
- Update NATS URLs from old Tailscale IPs (100.64.x.x) to Kubernetes service DNS - Update MinIO IPs from old Tailscale IPs to new VPN IPs (10.8.x.x) - Fixes NAT...
Add Buildx setup with insecure registry config to resolve 401 auth errors
Reload market after create/update to initialize lazy collections
- Updated createMarket and updateMarket to reload market using getMarketById - This ensures all lazy collections (marketCustomForms, vendorProducts) are initial...
Correct path handling for mortgage fields and custom form data in lead imports
- Fixed mortgage fields to use 2-part paths (mortgageFields.loanAmount) in setNestedFieldOnCreateRequest - Fixed custom form data to use 3-part paths **********...
Make email/username login case-insensitive
- Normalize input username/email to lowercase before comparison - Use LOWER() function on database column for case-insensitive matching - Fixes issue where user...
Cast getOrDefault to Boolean in formatEmail method
- Fix compilation error: incompatible types Object to boolean - Add explicit Boolean cast for toLowerCase and trim config options
Add detailed logging to LeadVendorController for debugging title field issues
Change LeadMarketDTO IDs to String to prevent JavaScript precision loss
Add detailed logging to getMarketById for debugging market lookup issues
Return proper error message when market not found in getMarketById
Convert String salesType to SaleType enum in LeadMarketController
Fix compilation errors in MediaStreamController
- Fixed missing closing brace in getFeed method else block - Replaced Map.of() with HashMap for compatibility - Fixed stream variable to be effectively final fo...
JobTitleController now uses pre-authenticated session from OTKPreAuthFilter to prevent 401 errors
SecurityRoleController now uses pre-authenticated session from OTKPreAuthFilter to prevent 401 errors
DomainController now uses pre-authenticated session from OTKPreAuthFilter to prevent 401 errors
Query 모든 사용자 avatars는 프록시 대신 실제 성을 얻을
- avatar에서 userId를 얻고, findByUserId를 쿼리합니다. (실제 엔티티티를 반환합니다) - 목록에서 일치 avatar 찾기 및 인스턴스 확인 - 작업에서 인스턴스를 방지하는 프록시 문제를 방지합니다
Hibernate LazyInitializer를 사용하여 프록시에서 실제 엔티티티 클래스를 얻을 수 있습니다
- 액세스 HibernateProxy의 LazyInitializer는 지속적인 클래스를 얻을 - Persistent 클래스가 AvatarPhoto 또는 AvatarAvatar Creator 인 경우 확인 - ***********를 이용한 힘 초기화 - 이것은 프록시가 될 때 avatar...
반사 대신 avatar 유형을 결정하는 직접 던지기를 사용하십시오
- AvatarPhoto에 캐스팅을 시도 먼저 강제 프록시 초기화 - Access getFileExtension()는 캐스트 후 직접 - 사진 캐스트가 실패하면 AvatarAvatar Creator 캐스트로 돌아갑니다. - 유형 탐지를 위한 더 나은 과실 취급
InvocationTargetException을 잡아서 프록시 유형 탐지 향상
- 실제 유형을 결정하기 위해 프록시의 방법을 호출 할 때 ClassCastException 핸들 - getFileExtension을 먼저 시도하십시오 (사진), getStyle (Avatar Creator) - Hibernate 프록시 유형 탐지를 위한 더 나은 오류 처리
Avatar 유형 탐지를 위한 Hibernate 프록시 취급을 개량하십시오
- getFileExtension 메소드의 클래스 계층 및 인터페이스 검색 - 인스턴스가 실패할 때 AvatarPhoto vs AvatarAvatar Creator를 감지하는 반사 - 클래스 이름 확인에 fallback 추가 - Avatar Creator avatars로 사진 avata...
저장소에서 Reload avatar는 Hibernate 프록시 인스턴스 문제를 해결하기 위해
- Avatar entities는 관계에서로드 할 수 있습니다 Hibernate 프록시는 인스턴스 확인을 실패 - repository에서 Reload avatar는 실제 엔티티티 유형을 얻기 위해 (AvatarPhoto 또는 AvatarAvatar Creator) - reload가 실패...
RecordState 대신 user.getAvatar()를 검사하여 활성 avatar를 결정합니다
- 이제 avatar가 user.getAvatar()에 비교하여 활성화된 마크를 반환합니다. - API 응답의 isActive 플래그는 실제 활성 avatar를 반영합니다. - avatar 변경이 제대로 지속되지 않은 문제 수정
Handle ISO date format and improve avatarId type parsing
- Added support for ISO date format (YYYY-MM-DD) in addition to M/d/yyyy - Improved avatarId parsing to handle Number types (Double, BigDecimal, etc.) from JSON...
Add better error handling and logging for user/member save operations
- Added try-catch around user save operation with detailed error logging - Added try-catch around member save operation with detailed error logging - Improved d...
Improve avatarId parsing to handle string, integer, and long types
- Added support for parsing avatarId from String type - Better error handling for invalid avatarId formats - Added logging for avatar assignment and errors
Add detailed logging to updateMemberProfile for debugging
- Added logging at start of updateMemberProfile method - Added logging before and after saving user and member - Improved error response to include error detail...
Add support for updating user name fields and dateOfBirth in member profile
- Added UserRepository to MemberController - Updated updateMemberProfile to handle namePrefix, nameFirst, nameMiddle, nameLast, nameSuffix, nameFirstAKA, nameLa...
Use correct bucket and object path structure for MinIO uploads
- Change bucket name from domain-based to 'public' bucket - Include domain path (e.g., kamocrm-com) as part of object name, not bucket name - Fix object path st...
Properly handle MinIO upload failures for avatars
- Remove silent exception swallowing in Avatar Creator avatar creation - Add proper error handling and rollback for failed uploads - Delete database record if f...
Handle missing fileHash column gracefully
- Add try-catch around fileHash access to handle missing database column - Fall back to ID-based file naming if fileHash column doesn't exist yet - Allows code ...