認証メールを userId ではなく、X-Forwarded-Host を転送
SecurityService /register/resend-verification は、本文のメールを期待します。 userId (ログインエラー応答が含まれていない) ではありません。 詳しくはこちら X-Forwarded-Hostは、バックエンドが正しい組織を解決できるようにします.
Add dao.repositories to JPA scan so EmailTemplateRepository is found
Same pattern as KamoInitializerService — explicit basePackages overrides default scanning and must include every package that has repositories.
一般的なメッセージではなくセキュリティプロキシを介して上流エラーボディを渡す
以前は、non-2xx で {error: "Upstream error"} を返しました。 SecurityService からのエラーメッセージ。 ステータスコードとボディを直接転送します.
Align registration field names and response shape with frontend contract
Frontend sends nameFirst/nameLast but controller read firstName/lastName, causing 400 "First name is required". Success response now returns {status, userId, al...
階段年齢を防止ReqType キャッシュは、年齢チェックを誤って表示する
- Org ルート: 24h から 5min までの Redis TTL を減らし、reqTypeMember を追加 検出を stale するため、DB の変更後にセキュリティ フィールドが新鮮にとどまる - RegisterFlow: デフォルトでは、org がいる間に false に includeAgeChec...
Add SecurityService and dao.repositories to EnableJpaRepositories scan
UserPhoneLookupRepository in recovery package was not picked up because EnableJpaRepositories only listed dao.repos and commerce. Added the SecurityService base...
ブラウザタブのタイトルを 'Register - {org name}' に設定
DynamicMetaLoader は useThemeConfig を呼び出し、ドキュメントを更新します。 タイトル org がロードしたら 'Register - {org.title}' へ。 静的フォールバック in layout.tsx は 'Create Next App' から 'Register' に変...
宣言とカプチャスタイルのキャストの前に使用されるステップからTSエラーを解決する
メニュー useMemos が useEffects を上回る それらに応じて、CSSVariablesタイプをインポートし、Capchaウィジェットスタイルのプロップに使用します.
Add dao.repositories to EnableJpaRepositories scan
EmailTemplateRepository lives under dao.repositories.email, not dao.repos, so it was not picked up as a Spring bean.
DEFAULT false を email verified カラム定義に追加
HibernateのスキーママイグレータはデフォルトなしでALTER TABLEを生成します。 既存の行でテーブルに失敗します。 columnDefinition はそれを強制します DEFAULT false を含むので、既存の行が正しく入力されます.
Resolve duplicate emailTemplateServiceClient bean conflict
**************** and **************** were identical @Components with the same default bean name, causing **************** at startup. Delete the duplicate in r...
Bump kamo-shared-library to 1.4.0
Docker Stage 1 builds kamo-shared-library main (now 1.4.0) and installs it to the local .m2; the service pom still referenced 1.0.0 which Maven could not find, ...
SP6補正と実装品質修正を適用
C1: NEXT PUBLIC H*** SITE KEY を使う 符号化されたプレースホルダーの代わりに env var C2:レジスタResponse.userIdとすべてのAPIパラメータを数値から文字列に変更(CockroachDBユニーク rowid精度) C3: クリアなストール *** トークン (set...
Address 4 code-review findings in registration and login paths
- Hide raw exception message in /register 500 path; log instead - Fail-closed (503) on email-verified DB check failure in login - verifyEmailToken throws if use...
Append Z to dateCommitted so JS parses it as UTC
LocalDateTime.toString() produces no timezone designator, causing JavaScript's new Date() to treat the UTC value as local time and display timestamps 7-8 hours ...
Convert PT midnight cutoff to UTC for today-count query
Commits are stored in UTC but the cutoff was a naive LocalDateTime in PT, causing yesterday-evening PT commits (00:00–06:59 UTC) to be counted as today.
MailboxId→id と ProviderStatus→status をメールボックスリストの応答で名前変更する
メンバーのメールボックスのリストに対するフロントエンドの期待を持つフィールド名を一直線化します.
すべてのCSS-filterロゴインスタンスをWhite SVGに置き換える
運行、SubNavigation、Footer、SubFooterおよびPreloaderはすべて使用しました 同じ壊れたフィルタの明るさ-0 の反転パターン。 交換する ボード全体にロゴフルホワイト.svg.
CSS フィルターの代わりにフッターでホワイトSVGロゴを使用する
Nav と同じ修正 — バックドロップフィルタ内の img の CSS フィルターは、iOS Safari では信頼できません.
テーマCSSのオーバーライドに対する!importantでカラースキームを監視する
DynamicMetaLoaderは、カスケードに勝つリモートCSSを注入することができます。 追加する !importantはカラースキームを保証します。ダークはテーマのスタイルシートで上書きすることはできません.
TouchOptimized min-heightの執行からフッターとnvのリンクを除外
TouchOptimized は minHeight:44px を全ての <a> 要素の短い値に設定しました。 フットナフリンク(〜20px)を含む44px。 水分補給時のこのラン 硬いリフレッシュ、各<li>の屈曲項目を高さ44pxにし、作り出す フッターリンク列のダブルスピアリング。 Footer/navリンクは...
CSSフィルタではなく、あらかじめレンダリングされたホワイトSVGロゴを使用する
バックドロップフィルタ内の img の CSS フィルターは、iOS Safari では信頼できません。 #ffffff にセットされているすべての塗りつぶしでロゴ-full-white.svg を生成し、それをロードします 直接 — フィルター無し、すべての装置で白く保証されるブラウザのquirks無し.
テイルウィンド ダーク モード バリアントをクラスベースにロックし、OS のメディア クエリは不要
Tailwind v4 デフォルトダーク: 優先色スキーム (OS 設定) に対応するユーティリティ。 @variant のオーバーライドにより、 .dark のクラスが .dark のときにのみ有効になります。 DOMに存在するOSは、任意のデバイス上の色をフリップすることはできません.
信頼できる白いレンダリングのためのロゴ リンクのインライン フィルター様式を使用して下さい
Img 要素の Tailwind フィルタクラスは、モバイルブラウザ全体で矛盾しています。 アンカー要素上のインラインスタイルは、いつでも明るさ(0) invert(1)を保証します.
ダークカラースキームを強制するので、ブラウザはライトモードレンダリングを適用しません
'light' から 'dark' まで、globals.css、generateViewport、および html 要素スタイル — これは、SVG とネイティブ UI のレンダリングからブラウザーを停止します。 暗い背景にロゴが黒く見えるようにしたライトモードで.
モバイル上のnav行の後ろのレンダリングからロゴを防止
CSSフィルタ付きのdiv wrapperは、競合する新しいスタックコンテキストを作成しました モバイルブラウザのヘッダーのバックドロップフィルタで、ロゴをペイントする ヘッダーの背景の後ろ。 Image 要素に直接フィルタークラスを適用します.
JumpToBarとPreviewBannerでスクロールバーとモバイルクリップを解決
- オーバーフローを追加する: 垂直スクロールバーを防ぐためにJumpToBar内部コンテナに隠される - PreviewBannerコンテンツをモバイルでラップできるようにするため、テキストがポートレート電話にクリップされていない
スペースY-4をフッターリンクリストにインラインフレックスギャップで置き換える
Tailwind スペース-y-4 は :where() (特異性 0) を使用して、CSS でレースします。 不連続な縦の間隔を引き起こしている堅い更新のローディング。 インライン スタイルはSSR HTMLに埋め込まれ、すぐに適用し、独立します 外部CSSロード注文.
Set Traefik externalTrafficPolicy=Local to preserve client IP
With the default "Cluster" policy, kube-proxy SNATs external traffic to the node IP before forwarding to Traefik. That caused Traefik to see the node IP as the ...
すべてのロケールに欠落したインテグレーションi18nキーを追加
「カスタムインテグレーションが必要?」の下の「リクエストの送信」ボタン ログイン ***************************************************** キーがどこにも定義されていないため。 全22ロケールにキーを追加 また、まだステープルカスタムCtaSubheadingコピーをク...
Www.kamocrm.com (canonical host) へのバックリンク対象
Apex https://kamocrm.com/ しかし、カモマーケティングホストはhttps://www.kamocrm.com/です。 すべての 3 つの変形の href を更新して、インバウンド SEO 信号が蓄積します。 apex と www を渡る分割ではなく、canonical ホストに対して.
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.
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.
