정확한 적용 모델 소스 및 API에서 규정 준수
대신 BRANCH TYPE 대 MASTER에 대한 해결자 해상도 사용 BranchTypeID 혼자. 적용 모델에 FALSE/TRUE 준수 리터럴을 정상화 JSON 설정.
테마 자산에 구성 및 캐시 헤더의 ThemeRevision
Emit themeRevision (epoch ms) 각 쓰기에 config.json에; 설정 캐시 제어 config, globals.css 및 사이트. webmanifest uploads 그래서 가장자리 캐시가 다시 유효하다.
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를 일치시킵니다.
Org 폴더를 닦지 않고 기본 템플릿
전체 조항 더 이상 복사하기 전에 org 접두사 삭제. 본문 바로가기 public/default overwrites 일치하는 열쇠만; org의 밑에 다른 목표 폴더가 남아 있습니다. 기본 템플릿 소스는 kamocrm-com에서 기본값으로 변경되었습니다.
엄격한 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 프록시는 콘텐츠 협상 실패를 유발할 수 없습니다.
모델 및 creatable 지점 유형에 ATF 준수 정책 노출
- OrganizationController는 연령 증명 전에 모델 시행을 적용합니다. - SecurityModelController 및 MasterModelController 패스 정책 필드 - BranchTypeController는 /branch-types/creatable에 있는 ...
Kamo-shared-library 업데이트에 대한 재건 (remove OrganizationType, add isTopLevel)
회원 종료에 대한 목록 또는 레거시 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 거래는 낙태 ...
RoleRightsSyncService를 모든 부팅에 완전히 자기 치유
RoleRightType을 추가하거나 제거하려면 다시 실행해야 합니다. KamoInitializerService. syncAll()는 이제 3단계를 실행합니다. 1. 치유 제약 - 모든 CHECK 제약을 드롭 테이블과 두 개의 upsert-required 독특한 제약이 존재한다. Hi...
RoleRightsSyncService를 추출하고 sync-rights endpoint 추가
- RoleRightsSyncService: OrgRole 모두에 대한 역할 권한 동기화 논리를 중앙화 그리고 *********** 테이블; 시작 및 주문 - DataLoader: 시작에 RoleRightsSyncService.syncAll()에 위임 - SecurityRoleContr...
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...
Enable Hibernate SQL 로깅을 통해 회원 쿼리 반환 0
Temporarily 활성화 org.hibernate.SQL=DEBUG는 SQL이 TYPE()을 볼 수 있습니다. JPQL 쿼리는 회원 가입자 엔드포인트를 생성합니다.
GetMembersAndSubscribers endpoint에 진단 로깅 추가
Logs orgId, 쿼리 결과 수, 그리고 per-member isActive 상태 도움이 왜 회원 탭이 빈 리스트를 보여줍니다.
