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...
删除 stock 符合虚拟背景, 只使用 org 级别背景
- 从常数.ts中移除了硬码的 IMAGES 阵列( 7个股票符合背景) - 虚拟背景组件现在直接使用动态品牌背景 没有对存储图像的回落 —— Orgs 控制自己的背景 - 固定/api/品牌错误处理器,以返回空品牌,而不是 默认Branding: true 导致 Constitution 装入库存默认值 - 用户参见...
简化 NavTop 显示名称查询并正确 MediaService URL 方案
- 从 getDisplay 中删除用户名 Alias 查找Name, 直接使用成员记录 - 将媒体服务K8s URL从 https:8443 改为 http:80
通过Meet的本地动态品牌系统服务虚拟背景
添加了 /api/ 品牌端点, 以返回 Came 中的背景 格式。 在配置中设置动态BrandingUrl, 以本地方式获取背景 启动时。 已删除 racy 应用 VirtualBackgrounds Redux 调度 输掉比赛 与Meet自己的定制 准备旗子.
使用前端ToApi来满足背景上传而不是手动取取
使用FormData转发的手动获取正在突破多段边界 。 现在重建FormData并使用正确处理信头的extToApi.
使用子query来根据用户成员而不是直接成员加入查找org主题背景
前一次INNER JOIN on tb. Member排除了成员为NULL的背景, 这是最用户级的背景。 现在通过 User Member Organization 使用子点数 查找 Org 成员用户上传的所有背景.
将 Org 级别设置纳入到配置和品牌中
侧车从后端获取 OrgMeetConfig 并绘制所有设置 : - 音频/视频哑声默认 - 大厅/候车室模式 - 客人访问和显示姓名的要求 - E2E加密 - 记录启用/失效 - 通知后执行最大参与者 - 最大持续时间执行和倒计时警告 - 通过动态品牌注入的虚拟背景 - 欢迎收看预告片 - 标记变量选择 配置被缓存为...
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 主题背景添加路径 **************** - 更新 meetApi.ts:从MeetConfig中删除谁的CanCreate和电子邮件InvitesEnabled,添加 OrgTemeBackground 接口并获取 OrgTemeBackgrounds () - Meet SecurityS...
Drop deprecated who_can_create and email_invites_enabled columns
用 OTK 认证直接从 EmailService 获取签名模板, 添加调试日志
/ api/ 电子邮件/ 签名- templates 的 extToApi 通过 APIService 网关而不是 Next.js 电子邮件代理 。 现在直接从 电子邮件服务与适当的OTK头。 每个步骤都添加到 诊断模板加载.
直接从 Redis 读取会话( 和 /api/ user- info 相同), 对所有服务呼叫使用前置 ToApi
根原因: 发送者配置文件显示“ 您的同事 ” 因为 会话获取名为不存在的 security Service 端点 。 签署 由于直接获取到EmailService 缺少 OTK 认证, 其结构不正确 。 修补 : - 会话:读作*** cookie *** 直接重复(与/api/user-info相同) - 成员/o...
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...
清理会议邀请电子邮件——去除标志,固定主题/主机,妥善嵌入自定义消息
模板更改 : - 已删除的标志图像(签名模板头柄品牌) - 取消"你好,你的同事邀请你" - 取而代之的是习惯 信件区域( 如果未输入信件则空白) - 主机字段现在显示“{Name} 来自{Organization} ” - 主题 : '{Name} 从{Org} 邀请您参加一个会议' - 已删除的网站Name/log...
包装会话邀请带有 Org 签名模板( 标题/ footer/ signed)并包含自定义消息的电子邮件
现在复制与电子邮件作曲者完全相同的邮件包装: 1. 从电子邮件服务(USER范围,COMPANY倒置)获取签名模板 2. 获取发件人的成员简介以获取签名内容(名称、电子邮件、标题) 3. 建立受援者个人化的邀约机构 4. 如果提供的话,将自定义消息作为样式的块引号预先使用 5. 使用构建的TemplateWrapped...
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.
直接通过 APIService 网关发送会议邀请电子邮件到电子邮件服务
根原因: 通过 APIService 的 Java 网关转发 TOApi 路由 无法正确保存多段格式数据边界。 电子邮件 作曲工作是因为它使用一个专用的电子邮件代理路由来进行演讲 直接到电子邮件服务。 修复: 复制精确的电子邮件代理模式 — send Email Direct () sends 多部分格式数据直接取自...
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.
在所有对话框中立即装入 Org CSS/favicon, 将设置扩展至800px, 强制黑暗文本/ icons, 缩小视频预览
1. 品牌: 加载ThemeAssets( ) 现在在任何认证流之前运行 FIRST, 所以 org CSS (-navpri, -- -- color- prime), favicon, 并设置了标识数据 甚至在OTK-JWT调整方向期间。 以前的主题加载是之后 OTK返回语句,所以它从未运行在第一页的负载上. 2...
通过源码修改标记覆盖、设置对话框布局和显示名称锁
- PremeetingScreen:左侧列背景颜色使用CSS可变级联(-navpri/-color-prime-prime倒置) - 会前会议Screen:在挂载和品牌加载的活动上从org主题Path上添加favicon 覆盖 - DialogWithTabs: 扩展至700px, 防止制表包( 无包装) , 将制表...
清空页面刷新中的臭名昭著的螺旋头, 而不是恢复孤儿状态
最小化的工具窗口无法幸存, 因此恢复六头位置 创建了缺少图标和不起作用的点击处理器的孤儿头。 现在,在山上 清除的六头蛇 自然地被重新创造出来 窗口再次最小化.
只读 名称覆盖更具攻击性, 所以不能覆盖它
相会可以替换窗口 。 完全配置在靴子上,清除 仅读 名称旗. 在窗口上添加对象. define Property 陷阱. config to 重输入读取 名称=真实的每次调任。 并扩展 投票间隔从10到15,并持续进行 而不是在第一次配置检测后清除 .
听好Aync品牌的负载事件 所以标志和Org颜色渲染
水印和欢迎Page在读 窗口。 KAMO MEET 在渲染过程中显示一次,丢失数据 初始挂载后完成的 Aync loadBranding () 。 添加事件 "kamo-branding-loaded"的收听者 触发重置如此标志, 站点名称和 Org CSS 变量被可靠地取出.
解决设置对话框质量问题——高度、标签溢出和白白文本
将固定的 560px 高度更改为 85vh 最大值的自動, 内容不包含 卷轴条. 在标签栏中添加有弹性的Wrap, 因此标签包而不是剪接 。 覆盖带有暗值(# 1a1a1a1a)的白色主题调色板颜色(# FFFFFF), # 333) 包含对话框和设置标签组件, 因此文本可见 显示光线对话框的背景.
重写带有确定性布局引擎的 Hexhead 安放系统
取代buggy相撞-避免系统(spiralSearch, solution Collisions, fly ToHomeRow,码头/组RAF回路),具有单一的定量回流功能. 修复工具窗口后出现的螺旋头(z:100-250),相互重叠, 和不一致的运动。 保留蜂窝组群,快活/快活,以及所有事件.
保留原始房间名称( 无资本化/ 空间), 添加可复制的会话 URL 字段
1. 将“我的123室”转换为“我的123室”的已禁用安全启动Case() 资本化和随机空间。 房间名称现在显示为 输入于 kamo- 内部。 2. 在预接屏幕上添加会议UrlDisplay组件,显示完整 会话 URL( 例如 ) QQ 作为只读 有复制到剪贴板按钮的单空间字段。 URL来源于 window.loca...
在等待回复时添加输入指示器到 AI 聊天
流出气泡只在内容被流出时才显示出来, 在 REST 等待期间没有留下图像反馈 。 添加了弹出点 用于显示 ASSISTANT LOADING 和第一个内容/响应之间的指标.
当成员ID为"新"时隐藏特定成员标签,以防止BAD REQULEST出错
/设置/成员/新 URL(取自"添加团队成员"按钮) 被 [会籍ID]动态路由,引起账户活性Tab,会籍活性Tab, 和计划BillingTab让API以"新"作为成员ID的来电. Java 后端 无法将“ new” 解析为 Long, 返回 BAD REQULEST 错误 .
在装入任何主题资产以防止过期之前验证 OTK FIRST
ROOT CAUSE:品牌/管理。 js是装入 org 配置, CSS, favicon 在验证OTK之前. 这些网络请求需要10+秒, 使OTK在审定前失效 + 401 → 无会话/JWT。 现在 OTK 验证运行为负载Branding () 中的第一件事, 在此之前 任何主题资产获取。 主题加载在之后 .
60s OTK TTL 用于交会窗口, 独立的聊天/电子邮件邀请, 不屏蔽后端
OTK有一个10秒TTL。 当卡莫 -米特的页面 装入了所有资产和品牌/管理。 在Redis 中已经过期 ^ 401 → 无会话 → 无名称 → 无 JWT ——"等待主持人". 修补 : - 满足OTKs 现在得到60s TTL 通过目的= meet参数 - 独立运行聊天邀请(不是在后端会议创建后) - 电子邮件邀...
通过配置覆盖 + DOM 变异观察器正确锁定显示名称
三级方法,以确保名称被锁定给经认证的用户: 1. 在OTK-JWT改道后,当地Storage旗"kamo-meet-aurented"存活下来. 2. 重定向后, 覆盖窗口. config. read OnlyName= true 通过投票 间隔( 遇上配置对象时捕获) 3. 变异观察员发现,#会前地名输入和设定只读作...
通过现有的聊天会话 API 发送聊天邀请, 通过多部分发送电子邮件邀请到 EmailService
聊天邀请: 通过 POST /api/media/会话/聊天创建/获得聊天会话 然后将会议邀请为会议短信。 使用 与ChatTool/ChatBox完全相同的API模式. 电子邮件邀请:新的/api/meet/invite-email路由发送多段形式数据 到电子邮件Service的/api/email/send en...