すべての nav アイテムに対するメンバーの権利を強化する
Nav の各項目は org の機能フラグとメンバーの右の両方が必要です。 7件の新規アクセス権が追加されました。ACCESS COMMERCE、VIEW CALENDAR、ACCESS CHAT、 Access MAIL、ACCESS VOIP、VIEW SUPPORT、VIEW ANALYTICS(IDs 112-1...
7モジュールアクセス権(ID112-118)を追加
ACCESS COMMERCE、VIEW CALENDAR、ACCESS CHAT、ACCESS MAIL、 ACCESS VOIP、VIEW SUPPORT、VIEW アナリティクス
Use avatarType field + JDBC for photo URL generation to handle Hibernate proxies
**************** previously used instanceof AvatarPhoto to determine avatar type and cast to read fileExtension. When Hibernate returns a base-class proxy (e.g....
Update EMAIL_VERIFICATION sample vars to match current template
Use expiryText instead of expiryMinutes (renamed variable), and update verifyLink to point to the register subdomain (correct send path).
ブロックデザイナーのフルドキュメントボディHtmlのダブルラップを防止
BodyBlocks が null で、bodyHtml が完全な <!DOCTYPE html> ドキュメントの場合 (例:canonical シードテンプレート)、単一のブロックとしてインポート serializeFullEmailHtml を 2 番目の <!DOCTYPE html> シェルにラップします。 電...
Pass human-readable expiry time to email verification template
Add humanizeMinutes() helper that formats minutes as days/hours/minutes (e.g. "1 day" for 1440 min). Pass as {{expiryText}} to match updated canonical template ...
電子メールの検証テンプレートの改良 — URL のフォールバック、強制的なテキスト、件名
- コピーペーストフォールバックとしてボタンの下にプレーンテキスト認証リンクを追加します - {{expiryMinutes}} から {{expiryText}} への変換変数 「1440分」ではなく「1日」など、読みやすい形式 - 「 {{orgName}}アカウントに関連付けられているメールを確認する」の対象とな...
隠し入力寸法をゼロにすることで検証ページレイアウトを復元
MUI Boxは数値幅/高さ値0〜1をパーセンテージとして解釈するので、 幅:1は隠された入力カバー完全なカードをしました。 0 へ変更 入力は見えないがレイアウトに干渉しない.
Preserve DB domain case in NoReply from address
Removed toLowerCase() — the domain already comes from resolvePrimaryDomain which reads org_domains from the database, so case is canonical from DB.
テンプレート保存の外側のフレームでフルメールHTMLをシリアル化
- serializeFullEmailHtml はブランドの外のフレームの内部のブロックを包みます (ヘッダーロゴ、タイトル/サブタイトル、コンテンツエリア、フッターロゴ+ org名) 絶対 URL を使用して、メール クライアントはイメージを取得できます - 外枠の設定(ロゴオプション、タイトル、サブタイトル)は保...
ブランディングされたフレームをメール検証のキャノンテンプレートに追加
適切なメールシェルで内部コンテンツをラップ: org の名前のヘッダー、 パッドを入れられた内容区域およびフッター。 識別子として {{orgName}} を使用します.
Add code-based email verification path to /verify-email endpoint
The endpoint now handles both token (link click) and userId+code (manual 6-digit entry). Token path unchanged; code path hashes the supplied code and matches ag...
トークンリンクの自動検証とログインへのリダイレクト; コードフォーカスインジケータを追加
- /verification?token=xxx は、マウント時に checkEmailByToken を呼び出すようになりました。 成功へのログインをリダイレクトします。失敗時にコードエントリに戻ります - アクティブコードボックスは青いリングを示していますので、ユーザーが入力している場所を知っている - 初期エラ...
Lift *** ウィジェット 上記 クリックツーフォーカスオーバーレイ (z-index)
オーバーレイ (position:absolute, z-index:0) は Capcha を覆いました DOM 注文で後で登場するのでウィジェット。 z-index:1 を追加する *** コンテナは、ポインタイベントが到達できるようにします.
Remove nonexistent postfix-lmdb package, install lmdb library instead
postfix-lmdb is not a valid Alpine package; lmdb support is built into the base postfix package. The pod was CrashLoopBackOff due to apk failure.
Add weekly image prune and journal vacuum CronJob for k1m1
CronJob runs every Sunday 3am, privileged, pinned to k1m1. - crictl rmi --prune removes unused container images - nsenter journal vacuum enforces 500MB cap - CI...
Fix Docs image registry, add Recreate strategy to coturn/postfix, increase qdrant memory
- Docs: fix wrong image registry (redis.kamo.svc... → **************** add Recreate strategy - coturn: add Recreate strategy to prevent rolling update port conf...
コンパクトなエディタヘッダー — 大規模なタイトル/タブを削除し、アクションを nav 行に移動
スティッキーヘッダカードを削除します(タイトル、サブタイトル、保存/キャンセル/プレビュー) ボタン、編集/プレビュータブバー、EmailTemplateEditからReclaim〜200px エディタ上の垂直空間。 アクションボタンが右揃え 既存のback-button/breadcrumb nav の行で emai...
検証ページで、各検証/結果の試みの前に必ず***
***は、すべてのアクション(成功または失敗)後にリセットされますので、新鮮な その後の試みごとに解決が必要です.
Switch Postfix sasl_passwd from hash to lmdb format
Alpine postfix build does not include hash support — postmap and smtp_sasl_password_maps were silently failing, deferring every outbound relay attempt through s...
インラインをレンダリングする代わりに登録後の/verificationにリダイレクト
URL を正確に保ちます。ブラウザは /verification ではなく /member を表示します.
Resolve root domain for NoReply from-address instead of bare subdomain
resolvePrimaryDomain() was returning the first domain entry (e.g. "www") which produced NoReply@www. Now prefers root domains (parent == null) so transactional ...
Populate all EMAIL_VERIFICATION template variables
Was sending only {token, code} — template also needs orgName, firstName, verifyLink, and expiryMinutes. Load org and user to build the full vars map, and resolv...
Add internal.auth.secret to EmailService configmap
InternalAuthFilter was rejecting all service-to-service calls (send, seed-org) with 503 because internal.auth.secret was unconfigured. Matches the same INTERNAL...
EMAIL NOT VERIFIED をリダイレクトして登録/リダイレクト
ログインページと関連するすべてのインラインメールVerifyCardを削除します。 状態/コールバック。 EMAIL NOT VERIFIED では、ユーザーは転送されます。 ************************************************************************...
ログインリダイレクト用の /resend-verification ページを追加
?email を受け入れるスタンドアローン /resend-verification ルートを作成します。 ?userId クエリ パラメータ、PostCompletionScreen を一貫して再利用 電子メール検証UX。 registerResponse.alias をオプションで作成する ページは登録エイリアスな...
Allow transactional send on port-25 relay and auto-seed missing templates
Port-25 SMTP (postfix) requires no auth — transactionalCredentials() was throwing ProviderUnavailableException when user/pass were unconfigured, blocking all ve...
Use subdomain-aware SQL to match findByDomain JPQL logic
Org domain lookup in resendVerification was doing an exact-match query that failed for subdomains stored as child records (e.g. 'api' with parent 'kamocrm.com')...
Host/X-Forwarded-Hostを設定すると、APIServiceは正しいorgを解決します
APIServiceは、X-Forwarded-Hostをrequest.getServerName()で上書きします。 Host ヘッダーから。 明示的なホストヘッダがなければ、K8s内部サービス hostname は SecurityService に転送され、org が何も返さないようになっている。 ログインプロ...
Correct EmailService URL port in configmap (4203 -> 80)
EmailService K8s service exposes port 80, not 4203. Verification emails were timing out on every registration attempt.
電子メールの検証画面を再設計+メールのバグを修正
- PostCompletionScreen: アニメーションorgの背景とフルページレイアウト, ガラス形態のカード、ロゴ、視覚6桁のコード ボックス、成功/検証された状態 - resendVerification: リクエストボディでメールを渡す (バックエンドはそれを必要とします)
Bypass JPA org lookup to avoid Hibernate cascade flush error
**************** triggers **************** which causes a Hibernate auto-flush. That flush fails because Organization.features was previously replaced with a pl...
GetOrganizationByDomain から eager 機能読み込みを削除します
特長は、この方法のほとんどの発信者と関連しないorgレベルの懸念です (例:登録、ログインドメインの解像度) setFeatures() で強制読み込み Hibernate-trackedコレクションを交換し、カスケード orphanRemoval エラーを引き起こします。 実際にそれらを必要とするあらゆる発信者のため...
Mutate は、カスケードの orphanRemoval エラーを回避するために、場所内のコレクションを提供しています
Org.setFeatures(newList) を呼び出すと、Hibernate-tracked persistent を置き換えます。 クエリが自動フラッシュをトリガーしたときに、JpaSystemException を引き起こしたコレクション 開いた EntityManager セッション (OpenEntity...
Use getReferenceById to avoid cascade orphanRemoval flush error on registration
Loading Organization via findById inside @Transactional caused Hibernate to detect the features collection was de-referenced during auto-flush, throwing JpaSyst...
認証メールを userId ではなく、X-Forwarded-Host を転送
SecurityService /register/resend-verification は、本文のメールを期待します。 userId (ログインエラー応答が含まれていない) ではありません。 詳しくはこちら X-Forwarded-Hostは、バックエンドが正しい組織を解決できるようにします.
マッチカモ内部アバターストレージ — 3 サイズ、Mino、別々のアップロードステップ
Crop ダイアログがキャンバス、同一で 3 つの PNG blobs (50/150/350px) を生成 kamo-internal's AvatarManager へ。 登録後 userId を返します。 メニュー (新しいunauthenticatedエンドポイント) emailVerified=false で...
Add register-photo endpoint for unauthenticated post-registration avatar upload
POST **************** accepts userId + file/fileSm/fileMd/fileLg without a session. Guards: user must be unverified and have no avatar yet, preventing abuse aga...
EMAIL NOT VERIFIED エラーをリッチな認証カードに置き換える
ログインが EMAIL NOT VERIFIED に失敗すると、ログインカードが置換されます。 洗練された「チェックボックス」画面: アニメーション封筒SVG 開口部の折り返しと フローティングスパークル、マスクされたメール表示、30秒のメールボタンを再送 SVGカウントダウンリング、成功/エラー/レートリミットフィー...
AVIFとSVGフォーマットをサポートするフォトアップロードを拡張
画像/ avif と image/svg+xml をファイル入力の受け入れリストに追加し、 検証レグレックス。 ヒントラベルを更新して、すべての6つのフォーマットをリストします。 kamo-internal は既にイメージ/* を受け付けていますので、その変更は必要ありません.
