コンテンツへ移動
KAMOUniverse

チェンジログ

何が新しいの?

プラットフォームのすべての改良 それが出荷される

  1. · kamo-internal

    自分の行からメンバーをメールする

    メンバーの行にチャット、コール、プロフィールの横にあるメールアクションを追加し、 受信者のメッセージツールは既に満たされています。 orgが持っていることが隠されていない 有効なメール、ビューアはACCESS MAILを保持し、実際にメンバーはアドレスを持っています ファイルに — 空のコンポーザーを開くアクションは、アクションなしよりも悪くなります。 NavTopPanel のパー行ではなく、NavTopPanel で一度の権限が解決されます。 useEmailAvailability() プローブは、OTK + プロバイダーとメールボックスの往復を要し、 このパネルはアプリ全体にマウントします。 このページの先頭へ戻る string[] なので、フラット { to: '...' } はサイレントに下がり、コンポーザはゼロで開きます 受信者 — 同じトラップヘックスHeadPopover ドキュメント.

  2. · MediaService

    ストレージにそれらをストリーミングすることにより、3ギブの添付ファイルを受け入れる

    file.getBytes() は、この大幅のアップロードを表すことはできません。Java 配列は、ただ単に停止します。 上記2 GiB — そのため、OutOfMemoryError で死亡したすべての添付ファイル ヒープと 1 GB の 1 GB のファイルを保存する割り当てが既にあった ディスクにスプール。 MultipartFileは現在、再オープン可能なソースとしてイメージングに行き、 まっすぐに流れます。 一致するために上げられた限界:ファイルごとの3GBにmultipart (3100MB)そう 独自のバウンダリとヘッダに対して最大の許可されたファイルは拒否されません。 media.attachments.max-bytes から 3 GiB. 複数部分のスプールをexplicit 24Gi emptyDir コンテナの書き込み可能なレイヤーではなく。 Tomcat max-swallow-size が -1 になっているので、 アップロードを拒否すると、リセット接続の代わりに4xxが配信されます.

  3. · kamo-shared-library

    Content-addressed ストレージをストリームし、オブジェクトがヒープを上回ることができるように

    チャットアタッチメントは3つのGibの天井に移動します。 storeContentAddressed は byte[] を取りました。 つまり、Java 配列が Integer で停止するということは表現できません。 マックス・バリュー MinIOStorageService.upload は、オブジェクト全体を 2 回バッファして、 次のノードに対して、パットをリトライします。 HashUtils.computeDigests derives Blake3 と一緒にストリーミングパスを追加します。 SHA3-256 は 1 つのパスから、UploadStreaming は、ノードごとに InputStreamSource を再オープンします。 バイトを保持するのではなく、新しい storeContentAddressed オーバーロード コンテンツを蓄積することなく、ハッシュ、献身、店舗。 ピークメモリは ファイルサイズではなく、MINIO 部分バッファ。 @Transactional ではなく非審正的に: gigabytes を格納し、行 オブジェクトが確実に格納されると(isMissing=false)のみ公開されますので、クラッシュ バッファされたパスの葉と同じ状態を残します.

  4. · kamo-internal

    タイトル モーゲージ フォーム パン 借入金(s)

    Loan/Borrower/Subject プロパティ フォームは、ファイル上のすべての借り手を提供していますので、 タブとペインのタイトルは、翻訳から来て、Borower(s) を読みます。 ローンと Subject プロパティは英語をハードコードし、次のインテルも解決しました.

  5. · kamo-internal

    アドレスからメールテンプレートをオフにし、オン/オフスイッチの背後にある

    作曲家のフッターのテンプレートピッカーがなくなった。 メッセージウェアのテンプレートは、 誰から送信されたかを別々に決定: 会員のプライマリアドレスは、それらとしてそれを署名し、 部門のメールボックスは、部門の連絡先の詳細を持つ部門としてそれを署名します、 組織の連絡先メールボックスは組織として署名し、別のメンバーのメールボックスサイン そのメンバーとして。 選択するために残っているのは、現在あるのは、 同じ角のスイッチ。 スイッチを切ると、ボディを正確にタイプします。 エディタは、その状態で署名を示した 送信されたメッセージがどれもなかったとき、null テンプレートが DEFAULT CONFIG に戻っていたので、 プレビューだけ; それは今ベアをレンダリングします。, 画面上にあるものは、何が出て行く. また、仕事のタイトルと部門は、構成された署名に表示されません修正します。 チームメンバーは、jobTitle公式/jobTitleTitle と DepartmentTitle として到着します。 部門 — すでにゲートされた userCellPhone のモバイル ラインを出力します.

  6. · kamo-internal

    利用可能なすべてのエージェントに一度に待機チケットを提供

  7. · kamo-internal

    Teal は、リード アラートから視覚的に区別する、request ポップアップを受け入れます

  8. · kamo-internal

    同じ検索可能なピッカーからメールボックスを切り替えます

    スイッチャは、ペアの弱い半分だった:すべての選択保持 メールボックス 会員が開くことができます。これは、org-wide access がすべてのメールボックスに お問い合わせ また、/accessible と呼ばれ、これらすべてをあらゆるものに構築します。 ページの読み込み — メンバーごとのクエリとメールボックスごとに別のクエリ。 開いたメールボックスを表示し、MailboxPickerDialogを反対に開くボタン /sendable。 リスト全体が読み込まれず、スイッチャーと From フィールドは同じ見出しの下に同じメールボックスを提供します。 同じエンドポイント。 エイリアス=false でエイリアスは除外されます。 1つの土地に送られた郵便 メールボックスを背後にあるので、開くことは何もありません。 toOpenableMailboxは拒否します 防衛の2番目の行としてそれら。 選択復元は、動作中に変更されません: クエリ文字列は既に id とアドレスを運ぶので、ボタンは待つことなくそれ自体をラベル付けします 一見すると、表示名が安い場合にのみ解決されます.

  9. · EmailService

    /sendable はメールボックスを開くコールアリアスグループをドロップします

    /messagesメールボックスのスイッチャーは、コンポーザーのFromと同じセットを提供します フィールド、マイナス1つのこと:エイリアスは開くことができません。 メールアドレス 後ろにメールボックスに埋め込まれているので、フォルダや何も表示しません。 呼び出し元によってフィルタリングされるのではなく、サーバー側を除外するので、合計の滞在 正直 — クライアントがページから行をドロップすると、「24 を表示」と報告します。 レンダリング中 41234' 21.

  10. · kamo-internal

    純粋受入ポップアップの決定機械およびパーメンバーのsnooze

  11. · kamo-internal

    キュースマリーとクレームエンドポイントをプロキシする

  12. · kamo-internal

    実行されたドキュメントをダウンロードし、実際の署名順を選択します

    送信者は、すべての文書に終えられた文書へのルートを持っていません。 封筒概要 kamo-signer app's 自身で署名されたDocumentUrl をポインティング BFFは、サイダーセッションで認証されるため、できる唯一の人 戻ってきたものを4時間、最後の署名者だった。 追加する OTKプロキシルートと、完成したエンベロープに関するダウンロードアクション。 ダイアログも routingOrder 1, 2, 3 を送信しました。 決して強制されない。 ESigService は今それを強制するので、選択は明示的である: どの注文でも(誰もが一緒に招待され、今日の行動とデフォルト) または一度に1つ。 「アクションが失敗した」の代わりに、Refusals がその理由を示す — ESigService 言葉でそれらを述べ、彼らは捨てられた - と resend/void サービスは、サービスが唯一の409になる場所が隠されています.

  13. · EmailService

    E-signatureテンプレートの変数をプレビューする

    管理者テンプレートエディタは、すべてのプレースホルダーブランクをキーにレンダリングします いいえsampleVariables 腕, そのため、 7 個の esign テンプレートはページとしてプレビュー 5つの新しいライフサイクル通知を含む空のギャップ。 1つの共有腕 ライフ サイクル 5 のため、招待およびステップ アップ コードのための腕プラス.

  14. · kamo-shared-library

    5つのエンベロープ・ライフサイクルのメールテンプレートが書かれていない

    E-signature envelope は 2 つのテンプレートを正確に持っていた: 招待と招待 ステップアップコード。 署名者 AFTER に起こることは何も存在しません 署名 — 署名アプリが「署名されたコピーが行われる理由 すべての関係者にメールが送信され、そのようなメールが送信されていません。 esign.envelope completed (各パーティの実行されたコピー) を追加します。 メニュー esign.signer decoderd ディレクティブ esign.envelope voided と esign.envelope expired、CANONICAL KEYS を使って すべての送信が永久的な 404 でなくエントリ。 また、既存の2つの署名機関で無料のテキストをエスケープ: TemplateRenderer エスケープなし、受取名、文書名、 スタッフタイプのメッセージはすべて無料テキストです。 明白な変形は供給しました per-org 行が入らないため。 EsignLifecycleTemplateTest は定数 → 点数キー → 送信キー ピン トリプル、すべてのプレースホルダーは、実際に送信者を埋める1つです.

  15. · MediaService

    チケットクレームレースを条件付きアップデートで決定

  16. · kamo-internal

    住宅ローン市場設定を7つのコヒーレントタブに再構築

    MORTGAGEマーケットページは、15タブ、それら貸し手のコンフィグの12枚、 同じ質問を2か所で回答しました。ヘッジは切り替えられました 資本市場は、その公差が政策の下で住んでいた間、サービス モデルとサービス利用規約は、タブを分離し、製品の有効化が行われた チャンネルルールが許され、チャンネルを禁止している間チャンネルの制限 委任は3つの場所にセットされ、誰が勝ったと言うことは何もありませんでした。 オペレータが実際に答えている質問によって分けられます: 機関ビジネスモデル、下書き権限、ライセンス 製品の有効化、チャンネルルール、リスクオーバーレイの提供 資本市場の執行姿勢、価格設定方針、資本政策 投資家とその委任, オーバーレイ, 配信, コミットメント サービングの姿勢、サービスポリシー オートメーション AI 自律性、ステージごとの自信の壁 パートナープロバイダーの接続、ベンダーディレクトリ 設定が完全に複数の場所から解決されるところ、ページは現在そう言っています 演算子を推測するのではなく: 権限セクションは、 委任の優先順位, チャンネルルールのヒントは、投資家のデリバリールールがビートと言う これらは、サービスの送金対象は org のデフォルトでラベル付けされます。 各セクションは、約100行を置き換えて、新しいconfigKitから構築されます。 1つのセクション シェルが付いているタブごとの重複した load/save/error/snackbar 配管, 1つのテーブル、1つの保存棒およびタブごとの1つのトースト。 ライセンス、リスクオーバーレイ プロバイダの接続はインラインの編集を増加させます — API はサポートされるので、 行を削除するために使用されるチポを修正します。 4つの投資家サブエディタ セグメント化された制御の背後にある1つのコンポーネントになったので、投資家のコストを開く 4つのリクエストではなく1つ。 概要は、貸し手プロファイルの読み取り線を貸します。 貸し手ProfileValidationとchangeLog:以来存在していた3つのエンドポイント 表面が建てられ、かつて何も呼ばれなかったので、 プロファイルが検証されているか、どのモジュールがオンになっているかを参照してください。 古いスラグに対するリンクは、サイレントランディングではなく再マップされます 概要は、SettingsView が未知の ?tab= をインデックス 0 に解決するためです.

  17. · kamo-internal

    検索可能なダイアログからアドレスから、ドロップダウンではなく、

    このリストは選択できません。 /messagesスイッチャが提供するすべてのもの 送信可能で、すべてのACCESS ALL MEMBER MAILBOXES のメンバーのために orgのメールボックス — 数千万の大きなもの。 今の作曲家 現在の送信者をボタンとして表示し、検索および検索するピッカーを開きます サーバ上のページなので、セット全体が読み込まれません。 ピッカーシェルは、すでに解決したMemberPickerDialogから抽出されます。 これは org ディレクトリ: debouncing, paging, out-of-order responses, 無限スクロール、キーボードの運行、グループ見出しおよび空、間違い およびローディング スクリーン。 SearchablePickerDialog は、すべてを所有し、 fetcher と行レンダラー。 MemberPickerDialogはラッパーです。 そのプロップは変更されていないので、管理者フィールド、チャットメンバーの追加と電子署名 検索は非接触です。 MailboxPickerDialog は 2 番目のラッパーです。 グループ見出しは、スイッチャーの独自の翻訳キーを再利用するので、同じ mailbox は 2 つの場所の 2 つの異なるものの名前を付けることができません。 別のメンバーとして提案しても、メンバーのエイリアスが提供されます。 メールボックスではなく、アイデンティティにアドレスを置き、そのエンドポイントは、 記録されたメンバーの回答は、それらを知ることができません。 作曲家のマージ ピッカーのフェッチャーホックで最初のページへ.

  18. · EmailService

    メンバーが送信できるアドレスの検索可能なページエンドポイント

    GET /api/email/mailboxes/sendable は /accessible と同じ質問に答えます — 会員が送信するすべてのアドレス — が 1 つの統合ストリームとして データベースの検索とページ /accessible は、ピッカーは提供できません。 あらゆるグループをフルに材料化し、 ACCESS ALL MEMBER MAILBOXES を保有するメンバーのために org のメンバーで、メンバーごとにクエリを発行し、 メールボックス スタッフの5つの数字で、何千ものクエリと数 すべての呼び出しで、一致するペイロード。 特権の tail のみ SQL でページが作成されます。メンバー自身の mailboxes は、 エイリアスと共有メールボックスはJavaでカウントされ、最初にソートされるので、 自分のアドレスを検索することは、ページ40で答えることはありません。 メールボックス いくつかの助成金を通して到達可能リストは、最も狭いです。 同じルールのコンポーザーが適用されるので、アイデンティティは2回表示されます。 列は、他のメンバーのメールボックスのために、そこから来たグループを運びます 所有者は、クライアントはメールボックスのスイッチャーが使用するのと同じ見出しをレンダリングすることができます。 名前の解像度は、MemberDisplayName が正確に劣化します。 2 つは、 同意するか、同じ人が2つの場所で異なる読み取りをします.

  19. · MediaService

    発信者の請求可能なチケットキューを報告する

  20. · MediaService

    GET /types/{typeId}/slots なので、設定エディタはスロットをリストできます

    設定 UI は、このパスを常に取得していますが、POST/PUT/DELETE は マッピングされたので、空中スロットタブは405を取得し、空のレンダリング。 いいね! /slots/available これは、フィルタリングなしでタイプのすべてのアクティブなスロットを返します 事前の予約通知または児童の組織制限により、管理者は確認する必要があります 誰が現在予約できないものを含む、設定されたスロット。 各スロットの子に沿う制限の乗車OrgRestrictions、従ってこれまた /slots/restrictions は、UI の試みを読み込みます.

  21. · MediaService

    1つのサービスで請求可能なチケット述語を所有

  22. · kamo-internal

    メールボックスを部署や組織に割り当てる

    部門ダイアログの連絡先メールはフリーテキストだったので、アドレスに名前を付けることができます orgは所有していません。 orgの実際のメールボックスにピッカーになる - 同じリスト ******************** 提供, ので “割り当て可能なメールボックス” 手段 同じセットが提供されます。 オプション、および "None" はデフォルトと方法の両方です。 フィールドのクリアボタンはワンクリックで行います。 Behavior-labeling 連絡先情報は、電子メールのテキストフィールドをそのまま保存し、 それの下に同じピッカーを獲得します。 2つは独立しています:テキストフィールドは何かです org が公開し、メールボックス名は org 自身のもの。 1 つの MailboxSelect は画面の両方で機能しているため、共有キャッシュされたフェッチの上にドリフトできません。 そのため、連絡先の読み込み行とそのピッカーは、各リクエストの一覧ではありません。 ザ・オブ・ザ・ 状態は目的に明確に保たれます: メールボックスなしのorg、メールのバックエンドは、 ダウンして、メールボックスを削除したprovider-sideは、それ以外の場合は、すべてのレンダリングを空のものにします。 フィールド。 最後の 1 つは、不割り当てではなく「利用できなくなった」と表示されます。 階段のポインタは誰にもそれを固定することができるように見える必要があります。 部署は、解決したアドレスをポインタとともに保存します。 セキュリティサービス mailboxId の前のビルドでは無視してメールを読み込み、この変更なしで 最初に保存されたすべての部門のアドレスをクリアします。 現在、ビルドをデプロイしました。 再構築サービスはフィールドを無視します。 ブリッジを削除します。 すべての環境が過去に作成されると.

  23. · InitializerService

    部署や組織のメールボックスポインタ、部署のバックフィル

    DEPTS.MAILBOX ID と ORGS.CONTACT MAILBOX ID は FK 無しで両方のプレーン UUID email provider.mailboxes: mailboxes は外部プロバイダから同期し、削除できます。 プロバイダー側、メールボックスの削除エンドポイントは、部門について何も知らず、 実際の FK は、どちらも失敗に変わります。 DEPTS.EMAILは無料のテキストであり、ミックスを保持しています。 本当にオルガの1つであるアドレス メールボックスはメールボックスのケーシングにリンクされ、書き換えられます。 support@KamoCRM.com メールボックスのアドレスは決してなかった。 マッチングメールボックス無しのアドレスはできない フィールドを置き換えるピッカーによって表現されるので、それらはクリアされます。 destructive ステートメントと、今日の Sales@ および Corporate@ をカバーする非審議的です。 ORGS.CONTACT EMAIL は単独で残っています。 独自のテキスト入力とメールボックスの座りを保つ それを交換するのではなく、それ以外にも.

  24. · kamo-shared-library

    メールボックスの1つで部門とorgのポイントを聞かせてください

    部署の連絡先メールはフリーテキストだったので、 org のアドレスは 所有しない -- 1 組が付いている 3 つの部門の 2 つは今日それを丁度行います。 今のところ 組織のメールボックスの1つにポインタを保持し、組織は同じを獲得します 既存の contactEmail の横にあるポインタは、非接触です。 割り当てはポインタであり、何もない:部署や部署をメールボックスに記録する org は、誰にもアクセスできないように、アクセスを許可します。 どちらの列も、FK 無しの UUID を email provider.mailboxes に平らに記述します。 メールボックスは外部プロバイダから同期し、プロバイダ側から削除することができ、 mailbox の削除エンドポイントは、部門について何も知っていない - 実際の FK は両方をオンにします 失敗する者たち。 階段のポインタは受け入れられた費用であり、UIはそれに直面します。 Department.email は、割り当てられたメールボックスが解決するアドレスを保持します。 消費者はアドレス、IDではなく、メールボックスアドレスが不変です (updateMailbox は表示名とパスワードのみ受け付けます)ので、コピーはドリフトできません。 両方の書き込みを割り当てる。両方のnullをクリアする。 別の組織からのメールボックスは 拒否 -- ピッカーはこのorg'sだけを提供しますが、要求はそれなしで作ることができます、 そして、クロステナントのポインターは、別のアウトバウンドメールに1つのorgのアドレスを置くでしょう.

  25. · kamo-internal

    ポジションのマネージャーフィールドとアプリ全体で1人のユーザーピッカー

    ポジションカードは、必要に応じてマネージャーを獲得します。 検索ではなく、ドロップダウン: org は保持できます 何千もの名前、そしてそれらすべてで選択する唯一のものはスクロールです。 拒否された管理者 — 報告ループ, 言う — サーバの理由をではなく、 会員が行動できない汎用障害。 MemberPickerDialogはピッカーです。 サーバ上での検索、結果はページに到着 時間とスクロールは、次のいずれかを尋ねますので、ここにディレクトリを保持しません。 そのまま読み込む 名前を知っている人にとって最速のルートなので、コマンドパレット ブラウジングは、矢印の移動、ピックの入力、エスケープのクローズ、 そして、フッターはそう言っています。 行はタイトル、部門、電子メール、レポート数を運ぶ - 十分 同じ名前を分けて2人に伝えます。 受取不可の人 可視 リストにサイレントされていない名前がバグとして読み込まれている理由。 すでに2つのピッカーが存在し、大きなオルガンを生き残ることはできません。 電子署名者 ダイアログとチャットのadd-members は、すべてのメンバーをフェッチし、フィルタリングされた両方をポップアップオーバーします。 ブラウザ どちらがこのダイアログをレンダーし、独自のソースを維持します。署名者は、任意のことができます メンバー、チャットのディレクトリは単なるスタッフではなく、同じ検索、キーボードを獲得しています 取り扱いと外観。 ポップアップがAddChatMembersDialogになります。 ポップアップ.

  26. · SecurityService

    管理者を設定し、ディレクトリを一度に検索

    GET **************** は、セッションの org のディレクトリの 1 ページに応答します。 データベースで検索、注文、およびピアジングが起こる; 敵対的な ?size= がキャプチャされます。 ワードは ANDED と LIKE メタキャラクタがエスケープされるので、アンダースコアで貼り付けられたメールは、 それを拡張するのではなく検索します。 プラットフォームシステム利用者は決して現れません。 管理者のセキュリティが読み書きできるようになりました。 3つの拒絶反応は、電話機を注文する それらをヒット:この組織のチームメンバーではなく、自分自身、またはすでに報告している人 このメンバーを通して、最後はレポートラインをループに閉じないクエリウォーキング スキーマに住んでいることができないのは終了できます。 管理者は、BEFORE に何かを書いています。 保存は 1 つのトランザクションを 1 つに渡します。 役割、権利、タイムアウト、ポジション; 400 の部分を経由して戻すと、まだコミットします その点まで書かれているすべては、その応答は拒否された管理者を報告します。 静かに変化する役割。 MemberAvatarUrlServiceは、新しいコードのアバターURL構造のホームです。 複数 管理者は、漂流したプライベートコピーを運ぶ — AccountController はまだピック hibernate プロキシの false で、 .png を実行します。 JPEG用のURLです.

  27. · kamo-shared-library

    マネージャー、そして大きな組織を生き残るディレクトリ検索

    チームメンバーは、報告する人に対して、オプションの自己設定を獲得します。 columnDefinition は INT8 にピン留めされたので、Hibernate はメンバーをコピーできません。 ID の DEFAULT ユニーク rowid() を参加 列とバックフィルは、存在しない管理者とすべての列。 TeamMemberRepoがsearchDirectoryを獲得: orgのディレクトリの1ページ、フィルタリング、注文 データベースにウィンドウをつけます。 スタッフ5名でorgsに書かれているので、 caller はページ数以上を保持しません。すべてのキーストロークでピッカーが実行されます。 条件は、 "融資" の検索を可能にするものである 1 つの汚染されたhaystackに対してANDed LendingのAna; ORed LIKEのチェーンは、LIKEのみが連続一致しているため テキスト。 各協会は、明示的なLEFTと結合されます。暗黙のパスは、Innerです。 JPQLでは、無事に部署を使わずにみんなを落とす。 サイクルはスキーマで表現できませんので、findManagerId の 作家 歩く a マネージャーを受け入れる前に、一度にチェーン1リンクを報告する.

  28. · InitializerService

    チームメンバーにマネージャーを与える

    MANAGER IDをmember team member に追加し、レポートの無効なセルフリファレンス ライン。 何も埋め戻しはありません:管理者は完全な答えではありません。 チャートと誰にとっても割り当てられません。 DROP DEFAULT は、ADD COLUMN — ddl-auto: update ではなく、ロードベアリングステートメントです。 カラムを最初に作成します。 id が INT8 DEFAULT であるメンバーへの参加列 unique rowid() は、エンティティティティティティティティがカラムの定義をピンでないとデフォルトを継承します。 既存の行をランダムな管理者 ID でスタンプします。 孤児と自覚 既定の列が既に記述されている明確な ids をスイープします.

  29. · InitializerService

    ネストされた部門に DEPTS.PARENT DEPT ID を追加

    バックフィルなしのnullable -- nullは、すべての既存のものであるトップレベルを意味します 部門は最も多く滞在します。 明示的なDROP DEFAULTでUUIDを宣言。 部署キーオフ UUID DEFAULT gen random uuid() と、デフォルトが受け継ぐ FK カラム すべての既存の行にランダムな親で押印し、それらすべてを偽装し、 次の制約に失敗します.

  30. · SecurityService

    作成および更新によって親部門を通して下さい

    DepartmentService は、8 つの位置引数の代わりに DTO をリクエストします。 親は同じタイプの列でニンスになるのではなく、ペイロードに参加します 文字列。 変異エンドポイントの Org のスキャッピングは変更されません。親のテナント サイクルガードと一緒に生活を確認してください.

君の宇宙は待ってる

数分で無料で開始できます。準備ができたらいつでも製品を追加できます。移行も新しいログインも不要です。

クレジットカード不要