Routing 토큰을 검증, persist LeadUid, 리드 이동에 재 할당 채팅
- createSupportSession는 서명한 routingToken (likeAgentMemberId);를 가지고 갑니다 ChatRoutingTokenCodec + 클러스터 내부.auth.secret을 통해 확인, 시행 token.orgId == org, integration.as...
채팅 참여 및 라우팅의 비 액티브 회원 제외
* * * * * * * * * * * * * * 대상, 라이브 채팅 participant. 공유 -lib의 모든 채팅 경로 *************** 이전 : - DM create / 그룹 find-or-create / add-members 거부 또는 드롭 비 행위 MediaSes...
Snapshot web-chat 통합 지원 방문자 + 티켓
CreateKeyHash (enabled-filtered)에 의해 WebChatIntegration를 해결 부트 스트랩()/AI-prompt resolution)에 한 번 연속 createSupportSession과 스탬프 모두 PublicChatVisitor 웹 사이트 attribut...
Public-chat 부트 스트랩 구성 해결자
내부 GET 추가 *********** 해결 WebChatX-Public-Chat-Key-Hash의 통합 및 해결 design/behavior config (WebChatDefaultConfig.merge를 통해 기본 충전 그래서 통합 행이있는 열쇠는 오늘날의 위젯과 같은 여전히 렌더링...
FCM/APNs credentials를 위한 철사 선택적인 mediaservice-push 비밀
선택 `mediaservice-push`에서 FCM 서비스 계정 JSON + APNs .p8 마운트 /etc/kamo/push에 비밀은 동일한 비밀에서 APNs 열쇠 ID/team ID를 놓습니다. 선택 사항이므로 팟은 비밀이 제공 될 때까지 변경되지 않습니다. 둘 다 senders는 ...
WebChatIntegration CRUD (최소 키 + 통합, org-scoped)
Org-facing 관리 API for the Phase-2 웹 채팅 설정 탭. 으로 create, mints the underlying PublicChatApiKey (사임 키겐 접근 방식) WebChatIntegration 행과 함께 PublicChatKeyController로 원시...
공개 채팅 시스템 회원 per-org (drop hardcoded snadjafinia alias) 해결
createSupportSession, createPublicTicket 및 소유자 알림 helpers 모든 해결 org의 "시스템 멤버"를 통해 hardcoded nameAlias="snadjafinia" lookup, 이는 KamoCRM에서만 존재합니다. Seed org - 모든 t...
이동식 푸시 파견(FCM data + direct APNs)
채팅 수신 (MediaController), 지원 티켓 (SupportNotificationService), SMS/voicemail (VoipStompRelayController), 소셜 *********** 미쉐린-메시지 이메일 소비자와 같은 예언(스키프) 최대). Android =...
REST의 X-***-Token을 받아보세요. 각 세션 타임아웃을 가진 슬라이드 TTL
OTKPreAuthFilter는 X-OTK가 존재할 때 X-***-Token을 해결합니다. BFF없이 MediaService REST 호출. KSessionService는 지금 Redis를 미끄러지습니다 세션 자체 세션을 가진 TTLTimeoutMinutes 대신 30 분 세계.
차용자의 OWN 장교에 직접 도달, 지원 오른쪽 게이트 없음
OrderToPreferredAgent의 ACCEPT SUPPORT TICKETS 요구 사항을 삭제하십시오. 차분한 대출 임원은 그들이 누구인지에 관계없이 도달 할 수 있습니다. 설정된 지원 에이전트 (회원 ID는 이미 그 리드로 검증되었습니다. SecurityService 담당 org...
직접 지정-로 라우팅 + LO 출연 엔드포인트
차용 포털의 병합된 LO/chat 위젯을 강화합니다: -********** public-chat을 직접 할당 SPECIFIC 에이전트 (대출자 지정 대출 장) 대신 그 임원이 주제에 대한 자격 지원 대리인이 될 때 (채팅 세션에 추가 + 그들을 통지;에 대한 선택 기록 둥근robin 추...
메시지를 남겨주시면 missed-message 메일로 문의해 주십시오
MessagePreview 계산을 제거, ledger PREVIEW 쓰기, 그리고 messagePreview Template variable; includePreview preference을 삭제합니다. 지금 이메일은 sender + count + CTA를 실행합니다.
Missed-message 이메일 알림 (chat + support) per-source 억제
튼튼한 NATS 소비자 채팅-email-notifier 채팅.session.> 먹이기 MESSAGE EMAIL NOTICES ledger (PENDING/SENT, 채팅에 대한 per-sender, per-ticket 지원을 위해), 존재 문, 조용한 시간, 소화 창을 가진 60s 청소...
공유-lib GeoLite 바인딩 된 검색에 대한 재건 (2-4ms hit+miss)
Kamo-shared-library 011a73e - GeoLookupService's findByIpInRange 지금 구매하기 LIMIT-1-바운드 대신 갭/고상 IP(측정) prod-scale 자료에 5-13s; 지원 표 + 공중 전화 위치 스냅샷 그것을 타고).
튼튼한 last-seen 타임스탬프 + 대량 endpoint
PRESENCE:{id}는 회원이 오프라인으로 진행되도록 삭제됩니다. 그들은 마지막 활동 때 기록. 엠에디터 플러그 인 참조:{id} (orgId + ts, 400d TTL) 연결 / 연결 및 노출 ********* 인터폰 센터 회원 도구 팁.
AI 자동 태그 + org의 제공 업체를 통해 캡션 (P3)
자료AiController POST *************** 소유권을 확인합니다. 짧은 라이브 서명 된 자료 URL을 축소하고 AIService의 내부 비전 엔드포인트 (org's AiVisionClient를 통해 자체 공급자, LIGHT tier). Lenient 태그 파싱; 비전...
MaterialAnalyticsController - 기록 이벤트 + 집계
****************************************************************************************************************************************************************...
MaterialReviewController - 상태 맵 + 설정 통계
GET /api/media/materials/reviews (org-wide imgId→status map) + 재료 상태를 설정하기 위해 POST (validated, reviewer-stamped, upsert).
MaterialCampaignController — CRUD + 아이템 맵 + 추가/제거
/api/media/materials/campaigns: list/create/update/delete, GET /items (org-wide imgId↔campaignId 지도), POST /add + /remove org-ownership 체크.
MaterialTagController - 태그 CRUD + 할당 / 할당 + 할당 맵
/api/media/materials/tags: list/create/delete 태그, GET /assignments (org-wide imgId↔tagId workspace가 클라이언트 측에 참여합니다), POST /assign + /unassign with org-ownership...
관리형 공개링크 엔드포인트(create/list/revoke) + 추적된 서비스
POST/GET /api/media/materials/links 및 DELETE /links/{id}를 MaterialShareLink에 의해 백업 추가하십시오. 공개에서 관리 된 토큰을 해결하십시오. 우선 (확인 된/expiry 및 범프) viewCount) 레거시 HMAC verif...
대상 업데이 트를 통해 Persist 예정된 소재의 엄지 플래그
변환 파이프라인과 동일한 detached-entity orphanRemoval 문제점: headless 청소 detached ImgDat 및 save()/merge()를 이미지 수집에 복사했습니다. 제품 정보 *************** 대신.
Thumbnail 예정된 재료 처리
Headless 청소는 ConversionService의 OTK thumbnail 파이프라인을 몰 수 없습니다, 그래서 수출을 저장 한 후 ImageIO를 통해 페이지-0 PNG thumbnail을 생성합니다. — 예정된 자료는 이제 다른 어떤 것과 같이 격자에서 렌더링, 필요 없음.
Scheduled generation — cadence의 스윕 실행법
- CanvaScheduleController : org 일정에 대한 CRUD (recipe + cadence + 시간 / 일 + 선택적 소셜 타겟), computes nextRunAt - CanvaGeneration의 특징 서비스: headless ***********로 물자 (공정 ...
Saved autofill 레시피 CRUD (org-scoped)
CanvaRecipeController: GET/POST /api/media/canva/recipes + DELETE /{id} — save/list/soft-delete 브랜드 템플릿 + 필드 매핑, 범위 콜러의 org.
MediaService internal.auth.secret (mlos-internal-auth) 요약 이메일
MediaService -> 이메일서비스 /api/email/templates/send (meeting-summary) 필요 INTERNAL AUTH SECRET는 EmailService의 internal.auth.secret과 일치합니다.
Enterprise autofill – 데이터-머지 브랜드 템플릿
- CanvaApiClient : 목록 브랜드 템플릿 (dataset=non empty), 데이터 세트를 얻을, 자산 업로드 작업, create/get autofill 작업 - CanvaController: GET /brand-templates, GET /brand-templates/{...
Short-lived는 마케팅 자산에 대한 공개 URL을 서명했습니다
소셜 제공 업체 (Meta) 및 이메일은 경계에 대한 특정 자료를 fetch 개인 이미징 물질 버킷을 폭발하지 않고 창. - MaterialUrlSigner: HMAC-SHA256 (platform.enc-key) 토큰 = imgId:orgId:exp, 1h TTL - Material...
편집 가능한 디자인으로 Canva에 파일을 가져 오기
-********** (기본 디자인 가져 오기) - CanvaController POST /imports (다중) → create+poll 가져 오기 작업 → 편집기 return-nav를 위한 correlation state를 가진 깊은 연결 - CanvaOAuthController에서...
Wrap recording upload 그래서 MediaService 컴파일
MinIOStorageService.upload는 ingest()가 없는 체크한 예외를 던졌습니다. 붙지 않고 선언 - isGuest 수정의 상단에 휴식. 그것을 포장하고 런타임 예외로 되돌아가기 때문에 @Transactional을 다시 업로드합니다.
Return-nav JWT 서명 확인; tidy 토큰 새로 고침
- CanvaJwtVerifier : correlation jwt의 Ed25519 서명을 확인 Canva의 JWKS (/connect/keys), 플러스 aud/exp/type; 아이에 의해 캐시된 열쇠. Return-nav는 이제 인증이 실패한 경우 수동 수입에 닫힙니다. - Canv...
MeetingParticipant.isGuest() (was getGuest는 컴파일되지 않습니다); 일반적인 endpoint에 transcribe를 다시 설정하십시오
MeetingParticipant 노출 isGuest() (primitive boolean getter), getGuest(). 또한 공유 /api/conversion/transcribe에서 요약을 호출합니다.
기록 ingest, 유지 / 할당, 저장 사용, 요약 파이프라인
- MeetRecordingController: 내부 (X-Internal-Auth) ingest endpoints 지브리 finalize.sh 게시물은 기록을 완료했습니다. - MeetRecordingService: org MinIO (임시-메트 기록)에 업로드 기록, persists...
Canva는 OAuth + 디자인 / 내보내기 연결
- CanvaApiClient: PKCE, 토큰 교환/refresh/revoke, 사용자, 디자인 (create/list), 수출 일, 바이트 fetch - CanvaTokenService: 암호화된 토큰(PlatformSecretCipher), Single-flight proactiv...
스케줄링 시작 알림 + 게스트 링크 만료
- MeetingReminderSweep : @Scheduled 스위퍼는 실시간 불 "미팅 시작"에 초대 된 회원에게 알림 (start − noticeerMinutesBefore) on *********** 다음 회의 SCHEDULED→ACTIVE 전환 dedupe에. 과거 시작 시간보...
Persist 초대 참가자, MANAGE MEET SETTINGS, 드롭 더블 초대 경로
- createMeeting : 초대 회원은 UUID 문자열이 아닌 숫자 snowflake ID입니다. 제작자처럼 longToUUID를 통해 경로. 이전 UUID.fromString 모든 초대를 위해 threw 그래서 아무도 참가자로 기록되었습니다. - MeetConfigControll...
회원/지원/관계 세션에 따른 통합 채팅 피드
GET /api/media/sessions/chat 이제는 '카테고리' 필터 (chat, 지원, 사회; 과태 모두) 과 반환 하나 globally most-recent-first, 다각적 쿼리의 병합. 각 행은 나릅니다: - 세션타입(CHAT|SUPPORT|SOCIAL) + 회원[].m...
Surface parent-org는 request-support 팝업 주제를 공유했습니다
Child-org 사용자는 부모 org의 공유 지원 주제를 볼 수 없습니다 (assignToOwnOrg=false) 지원 요청 시 팝업만 가능 fetched own-org 주제. GET /api/support/topics/available 추가(+) parent-shared, MANAG...
Org-guards/topic/leads/rt/{orgId} 실시간 구독
Cross-tenant SUBSCRIBE는 새로운 리드 실시간 주제에 대한 가시성, 미러링 기존 /topic/social/feed 가드: 회원은 본인에게만 구독할 수 있습니다. org의 리드 스트림. 기존 *********** 이미 릴레이 security.leads.rt.* 에 /top...
통합된 타임라인 백엔드 (feed persistence, 어댑터, 라이브 릴레이)
SocialFeedService는 MediaSession/MediaObj 스키마에 게시물 / 코멘트를 보여줍니다. (채팅 모델을 재사용); SocialFeedMapper는 와이어 DTO를 구축; SocialTimelineController 병합된 피드 + 기능 및 멀티 프로바이더 작곡 ...
X (터치) + Discord 어댑터
- XAdapter: 계정 활동 webhook (CRC 도전 + x-twitter-webhooks-signature HMAC 확인), NormalizeInbound (direct message events, echo-skip), OAuth 1.0a 서명 v2 DM 전송; 소비자 플랫폼 ...
M4 메타 어댑터 + OAuth + 24h 창 + M2 경화
- Meta adapters (Messenger/Instagram) : 잘못된 수정 caption send (여기 후속 캡처) 메시지), Graph Attachment를 통해 바이트 업로드 API, URI는 MetaGraphClient에서 수정을 인코딩 - Telegram 어댑터 : ...