Changelog
Ada kabar baru.
Setiap perbaikan pada platform, sebagai kapal.
· SecurityService
Backend lemari besi dokumen anggota P4 (dapat digunakan ulang dokumen melalui pinjaman)
- Menmber Dokuments Service: upload sebuah doc ONCE di AccountBorrowerParty scope AverImageService menciptakan sebuah Img di auto- created imagining-member- vault bucket * * * * * * * * * * hashes dihitung server- side) + Baris katalog Anggota Dokumen; daftar oleh pihak / akun. Penjaga pesta yang ditutup (adalah Anggota PartyToPartyAkun). - Anggota Dokumentment Controller / api / keamanan / member- dokumen (POST upload multipart, GET list): operator mengelola apapun lemari besi pihak (LOS _ VIEW _ PIPELINE); peminjam hanya pihak rekening mereka sendiri. Brankas Img adalah jangkar reuse Requiremenment Defifier (imgId) point di untuk memenuhi persyaratan per- pinjaman seluruh banyak pinjaman (memuaskan-kabel adalah potongan berikutnya). Kompiles bersih; tidak ada skema berubah (entitas P1).
· kamo-internal
Pipeline pertransaksi - daftar per kesepakatan, bukan per pinjaman (pemilik req)
ApplicationsPipelineConsole sekarang daftar Satu baris per LoanTransaction (yang mewakili pinjaman + apapun not- y- pengelompokan pinjaman warisan), dengan sebuah kolom 'Deal / Status' disematkan yang menunjukkan turunan chip status grup, sebuah chip pinjaman N-N-untuk transaksi multi- pinjaman, dan tanda pengecualian - penolakan. Fetches * * * * * * * * * * * * * * * (+ TransationSummaryDTO type) dan bergabung dengan baris pinjaman. Buckets / filter / travel re-based into the transaction- representation barrow.
· kamo-internal
Portal KamoMLOS difitnah - sebutan produk dalam vendors- produk (# 11)
A star toggle on each product designates the org 's single kamoMLOS portal auto- assign product (Single- aktif). Gated via GET / lead- vendors / mlos- kesiapan: hanya ditampilkan ketika pasar diedit IS Restitusi hipotek rumah tangga pasar utama dan POS + pasar perdagangan MORTGAGE dikonfigurasi. Refleks / edits baku langsung melalui PUT... / {id} / mlos-default. (i18n dalam penyapuan P6.)
· SecurityService
P3 default -product endeNation backend (single-active) + operator kesiapan
- * * * * * * * * * * * * * * menunjuk One LeadVactive Product sebagai org 's KamoMLOS produk portal otomatis; single-active (demotes apapun, org- scoped, fail-closed) via JPQL pembaruan massal. - LeadVendController: PUT * * * * * * * * * * * * dan GET / mlos- kesiapan (produk mana baku + apakah POS + RESIDENTIAL _ MORTGURE pasar utama + Pasar perdagangan MORTGAGE dikonfigurasi) - backthe setting gate + shows state saat ini. Kompiles bersih; tidak ada skema / shared -lib perubahan.
· SecurityService
P2c leads- pertama backend portal
- MortgageVerticalresolver: menyelesaikan sebuah org 's RESIDENTIAL _ MORTGAGE LeadMarket, MORTGAGE CommerceMarket, yang ditunjuk Standar LeadVsupport Product, dan POS EFFECTIVE diaktifkan - satu kesiapan deterministik membaca backing kedua pengaturan gerbang (# 11) dan gerbang portal (# 12). - PortalLeadService: leads-first - createOrGetonymousLead (keyed to an AccountGuid cookie, auto- diberikan produk baku di pasar hipotek, kegagalan-ditutup pada kesiapan - NO signup, APPORTASI NO), patchEstimate, dan tanda-dalam mergeGuidIntoMber (mengikat GUID ke anggota Akun + reparents memimpin, mencerminkan sejarah LeadAccount menulis). - PortalController * * * * * * * * * * * * * * * lead POST / PATCH, merge}: anonymous (org- from -host, GUID dari terpercaya BFF X-Kamo- Guid header); gabungan adalah * * -bound. Kompiles bersih. Rute tanpa nama melewati rantai filter permitAll (controller self-gate).
· kamo-internal
Account- merge admin UI (MERGE _ ACCOUNTS)
AccountManager memperoleh aksi Pengelola Gabungan (gated by * * * * * * * * * * * * * pilih persis dua rekening pelanggan, pilih yang selamat, mungkin menyimpan duplikat Stripe pelanggan / anggota primer, kemudian menggabungkan - kembali semua anak ke korban dan soft- menonaktifkan duplikat. accusAs.mergePelanggan () stst / account / pelanggan / {uid} / merge. (i18n kunci untuk ditambahkan dalam menyapu P6.)
· SecurityService
Backend transaksi P2a Account-merge
P2a - admin account merge (pemilik kebutuhan A), gated by MERGE _ ACCOUNTS: - AccountMergeService: reparent EVERY account _ uid child via native UPDATE (bypass JPA Panti Removal sehingga yang kalah memimpin / aplikasi bertahan), mengurangi globally- unik account _ members + (account, market, target) subscriptions, confiles stripe _ quest _ id / primaryAnggota / penunjuk FK (survivor-wins + keep-from-loser overrides), soft-menonaktifkan pecundang. Same- org saja. - AccountController POST * * * * * * * * * * * * digated oleh MERGE _ ACCOUNTS (atau dewa). P2b - deal- grouping backend: - LoanTransaktionService: pastiTransaksiForApp (auto single-pinjaman grup pada pembuatan, idempoten), ReceiveStatus (digulung dari anggota LoanFileStatus via LoanTransaktionStatusDeriver), * * * * * * * * * * * * * * * (Transention SummaryDTO), adalah Anggota Transaksi ToD52 Digeneralisasikan kepada kelompok), backfillOrganization. - MortgageAppController: buat () sekarang auto- grup pinjaman; GET / transaksi daftar per- transaksi (operator = org baris pipa, peminjam = akun sendiri). - Register mlos.trances + mlos.docs repos dalam SecurityServiceAplikasi @ EnableJpaRepositories. Skema sudah dibuat oleh KI (P1). Compiles bersih terhadap shared terpasang -lib.
· kamo-shared-library
P1 entitas fondasi - lead-first / akunts-sentris / transaction- grup refactor
Entitas baru (aditif; KI berjalan DDL): - Transaksional GroupStatus enum + LoanTransationStatusDeriver: grup lifecycle turunan (Diciptakan AboyCompleted) digulung dari anggota LoanFileStatus (tidak pernah disimpan secara berwenang). - AccountGuid (akun): Panjang-hidup cookie GUID Akun (nulable) untuk leads- pertama aliran anonim. - AccountBorrowerParty (account): berbagi identitas peminjam (Anggota opsional) + doc-safe key. - Anggota Dokumen (mlos.docs): tingkat penyimpanan dokumen yang digunakan ulang akun / anggota. - LoanTransaktion Timeline (+ event enum), SharedTransaction Tugas (+ status / parality enums): shared group feed + tasks. - Repos untuk semua di atas. Enum appends (id-stable / ordinal- aman): - LoanFileStatus. OLD _ BOARDED (9) - ditambahkan pada END (Penyimpanan ORDINAL); + isTerminal; switch kelelahan tetap. - * * * * * * * * * * * * * * - membayangkan ember keanggotaan. - * * * * * * * * * * * * * * - Pengaturan Umum (ServiceType = null) untuk akun admin -merge alat. Kolom FK (nullable, disematkan kolumnDefinition, tidak baku - unik _ rowid / gen _ random _ uuid perangkap yatim piatu): - LoanFile.lenn _ contration _ id, * * * * * * * * * * * * * * * Lead.account _ guid _ id, CommerceMarket.lead _ market _ id, * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Desain: * * * * * * * * * * * * * * * * * * * * Tidak ada benjolan versi.
· SecurityService
Meminjam otorisasi layanan sendiri (loan-partai IDOR penjaga)
Seorang peminjam adalah polos org Anggota dengan tidak ada operator hak LOS; mereka dapat bertindak pada ONE aplikasi mereka adalah pesta untuk - dan hanya satu itu. Penjaga berlapis: operator gerbang pertama, selain cek loan tertutup (adalah Anggota ToApp). MortgageAppController: - * * * * * * * * * * * * * beban yang diaplikasikan untuk mendapatkan, semua 23 per-app menulis titik akhir, dan 3 repeting- bagian pembantu. - daftar: operator melihat baris pipa org; peminjam hanya melihat aplikasi yang dimiliki. - buat: operator mengambil aplikasi (switch. from-lead); peminjam sendiri-menciptakan sendiri (ownership- dicap) - KamoMLOS reward- gerbang mint. - delete: operator suspend -right OR yang memiliki peminjam; lookup: apapun dikonfirmasi sesi (referensi enums kebutuhan asupan); perjalanan tetap beroperasi-saja. MortgageProgramController: menutup sebuah IDOR yang telah ada pada setPersona / setSelecTProgram (org-only check) - sekarang operator- LOS- peran OR loan - partai. Operator tidak berubah; peminjam owner- scoped; cross- peminjam IDOR ditutup (D52).
· kamo-shared-library
Peminjam kepemilikan partai pada AppMortgageService
Tambahkan kepemilikan primitif untuk peminjam layanan sendiri (peminjam adalah org polos Anggota tanpa hak operator LOS): - createBlankOwnedByMber (orId, memberId): createBlank + stamp kepemilikan dengan melampirkan (Atau) huruf Au di sini menunjukkan makna Taqsim (dia adalah orang-orang yang terdahulu). - Adalah Anggota PartyToApp (appUid, orgId, memberId): Gagal-ditutup loan-party guard - org cocok Penelepon dan penelepon adalah PrimaryAnggota / Anggota Akunting dari Akun Aplikasi. - listOwnedBymber (orgId, memberId): aplikasi peminjam sendiri. Kepemilikan adalah ditunjuk - mandat * * * * * * * * * * * * * link; Akun / Anggota akunting sudah ada, jadi tidak ada skema / KI. Addititif hanya (D52).
· kamo-internal
Kolom perjalanan meminjam + asupan dalam pipa pinjaman
Sub = catatan data baris pipa (ApplicationsPipelineConsole) sekarang menampilkan pre- app- diambil Peminjam - kemajuan perjalanan sehingga karyawan org dapat meninjau status aplikasi sebagai Peminjam melengkapi pinjaman mereka sendiri melalui portal KamoMLOS. - 'Perjalanan Peminjam' kolom: chip status (Baru dimulai / Mengisi dalam / Siap untuk mengirimkan) + menentukan progress bar + section n / total, dengan sebuah pending- section tooltip; '-' untuk Sudah diambil pinjaman. - 'Borrower Intake' ember filter: pinjaman dengan perjalanan langsung-melayani entri perjalanan. - listJourney () klien API + BorrowerJourneyDTO tipe + i18n kunci. Sumber dari GET / hipotek - aplikasi / perjalanan (D51).
· SecurityService
Sebelum-app- diambil pinjaman-perjalanan titik akhir untuk pipa operator
GET Baru * * * * * * * * * * * * * * * (LOS _ VIEW _ PIPELINE) kembali PER- DRAFT Peminjam-asupan kemajuan sehingga pengelola pipa dapat menonton sebuah pinjaman terbentuk sementara Peminjam masih melayani sendiri melalui portal KamomLOS. BorrowerJourneyService recomputes the portal wizard 's section completeness server- side di atas grafik AppMortgage kanonical (toleransi pemeriksaan kehadiran - DTOs kanonikal dan The portal client DTOs have diverged field names). Negara = DIMULAI / DALAM _ PROGRESS / READY _ TO _ SUBMIT lebih dari 7 bagian pre-submission; dibalik hipotek melewati keuangan bagian, cocok dengan portal. Tidak ada yang bertahan; tertutup pada 300 draft / view. BorrowerJourneyDTO adalah catatan SecurityService- sehingga tidak dimodifikasi tetap tersentuh. Bagian dari repurpose pipa doc03 (D51).
· SecurityService
LOS controller menerima sesi per- peminjam * * * (doc03 0.1)
BaseLosController sekarang menyelesaikan sesi penelepon via CallerSessionResolver (X- OTK-validasi atribut PERTAMA - operator / BFF tidak berubah - maka parti pertama- * * * cookie fallback) daripada hanya atribut X-OTK. Ini adalah batu kunci yang memungkinkan KamoMLOS meminjam portal mencapai / api / keamanan / hipotek - aplikasi / * * dengan sesi perrentener nyata (peminjam adalah polos org Anggota melalui standar Log masuk OTK: validasi -otk GNU * * * flow) daripada berbagi akun layanan. Mundur kompatibel; semua 7 LOS controller manfaat. Kompiles bersih.
· SecurityService
LOE-Core server-authoritative program scorer + / program / score (doc03 # 9 Fase 2)
Ports the KamomMLOS client scorer (lib / los / scoring.ts) into SecurityService LOE-Core: LoeCoreScorer skor katalog program efektif org (baseline deep- digabung dengan Overlay org terhadap appSnapshot peminjam - identik LTV / DTI / penghuni / cadangan / VA- hak / pemeriksaan reverse- usia - kembali ProgramScoreDTO dalam klien yang tepat Bentuk Programscore. POST * * * * * * * * * * * * * * * Server- pertama: ini kapal sebelum tahap 9 Tahap 3 penghapusan skor. 3 tes hijau.
· InitializerService
Benih 17 aturan program nyata (doc03 Tahap 1)
Migrates otoritatif Prograleset data dari rumlet klien KamomMLOS berkas kedalam * * * * * * * * * * * * * * * * * * (17 kode, diekstrak setia) dan menggantikan aturan Programder SeederRunner 's Json ("{}") placeholder dengan real ruleset per- kode dimuat dari classpath tersebut. Idempt: menyisipkan program yang hilang dan peningkatan yang ada "{}" placeholder ke data nyata, tidak pernah clobbering operator Edits. Terapan pada kamoInitializer berikutnya (his- run). Prereq untuk tahap 2. server scorer yang menghapus scorer klien.
· kamo-shared-library
Real deep- merge untuk program org -ruleset overrides (doc03 # 9 Tahap 0)
Mengganti tempat M2 terakhir - menulis - menang mergeOverlay (yang diam-diam dibuang dasar otoritatif pada override org manapun) dengan rekursif JSON deep-merge: org overrides hanya memberikan kunci yang mereka ubah, nested objek berulang, array mengganti grosir, dan override salah bentuk gagal aman ke dasar. Kunci Kontrak ProgramRuleset di depan pencetak berotoritas server--yang akan menghapus scorer klien. Program / ProgramService javacdoc menunjuk ulang. 3 tes hijau.
· kamo-shared-library
MlosExtracteCandidate entitas pementasan untuk pipa intraffic (D48)
Terminal per- field keluaran dari parser MLOSIngestionService: sebuah pentas, dapat dilihat ulang kandidat ekstraksi (segmen / source-doc FK, target Entity, jalur lapangan, cellRef, nilai mentah / normal, DECIMAL (4.3) kepercayaan diri, reviewStatus). Kandidat PERNAH mempromosikan menjadi entitas katalog kanonikal kecuali melalui MLOSCatalogService 's RateSheetSanityGate + persetujuan manusia. Menyelesaikan substrat intraffic * * * * * * * * * * * * * * Ekstraksi Templat sebelumnya ada). mlos.catalog telah dalam KI memindai auto- dapat dipindai pada service run -auto: none.
· kamo-shared-library
Profil kerja keras terisolasi yang ditulis kembali untuk jalur dinding legall (D47)
mergeFactsBestEfsfort menjalankan surat pengayaan - kembali dalam transaksi sendiri (REQUIRES _ NEW) sehingga kegagalan tidak pernah dapat menggulung kembali transaksi penelepon - aman menulis -kembali untuk jalur keputusan dinding legall (AUS / process-rules) yang keputusan - of- catatan harus tetap berlangsung terlepas. Melewati diam-diam ketika tidak ada profil ada. + 1 shared -lib test (skip -when -absent / delegate -when -present).
· kamo-internal
Daerah Licensing berbasis negara pada anggota profil my-
New SectionCard (ID NMLS + per-state lisensi tabel dengan aktiving- menyediakan checkbox dan tanggal pembaruan / kadaluarsa, pembaruan < = validasi kadaluarsa). Gated by * * * * * * * * * * * * * * * * * Tambahkan rute proksi berikutnya, TS RoleRightType mirror, and design / plan docs.
· SecurityService
Status anggota - lisensi API + lisensi-sadar ketersediaan lead
Tambah Anggota StateLicensingController (GET / PUT / api / keamanan / anggota / {id} / status - lisensi) digated oleh STATE _ LICENSING _ * hak dengan server- side Pembaruan < = validasi kadaluarsa. Aktifkan mlos.legal JPA repos. Ringkasan popup dan Leads- Jaringan Tersedia sekarang menghormati status - lisensi eligibilitas.
· kamo-shared-library
State- berbasis anggota lisensi + lead- gerbang penerimaan
Gunakan mlos.legal Pramugari sebagai anggota tunggal / per- negara NMLS registry (tambahkan activelyProviding Business). Tambahkan anggota tingkat Anggota. Tambah hak Jenderal-Hak Izin * * * * * * * * * * * * * * * CreditLeadAssignments Service now skips hipotek-lead kandidat yang eksplisit properti negara anggota tidak aktif berlisensi masuk.
· kamo-internal
Tambahkan Sumber ke ruas lead yang dapat diterpa
Lead 'source' ditampilkan pada halaman detail utama tapi hilang dari daftar ruas impor; tambahkan (path 'source') sekarang bahwa backend importir + CreateLeadRequest mendukungnya.
· SecurityService
Peta kolom yang diimpor ke ruas 'source' lead
Tambahkan huruf "source" untuk setDirectFieldOnCreateRequest sehingga jalur pemetaan 'source' dihormati.
· kamo-shared-library
Tambahkan ruas 'source' yang penting ke CreateLeadRequest + tahan dalam CreateLead
Lead memiliki sumber 'teks bebas' (ditampilkan / diedit di halaman detail utama) tapi itu tidak penting - CreateLeadRequest tidak memiliki bidang sumber, sehingga CreateLead tidak pernah mengaturnya. Tambahkan impor sehingga manual dapat memetakan kolom berkas ke sumber memimpin.
· kamo-shared-library
Tambahkan ScenarioProfileSource.PRICING untuk scenario- penulis FICO / rasio tulis-kembali (D45)
· kamo-shared-library
Sconical scenario- fakta tulang belakang - deriver genesis + factsJson populate + write- back + overlay matcher (D45)
D1 / D45 memperluas konsumsi BorrowerScenarioProfile. Mempopulasi yang aktif factsJson dan membuatnya sumber berbagi kebenaran bagi peminjam / fakta pinjaman: - ScenarioFactKeys: single canonical facts - kunci kosakata + tier (struktural vs Pengayaan) + normalkan (); Whitelist D21 / deriver / konsumen mereferensikan ini. - Skenario FactDeriver: mempromosikan D18 LTV / CLTV / HCLTV + kategorical derivation keluar dari MLOSPricingService ke shared -lib (satu rumah untuk hak-fakta diturunkan). - BorrowerScenarioProfileService: Produksi FromUrla sekarang populasi fakta struktural (melestarikan pengayaan); resolveFact () untuk nasihat gap- mengisi; mergeFact () tulis - kembali bahwa filter ke pengayaan (genesis memiliki struktur, D45.3). - ScenarioFacts.fillGapsFrom (): penasihat merge (permintaan menang, profil mengisi kesenjangan). - Investor OverlayMatcher: matcher aman murni (present-dan-melanggar saja). Tidak ada skema / KI yang berubah (factsJson kolom sebelum ada). 27 uji coba hijau.
· kamo-internal
Tabung Aturan Saluran - melengkapi permukaan config 3.2
· SecurityService
Peraturan penerimaan saluran CRUD - melengkapi konfigurasi # 3.2
createChannelRule / update / delete di flat -31 collection backbone (profile-level, org fail- closed, wORM changge- log); controller / channel- rules GET / POST / PUT (delete via aktif: salah). Scope / channel / hasil diperlukan; * * * * * * * * * * * * * * * * * * Otoritas / pendanaan + jendela opsional efektif. Entigen konfigurasi terakhir nomor 3.2.
· kamo-internal
Tab Enablement produk (per- program, versi)
· SecurityService
Konfig enablement produk - per- program tunggal-aktif, efektif-tanggal
* * * * * * * * * * * * * * * (memprogram--scoped demote- then -insert) + baca; controller / product-enablement GET (aktif per program) / PUT (publish). Tubuh membawa program, diaktifkan, lifecycleVariant, channelRestriction, efektiveFrom.

Alam semestamu menunggu.
Mulai gratis dalam beberapa menit. Tambahkan produk kapanpun Anda siap — tidak ada migrasi, tidak ada login baru.
Gratis selamanya — tidak diperlukan kartu kredit