在所有地方添加缺失的请求集成 i18n 密钥
在"需要自定义集成吗"下"提交请求"按钮? 反恐中心 在/整合中 掉回了原始的密钥 QQ 因为钥匙没有被定义 在所有22个地方添加了密钥 并清理了旧的定制 CtaSubheading 副本 仍然 引用 REST API / 企业级语言.
整合标志+准确/整合元数据
集成网页和集成中心现在显示供应商的标志(使用现有的 QQ 主页的资产 TechStackBanner已经使用). 已删除 : /整合字幕,OG图像,和元数据描述. 变化 : 1. 集成类型获得可选标志Path:字符串字段. 2. 所有30个集成数据文件都使用标志Path指向 适当的/公用 SVG (谷歌工作空间使用...
向所有主页上列出的提供者扩展/整合
调整/整合页面与曝光的实际整合 主页 (TechStackBanner). 添加28个匹配的新整合页面 产品实际提供的内容: 语音电话( P) : - Ring Central(现有,重新归类为语音) - FreePBX(即将到来,由请求驱动) 简讯: - 特维里奥 - 风琴 - 小声点 - 资讯 电子邮件( G...
添加家用抵押经纪人行业页面
在/解决/抵押 -- -- 经纪人抵押的新行业解决方案页面 经纪人和贷款人。 遵循诚实的平台框架: 核心CRM + comms + Docs + AI 适用于借款人和转介合伙人 关系层,具有特定抵押功能(LOS集成, 信用拉动、费率表自动化、TRID/RESPA对接的呼叫记录、 贷款-英里石管模板、Refi-机会警报)...
诚实的营销——根据实际平台能力调整页面
对照实际的KamoCRM产品能力全面审查营销页面. 取消了关于今天没有建造的地物的捏造索赔,并重新定位 工业专用和一体化专用的可请求制造 特性通过新特性请求系统。 KamoCRM实际提供的内容(现在准确反映): - 具有可定制管道的客户关系管理 - KamoMeet(Janus WebRTC本地视频) - 电话和短信...
增加92个高级管理办公室网页——行业、整合、词汇表
执行SEO内容扩展计划第一级:三个新内容 子系统,共有92个新的可爬行URL外加3个中枢页面. 1. 解决办法——36个行业登陆页 房地产、代理、专业服务、金融服务、法律、 保险、健身室、沙龙和疗养院、家庭服务、清洁 服务、景观美化、汽车修理、SaaS、电子商务、技术创业、公共卫生、 房地产管理、短期租金、建筑、非营...
Use pg Pool options instead of connection string for geo DB
CockroachDB rejects insecure connections and node-pg can't verify self-signed certs via connection string alone. Parse the URL into Pool options and pass ssl:{r...
Add geo-database-url to analytics-secret for CockroachDB geolite lookup
Kamo Analytics uses this URL to look up visitor IP→country/region/city from the **************** tables. Uses kamo user with password auth and sslmode=require (...
Add public known-aliases endpoint for kamo-nowww build-time bake-in
允许在 k2m1 故意下水时进行管道
在 k2m1 部署任务中添加连续错误和如果条件 翻译 并重建 使它运行到成功部署的 k1m1, 不论 k2m1 状态.
Make PoweredByKamo 与 WCAG 级对比
映出卡莫语的变迁. 文本切换为实心白; 背景 休息时间为 var (- 颜色- 二级), 徘徊/ 焦点的背景为 var (- 颜色- 主要). 暗箱-阴影为深度,白色焦点环. 徽章现在读作一种小牌子的药丸 混入了每一个 白-标签客户端的主题代替了近相隐形的幽灵链接.
Make PoweredByKamo 与 WCAG 级对比
上一个样式( 近透明时的低不透明时流颜色) 在大多数客户背景中,实际上看不到这种背景。 也会危及Google的访问/连接 用于隐藏链接处罚的信号。 新疗法: - 文本:休息和活动时的实心白色(#ffffff) - 休息的背景: var (- 彩色中学)—— 客户的中学 品牌颜色,将它融合到它们的白标签主题中 - 盘旋...
添加微妙的 KamoCRM 后链接到欢迎和会场UI
镜像 PoweredByKamo 模式, 以 kamo- login 和 kamo- 注册符发送 到相机(Meet fork)的网络表面。 每个客户端的相机 部署服务于自己的域名,所以后链路产生 遵循数千个独特的会议 URL 的 SIO 信号 www.kamocrm.com (中文(中国大陆) ). 组件生活在一个新...
在注册页面上添加微妙的 KamoCRM 回链接
镜出用卡莫语运来的PoweredByKamo徽章. 自从卡莫注册师 在每一个白标签客户端的域上服务,这创造了一个稳定的 遵循每个客户端的注册流 URL 的回路 www.kamocrm.com——相同的SEO模式 Shopify/WordPress.com/Intercom使用. 构成部分: ...
后链接目标到 www.kamocrm.com (canonical host)
PoweredByKamo组件运出指向顶端 https://kamocrm.com/ 但Canonical Kamo-marketing主机是https://www.kamocrm.com/. 更新所有三个变异的螺旋,使进站的SEO信号累积 而不是横跨最高点和www.
添加微妙的 KamoCRM 回链接到认证页面
向三个用户添加一个小的"Powered by KamoCRM"样式脚印徽章 - 面对认证表面(登录、恢复、验证)。 由于卡莫语是 共享白标签 auth app 每个客户端的域名服务, 这成为 从成千上万个客户端的 URL 中实现稳定的回路 指向kamocrm.com的域名——SEO图案 Shopify, WordPre...
触发新运行以激活部署的第一个工作流程
先前运行( 3445, 承诺 f93a173) 在旧工作流程中完成 承诺4123431可以取消并重排. 推动空心承诺 执行新部署第一/笔译后/重新部署,如果改变 在一个干净的主干道上铺上管道.
先部署,后翻译,再部署
重修CI/CD流量,使初始部署不再被 翻译时间。 现在的管道: 1. 构建 初始 — 构建并推出已标记的图像 :{sha} 2. 部署 k1m1 初始 部署:{sha}至k1m1 (并行) 3. 部署 k2m1 初始 部署:{sha}至k2m1(并行) 4. 翻译 和 再建——仅在两个初始部署成功后运行。 请检查a...
增加/替代中枢+9个竞争对手比较页
添加一个针对“ X 选项” 搜索的完全竞争者比较套件 查询。 每页都包含深层叙事(2500+字),20-25行特征 矩阵、定价细目、迁移指南和8-10个FAQQ(附有FAQPage) 结构化数据)。 路线 : - 具有所有9个比较+主矩阵的替代中枢页面 - /替代/[slug]每个竞争对手深潜(通过生成StaticP...
*** session check, loading spinner, rebrand analytics to Kamo Analytics
Use redis get instead of exists for more reliable *** validation on logout. Replace "Authenticating..." text with an animated spinner on the OTK auth page. Rena...
Use CockroachDB geolite tables for IP geo lookup instead of .mmdb file
Replace the bundled MaxMind .mmdb file with a query to the geolite_blocks and geolite_locations tables in CockroachDB, which are maintained and updated weekly b...
Copy GeoLite2 database to production image for country detection
The /geo/ directory containing GeoLite2-City.mmdb was built during the builder stage but never copied to the runner stage, so all country/region lookups returne...
Move CSP to proxy.ts instead of middleware.ts to avoid build conflict
Next.js 16 doesn't allow both middleware.ts and proxy.ts. The Docker build copies proxy.ts as the middleware, so add CSP frame-ancestors header there instead. T...
Clean up legacy analytics deployment on each CI run
Delete old analytics deployment, service, and ingressroute that conflict with the kamo-analytics deployment managed by its own CI/CD pipeline.
Use Next.js middleware for CSP so frame-ancestors works at runtime
The standalone build bakes next.config.ts headers at build time, so ALLOWED_FRAME_URLS was always empty. Move CSP to a Next.js middleware that reads the env var...
Strip X-Frame-Options header in iframe-compatible middleware
Set X-Frame-Options to empty string to remove the SAMEORIGIN value that was being inherited, allowing CSP frame-ancestors to control iframe embedding instead.
Read ALLOWED_FRAME_URLS at runtime so CSP frame-ancestors works in standalone mode
The env var was being read at module scope during build, baking an empty value into the standalone server. Move CSP and all header construction into functions c...
Add iframe-compatible middleware chain for kamo-analytics
Add security-headers-allow-iframe (no X-Frame-Options) and kamo-middlewares-allow-iframe chain so analytics can be embedded in iframes from internal.kamocrm.com...
Remove logout, move nav to right, tie session to kamo-internal ***
Remove logout option from UserButton since auth is managed by kamo-internal. Move SideNav from left to right side. Store the *** ID in analytics auth data durin...
Replace login with OTK auth, force light mode, hide theme toggle
Remove direct login — authentication now handled exclusively via one-time keys from kamo-internal. New /api/auth/otk route validates OTK against shared Redis, s...
将分析图标添加到带有 OTK 认证的 Iframe 的导航上
将一个BarChart 图标添加到顶级 Org 的团队成员 NavTop 中 (无父母. 点击导航到生成OTK和 装入分析器。{域} 在一个整页的 Iframe 中。 现在生成- otk 路由 支持60s TTL 更长的用途=分析.