チェンジログ
何が新しいの?
プラットフォームのすべての改良 それが出荷される
· SecurityService
並列修正IllegalStateExceptionを409にコードで変換
共有libの楽観的なロック変更を伴うペア: LoanPipelineService 「同時変更:リフレッシュと再試行」をスローし、構造化 {error, code: "CONCURRENT MODIFICATION"} ボディなので、UI は 生のエラートーストの代わりにリフレッシュしてください.
· kamo-shared-library
LoanFile.statusを最適化して、レースの移行を防ぐ
同時「アドバンス」のクリックでマイルストーンの書き込みができます。 @Version を追加 LoanFile と LoanPipelineService.transition の明示的なフラッシュ OptimisticLock の失敗は ******************** として表します 変更: 409 に翻訳するコントローラーのための更新し、retry」.
· kamo-internal
名称表示、REO ライエンエディタ、webhook 管理者、文字列のクリーンアップ
ポーランドパスは、対応するバックエンドの変更でフロントエンドを揃えます。 - コンポーネントは解決された *MemberName フィールドをここからレンダリングします バックエンド (PipelineSection マイルストーン アクター, 条件クリア/免除 アトリビューション - ReoSection: liens は完全に編集可能になりました(読み込み専用を a で読み込みます) お問い合わせ 新しい LienRow と autosaved タイプ/クレジット/アカウントの最後の 4 / 未払い残高/月払い/クレジット限度/表示注文 フィールド、To-Be-Paid-Off toggle と per-row 削除。 - mortgageAppsApiがReoLien / patchReoLien / deleteReoLienを生成 と別の webhookSubscriptionsApi アウトバウンドのための表面 webhook管理者。 - 新しい /settings/integrations/webhooks ページ: サブスクリプションリストと add/edit モーダル、新しい表面に回転シークレットアクション Signing-secret one-time-reveal モーダル, per-subscription Delivery 履歴ダイアログ。 - type/mortgageApp.ts は *MemberName フィールド、esignTemplateUid を上回る EsignEnvelopeDTOとWebhookSubscriptionDTO / WebhookDeliveryDTOの形状。 - PipelineSectionを渡るハードコードされた英語のひもは、 PipelineBoardClient、ディスクロージャーセクション、価格設定セクション、HmdaLarClient、 そして、ApplicationListClient — すべてのラベルが流れます useTranslations().
· SecurityService
REO ライエンエンドポイント + Webhook サブスクリプション コントローラー
- MortgageAppController: POST/{uid}/reos/{reoId}/liens, PATCH /{uid}/reo-liens/{id}, DELETE /{uid}/reo-liens/{id} — 新しいBorrowerSectionService lien CRUDメソッドに委任。 - Webhookサブスクリプションコントローラアンダー************************ per-org アウトバウンド webhook 管理のため。 ゲートを読んで下さい LOS VIEW PIPELINE; 書き込み/rotate-secret/delete ゲート LOS UNDERWRITE LOAN.(ローアン) 署名の秘密をすぐに返す 作成/回転シークレット.
· kamo-shared-library
Name resolution, REO liens, TRID holidays, webhook delivery, ESignTemplate link
Cross-cutting polish pass across all LOS sub-projects: Member display name resolution (MemberNameResolver): - Single shared resolver service that follows the standard Kamo precedence User.name → Member.usernameAlias → User.alias → User.username and a batch resolveAll() for snapshot endpoints - DTOs grew sibling *MemberName fields next to every *MemberId: LoanPipelineMilestoneDTO, LoanConditionDTO, LoanPricingSnapshotDTO, RateLockDTO, AusFindingDTO, DisclosureSetDTO, TridTimerDTO - LoanPipelineService, LoanConditionService, LoanPricingService and DisclosureService now enrich all returned DTOs REO lien CRUD: - **************** via the ReoLien → RealEstateOwned → Borrower → BorrowerPair → AppMortgage → Organization join path - **************** / updateReoLien / deleteReoLien with the existing org-scoping pattern (requireBorrower) - MortgageAppController exposes POST /{uid}/reos/{reoId}/liens, PATCH and DELETE on /{uid}/reo-liens/{id} TRID federal holiday calendar: - **************** now skips US federal holidays per CFPB §1026.2(a)(6) plus weekends. Covers NYE, MLK, Presidents', Memorial, Juneteenth (2021+), Independence, Labor, Columbus, Veterans, Thanksgiving, Christmas with OPM weekend observance for the fixed-date holidays Outbound webhook delivery: - WebhookSubscription + WebhookDelivery entities with per-org config (target URL, event-type filter, NATS subject filter, signing secret, max attempts, last success/failure tracking) - WebhookSubscriptionService for CRUD with auto-generated whsec_ signing secrets, rotate-secret action - WebhookDeliveryWorker subscribes to los.pipeline.> on NATS, matches subscriptions, POSTs with HMAC-SHA-256 signature in the X-Kamo-Signature header, retries with exponential backoff, writes one WebhookDelivery row per attempt - WebhookSubscriptionController under **************** for subscription CRUD, secret rotation, and delivery audit listing. LOS_VIEW_PIPELINE for read, LOS_UNDERWRITE_LOAN for write E-sign — link to existing ESignTemplate (no new provider abstraction): - EsignEnvelope grew esignTemplateUid FK to the existing **************** so the disclosure envelope reuses the per-org signer roster and field placement design owned by ESigService. The send-to-provider flow continues to live in ESigService — no duplicate provider code in the disclosures package.
· kamo-internal
価格、開示、HMDA LAR UI
複数のサブプロジェクトは、エンドツーエンドを出荷しました。 サブプロジェクト5 — 価格とAUSセクションの詳細ページ: - 追加ダイアログ(プログラム、投資家、レート)で価格スナップショットリスト APR、ポイント、ロック日、用語、ソース、ノート) - 追加ダイアログでレートロックリスト(ステータス、ロック日付/有効期限、日、 レート、ポイント) - 追加ダイアログ(DU/LP/GUSエンジン、決定、 ケースファイル、リスククラス、生得ペイロード) サブプロジェクト6 — ディスクロージャーとTRIDセクション: - タイプ/deliveryの低下および推定された受諾が付いているディスクロージャー セット 日付表示 - パーセットのドキュメントのアップロード(マルチパート)とMinoOのバックダウンロード プレサインURL - セットごとのE-signの封筒(provider-agnosticのstub) - オーバーデュー/デューイン強調表示と「マーク」のTRIDタイマーリスト 満たされた"アクション サブプロジェクト7 — /applications/hmda-larのHMDA LARページ: - 年フィルター、リフレッシュ、CSVのダウンロード(ブロブフェッチ+アンカークリック) - FIG の仕様を映す 13 列読まれたテーブル - アプリケーションリストヘッダの新しい HMDA LAR ボタン
· SecurityService
価格、開示、HMDA LARのコントローラ
/api/security/mortgage-apps の下の 3 つの新しい REST のコントローラー: - MortgagePricingController:価格スナップショット、レートロック、AUS検索 CRUD ({uid}/pricing, {uid}/rate-locks, {uid}/aus-findings). - MortgageDisclosureController:開示セットと文書 (マルチパートアップロード+ミニオURLをプリサイン)、電子署名、TRID タイマーリスト+満足度。 - MortgageHmdaController:HMDA LAR JSONリストとCSVエクスポート ({hmda/lar} と {hmda/lar.csv}、オプションの年フィルター)。 すべてのコントローラーは標準的なセッションライト+神資格を再利用します コードベースの残りの部分からのパターン.
· kamo-shared-library
価格スナップショット、レートロック、AUS検索、開示、TRIDタイマー、HMDA LAR
サブプロジェクト5、6、7のバックエンドが一緒に出荷: サブプロジェクト5(優先&ロック): - LoanPricingSnapshot — エンドのみ引用符(プログラム、投資家、レート、 APR、ポイント、ロック日) - レートロック — ステータス、有効期限、壊れた理由でロックレートレコード - AusFinding — DU/LP/GUS は決定 + 原ペイロードでレコードを実行します - 新しい列: レートLockStatus、AusKind、AusDecision - すべての3を渡るCRUDのためのLoanPricingService サブプロジェクト6(ディスクロージャー+TRID + eサインスタブ): - 配達方法、先sumed-received の開示Set (LE/CD/etc.) メールボックスルールで計算された日付(営業日数学) - 既存のMINIOStorageServiceを経由してMINIOがバックアップするディスクロージャードキュメント - EsignEnvelope — 将来の統合のためのprovider-agnosticスタブ - TridTimer — LE/CD の問題が発生したときに自動的に腕を動かします。 ヘルパー CD-receipt-required, CD-consummation CD の制作 - ディスクロージャーサービスオーケスト発行、ミニオアップロード、事前署名 URL、封筒追跡、タイマー満足のダウンロード サブプロジェクト7(HMDA LAR): - HmdaLarRecordDTOは2018+ HMDA FIGのレイアウトを映します - HmdaLarService は既存の URLA のエンティティティから行をビルドし、 適切なフィールド引用とCSV; HMDAアクション 得られたコード LoanFileStatusから
· kamo-internal
LOSパイプラインUI — かんばん、詳細セクション、テンプレート管理者
サブプロジェクト4フロントエンド、エンドツーエンド: - /applications/pipeline(PipelineBoardClient):グループ化されたカンバン LoanFileStatus with オフランプレーン 下のハッピーパスカラム. 各カードの表面の借り手、融資額、日中ステータス、開封および 条件カウントをブロックする。 「...」メニューは、アドバンス/オフランプを提供しています / オープンディテール; アドバンスとオフランプの両方が同じ移行を開きます スナップショットから取得される法的次のステータス ラジオでダイアログ。 選択したフォワード矢印のとき、アンダーライターオーバーライドチェックボックスが表示されます ブロック条件をスキップします。 - /applications(list):新しい「Pipeline」ヘッダーボタンルーティング kanban; 既存のリスト + フィルターを保存します。 - /applications/[uid]: navの新しい「パイプラインと条件」セクション (サマリーとロアンとプロパティの間)。 セクションは流れを結合します ステータス、条件リスト(追加/クリア/ワブ付き) 削除)、ローンタイムライン、および同じ移行ダイアログ。 メニュー per-orgテンプレート管理者と CRUDリスト、追加/編集モーダル(タイトル、説明、カテゴリ、典型的) オフセット日、blockAdvancementDefault、displayOrder - タイプ/mortgageApp.ts:パイプライン/条件/テンプレートDTOタイプ、 LOAN FILE STATUSのマップ、オフランプヘルパー。 - app/lib/mortgageAppsApi.ts:新しいエンドポイントのクライアントメソッド.
· SecurityService
MortgagePipelineController + LOS PIPELINE 設定マップエントリ
/api/security/mortgage-apps の下の LOS パイプラインのバックエンドを公開します。 - GET /pipeline — かんばんまとめ - GET /{uid}/pipeline — 全スナップショット - POST /{uid}/transitions — 移行を実行 - GET /{uid}/conditions — リスト - POST /{uid}/conditions — 追加 - PATCH /{uid}/conditions/{id} — 編集 - POST /{uid}/conditions/{id}/clear — クリア - POST /{uid}/conditions/{id}/waive — マーク ワイルド (LOS UNDERWRITE LOAN) - DELETE /{uid}/conditions/{id} — 削除 (オープンのみ) - GET /condition-templates — リスト - POST /condition-templates — 作成 - PATCH /condition-templates/{id} — 更新 - DELETE /condition-templates/{id} — ソフト削除 右のチェックは、新しい標準セッションライトパターンを使用して LOS * 役割RightType エントリー; 神資格は同じを奨励します セッションデータ コントローラーの残りの部分としてGDバイパス。 設定マップ los-pipeline.* のキーを得るので、ops は専用の NATS をチューンできます env vars 経由で名前とサブジェクト フィルターをストリームします.
· kamo-shared-library
パイプラインステートマシン、条件、テンプレート、NATSイベント
サブプロジェクト4(LOSパイプラインとワークフロー)バックエンド: - 新しいenum LoanConditionStatus(オープン/クリア/WAIVED) - 新規事業:LoanPipelineMilestone(暫定的な移行監査)、 LoanCondition (各自の状態の1-loanチェックリスト行)、および LoanConditionTemplate (各再利用可能なチェックリストソース) - それぞれの新しいリポジトリ、プラスワンショットブロック条件クエリ - LoanPipelineStateMachineはURLAパイプライン(DRAFTを通した)を宣言 FUNDED)および普遍的なSUSPENDED/WITHDRAWN/DENIEDのオフ・ランプ、 各矢印に必要なロールレイトタイプ - LoanPipelineService がトランジションをアトマチックにオーケスト: 検証 合法性 + 右 + ブロック条件 (オーバーライドゲートによる) LOS UNDERWRITE LOAN) は、適切な LoanFile の日付列を押下し、 マイルストーンを書いて、ApplicationSubmission を書いてください。 法的に重要な移行(初期の開示、退会) SHA-256スナップショットで処理/アンダーライティング)、NATSイベントを公開 - LoanConditionServiceとLoanConditionTemplateServiceカバー CRUDの表面の残り - LosPipelinePublisherがJetStreamの対象者に公開 los.pipeline.transition.<orgId> と los.pipeline.condition.<org アイド> - NatsConfig は、専用の LOS PIPELINE ストリームを組み合わせる 既存のチャットストリームなので、保持は独立して調整することができます - ServiceType.LOS の 6 つの新しい RoleRightType エントリー (お名前) LOS VIEW PIPELINEは、 LOS TAKE アプリケーション、LOS PROCESS LOAN、LOS UNDERWRITE LOAN、 LOS CLOSE AND FUND, LOS SUSPEND OR WITHDRAW(ロゼ)
· kamo-internal
オリジエーター&提出セクション UI
サブプロジェクト3を閉じる: 発信者ルートは2ブロックを取得します 編集者(個人NMLS +組織NMLS + orgアドレス)に有線 標準800msのオートセーブが付いているpatchOriginatorおよび 投稿ルートは、逆クロノロジー読み取り専用タイムラインをレンダリングします AppMortgageの 投稿配列(最新のエントリは緑色にパルスします。) メモとスナップショット ハッシュ表示時に表示します。 メーキングスーン フォールバックは到達できませんので、キャッチオールブランチは削除されます.
· kamo-internal
HMDA デモグラフィック セクション UI
Coming-Soon のプレースホルダーを hmda のルートに置き換えます。 エスニック トリステートルックアップをインラインサブチェックボックスブロックで使用します。 ヒスパニックを選択(メキシカン/PR/カバン/その他+説明) レース 5つのトグルブロックとしてレンダリングして下さい(米国インド、アジア、黒、NHPI、 白) 条件付きアジア・太平洋諸島サブチェックボックス 下の格子。 性別、コレクション方法、および3 視覚観察の旗は確認の足車の下で掛かる.
· kamo-internal
軍事サービスセクションUI
軍用ルートのComing-Soonプレースホルダーを交換します。 ザ・オブ・ザ・ mortgageAppsApi.putMilitaryによるeverServedスイッチupserts また、サービスの状態をクリアし、期限を延期する レコード内の VA のデータ リンガリングを避けて下さい.
· kamo-internal
不動産所有セクション UI
REO ルートのComing-Soonプレースホルダーを交換します。 各物件 カードは住所、occupancy/status/intended使用、市場価値を編集します、 毎月の保険+税+HOA、および総/ネットのレンタル収入と 他のセクションと同じオートセーブパターン。 ネストされたライアンはレンダー 読み取り専用テーブル、コンポーネントのTODOノートとフッターヒント 行方不明 /reos/{id}/liens エンドポイントの説明.
· kamo-internal
責任と支出セクションUI
債務経路のComing-Soonプレースホルダーを交換します。 セクション2cの責任は無払いの残高、月払い、月払いを追跡します 残りの URL と 3 つの URLA の置換フラグ (終了時に支払われる) 支払われる前に、省略された)別のトグルとして; 省略された列のdim お問い合わせ セクション2d 他の月間費用は同じを共有します 借り手チップと総ストリップ(債務、月次債務の理解) サービス、月間費用、月間費用を組み合わせました.
· kamo-internal
アセット&クレジットセクション UI
アセットルートのComing-Soonプレースホルダーを交換します。 スプリット 借主の資産リストをセクション2a(銀行/退職/その他口座)に、 タイプ id < 50) およびセクション 2b (他のアセットとクレジット、id >= 50) ビア パブリックアセットタイプのID範囲、isJointとuseForCashToClose 毎列に切り替える 合計ストリップは、アカウントのサブトタル、クレジットを示しています 任意の行が値を運ぶとき、サブトタル、および組み合わせられた値.
· kamo-internal
雇用と収入セクションUI
雇用経路にComing-Soonのプレースホルダーを交換 フルURLAセクション1d-1gエディタ。 パーボローダチップセレクターミラー 宣言パターン;各雇用行が自動保存されます mortgageAppsApi.patchEmployment 同じ 800ms のデバウンス。 カード ヘッダは実行中の毎月の合計(ベース+オーバータイム+ボーナス+)を表します 手数料+軍+その他+自営業ネット セクション1g他- 収入行は、以下に自分のリストに住んでいます.
· kamo-internal
URLA 2021mortgageアプリケーションUI
新規 /applications ルートグループ、型 mortgageAppsApi クライアントを追加 セキュリティサービス/api/security/mortgage-apps、完全なTSのタイプに話します バックエンド DTO をミラーリングし、リードとともにサイドバーのエントリーを行います。 UI: /applications stat-bucket フィルターによるパイプラインビュー (すべて/いかだ/進行中/閉鎖中)、 検索、アニメーションカード(Framer Motion)、 空のステートCTA、スケルトンをロードします。 /アプリケーション/[uid] 細部のレイアウト:第一次が付いている勾配の英雄 借り手 + ステータスバッジ, スティッキーセクション 活動的な表示器が付いている柵、 アニメーションセクション遷移、オートセーブ インジケータ (保存... → 保存 ✓ → フェード). 生産の質に渡されるセクション: - Loan及び特性(セクション4a/4b/4c)完全なエディタ、オートセーブ800ms - 借主 (1003s) ペア管理, 結婚したジョイント toggle, add/remove ペア + co- 借り手, アニメーションの変異 - 宣言(セクション 5)/ボロージャーアンケート、 はい/いいえ/N/Aの破片制御、 Chapter-7/11/12/13 サブフロー バックエンドのサポートが付いたセクションですが、UI はフォローアップを決定しました。 雇用及び収入、資産、能力、REO、軍隊、HMDA、 ローンオリジンター、提出。 それぞれが「隣接する」カードをレンダリングするので、 ナビゲーションが完了し、スキーマが発見可能です。 すべてのコピーは、次のintl mortgageApps.*名前空間を通過します。 ハードコード。 MoneyInput / PercentInput / SelectInput / スイッチプリミティブ 未来のセクションで再利用可能な.
· SecurityService
URLA 2021 REST 表面用の MortgageAppController
完全な URLA アプリケーションライフサイクルを出す新しい REST コントローラー: GET /api/security/mortgage-apps 一覧 (概要) GET ******************** フルグラフ メニュー メニュー 削除 PATCH /{uid}/loan-file | /loan | /property | /originator トップセクション POST /{uid}/pairsはBorrowerPairを追加します PATCH /{uid}/pairs/{pairId} 編集ペア DELETE /{uid}/pairs/{pairId} ペアを削除 POST /{uid}/pairs/{pairId}/borrowersはBorrowerを加えます PATCH /{uid}/borrowers/{borrowerUid} 編集ボローバー DELETE /{uid}/borrowers/{borrowerUid} は、Borower を削除 メニュー メニュー メニュー POST/PATCH/DELETE/{uid}/gifts/{uid}/othermortgages GET /{uid}/lookups ← enum ダンプ OTKPreAuthFilter セッションによる Org-scoped; 制服 {error: msg} envelope 400/401/404/500 では、既存のサービスレイヤー @Transactional ルールを使用します.
· kamo-shared-library
URLAサービスレイヤー(リポジトリ、DTO、サービス、ルックアップ)
導入したURLAパッケージのフルバックエンドサービスレイヤーを追加します。 前のコミット: repos/applications/ 20 JpaRepositories は、各団体ごとにスコープ付け dtos/applications/ 応答 DTO (Long->String) + セットアップペイロード サービス/アプリケーション/ AppMortgageService (root + リード変換 + セクション保存)とBorrowerSectionService (ペア、借り手、雇用、所得、資産、) 負債、REO、宣言、軍隊、HMDA) 既存の LeadService パターンに従うコンベンション: - フィールドインジェクト @Autowired deps - クエリの@Transactional(readOnly=true) - 静的な.from (entity)の工場のマッパー、ひものとしてシリアル化された長い ID - IllegalArgumentExceptionは、非設立/検証の失敗のために - アプリケーションの組織 ID によるすべての操作 org-scoped MortgageLookupsDTO は URLA 列を 1 ショットで返し、UI を 決してハード コードのドロップダウン オプション.
· kamo-shared-library
URLA 2021年 住宅住宅住宅用住宅用住宅用住宅用住宅用建材
Refactor AppMortgage をフル URLA パッケージのルートで複数 1組あたり最大2人の借り手(結婚/ジョイントまたは 未婚)。 空のAppMortgageプレースホルダーを構造で置き換える 2021 URLA セクションごとにミラーリングするエンティティティエンティエンティエンティエンティエントグラフ: core/ LoanFile, Loan, プロパティ, LoanOriginator, アプリケーション 参加申し込み Party/ BorrowerPair("1003"), ボローバー 雇用/雇用(セクション1d/1e/1f/Sec.7)、その他収入(1g) 資産/資産(2a/2b)、ギフト(4e) 負債/賠償責任 (2c), その他経費 (2d) reo/ RealEstateOwned (Sec.3) + ReoLien 宣言/宣言(Sec.5)、ミリタリーサービス(Sec.7) hmda/HmdaDemographics (Sec.8) その他新婚夫婦/その他新婚夫婦 (4d) Assets/Liabilities/REO は "per-borrower with isJoint フラグ" の所有権を使用します。 なので、URLA「Borrower/Co-Borrower/Perth」の所有アカウント ラジオは暗黙のペアメイトの共同所有者と単一の行に崩壊します。 すべての通貨フィールドは、EmbMoney(BigDecimal +通貨)とすべてのレートを使用します EmbPercent を使用(4dp BigDecimal) — 二重なし、JSON なし。 ID戦略 既存の慣行に従います: user-facing のエンティティティティティエンティティティティティエンティティティティのための unique rowid() gen random uuid() は内部のディテールテーブル用のものです。 JSONB は、 ApplicationSubmission 監査のスナップショット(ライブデータではなく意図的に)。 スキーマは KamoInitializerService によって hibernate.ddl-auto によって自動作成されます 再構築されたJARでは、DDLスクリプトは必要ありません。 バックエンドサービス、UI、および残りのLOSサブプロジェクト(パイプラインワークフロー、 価格/ロック、開示、HMDAの報告)は、その後に決定されます 7パートごとのセッション.
· KlusterServices
メールの管理.kamocrm.com TLS エンドツーエンド
Auto-cert は Let's Encrypt の証明書を暫定し、維持します mail.kamocrm.com (ポート 80 の Traefik 経由で HTTP-01) で、 namespace 間でコンシューマーを同期させる 自動証明書の変更: - STATIC DOMAINSにmail.kamocrm.comを追加してください。 - 新しい CROSS NS CERT MIRRORS テーブルマッピング FQDN -> (ターゲット名空間) 展開を再起動する)。 デフォルトのエントリ: mail.kamocrm.com → ("mail", ["postfix"])). - Mirror secret to namespace() は、kamo からターゲットへ tls-<stem> をコピーします。 ns idempotently (tls.crt が実際に消費者を再起動するだけ 変更 — 毎分同期は安くとどまります)。 - restart deployment() は kubectl rollout を消費者に起動します。 更新された土地。 - wait for host cert ready と main ループに繋がったので、両方 auto-cert-driven issuances と cert-manager 自動更新プログラム propagate - 新しいロール/ロールバンディング(メールネームスペース)は、秘密を作成/更新し、 展開は、自動認証サービスアカウントへのパッチ。 Postfix の変更: - /etc/letsencryptのtls-mail-kamocrm-com(オプションシークレット)マウント。 - ブート時に、LEの証明書を/etc/postfix/tls/にコピーします。 それ以外の場合は、 短命の自己署名されたヘビオイルを発生させるため、ポストフィックスは開始できます 証明書が発行される前に。 - TLSv1.2+ で smtpd tls cert file/key file の実際の証明書を使う そして高い暗号。 提出 (587) 今、有効な、信頼できる証明書を提供しています 一度自動証明書が最初の発行を終了し、展開をロールスロイスします.
· kamo-shared-library
****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************
パブリック、トランザクションのproveRoleAssigned(memberId、 roleId)を追加します。 - 既にメンバーにロールが既にある場合は、no-ops。 - OrgRole を探し、新しい MemberRole の結合行を保存します。 - recomputes members rights applied なので、永続化されたスナップショットがピックアップされます 役割の権利はすぐに。 SecurityService の子-org-creation フローで、 新規の子供から作成者の管理者ステータスが親組織に 会員 — ユーザーの管理者が子供の管理を一貫した状態に保つ ドメイン(作成組織の場所) 所有者が認めた***は既に与えます それら owner+admin) と親のドメイン (既存の場所) 登録時間 チームメンバーセッションが欠如 CONFIGURE SYSTEM をオンにして /settings/account をオフにします.
· KlusterServices
逆プロキシpriceturbo.com apex + TLSでk1m1を介してワイルドカード
k1m1 Traefik は、priceturbo.com と任意の *.priceturbo.com の HTTPS を終了します。 subdomain、192.168.4.36:80で上流TrefikにプレーンHTTPを転送する 保存されているホストヘッダを使って(ratetack-upstreamサービスを使用する)。 自動認証は、STATIC DOMAINS を介して apex をシードします。サブドメインがピックアップされます 既存のTrefikアクセスログスキャンパスで最初にヒットした時に動的に — per-FQDN HTTP-01 certs では、ホスト名ごとに k1m1 に既に解決する必要があります.
· SecurityService
ワイヤー テンプレート セーブ recalc + セッション リフレッシュ + 有効な右診断
メニュー / updateモデル/deleteモデル **************************** は、RecalcAllMembersUsingModel を呼び出しました 持続的な変化の後に、すべてのorgはモデル(所有者または経由)で指摘しました ブランチタイプ) 同じ呼び出しで、member rights applied が更新されます。 ザ・オブ・ザ・ ブランチタイプの削除パスは、行が前のrecalcs orphaned子のorgsも再計算します モデルの外観が正しいので、その適用型解像度が低下します 戻る。 ************************ は、新しく完成した権利配列を書きます 既存の*** Redisエントリに、TTL +他のすべてのフィールドを保存します。 ライブタブは、ログアウト/ログアウトサイクルなしで管理者主導の変更を拾うことができます。 sessionRefreshController は POST /api/security/session/refresh を公開します。 caller's Own *** は、ライブウォーターフォールのクッキーまたはX-OTKから解決されます。 実行すると、結果が返されます。 クロスメンバーのスプーフィングは不可能です 構造によって:メンバー ID の変数はありません。 RightsDiagnosticsController が GET を公開 メニュー — 完全な滝を返します: カスケードソース(またはロール、デプ+デプロール) ジョブタイトル + jt ロール, 直接オーバーライド), 応用モデル + 非NOT SPECIFIED ロールタイプによるテンプレートエントリ, ライブ解決された権利は、に分割 ******************** と inSyncWithLive のフラグは、表面 永続したメンバー間のドリフト rights appliedスナップショットとライブ 滝は今でも生産しています。 Auth: 対象の org と いずれかでなければなりません ターゲットになれば******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************** または神モードを活動的に持っている.
· kamo-shared-library
チャンクされたrecalc + クロスモデルのファン・アウト + typeTemplate ノンフォースフォールバック
テンプレートの編集に必要な3つの要素を追加して、既存のメンバーに実際に到達 ログアウト/ログインサイクルを強制することなく: 1。**************** —すべてのオーガナイゼーションを歩く モデル( masterModelID か分岐タイプによって)および各チャンクされたrecalcs 会員の会員 rights applied コンパニオン recalcAllMembersUsingBranchType シングルブランチタイプのケースを扱います。 2. チャンク ******************** — 一括削除 + 保存 1 件 500名の会員チャンクなので、50k-member org は 1 マイルステートメントあたりの火災を発生しません。 3. ApplyTemplateRules の優先順位の修正 — typeTemplate の非力 GRANTED/NUKE DEFAULT非強制フォールバックの前にNOT SPECIFIEDを埋めます。 マッチ UI ラベル(デフォルトで有効になっています。子供は無効にすることができます)をラベルにし、防止します。 TEAM MEMBER のモジュールアクセス権は、サイレントに無視されます。 また、コンピュートMemberRights をパブリック・リード・スルーとして公開します。 SecurityServiceのセッションリフレッシュと診断エンドポイント.
· kamo-internal
ユニファイドDNSセットアップスタジオ、インラインヘルプ/レコード
分割された DnsProgressView + AliasStatusTable + ManualDnsGuide trio を置換します。 単一のガイド付き体験:各TXT/CNAMEレコードは1つに住んでいます インラインヘルプと一緒にカード, 同じ重複を削除する レコードはステータステーブルと別々のセットアップガイドとしてレンダリングされました。 - 新しい DnsSetupStudio は、アニメーション 3 段階の流れをオーケスト (verify) 所有権 > サブドメインを接続します。 > 問題 SSL) ゲートされたステージで、 SVGが駆動するカードグリッドとライブ進行リング - レコードカードは、フィールド名ラベルを選択したユーザーに合わせます レジストラ **************************** はローカルストレージに そして、そのプロバイダのDNSポータルに深くリンクします。 - 各サブドメインカードは、プレーン言語の説明(例:「内部」 あなたのチームのワークスペースです」従って非技術的なユーザーは何を理解します 設定します。 - Workspace-entry、変更ドメイン ダイアログ、ポーリング、カウントダウン、テーマ 暫定、および自動DNSのプロビジョニング パネルはすべて保存されます.
· KlusterServices
逆プロキシレート.loans/stack.loans は k1m1 を TLS でホスト
k1m1 Traefik は、api.rate.loans、www.rate.loans の HTTPS を終了し、 www.stack.loans、 プレーン HTTP を上流 Traefik に転送する 192.168.4.36:80。 ホストごとの自動認証種子は、すべての3つのセルを暗号化してみましょう.
· EmailService
すべてのクラウドプロバイダのためのWire DomainManagerとMailboxProvisioner
すべてのクラウドプロバイダでサポートされていないOperationExceptionスタブを置き換える 各バックエンドの管理者 API に対する実際の HTTP 呼び出し: - Microsoft 365 → Microsoft Graph (/users, /domains, /verify,...) を使用して per-org OAuth アクセストークン。 - Googleのワークスペース → パーオーガナイザーを使用してSDKディレクトリ+サイト検証を管理 OAuthアクセストークン。 - Zoho メール → Zoho メール 管理者 API Per-org OAuth アクセストークンを使用します。 - IceWarp → IceWarp REST API ({serverUrl}/api/v1/...) は、 apiKey が保存したAPIを使用して保存されます。 で ProviderConfig. - Exchange (Online) → Microsoft Graph クライアント・クレデンシャル・トークン・マイニング tenantId/clientId/clientSecret から、providerConfig に保存されます。 また、Microsoft、Google、Zoho が要求する OAuth スコープを拡大 per-org 管理者トークンが新しいコードの特権を持っているので、フロー ニーズ (User.ReadWrite.) すべて / ドメイン. ReadWrite を読んでください。 すべてのグラフ、 admin.directory.user/admin.directory.domain/Google の siteverification、 ******************************************************************************************** 既存の接続 新しいスコープをピックアップするために管理者の同意で再承認する必要があります。 共有 HTTP 配管は ProviderHttpClient に住んでいる — Bearer / Basic / API キー auth、JSON のエンコーディング、エラーメッセージの抽出など プロバイダーエラーエンベロップ。 それでも頑固なもの(そしてなぜ): - Microsoft 365、Googleワークスペース、IceWarp、および 交換 — プロバイダのプッシュ通知 API には、公開 Webhook が必要です。 クラウドパブ/サブトピックの電子メールサービス、プラス(Gmail用)によってホストされている受信機。 アップした配線は、独自の赤外線タスクです。 - On-prem Exchange (authMethod != OAUTH) — SOAP EWS API が必要です。 ExchangeProvider は、EWS が追加されるまで、そのパスで明確なエラーをスローします.
