자료 및 소셜 타임라인은 권리, 소유권이 아닙니다
MANAGE MATERIALS and MANAGE SOCIAL MEDIA 감사 및 모든 것에 시행 사이트 .tsx 파일이었다. 그들 뒤에 29 종료점은 소유권과 권리를 확인합니다: 6 재료 컨트롤러 및 SocialTimelineController. 읽기 VIEW MATERIALS 또는...
회의 알림은 알림이며, 자체의 팝업이 아닙니다
/topic/meet/reminder/{memberId}에 스포크 이벤트를 게재했습니다. 해당 이용 후기에 달린 코멘트가 없습니다. 그 팝업 전체 알림이었다 : 알림 벨 결코 이동하지, 카드가 없었다 작성 및 6 초를 놓친 회원은 아무것도 없었습니다. 돌아가기. 또한 회원의 무트, 조용...
티켓 목록은 부서진 지표를 생존
읽지 않은 메시지보기 threw를 읽었고 전체 티켓 목록을 가져 왔습니다. - 페이지가 돌아 왔습니다. 비어 있는 페이지보다 훨씬 더 악화됩니다. 그것은 지금 감시하고, ERROR에서 감시: 이전 감시는 경고와에 기록했습니다 silence는 릴리스에 대한 "nothing 읽지 않은"로 ...
티켓 목록은 동일한 항목에 배지 수를 표시
countForMember는 개인적으로 구축 된 세트를 크기로, 그래서 목록은 요청할 수있는 방법이 없었다 어떤 티켓이 그것과 대신에 대 한 — 그것은 읽지 않은 채팅을 덧붙였다 메시지. 그들은 다른 질문입니다: 배지는 주로 일 계산 아무도 픽업, 목록은 읽지 않은 무언가와 대화를 표시...
티켓은 결코 그것을 올리는 회원에 의해 응답 할 수 없습니다
지원 대화에는 두 개의 측면이 있습니다. 누군가 묻고 누군가 대답 — 그들은 다른 사람들 이었노라 회원 보유 ACCEPT SUPPORT TICKETS in the org they asked for help from the perfect routing만큼 일반 대리인은, 그래서 둥근 로빈...
Endpoint에 아웃바운드 첨부 파일을 보내 유형에 속합니다
모든 소셜 첨부는 어댑터의 sendImage를 통해 갔다. Telegram은 /sendPhoto입니다. PDF 또는 zip이 게시되었습니다. 공급자 및 거부는 HTTP 응답이 말한 후 긴 도착 에이전트 그들의 메시지가 갔다 — 그래서 영수증은 고객이 등장 대리인의 자신의 창에서 결코 다...
객체 저장 비밀 ConfigMap 더 이상 운반하지
MinIO 키가 ConfigMap에서 minio-app-credentials로 이전되었습니다. secret, 하지만 env그것을 공급하는 것은 단지 살에 적용되었다 배포 — 절대 여기에. 다음 CI는 이 표현을 넓혀줍니다. ConfigMap을 기본과 환경 없이 남겨두면 그것을 만족시키고...
Config default로 공유된 자격 발송
플랫폼의 공유 암호는 DB PASSWORD에 대한 fallback으로 구워졌습니다. MINIO ROOT PASSWORD, 그래서 그것은이 저장소에 살았고 내장 된 이미지뿐만 아니라 클러스터에서. 생산은 DB 기본값을 사용하지 않는 — *** 공급 envFrom를 통해 DB PASSWO...
손으로 할당하면 PRE TICKET 상태를 사용하지 않아야 합니다
assignToAgent와 reassignAgent 세트 ASSIGNED unconditionally, 조용히 만든 나중에 변환 할 수없는 채팅 요청 — ConvertPreTicket accepts 아무것도하지만 PRE TICKET, 그래서 손을 제거하여 누군가에 라이브 채팅을 손 단지...
티켓이 손에 넣을 수 있음
assignToAgent 및 reassignAgent는 회원에게 해결 된 ID 만 확인했습니다. 할당은 티켓의 채팅 세션에 회원이 추가되므로 다른 곳에서 id를 추가합니다. 조직은 고객 대화를 주지 않을 것입니다. 보고, 오프 보드 회원은 라이브 작업을 담당 할 수 있습니다. 둘 다 ...
Auto Assignment는 티켓을 제공하지 않습니다
자동 할당 페이지 모든 사용 가능한 지원 에이전트 및 첫 번째 사람에 간다 이름 * 그것은 "일부는 적어도 버스 에이전트를 선택 온라인, 이는 다른 기능입니다 완전히 — 그리고 각자 패배 하나 여기에, 지정된 티켓이 청구 가능한 큐를 남긴 때문에 아무도 제안되지 않습니다. 그것과 작업은...
위젯 채팅에 대한 주제 전략을 실행
웹 위젯에서 열린 채팅은 하나의 파일 내부로 작업의 동일한 단위입니다 앱, 그러나이 경로는 주제의 할당 전략을 완전히 건너 뛸 수 있습니다 — the only 그것을 시도했다는 것은 차용인의 자신의 대출 임원이었다. 그래서 하나의 주제 방문자가 시작된 곳에 따라 두 가지 방법을 행동했습...
활동 프레임의 세션 유형을 너무 넣어
읽지 않은/ACTIVITY 방송은 모든 세션 유형에 게시되며 수행되지 않습니다. 주의사항 채팅 목록, 아무것도하지 않고, unseen을 입력 일반 채팅으로 세션 - 그래서 지원 티켓의 첫 번째 활동은 채팅으로 도착 row: false sub-tab, the ticket's system-...
메시지가 도착한 클라이언트에게 말하십시오
미디어 세션의 모든 구성원은 들어오는 메시지 알림을받습니다. 지원 티켓을 지정하면 그 티켓의 세션의 구성원이 됩니다. 더 보기 alert no session type, 그래서 클라이언트는 지원을 말할 수 없다 직접 메시지에서 티켓을 열고 일반 채팅 창을 모두 엽니 다 — 창 티켓의 통제...
라이브 채팅은 팝업을 통해 주장, 결코 할당되지
Round-robin을 통해 채팅 요청을 추적하는 것은 잘못된 모델이고 그것은 깨어 났습니다. 그것을 해결하는 것이 의미. 지정된 티켓은 청구 가능한 큐를 남깁니다. (SupportQueService는 할당된Agent IS NULL이 필요합니다), 그래서 채팅 할당 허용 팝업은 모든 사...
지정 실패를 중지하는 티켓을 파괴
새로운 티켓 랜을 생성 거래 안쪽에 추적, 그래서 아무것도 그것은 히트 그와 함께 티켓을 압연하고 도움이 필요한 회원은 " 실패 어디에서든지 저장하지 않는 티켓"을 만듭니다. 두 가지는 그것을 명중, 둘 다 latent 채팅 요청이 코드에 도달 시작 때까지 - 라운드 로빈은 효과적으로 ...
주제의 할당 전략을 통해 채팅 요청 경로
지원 채팅 요청은 PRE TICKET로 제출되며 createTicket Skipped 그들에 대한 할당. 감시는 web-chat 위젯을 위해 기록되었습니다, 사전 티켓은 결코 말할 수없는 익명의 방문자입니다. — but an in-app 채팅 요청은 이미 주제를 선택 한 알려진 org의...
공유 중지 *** idle 사용자를위한 TTL
이 서비스는 KSessionService의 자체 사본을 유지하고 TTL을 slid합니다. 모든 읽기. Gating SecurityService 혼자 따라서 고정 아무것도: kamo-internal 포인트 라이브 채팅, 존재 및 지원 표면이 서비스 및 새로 고침 키보드에서 아무도로 실행을...
한 시간 동안 그것을 잡고 대신 분에 죽은 업로드 실패
connectionUploadTimeout는 읽기 사이의 tolerated SILENCE이며 예산이 없습니다. 전체 이동. 1 시간에서 'match Traefik'로 설정하면 두 개의 혼동됩니다. 업로드는 500 MB의 2 GB 파일과 sat 거기에서 중지, 요청 스레드를 들고 Half...
Tomcat의 60s 연결 타임 아웃이 긴 업로드를 죽이는 중지
2 GiB 채팅 첨부 파일이 거의 4 분 후에 실패했습니다. MultipartException은 bare SocketTimeoutException을 감싸고 회원이 되었습니다. 'Internal Server Error'에 대해서 Tomcat의 disableUploadTimeout def...
Catch OptimisticLockException, 유형 40001 실제로 포장
라운드 3 검토 수정: hibernate-core의 **************** 테스트 LockAcquisitionException (무엇 SQLState 40001 로 변환) 에 대하여 순서에 있는 특정한 유형, 어떤 일반 LockAcquisitionException satisfie...
예외 유형의 충돌을 실제로 던져
라운드 2 검토 수정 : 문 레벨 40001 (일반적인 경우, 감지 내부 executeUpdate() 오히려 커밋에서) 표면 ****** ***********************************************************************************...
반환 409 모든 손실 청구 레이스에, 추가 관리자 청구 경로
라운드 1 리뷰는 수락 팝업 청구 엔드 포인트에 대한 수정 : - 일반 분실 레이스 (loser's isClaimableBy already false post-commit) 이제 TicketAlreadyCl 대상Exception (409) 대신 400 - 티켓 자체 우승자가 idempo...
이메일 저장소 DepartmentService가 필요합니다
MediaService CrashLooped on every pod since shared-lib 1.5.0: 부서서비스는 @Service, 그래서 와일드카드 @ComponentScan("com.kamo")는 이지 여부를 확인 서비스 접촉 부, 그리고 그것은 MailboxReposito...
반복된 params로 timeline 공급자 여과기를 받아들이십시오
웹 클라이언트가 전송 ?providers=facebook,x 한 CSV 값으로. 자주 묻는 질문 VALUE는 %2C로 여행하고, 다시 인코딩은 %252C로 전환; 우리는 한 번 디코드, 더 이상 존재하지 않는 comma에 분할, 전체 필터는 단일 실행 토큰 "Facebook%2Cx". ...
사용자 계정으로 missed-message 이메일 보내기, org mailbox
이 통지는 "당신은 메시지 대기, 로그인 및 그것을 읽었다"고 말했다, 그리고 그것은 mailbox에 전달 된이 조직은 회원 할당 — 그들은 단지 도달 할 수 로그인. 그것을 볼 수없는 사람은 사람을 위해이었다. Recipient 해결책은 지금 사용자 계정 주소 혼자 있습니다; Mem...
모든 대리인에게 읽지 않은 조사 대신에 살아있는 배지를 주십시오
Nav 배지 및 /support?tab=tickets는 다른 질문에 답했습니다. 사이트 맵 org의 모든 티켓 목록; 배지 카운트 읽지 않은 채팅 메시지 정확히 하나의 회원, 해결 된 org 소유자, 및 게시 support.agent.{ownerId} 각 브라우저가 자신의 회원 ID에 ...
Drop 클라이언트는 주제를 보호하고 HEAD에서 빌드를 복구
TWO THINGS, 배송에서 MediaService 메인을 중지합니다. 1. 주는 컴파일하지 않습니다. MediaController:1361 통화 **************** 존재하지 않는: SupportTicketService에 대한 방법은 **************** 90d4...
한 번 메시지를 발표, 때 전체
행이 저장 된 후 메시지를 마무리하는 두 개의 호출기는 이제 말 createMessage가 발표되지 않음 : MediaController는 이미지 및 출판물을 첨부합니다. Article Author HTML PHP Post Tag Tags Video WordPress 결혼 김사랑 노무현...
업로드 당 한 객체 대신 dedup 파이프라인을 통해 첨부
첨부파일은 자신의 "<imgId>/<fileName>" 객체를 모든 업로드, 우회 content-addressed store 전적으로 — 같은 Logo-draft.png는 한 번에 3 번 첨부 대화는 3개의 목표를 점유했습니다. 지금은 공유 ImgDat로 해시를 업로드, 그래서 동일 내...
공유 MFA 저장소 스캔
MfaEnrollmentService는 kamo-shared-library의 @서비스이므로 와일드 카드 @ComponentScan("com.kamo") 이 응용 프로그램에서 여부 또는 이지 여부를 구성 서비스는 MFA와 함께해야 할 일이 있습니다. — 그리고 그것의 constructor...
Flaky egress에 대한 kubectl 다운로드를 Harden [skip ci]
dl.k8s.io 런너의 egress 간에 실수로 중간 전송을 삭제: 컬: (56) OpenSSL SSL read: 해독 실패 또는 나쁜 기록 맥 그렇지 않으면 녹색 빌드에 배포되지 않습니다. 반복적으로 관찰 kamo-signer-monorepo 및 카모 번역 사전. 추가 --retr...
만료 된 와일드카드 비밀 대신 라이브 per-host cert를 마운트
Cert-converter init 컨테이너는 PKCS12 키 저장소를 내장 wildcard-kamocrm-com, 레거시 멀티 산 비밀 cert-manager orphaned 때 그것의 증명서는 per-host 비밀에 repointed. 아무것도 그것을 갱신하고 그것 만료 된 2026...
Cross-org 판매 에이전트를 거부; widen bootstrap 캐시 busting
salesAgentId는 요청 몸에서 unchecked, 그래서 십자가org 또는 dangling 대리인 ID는 WebChatIntegration에 저장될 수 있었습니다. 그것은 안전 만 실패 AIService가 org-scoped lookup으로 에이전트를 다시 읽기 때문에 데이터가되...
채팅 참여 및 라우팅의 비 액티브 회원 제외
* * * * * * * * * * * * * * 대상, 라이브 채팅 participant. 공유 -lib의 모든 채팅 경로 *************** 이전 : - DM create / 그룹 find-or-create / add-members 거부 또는 드롭 비 행위 MediaSes...
공개 채팅 시스템 회원 per-org (drop hardcoded snadjafinia alias) 해결
createSupportSession, createPublicTicket 및 소유자 알림 helpers 모든 해결 org의 "시스템 멤버"를 통해 hardcoded nameAlias="snadjafinia" lookup, 이는 KamoCRM에서만 존재합니다. Seed org - 모든 t...
메시지를 남겨주시면 missed-message 메일로 문의해 주십시오
MessagePreview 계산을 제거, ledger PREVIEW 쓰기, 그리고 messagePreview Template variable; includePreview preference을 삭제합니다. 지금 이메일은 sender + count + CTA를 실행합니다.
대상 업데이 트를 통해 Persist 예정된 소재의 엄지 플래그
변환 파이프라인과 동일한 detached-entity orphanRemoval 문제점: headless 청소 detached ImgDat 및 save()/merge()를 이미지 수집에 복사했습니다. 제품 정보 *************** 대신.
Wrap recording upload 그래서 MediaService 컴파일
MinIOStorageService.upload는 ingest()가 없는 체크한 예외를 던졌습니다. 붙지 않고 선언 - isGuest 수정의 상단에 휴식. 그것을 포장하고 런타임 예외로 되돌아가기 때문에 @Transactional을 다시 업로드합니다.
MeetingParticipant.isGuest() (was getGuest는 컴파일되지 않습니다); 일반적인 endpoint에 transcribe를 다시 설정하십시오
MeetingParticipant 노출 isGuest() (primitive boolean getter), getGuest(). 또한 공유 /api/conversion/transcribe에서 요약을 호출합니다.
Persist 초대 참가자, MANAGE MEET SETTINGS, 드롭 더블 초대 경로
- createMeeting : 초대 회원은 UUID 문자열이 아닌 숫자 snowflake ID입니다. 제작자처럼 longToUUID를 통해 경로. 이전 UUID.fromString 모든 초대를 위해 threw 그래서 아무도 참가자로 기록되었습니다. - MeetConfigControll...
트랜잭션 후 NATS CREATE 이벤트를 게시하여 이미지 첨부 레이스를 수정
NATS 메시지는 @Transactional body 내부에 게재되었습니다. 수신자는 CREATE 이벤트를 받고 이미지를 요청할 수 있습니다. /imaging/proxy/{objImgId} 전에 MediaObjImg 행이 DB에 표시됩니다. 결과 404 및 채팅이 다시 열릴 때까지 이미...
Serialize attachments in WS relay and message history; allow attachment-only sends
Three bugs fixed: 1. ChatSessionSubscriptionManager was building the STOMP messageMap manually and omitting attachments, sourceLanguageId, readMemberId, msg...
Fix NPE in getChatSessions from Map.of() rejecting null nextcoder
java.util.Map.of() throws NullPointerException when nextcoder is null (no more pages). Replace with HashMap that accepts null values. Also wrap entire handler i...
Fix upload 500 (missing EmbRecordState) and empty chats tab (Timestamp cast)
Defect A: ChatAttachmentService.upload omitted **************** causing a NOT NULL violation on imgs.is_active. Added the default recordState. Also hardened Cha...
Prefer usernameAlias over User.name in memberDisplayName
Switches display name priority to: Member.usernameAlias → User.name → User.alias → User.username. Also includes the paged query dispatch fix from the previous c...
Use split First/After queries for chat sessions paged endpoint
Addresses empty Chats tab by dispatching to ****************