정확한 적용 모델 소스 및 API에서 규정 준수
대신 BRANCH TYPE 대 MASTER에 대한 해결자 해상도 사용 BranchTypeID 혼자. 적용 모델에 FALSE/TRUE 준수 리터럴을 정상화 JSON 설정.
Cleanup 전에 globals.css를 쓰십시오; cleanup async를 실행하십시오
Reorder 프로비저닝 그래서 writeConfigFiles (컬러, 구성, 표시) 실행 배경 파일 정리 전에. 신선한 색상의 DB에서 Reload org. 완료 후 CompletableFuture에서 cleanupExtraBackgrounds를 실행하십시오. 느리거나 붙어있는 Mi...
MinIO Globals.css에 대한 org 색상 적용
DB의 재로드 조직은 동기화 규정의 시작 부분에 writeConfigFiles는 PATCH /colors (컨트롤러 스냅샷에 의해 저장된 색상을 볼 수 있습니다. stale일 수 있었습니다. Null-safe 이차 팔레트; hex 교체 일치 MinIO CSS의 3- 및 6 자리 값; r...
도메인 API의 isDefault로 DNS 인증 도메인 표시
*.kamocrm.com subdomains만 표시되어 있으므로 orgs 확인 된 사용자 정의 apex 도메인 (예 : kamocrm.com) 항상 defaultDomain=null과 사서함 만들기에서 차단되었습니다.
사용자가 org 소유자 TeamMember 인 경우 브랜드 허용
테마 제공 및 로고 / 배경 만 확인 된 조직. 이름 * FK; app UI는 TeamMember.isOrganizationOwner로 조직 소유자를 대우합니다, 다른 것. 둘 다를 가진 Align 허가는, 새로운 형태를 올려서 좋습니다 프로퍼런스.
Avatar 행을 삭제하기 전에 사용자 및 회원 FKs를 취소
Avatar를 삭제하면 여전히 활성 사용자 avatar 또는 회원 별 override가되었을 때 DB constraint로 실패했습니다. 이는 사용자가 stale 레코드를 제거 할 수 없었던 끊긴 MinIO blobs를 일치시킵니다.
엄격한 DNS 검증 없이 테마 폴더 호스트를 해결
필요한 테마 제공은 모든 도메인에 대해 인증, 그래서 orgs 만 사용 기본 kamocrm.com subdomain 결코 동기화 작업을 시작하지 (400, STOMP). 어떤 활성 도메인으로 돌아 가기, 다음 {alias}.kamocrm.com.
Core NATS의 테마 제공 진행
JetStream CHAT MESSAGES 스트림은 채팅을 위해 구성된다.> 단지, 그래서 게시 to **************** 스트림 검증 및 UI 보기 계속. Connection.publish를 사용하여 SupportNotificationService.
Set EmbRecordState.isActive on wizard create-org so orgs.is active is not null
CreateOrganization에 create-org body 를 분산 법인 JsonIdentity를 방지하기 위해 Payload 정보 실패
@RequestBody없이 Parse create-org JSON
Spring Return Unsupported Media Type when Content-Type이 누락되거나 @RequestBody에 허용됩니다. 바이트를 읽고 대신 ObjectMapper를 사용하십시오. APIService/Next 프록시는 콘텐츠 협상 실패를 유발할 수 없습니다.
회원 종료에 대한 목록 또는 레거시 CSV로 세션 권한 읽기
KSessionService and SecurityRoleController 매장 권리 목록<String> RoleRightType 이름. MemberSecurityController는 문자열로 던져서 분할합니다. comma, ClassCast회원 유형 및 회원 액세스 PATCH에 대한...
Verify-dns는 모든 KnownAliases 상표를 검사합니다; 선택에서 deprecated app/media를 건너십시오
DDL 및 harden 멀티 포드 경주를 방지
@Transactional syncAll() 내부 DDL을 넣는다. 알터 때 TABLE ADD CONSTRAINT는 기존의 제약 (일반적인 경우 후 첫 번째 부팅, 또는 멀티 포드 경주에서 파를 잃는), runIdempotent는 Java를 삼키 예외 — 하지만 주변 DB 거래는 낙태 ...
AppAvailability의 getOrganizationByIdWithFeatures 사용 회사연혁
/api/security/leads 및 모든 것에 LazyInitializationException을 해결합니다. 다른 CRM/POS-gated 경로. org.getFeatures()라는 인터셉터 거래 종료 후; 새로운 방법 eagerly fetches 기능 읽기 전용 거래 안쪽에 단일...
Resolve 회원 탭은 Hibernate TYPE() Base-class 문제로 비어 있는 것
Hibernate's TYPE(m) = :type JPQL 필터가 0 결과를 반환합니다. 매개 변수는 기본 회원 클래스 (JOINED 상속)입니다. 이 영향을 회원 구독 종료. findByOrganizationId() +로 교체 exampleof TeamMember filter in J...
Allow god-mode users to provision ownerless orgs; prefer FQDNs in domain resolution
Add @Transactional to provision-theme for lazy domain loading; remove hardcoded domain from provision request
Add PATCH /org/{id}/colors endpoint to safely update only color palette fields
Use memberID session key and include creatorType in creatable branch-types response
Use correct session key 'memberID' instead of 'MID'
KSessionService stores member ID under key 'memberID' but both **************** and OrganizationController were reading session.get("MID") which always returned...
Exclude master model from models list; add debug log to child-org creation check
SecurityModelController now filters out the org's master model (identified by org.getMasterModelID()) from the /api/security/models response — it is managed exc...
Read session rights as List<String> names, not CSV of integer IDs
Session rights are stored as a JSON array of RoleRightType name strings. Both **************** and OrganizationController were casting them to String (causing C...
Add org-scoping, password length validation, and code quality improvements to PasswordChangeController
Add @Transactional to DataLoader.run to fix LazyInitializationException on startup
Use JPA entity traversal for grant-all detection (covers dept/job roles)
Filter null rights in buildAppliedRightsWithSources; upgrade shared-lib to 1.5.0
Use core NATS pub/sub for email-verified SSE fan-out
Replaces in-memory ConcurrentHashMap broadcast with NATS core pub/sub so all pods receive verification events regardless of which pod handled the token. Falls b...
Use avatarType field + JDBC for photo URL generation to handle Hibernate proxies
**************** previously used instanceof AvatarPhoto to determine avatar type and cast to read fileExtension. When Hibernate returns a base-class proxy (e.g....
Populate all EMAIL_VERIFICATION template variables
Was sending only {token, code} — template also needs orgName, firstName, verifyLink, and expiryMinutes. Load org and user to build the full vars map, and resolv...
Use subdomain-aware SQL to match findByDomain JPQL logic
Org domain lookup in resendVerification was doing an exact-match query that failed for subdomains stored as child records (e.g. 'api' with parent 'kamocrm.com')...
Correct EmailService URL port in configmap (4203 -> 80)
EmailService K8s service exposes port 80, not 4203. Verification emails were timing out on every registration attempt.
Bypass JPA org lookup to avoid Hibernate cascade flush error
**************** triggers **************** which causes a Hibernate auto-flush. That flush fails because Organization.features was previously replaced with a pl...
Use getReferenceById to avoid cascade orphanRemoval flush error on registration
Loading Organization via findById inside @Transactional caused Hibernate to detect the features collection was de-referenced during auto-flush, throwing JpaSyst...