Add 微妙なKamoCRMバックリンクをauthページに追加
小さな「カモCRMによるパワード」スタイルのフッターバッジを3人に追加- authの表面に直面して(ログイン、回復、検証)。 カモロビンは 共有されたホワイトラベルのauthアプリは、クライアントのドメインが機能します。これにより、 クライアント間で何千ものユニークなURLから安定したdofollowバックリンク ka...
トリガーの新しい実行で、デプロイ先のワークフローを有効化
前の実行 (3445, コミット f93a173) 古いワークフローで完了する前に コミット 4123431 は、それをキャンセルと拒否することができます. 空のコミットをプッシュする 新規展開先/翻訳後/再採用-if-changed を実行 それ以外のクリーンなメインのパイプライン.
デプロイ・ファースト、翻訳後、再採用・交換
CI/CD フローを再生成し、初期デプロイがブロックされなくなった 翻訳時間 今パイプライン: 1. build initial — :{sha} にタグ付けされた画像のビルドとプッシュ 2. deploy k1m1 initial — :{sha} を k1m1 (parallel) にデプロイします。 3. de...
/alternatives ハブ + SEO の 9 競合他社比較ページを追加する
「X 代替」検索を標的とする全競合他社比較スイートを追加 お問い合わせ 各ページには、深い物語 (2500+ 単語)、20-25 行の機能が含まれています。 行列、価格設定の故障、マイグレーションガイド、および8-10のよくある質問(FAQPage付き) 構造化されたデータ)。 ルート: - /alternative...
*** 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-authenticated iframeでnavtopに分析アイコンを追加
チームメンバーにトップレベルのオーガニゼーションをゲートしたNavTopにBarChartアイコンを追加 (親なし) クリックすると、OTK を生成する /analytics に移動し、 フルページのiframeでanalytics.{domain}を読み込みます。 生成-otk のルート より長い60s TTLで目的...
Add analytics → analytics text replacement in changelog sanitization
Initial Kamo Analytics — forked from analytics with Kamo branding
- Replace analytics logo SVG with Kamo logo (theme.kamocrm.com) - Replace analytics favicons with Kamo favicon - Replace "analytics" heading/nav text with "Kamo...
Move kamo-analytics to own repo, keep only postgres in KlusterServices
- Remove analytics deployment, service, and nginx-configmap (now owned by kamo-analytics project with its own CI/CD pipeline) - Remove analytics-ingressroute ...
Reset document.title in rebrand() when React overwrites it
React re-applies RSC payload after hydration, resetting the title to "analytics". Add a title check inside the MutationObserver callback so it gets corrected ev...
Redact tokens ≥32 chars in changelog sanitization
Any word (run of non-whitespace) that is 32 characters or longer is replaced with **************** before titles and descriptions are sent to the translation se...
Replace "analytics" text nodes with "Kamo Analytics" instead of clearing
Use TreeWalker to remove all "analytics" text nodes from rendered DOM
The workspace nav title "analytics" comes from JS bundles loaded after auth, rendered as a text node next to the logo SVG. Uses TreeWalker to find and clear all...
Add guarded MutationObserver for client-side rendered logo/text
Login page and dashboard content is rendered by Next.js JS bundles, not in the HTML body, so sub_filter can't reach it. Adds a script with a busy-flag-guarded M...
Redirect favicons at nginx level, fix RSC payload escaping
- Serve favicon via nginx 302 redirect instead of trying to rewrite HTML/RSC payload href strings (cleaner, always works) - Fix RSC title replacement with pro...
Use pure sub_filter replacements instead of MutationObserver
MutationObserver caused infinite loop (DOM change -> observer fires -> DOM change). Switch to direct nginx sub_filter string replacements targeting both static ...
デフォルトで分析をロードし、許可されたドメインでwwwサブドメインを含める
- 分析がクッキーレス/GDPRフレンドリーであるため、すべての訪問者をデフォルトで追跡 - ユーザーが明示的にクッキー設定で分析を拒否した場合のみ無効化 - データドメインにwww.kamocrm.comを追加(ホスト名は正確に一致しなければなりません)
Comprehensive analytics rebranding for login page and dashboard
- Replace title dynamically (handles "Login | analytics", "Dashboard | analytics" etc.) - Replace "analytics" h2 text on login page with Kamo logo image - Repla...
Use MutationObserver to rebrand analytics client-side rendered UI
analytics is a Next.js app that sets title/logo via JavaScript after initial HTML load. Replaces static sub_filter approach with injected script that uses Mutat...
Rebrand analytics analytics UI with Kamo logo, title, and favicon
Adds nginx sidecar proxy that injects CSS to replace the analytics logo with KamoCRM logo, changes the page title to "Kamo Analytics", and overrides the favicon...
Google Analyticsを分析で置き換え、サイト全体でイベントトラッキングを追加
- レイアウトからGoogle Analytics(gtag.js)を削除する - AnalyticsAnalyticsコンポーネントの追加:Cookieによる同意認識スクリプトの読み込み 好み、data-do-not-track、kamocrm.comへのドメイン制限 - CookieConsentBanner: 保...
Add analytics analytics deployment and analytics.kamocrm.com routing
- New analytics/ directory: PostgreSQL StatefulSet + analytics deployment, services, and secret template - **************** routes analytics.kamocrm.com → analy...
すべての地域のフッターに適法なプリントを追加
すべてのページのカバーの底に保護法的免責事項を追加します。 プラットフォームの責任, AI/eSignatureの免責, 翻訳権限, 利用規約、および商標通知。 英語で保存されたファインプリント 権威ある法的テキストとして全22個のローカル.
翻訳の修正 — 手動オーバーライド + 完全なデルタのリトランスレーション
Nav/UI 用語のマニュアルオーバーライドは、エンジンを一貫して失敗します。 - nav.home, nav.company, nav.roadmap, nav.changeLog, nav.legal, nav.login, nav.documentation, フッター等価, cookieBanner.manag...
DNSセットアップUIでTXTドメイン所有権レコードを表示する
- DomainData/DnsStatus: 認証トークン、所有権認証、タイプフィールドを追加 - AliasStatusTable:コピー ボタンが付いているCNAMEのテーブルの上のTxtOwnershipCardを、示して下さい indigoの保留/緑の確認されたスタイリング;CNAMEの証明された計算からのT...
翻訳がソーステキストを等しいとき、次のプロバイダに秋に
Bergamot は、ソースのテキストをシングルワードの nav に変更せずに返しました 項目, 頭字語句フレーズ (API, CRM), 化合物の単語 (ログの変更) 成功を報告している間(fallback=0)。 ルータは同じ値を扱うようになりました 次のプロバイダ(例:LibreTranslate)を試してみる信...
Generate TXT verification token on domain create, check in verify-dns
- createDomain: generate 32-char UUID token and store via setVerificationToken - verifyDns: check _kamo-verify TXT record for kamo-site-verification=<token> - T...
Add verification_token and ownership_verified columns to org_domains
DNS TXT レコードによるドメイン所有権検証を追加
- OrgDomain: 検証トークンと所有権認証フィールドを追加 - DomainService: setVerificationToken() と setOwnershipVerified() を追加 - DomainDTO: API 応答で検証トークンと所有権を検証 - DnsStatusDTO:CNAMEステー...