변경 로그
무슨 일이야?
플랫폼에 대한 모든 개선 사항, 그것이 선적.
· SecurityService
RoleRightsSyncService를 추출하고 sync-rights endpoint 추가
- RoleRightsSyncService: OrgRole 모두에 대한 역할 권한 동기화 논리를 중앙화 그리고 *********** 테이블; 시작 및 주문 - DataLoader: 시작에 RoleRightsSyncService.syncAll()에 위임 - SecurityRoleController: POST /sync-rights는 재시작하지 않고 동기화합니다
· kamo-shared-library
역할 권한 DTOs enum 구동 및 보안 모델 권한 동기화 추가
- SecurityRoleDTO.fromOrgRole(): 모든 롤리전을 삽입 DB를 가진 유형 값 viewup으로 설정 - 새로운 권리는 NOT SPECIFIED로 자동으로 나타납니다. -********** 동일한 enum 구동 방식 보안 모델의 기본 역할 - OrgRoleRight.type: @Enumerated(EnumType.ORDINAL) 표기 - *********** insertIfAbsent native 추가하기 시작 및 주문 동기화에 대한 쿼리
· kamo-internal
TicketId deduplication을 가진 다수 지원 표 창을 허용하십시오
· kamo-internal
회원 유형 칩을 추가하고 회원 상태 카드에 홍보 / 데모를 추가, 세션 타임 아웃 필드를 제거
· SecurityService
PATCH /membership-type endpoint 회원 프로모션 / 모션 추가
· kamo-shared-library
Native updateMemberType을 추가하고,TeamMemberRow 쿼리를 MemberRepository에 추가하십시오
· kamo-shared-library
ALLOW PROMOTING MEMBERS 우측 추가 (id 132)
· kamo-internal
PLANNING에서 POS 및 ESIG를 COMPLETED 단계로 홍보
· kamo-shared-library
PLANNING에서 POS 및 ESIG를 COMPLETED 단계로 홍보
· kamo-internal
표시 도시 및 하위 구분 티켓 방문자 지 행
"City, Region, Country (IP)"로 표시 - null은 필터링되어 있으므로 국가 데이터만 사용할 때 degrades gracefully
· MediaService
Expose 도시와 subdivision 에 방문자 geo lookup
- 도시 및 하위 영역으로 GeoResult 기록 확장 - GeoLookupService (IP-level)를 사용하는 Switch SupportTicketService.toDTO() country-only geoLocationRepository 대신, 그래서 도시 및 subdivision은 일치 GeoLite 구획에서 대중화됩니다
· kamo-shared-library
방문객 추가도시 및 방문자지원하기TicketDTO
· kamo-internal
탭 URL params를 /account 페이지에 딥 링크 및 재생 지속
탭 상태는 이제 동기화됩니다 *********** 그래서 링크 특정 탭 작업을 수행하고 올바른 탭은 페이지를 새로 고침에 선택합니다.
· kamo-internal
티켓 헤더에서 방문자 플래그, 국가 및 IP 표시
- supportTicketDTO 유형에 VisitorCountryCode, visitorsCountryName 추가 - flag emoji + country name + IP address row in TicketHeader for public 채팅 티켓
· kamo-shared-library
SupportTicketDTO에 방문자 geo 필드를 추가
· MediaService
고객 플래그 및 지원 티켓 헤더에 위치 표시
- PublicChatVisitorRepository 및 GeoLiteLocationRepository를 SupportTicketService에 주사하십시오 - 방문자Ip주소, 방문자CountryCode, 방문자CountryName in toDTO() geo lookup을 통해 - GeoLookupService는 이미 세션 생성에 Visitor.countryCode를 대체합니다
· kamo-marketing
LiveSupportPanel에서 STOMP/SockJS를 가진 기본 WebSocket을 대체하십시오
- @stomp/stompjs 및 sockjs 클라이언트 패키지 추가 - 대신 SockJS+STOMP를 통해 media.{domain}/ws/public-chat에 연결하십시오 api.{domain}에 대한 raw WebSocket은 잘못된 호스트와 잘못된 프로토콜이었다. - STOMP 연결 후, /topic/chat/session/{guid}에 가입하고 /app/chat/subscribe를 통한 backend를 NATS JetStream 릴레이 활성화 - 에이전트 응답 이제 흐름: MediaController -> NATS -> 채팅WebSocketController -> STOMP 중개인 -> 실시간 LiveSupportPanel
· MediaService
STOMP/NATS를 통해 end-to-end 공개 채팅 실시간 수정
- PublicChatWebSocketInterceptor의 internalAuth 요구 사항 제거 그래서 방문자는 세션 토큰 만 사용하여 직접 연결할 수 있습니다. - ChatMessageDto의 senderName로 방문자 displayName를 포함 TicketChat에서 메시징하는 사람들 - NATS 구독을 통한 STOMP 메시지의 senderName 포함 그래서 두 에이전트와 방문자는 실시간 메시지에 sender 이름을 참조
· kamo-shared-library
Support chatMessageDto에 senderName 추가하기
· kamo-internal
NEW TICKET NATS 알림 자동 오픈 지원 티켓 팝업
새로운 지원 티켓이 도착했을 때, 이제는 NEW TICKET를 보내 PENDING COUNT 외에도 STOMP 메시지. 지원CountContext 툴을 파견하여 핸들링:티켓 채팅 창 팝업 /support로 이동해야 하는 대리인 없이 자동적으로.
· kamo-marketing
애니메이션 영웅, 타임라인, CTA로 /contact-confirmed 페이지를 추가
연락처 양식에 인라인 성공 메시지 대체 전용 프리미엄 확인 페이지: 애니메이션 SVG 체크 마크 입자 파열, 'What Happens 다음 3 단계 타임 라인, 그리고 '당신은 기다립니다'CTA 카드. 모든 23 로컬 파일 새로운 contactConfirmed i18n 열쇠로 새롭게 하십시오.
· kamo-internal
Org 설정 섹션 추가 (timezone, 연령 req, 콘텐츠 플래그, 설명, 별명); 미리보기 / addDomain 버튼을 제거
· kamo-internal
Redesign LabelManager - 인라인 섹션 편집, 깨진 저장, 읽기 전용 기본
Per-section read/edit 패턴을 가진 LabelManager.tsx를 바꿔 씁니다. 부서지는 저장 버튼(validateForm blocked save because contact/company field was never populated API에서). 글로벌 양식 제출, validateForm, 오류 상태, previewMode 및 scattered 저장 단추. 각 단면도는 지금 산에 API에서 자료를 적재하고, 청결한 보여줍니다 기본적으로 읽기 전용 행은 인라인 Edit/Save/Cancel 흐름을 가지고 있습니다. 모든 7개의 단면도 (회사 정보, 브랜드, 배경 이미지, 연락처, 사용자 정의 라벨, 소셜 링크) 독립적으로 크로스 필드 검증 차단 없이 저장하십시오.
· EmailService
Cross-tenant 이메일 주소를 차단하는 KamoMail 도메인 validator 추가
서비스 레이어에서 확인하는 KamoMailDomainValidator 구성품을 소개합니다. 제출 된 이메일 도메인이 org의 검증 된 기본 도메인과 일치 여부 KamoMail이 활성 공급자입니다. MailboxProvisioningService에 주사, AliasService 및 SharedMailboxService - 어떤 조항이 발생하기 전에 호출. 도메인이 일치하지 않는 경우 403 FORBIDDEN을 반환합니다.
· kamo-internal
Enforce KamoMail 도메인은 mailbox, alias 및 공유 mailbox 생성에 제한합니다
KamoMail이 이메일 공급자 인 경우, 회원은 메일 박스 만 만들 수 있습니다. aliases 및 org의 검증된 기본 도메인을 사용하여 공유 메일 박스. 3개의 독립적인 층에 보강: frontend UI (prefix+locked 도메인 도메인이 없을 때 사용 가능한 상태 입력, Next.js 프록시 (parallel 공급자 + 보안 도메인 검사 전에 전달), 및 Java 서비스 층.
· kamo-marketing
동적 로고 확장을위한 config.json에서 LogoFullExt 읽기
· kamo-register
Config.json에서 LogoFullExt를 읽으십시오; favicon subdirectory에 site.webmanifest 경로 수정
· kamo-login
동적 로고 확장을위한 config.json에서 LogoFullExt 읽기
· kamo-internal
Org 테마 프로비저닝 - WebSocket Hook, 프로비저닝 패널, LabelManager 배선, DNS 트리거, bg 크기, ThemeConfig 컨텍스트
· MediaService
Relay NATS theme provision progress to STOMP WebSocket

당신의 우주는 기다리고 있습니다.
몇 분 안에 무료로 시작하세요. 준비가 되면 언제든지 제품을 추가할 수 있습니다.
영원히 무료 - 신용 카드 필요 없음