チェンジログ
何が新しいの?
プラットフォームのすべての改良 それが出荷される
· SecurityService
Implement hash-based file storage for avatars
- Generate SHA-256 hash from avatar ID after persistence - Store hash in database fileHash field - Upload files to MinIO using hash-based naming: {hash}.{fileExtension} - Update all URL generation to use hash instead of ID - Add backward compatibility: generate hash for old avatars without hash - Update photo upload, Avatar Creator creation, update, and delete operations - Prevents enumeration attacks by making file names unpredictable
· kamo-shared-library
安全なファイルストレージ用のAvatarエンティティティにfileHashフィールドを追加
- アバター ID の SHA-256 ハッシュを格納する fileHash カラムを追加します。 - Hash は、Mino ファイルのネーミングでエンマイレーション攻撃を防ぐために使用されます。 - フォーマット:{id}.{fileExtension}の代わりに{hash}.{fileExtension}
· kamo-internal
アバターUIを再構築 - モダンでインタラクティブな、洗練された。 バックエンドは、直接URLを返す
· SecurityService
Rebuild avatar system - backend generates presigned URLs directly like backgrounds
· kamo-internal
MinIO認証をk8s configmapに追加
· kamo-internal
テーマドメインでMINIO SDKを使用してNext.jsで事前署名されたURLを生成する
· kamo-shared-library
GetPresignedUrlWithEndpoint メソッドをカスタムエンドポイントプリサイン URL に追加
· kamo-internal
アバタークリエーターアバターの作成、背景管理を並べ替え、アバター/バックグランドライブラリのサポートを追加
· SecurityService
Add avatar and background management endpoints
· kamo-shared-library
AvatarPhotoとAvatarAvatar Creatorクラス、refactor Avatar相続構造を追加
· SecurityService
Organize MinIO storage with folder structure and add Avatar Creator SVG support
- Updated storage paths to use organized folder structure: * members/avatars/photos/ for photo avatars * members/avatars/vector/ for Avatar Creator SVG avatars * members/backgrounds/ for background images - Added SVG file generation and storage for Avatar Creator avatars - Avatar Creator avatar creation/update now accepts SVG string and saves to MinIO - All presigned URL generation updated to use new folder paths - SVG files are saved when Avatar Creator avatars are created or updated
· SecurityService
Add avatar, background, and member profile management endpoints
- Added AvatarController with CRUD operations for avatars (photo and Avatar Creator) - Added UserBackgroundController for managing user background images - Extended MemberController with GET/PUT endpoints for member profile data - All endpoints support MinIO uploads to 'internal' bucket with presigned URL generation - Avatar endpoints support photo uploads and Avatar Creator avatar creation - Background endpoints support member-specific backgrounds - Member profile endpoints support updating avatar selection from user's collection
· kamo-shared-library
Add アバターとUserBackgroundリポジトリと事前署名されたURLサポート
- ユーザーによってアバターを見つける方法とAvatarRepositoryを追加しました - UserBackgroundRepository をユーザ/member で背景を見つける方法を追加 - 一時的なアクセス URL を生成するための MinIOStorageService に getPresignedUrl メソッドを追加 - プレサインされたURLは、デフォルトで7日間有効期限、設定可能な有効期限
· kamo-shared-library
UserPhoto と UserBackground のエンティティティをユーザー/メンバーの関係に追加する
- ユーザーとメンバーのプロフィール写真を保存するためのUserPhotoエンティティティを作成 - ユーザーとメンバーの背景画像を格納するためのUserBackgroundエンティティティティを作成 - 組織はユーザーレベル(member=null)とメンバーレベル(member set)の関連付けをサポートしています。 - UserPhoto には、現在どの写真がアクティブであるかを示す isSet フィールドが含まれます。 - UserBackgroundには、複数の背景を注文するための sortId フィールドが含まれています - 両企業は、作成、更新、およびアクティブな状態を追跡するために埋め込むEmbRecordStateを使用します - パフォーマンス最適化のための適切なデータベースインデックスを追加
· kamo-internal
共有メンバーヘッダーコンポーネントをメンバーレベルのアバター/背景オーバーライドで追加
- 背景画像とアバター表示で共有メンバーヘッダーコンポーネントを作成 - アバターと背景にメンバーレベルのオーバーライドオプションを追加(デフォルトユーザーとメンバー固有の) - 更新された ProfileTab 共有の MemberHeader コンポーネントを使用する - 更新されたMemberPermissionsTab 共有メンバーヘッダーコンポーネントを使用する - ヘッダーはプロフィールとメンバーシップ権限タブの両方に表示されます - 「既定のユーザーアバターを使用する」と「既定のユーザー背景を使用する」用のトグルスイッチを追加 - デフォルトのテーマの背景を使用しないときにカスタム背景イメージURLをサポート
· kamo-marketing
モバイルデバイス用の磁気コーダへのタッチサポートを追加
· kamo-internal
グリッドを自動に移動するレイアウトを変更して、スクロールバーなしですべてのレコードを表示する
- domLayout を autoHeight に設定するので、グリッドはすべての行に合わせて拡大します - オーバーフローを削除:グリッドコンテナボックスから隠される - 高さを取除いて下さい:格子ラッパー箱からの100%の制約 - Gridは現在、縦スクロールバーなしで現在のページのすべてのレコードを示しています
· kamo-internal
ステートとストリートの列でアドレスの列を置換する
- アドレス欄とアドレスフォルダを削除します。 - 連絡先の後にステートカラムを追加(サブディビジョン/ステートコードを表示) - ステートの後にストリートカラムを追加('street, city'フォーマットを表示) - アドレスを置き換えるFilterValueをstateFilterValueと通りFilterValue - すべての米国の状態と州のドロップダウン フィルターを追加します。 - ストリートテキストフィルタフィールドを追加 - ステートとストリート列のフィルタリングロジックを更新する - リセットからフィルタリングするアドレスを削除します
· kamo-internal
カラムの幅を指定した値に更新
- リードID列幅を300pxから245pxに変更する - 連絡先の列はフレックスのまま: 1 残りの幅を取る - 200pxから65pxへのステータス列幅の変更 - サブステータスの列幅を200pxから120pxに変更する - エージェントの列幅を150pxから120pxに変更 - 対応するフィルタフィールドコンテナ幅を列に合わせる更新 - 必要に応じて明示的なminWidthとmaxWidth制約を追加
· kamo-internal
Mock リード ID をランダム alphanumeric に更新し、アドレス カラムを 170px に設定します
- createRandomLeadId 関数を追加して、長さ13のランダムな英数字文字列を作成する - 連続番号からランダムな英数字('34FDK69HWGPPK'など)へのモックリードIDの変更 - アドレス欄の幅を250pxから170pxに更新し、明示的な min/max - アドレス フィルター容器の幅を170pxに一致させるために更新して下さい
· kamo-internal
日付の列幅を更新し、アクションボタンを置き換える
- 155pxから170pxに日付列幅を変更(作成および割り当て) - 日付フィルタフィールドコンテナを170pxの幅に合わせて更新 - 'Export Selected'、'Share'、および'Delete Selected'ボタンを以下のように置き換えます。 - 'Reassign Selected ({amount select})' と People アイコン - 'SwapHorizアイコンで選択したステータスを変更({amount Select})' - 人やスワフワリズのアイコンを素材UIからインポートする - ボタンは動的にラベルで選択したカウントを表示します
· kamo-internal
薄い灰色のボーダーの底を二次タブに加えて下さい
- ステータスタブコンテナに「1px固体rgba(0,0,0,0.12)」を追加 - /leads/view/ページにあるスタイリングにマッチする - 下のタブとコンテンツ間で視覚的な分離を作成します
· kamo-internal
フィルターフィールドを残し、下部に整列するグレーの背景を追加します
- センターからフレックスエンド(ボトムアライメント)にフィルター行アライメントを変更 - すべての残りのフィルター フィールド コンテナに灰色の背景 (#f8fafc) を追加 - 日付フィルタスタイリングに一致するように境界半径とパディングを追加します - 規則的なフィルタ フィールドは、下部の日付フィールドの高さに一致します - 日付フィールドは、積み重ねられたレイアウトで背が高いまま - すべてのフィルター分野は一貫した灰色の背景の処置を備えています
· kamo-internal
隔離された灰色の背景と縦に積み重ねの日付フィルター フィールド
- 日付フィルタフィールドを水平から垂直レイアウトに変更(flexDirection:カラム) - グレーの背景(#f8fafc)を日付フィルターボックスにのみ追加し、フィルター行全体ではなく - 日付フィルタフィールドの220pxの明示幅を設定する - メインフィルタ列コンテナからグレーの背景を削除します - より良い視覚分離のための日付フィルターボックスに境界半径を追加
· kamo-internal
UIレイアウトを改善し、モックデータを増加
- 日付フィルタフィールド(fontSize:0.75rem、ラベルの0.7rem)のためにテキストを小さくする - クイック検索をステータスタブと同じ行に移動し、右側に整列 - 50から250までのモックリードを増やす - グリッドからアクション列を削除します - 重複検索バーセクションを削除することによってレイアウトをクリーンアップ
· kamo-internal
作成および割り当てられたコラムのための日付範囲のフィルター コンポーネントを加えて下さい
- 作成および割り当てられた日付範囲フィルター(開始/終了日)のstate変数を加えて下さい - 開始日と終了日フィールドで日付範囲フィルターコンポーネントを作成します - 作成および割り当てられたコラムのための注文のフィルタ・ラインに日付範囲のフィルター コンポーネントを加えて下さい - 日付範囲でフィルタリングする filteredRowData ロジックを更新する - 空の日付フィールドは制限を意味しません(その終了のすべての日付) - 更新のリセットフィルタ機能クリア日付範囲フィルター - 日付フィルタは部分的な範囲をサポート(開始、終了、または両方)
· kamo-internal
コンタクト名をクリック可能なリンクを作成し、ダブルクリックしてリードを開く
- ContactRenderer を更新して、最初の名前と最後の名前を下線クリック可能なリンクとして表示する - onViewLead を介してリードを開くか、/leads/view/:id に移動する名前に onClick ハンドラを追加する - onRowDoubleClickedハンドラをAgGridReactに追加して、行をダブルクリックしたときにリードを開く - コンタクト名にはプライマリカラー、アンダーライン、ホバー効果があります。 - 列のどこにでもダブルクリックすると、リードが開きます
· kamo-internal
アイコンをサブスタタスドロップダウンフィルタに追加し、コントラクトの送信を更新
- 'Contracts Signed' を 'Contracts Sent' に更新し、Java enum と一致 - 契約のアイコンを変更 割り当てから送信 アイコン - アイコンをサブスタタスドロップダウンフィルタメニュー項目に追加する - インポート 送信 アイコンから 素材-UI - ドロップダウンフィルタの各サブスタタスオプションの横にアイコン表示
· kamo-internal
親ステータスカラーで各サブスタタスに固有のアイコンを追加
- 各サブ・スタタスに一意で関連性の高いアイコンを追加(例えば、新しいリードのための追加、左メッセージのメッセージ) - Iconsは親の状態色を維持します(新しいのための緑、Reckoningのための青、農場のためのオレンジ、Grimのための赤い、Voidのための灰色) - サブスタッズ用の追加のMaterial-UIアイコンをインポート - getSubStatusIcon を更新して、各サブスタタスを独自のアイコンにマップします - フレッシュ:人追加、メッセージ、イベント、スケジュール、PlayArrow、説明、ショッピングカート、支払い - Reckoning:同期、割り当て、AssignmentTurnedIn、ビルド、ローカルShipping - 農場: LocalFlorist、ThumbDown、PhoneDisabled、ビジネス、AttachMoney、AccessibilityNew、ブロック - Grim:Print、SignalWifiOff、PersonOff、警告、DoNotDisturb、RestoreFromTrash - ヴォイド:科学、コンテンツコピー
· kamo-internal
親ステータスカラーに合ったサブスタタスカラムにアイコンを追加
- 親ステータスに基づいてアイコンを決定するためにgetSubStatusIconヘルパー関数を追加 - サブスタタスアイコンは、親ステータスと同じアイコンと色を使用して - 新鮮なサブスタッズ:グリーンニューリリースアイコン - サブ・スタタスのレコン:ブルー・ガベル・アイコン - ファームサブ統計:オレンジ農業アイコン - Grim サブスタッズ: 赤いレイブン アイコン - Voidサブスタッズ:グレーキャンセルアイコン
