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ステー...
Update required aliases — add app, capcha, docs, sign; remove legacy
残りのハードコードUI文字列をサイト全体に翻訳する
- プレビューバナー、パブリックチャットウィジェット、アイチャットパネル、ライブサポートパネル、 exitIntentModal、FloatingSupportWidget は useTranslations() を使用します。 - プレビューBanner、チャット、 exitModal、サポートWidgetキーをen...
デルタの翻訳エンジン+ワイヤーすべてのハードコードされたUIのひもi18nに
翻訳システム: - translate.ts は delta モードで動作します。これは欠落しているキーのみです。 既存の翻訳キーは、英語と同一のAPIに送信されます。 保存されていない状態です。 CI の翻訳時間を80〜95%の典型的な実行でカットします。 - --force フラグを追加して、すべてのキーを再変換し...
Suppress Chrome は locale-switched ページのポップアップを自動翻訳
<html> と <meta name="google" に translate="no" を追加 そのため、Chromeは、ユーザーがすでに意図的にページを翻訳するために提供していません 別の言語に切り替えます.
Bound translation concurrency to 3 threads to prevent DB pool exhaustion
Unbounded @Async (SimpleAsyncTaskExecutor) created 50 threads simultaneously when the retry scheduler fired, each opening a DB transaction and draining HikariCP...
Three bugs preventing changelog translations from being saved
1. **************** was discarding events because handleWebhook() had no @Transactional — save + publishEvent() ran outside any transaction. Add @Transact...
クエリCommitLogs with LEFT JOIN なので、ゼロトランスレーションレコードは再試行でキャッチされます
CommitLogTranslationから選択した古いクエリ — ログをコミットしない 全てが目に見えないものでした。 CommitLogからLEFT JOINを使用する そのため、HAVING COUNT < 予想句には 0 の翻訳を含むレコードが含まれています。 また、句の大きいallIdsを削除し、代わりにPa...
/setup/dnsページとドメイン設定フローを/networkに追加
- 2相流れの新しい /setup/dns ページ: ドメインエントリ その後 DNS 60秒の自動ポーリングとSSL確認 - マニュアルDnsGuide:すべてのために、利用可能なステップバイステップのDNS指示 レコード名とターゲット値のコピーボタンでスキルレベル - AliasStatusTable: ライブ・パ...
Add /setup/dns backend — one-domain enforcement, SSL probe, new aliases
- Enforce one custom domain per org in POST /api/security/domains - Add capcha, docs, sign to standard aliases; remove legacy aliases - Update verify-dns to tra...
Add ssl_confirmed and ssl_confirmed_at columns to org_domains
Adds idempotent ALTER TABLE statements to provision the two new columns needed for DNS setup SSL confirmation tracking.
SslConfirmed/sslConfirmedAt フィールドを OrgDomain と DomainDTO に追加する
2つの新しいフィールドを OrgDomain のエンティティティティや DomainDTO に追加して SSL を追跡 自動認証サービスの問題の後の証明書確認ステータス 証明書。 また、 DomainService に setSslConfirmed() ヘルパーを追加します.
Apply word replacement at translation time, not ingestion
Original text is preserved in the DB so that adding a new rule and re-triggering translation is all that is needed to update existing records. Changes: - Chang...
クライアント側チェンジログの検閲を削除 — バックエンドで処理
単語の交換と秘密の赤字が変更ログSanitizationに移動 サービス (SecurityService) なので、DB ストレージと翻訳の前にサニタイズが起こります。 フロントエンドはテキストに触れる必要はありません.
Move changelog word replacement to backend before translation
Text replacements (Docs→Docs, Meet→Meet, etc.) and secret name redaction (K8s secret names→***) were previously applied client-side in ChangelogClient.tsx, mean...
空の API 応答と課金タブの優雅な劣化を処理する
- billingApi の get/put のヘルパーは空の応答ボディを安全に扱うようになりました res.json() を空の入力でクラッシュする代わりに - PlansBillingTab loadDataは、.catch() ですべての課金API呼び出しをラップします。 そのため、個々のエンドポイントの失敗はペ...
Check TeamMember.isOrganizationOwner flag for owner detection in my-networks endpoint
The previous check only looked at org.getOwner() (user_id_owner column) which can be null for existing orgs. The authoritative owner flag lives on the TeamMembe...
請求プロキシのための***セッションからorg/memberコンテキストを解決する
BillingService コントローラーは X-Org-Id と X-Member-Id ヘッダーが必要です。 直接呼び出し(APIServiceをバイパス)すると、これらは設定されていない。 次に、Next.js プロキシは、*** Cookie を読み込み、セッションを Redis、orgID と Member...
APIServiceを介した代わりにk8s DNS経由で直接BillingServiceを呼び出す
Next.js サーバー側プロキシは、BillingService を呼び出します。 メニュー 直接、スキッピング APIServiceを介した不要なホップ。 BILLING SERVICE URL env varを使う デフォルトでは k8s の内部 DNS を使用します.
Add /api/billing/*のNext.js APIプロキシルート
請求 API クライアントは、/api/billing/* を相対 URL として呼び出されました。 APIService ゲートウェイの代わりに Next.js サーバーを押します。 追加 先に進むキャッチオールプロキシルート(商取引市場としてのサメパターン) ForwardToApi → APIService → ...
