Disable Jicofo auth module to prevent 1-minute participant kick
Jicofo's AbstractAuthAuthority has a hardcoded 1-minute auth session lifetime that ignores the config file setting. After 60 seconds, Prosody demotes participan...
Use room names (not full JIDs) for all brewery MUC configs
Both Jicofo and JVB Docker images append @XMPP_INTERNAL_MUC_DOMAIN to the brewery room name automatically. Using full JIDs like **************** caused double-d...
Use TCP probe on port 9090 for JVB health checks instead of HTTP on 8080
JVB's REST API port 8080 conflicts with CockroachDB's admin UI on the same hostNetwork. The JVB_OHTTP_SERVER_PORT env var is not recognized by this JVB image ve...
Resolve JVB crash loop — wrong MUC JID + port 8080 conflict
Two issues causing JVB to crash in a loop for 43+ hours: 1. JVB_BREWERY_MUC was **************** (full JID) but JVB appends XMPP_INTERNAL_MUC_DOMAIN automat...
JVB_BREWERY_MUC should be room name only, not full JID
Was **************** which caused JVB to construct a double-domain JID **************** with an @ in the domain part — crashing JVB with XmppStringprepException...
Query avatar_photos extension via SQL instead of Hibernate proxy
avatarRepository.findById() returns a Hibernate proxy (Avatar$HibernateProxy) that fails instanceof AvatarPhoto check. This caused the file extension to always ...
날짜/시간 스케줄러를 추가하여 미팅 대화하기
미팅 생성 대화 상자로 Now/Schedule pill toggle을 추가합니다. 시간 : 일정은 MUI DateTimePicker 슬라이드를 15분으로 선택했습니다. 간격과 형식적인 확인 선. 회의 일정 예정된 회의 창을 열고 건너뛰기 즉시.
Use correct table name 'avatars' instead of 'avatar' in session SQL query
Store full avatar relative path in session instead of bare file hash
The login SQL now also fetches avatar_type and file_extension from avatar_photos so the session stores a complete relative path like **************** or *******...
Include org static background images in meet virtual backgrounds
Fetch backgroundImageCount from the org's theme config.json and generate URLs for /img/bg/{n}.webp so org-level static backgrounds appear alongside meet-specifi...
Add first name, last name, and avatar hash to *** session
Include memberFirstName, memberLastName, and memberAvatarUrl in Redis session data so cross-domain services like KamoMeet can display proper user identity witho...
Handle meetReturn redirect to send users back to meeting after login
- 홈 페이지에 meetReturn 쿼리 param 검출 (KamoMeet auth redirect) - OTK를 생성하고 토큰과 만나기 위해 인증된 사용자를 다시 리디렉션 - persist meetReturn에 sessionStorage를 사용하여 로그인 → 검증된 리디렉션 체인
Resolve org theme backgrounds not appearing in meet virtual backgrounds
- Add domain-based theme URL resolution for internal K8s service-to-service calls - getPublicBackgrounds now accepts optional domain param to derive correct the...
Upload meet backgrounds to public MinIO bucket with hash-based naming
Was uploading to private 'imaging-meet-recordings' bucket via **************** which caused: - MinIO region mismatch errors on the primary node - Connection tim...
Multipart 업로드에서 클라이언트 측 OTK 제거, 업로드 디버그 로깅 추가
클라이언트는 업로드하기 전에 낭비 된 OTK를 생성했습니다 (Next.js 경로 백엔드의 서버 측 OTK를 생성합니다. 고객 제거 OTK는 흐름을 단순화하고 잠재적 인 타이밍 문제를 제거합니다. 배경에 debug 로깅 추가 POST 경로 핸들러.
Return serialization-safe Maps instead of raw JPA entities in MeetConfigController
All config/background endpoints were returning raw JPA entities with @ManyToOne(fetch=LAZY) Organization references. Jackson failed to serialize the Hibernate p...
NavTop 디스플레이 이름 검색 및 올바른 MediaService URL 계획 단순화
- getDisplayName에서 userAlias lookup 제거, 직접 회원 기록 사용 - MediaService K8s URL을 https : 8443에서 http : 80로 수정하십시오
ForwardToApi를 사용하여 수동 fetch 대신 배경 업로드
FormData forwarding을 가진 수동 fetch는 multipart 경계를 끊었습니다. 이제 FormData를 재구성하고 headers를 올바르게 처리하는 forwardToApi를 사용합니다.
직접 회원 가입 대신 org 테마 배경을 찾기 위해 subquery 사용
이전 INNER 회원이 NULL인 tb.member에 가입 대부분의 사용자 수준 배경입니다. 이제 User→Member→Organization을 통해 정복을 사용합니다. org의 구성원이 업로드한 모든 배경을 찾을 수 있습니다.
Add public config and backgrounds endpoints for sidecar consumption
GET /api/meet/public-config?domain= returns org meet config by domain. GET **************** returns combined virtual backgrounds. Both endpoints are unauthentic...
Remove duplicate endpoints from MeetController, add org-themes to MeetConfigController
MeetConfigController already handled config/background endpoints. The duplicate endpoints in MeetController caused ambiguous mapping. Added org-theme background...
Add config CRUD, background management, and org-theme endpoints
All endpoints enforce MANAGE_MEET_SETTINGS privilege. Config auto-creates with defaults on first access per org. Background uploads go to MinIO with SHA-256 has...
Org 테마 배경을 추가하고 deprecated 필드를 제거
- org 테마 배경에 대한 경로 추가 *************** - Update meetApi.ts: whoCanCreate와 emailInvitesEnabled from MeetConfig, OrgThemeBackground 인터페이스를 추가하고 getOrgThemeBackgrou...
Drop deprecated who_can_create and email_invites_enabled columns
OTK auth를 가진 EmailService에서 직접 Fetch 서명 템플렛, debug logging를 추가하십시오
forwardToApi for /api/email/signature-templates는 APIService를 통해 갔다 Next.js 이메일 프록시 대신 게이트웨이. 지금 직접 fetches 적절한 OTK 헤더를 가진 EmailService. 모든 단계에서 로깅 추가 템플릿 로딩.
Redis에서 직접 세션을 읽으십시오 (/api/user-info와 동일), 모든 서비스 통화에 대한 forwardToApi 사용
뿌리 원인 : sender 프로파일은 '당신의 동료'를 보여주었습니다. non-existent SecurityService endpoint라는 세션 fetch. 주요특징 이메일서비스가 부족한 OTK auth에 직접 fetch 때문에 변형되었습니다. 수정 : - 세션 : 읽음 *** 쿠...
Replicate exact email composer data flow for meeting invite emails
The previous implementation only filled 8 of 20+ SignatureContent fields, causing malformed signatures with no images, name, or contact info. Now replicates th...
회의 초대 이메일 청소 — 로고 제거, 주제 수정 / 호스트, 제대로 맞춤 메시지를 embed
템플릿 변경: - 제거된 로고 이미지 (signature 템플렛 헤더는 브랜딩을 취급합니다) - 제거된 'Hi, 당신의 동료는 당신을 초대했습니다 — custom 메시지 영역 (비어 있는 메시지가 없는 경우) - 호스트 필드는 {Organization}에서 '{Name}'을 보여줍니다....
Org 서명 템플릿 (header/footer/signature)과 함께 이메일 랩 회의 초대
이제 이메일 작곡가로 감싸는 정확한 동일한 이메일 복제: 1. EmailService (사용자 범위, COMPANY fallback)의 서명 템플릿 2. Fetches sender의 서명 콘텐츠 회원 프로필 (이름, 이메일, 제목) 3. 수신자 개인화와 함께 초대 몸을 구축 4. 제공된...
Update health probes to HTTP port 80 to match new server config
Startup, readiness, and liveness probes were still pointing to port 8443 with HTTPS scheme, causing pod restart loops.
회의 초대 이메일 DIRECTLY to EmailService, APIService Gateway를 통해
루트 원인: forwardToApi 경로를 통해 APIService의 Java 게이트웨이 Multipart FormData 경계를 올바르게 보존하지 않습니다. 이메일 * 작곡가는 이야기하는 전용 이메일 프록시 경로를 사용합니다. EmailService에 직접. 수정: 정확한 이메일 프...
달력 페이지 헤더와 사이드바에 하위 배경 주석 사용
빛 색상 혼합 배경으로 리드 / 정렬 페이지 스타일링 일치 몹시 포화된 1 차적인 색깔 대신.
Switch MediaService to HTTP port 80 — TLS termination at Traefik
Internal cluster traffic doesn't need HTTPS. Traefik handles TLS for external clients. This aligns MediaService with all other services.
Clear stale hexheads 에 페이지 새로 고침 대신 restoring orphaned state
Minimized 공구 창은 상쾌하게 생존하지 않습니다, 그래서 hexhead 위치를 restoring 누락된 아이콘과 비기능 클릭 핸들러를 가진 orphaned 머리. 이제 마운트에 지속 된 hexheads를 삭제합니다. 그들은 자연적으로 재현됩니다. 창은 다시 최소화됩니다.
Deterministic 배치 엔진을 가진 HexHead 배치 체계를 씁니다
버그 충돌 방지 시스템 교체 (spiralSearch, resolveCollisions, flyToHomeRow, 단 하나 deterministic 썰물 () 기능을 가진 선창/그룹 RAF 반복. 도구 창 뒤에 나타나는 hexheads 수정 (z:100→250), 각 다른 overlap...
응답을 기다리는 동안 AI 채팅에 표시 표시 표시 표시
콘텐츠가 이미 스트리밍되었을 때만 보여지는 스트리밍 거품, REST 대기 중 시각적 피드백을 남기지 마십시오. 추가된 bouncing 점 ASSISTANT LOADING과 첫 번째 내용 / 응답 사이에 표시된 지표.
회원 ID가 "새로운"인 경우 회원별 탭을 숨기기하여 BAD REQUEST 에러를 방지합니다
/settings/member/new URL ("Add Team Member" 버튼에서)가 붙습니다. [memberID] 동적 경로, accountActivityTab 발생, MembershipPermissionsTab, PlansBillingTab 은 회원으로 "새로운" 으로 API ...
