Jurnal de schimbări
Ce e nou.
Fiecare îmbunătățire a platformei, pe măsură ce se livrează.
· kamo-internal
Scăderea gradului de integrare a MLOS pe piața modală
Adaugă o scădere a integrării MLOS Nu-ţi face griji. pe piață Add/Edit modal, indicat numai pentru serviciul > Ipotecare rezidențială piețe, plus un buton de configurare lângă ea. Configurația este dezactivată până când piața este salvată; pentru MERIDIAN LINK se deschide noua configurare per-market dialog, pentru KAMO MLS se leagă adânc de consola MLOS internă existentă (tab-ul unic POS commerceType:MORTGAGE Market Integrations tab) și ENCOMPASS ICE rămâne dezactivat cu un tip de instrument "în curând.".
· kamo-internal
MeridianLink per-market Configurează dialogul
New MeridianLinkConfigDialog, modelat pe platforma OAuth EditDialog, cu o singură conexiune LeadMarket prin losConnectionApi (faza 3) backend). Editează Nu-ţi face griji. plus un secret de client numai-scriere (blank păstrează cifrul stocat), cu un Test de acțiune Conexiune și încărcare-on-deschis prin losConnectionApi.get.
· kamo-shared-library
MarketLosConnection finder
Adds ***************** astfel încât consumatorii poate trata o conexiune LOS moale (isActive=false) ca absentă; Oglindesc modelul de citire al lui SocialConnectionController. Nu există nicio schimbare a schemei .
· kamo-internal
MeridianLink client-ID card pe platforma OAuth
Adaugă un Furnizor Ipotecar MeridianLinkDef pe platforma OAuth2 client Register *************** vânzător client id ("Vendor Client ID") + non-secret config.tokenUrl și config.environment. Nici un clientSecret la platforma domeniu de aplicare secret este faza 3. Carduri furnizor sunt FE-declarate (array PROVIDERS), nu derivat din lista GET backend, astfel încât intrarea este necesară pentru Cardul pentru a face chiar dacă ***************** a fost deja anexată în faza 2.
· kamo-internal
Proxy de conectare LOS pe piață + client
Faza 3 (Task 3.2) jumătate kamo-internă: proxy Next.js + client tastat pentru o Conexiunea MeridianLink de pe piață, susținută de serviciul de securitate MarketLosConnectionController. - *************** GET/PUT/DELETE proxy to .../los-conection; POST proxys to the backend's dedicated .../Los-conection/test final (Test Connection action, no separate Next.js route). Foloseşte înainte către Api, transmite X-***-Token. - app/lib/los/types.ts: LosConnectionView (are doar Secret, never the cifru), LosConnectionUpsert (numai pentru scriere secretă; păstrează în alb/închis cel stocat), LosConnectionTestResult, MlosIntegration Valoare. - app/lib/los/connectionApi.ts: *************** Modelat pe *************** NPX TSC --noEmit trece.
· SecurityService
Serviciu de conectare LOS pe piață/controlor
Faza 3 (Tasks 3.1-3.2) a integrării MeridianLink extern-LOS: CRUD + Test-Connection pentru o conexiune MeridianLink piață. - MarketLosConnection Service: *************** peste MarketLosConnection, oglindirea IpotecarProviderConfig's secret-at-rest Convenție (criptare-on-write via PlatformSecretCipher, ok-keeps-existente secret, are vedere secretă doar, Cipher închis nu Configurat Excepție atunci când cifrul nu are cheie). testConnection round-trips a MeridianLink auth ticket prin intermediul adaptorului de lib comun (MarketLosConnectionRezolvator + MeridianLinkAuthService) și nu aruncă niciodată. - MarketLosConnectionController @ *************** los-connection (GET/PUT/DELETE + POST /test), cu poarta pornită MANAGE CRM SETTINGS + org-proprietatea pieței (prin LeadMarketService); La fel ca LeadMarketController). - SecurityService Application: added ***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************** @EnableJpaRepozitories so MarketLosConnectionRepository injects. Teste focalizate (testuri de unitate offline, fără apeluri SOAP/HTTP live la bord este încă în curs de desfășurare: MarketLosConnectionServiceTest (10); Nu-ţi face griji.
· kamo-shared-library
Hartă de câmp LO-XML
LoXmlFieldMapper traduce plumb / LeadClaimMortgage <- > confirmat MeridianLink LO-XML ids (sLamtCalc, sPurchPrice, sApprVal, sLpurposet, aBirstNm, aBLastNm) cu un tabel de traducere LoanPurposeType <->sLpurposeT (0=Cumpărare,1=Refi, 2=Refi-Cashout), plus un conținut stabil de SHA-256 independent de ordine Hash peste Câmpul urmărit pentru suprimarea ecoului. LeadFieldPatch este partea care poate fi anulată actualizare plumb consumat de LeadService.aplyLosPatch (faza 6). Id-uri rămase Sunt parcate într-o singură casă. Câmp MAP bloc ca dependențe explicite de fază-0 (LOXmlFormatDefinition.xml).
· kamo-shared-library
MeridianLink - împrumuturi modificate + legături profunde
Adds ListMcodifiedLoansByAppCode (parse ArrayOfString -> loan names), ******************* şi AppView. GetPmlLoanUrl (prepara parţial URL cu gazda de origine derivată din instanţa de conectare, implicit ************* la MeridianLinkSoapClient. Documente per-appCode contract dren-and-clar coadă în clasa Javadoc (împrumuturile recunoscute sunt compensate; creditele nerecunoscute rămân la coadă).
· kamo-shared-library
MeridianLink client SOAP crea/salvare/sarcină
MeridianLinkSoapClient împachetează Loan.asmx ops peste o Spring-WS WebServiceTemplate (namespace************ per-op SOAPAction): Împrumut. Creare -> nume împrumut; împrumut. Salvează scrie doar câmpurile LO-XML modificate (sortate pentru o sarcină utilă deterministă) și aruncă pe o stare de eroare; Împrumut. Încarcă parses returnat <field id=..> elemente înapoi într-o hartă (tolerarea cuib-element LO-XML). STicket este furnizat de către apelant. Toate testele batjocoresc transport prin MockWebServer; nimic nu este live-callable până la Faza 0.
· kamo-shared-library
MeridianLink auth ticket cache
MeridianLinkAuthService ments and caches the sTicket per (stanceBaseUrl + sha256 (clientSecret)) cu un furnizor injectat <Instant> ceas și un configurabil TTL *************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************** oauth mode rame the s-a schimbat ca "Bearer {token}"; mod moștenitor (meridianlink.auth.mode) întoarce GetPmlUserAuthTicket ticket verbatim. Schimb de jetoane este izolat în spatele MeridianLinkTokenExchanger (default OAuth client credentials Post via Deci contractul cache/TTL este testabil cu un fals.
· kamo-shared-library
MeridianLink creds resolutionr
Adaugă pachetul de fază 2 SAP-adapter *************** cu MeridianLinkCreds (record secret) + MarketLosConnectionRezolvator; care decriptează secretul per-market prin PlatformaSecretCipher și citește furnizor de platforme client id via PlatformOauthClientResolver. Trage înainte faza 5 ******************* constantă (apendice numai ID 8) deoarece solutioner depinde de ea. Adds ***************** + testul de primăvară (test) pentru transportul SOAP utilizat prin sarcini ulterioare fazei 2.
· kamo-shared-library
Entitatea LeadLink + depozit
Urmărește o legătură de plumb într-un fișier de împrumut LOS extern, un rând per (conducere, furnizor). Cară contabilitatea de sincronizare (contentHash, lastPushedAt, lastPulledAt) că faza 6 (împingere de ieșire) și faza 8 (poluare de intrare) utilizate pentru suprimă ecoul. Plumbul FK este fixat pe coloanaDefinition="INT8" (fără DEFAULT) pentru același motiv unic rowid backfill-orfan ca MarketLosConnection. Acelaşi depozit-păsărică de substituţie cu *************** (a se vedea că clasa Javadoc) Acesta este un test de compilare/unitate.
· kamo-shared-library
ENTITATE DE PLATĂ + Gospodărie
Conexiune pe piață/configurare la un LOS extern (MeridianLink / KamoMLS / Encompass), un rând pe (piață, furnizor). Secretul trăiește doar ca o Coloana de text AES-256-GCM (@JsonIgnore); coloanele org/market FK sunt fixate la coloana simplă INT8/UIDDefiniții astfel încât acestea să nu moștenească de referință PK's DEFAULT ***************** şi în tăcere orfană Rânduri pe un viitor kamoInitializer run. Nu există încă hamuri de depozit-păsări garantate cu DB (nu @DataJpaTest/H2/Test Containers, verificat prin căutare), astfel încât înlocuitorii testului afirmații privind nivelul de compilare/unitate (comportamentul entității + adnotări + depozit semnături derivate-query prin reflecție) pentru testul DB persistă+lookup Planul specifica.
· kamo-shared-library
LeadMarket.mlosIntegration column + DTO round-trip
Adaugă coloana MLOS INTEGRATION (STRING-stored, implicit NO MLOS, nul-păzit getter) plus DTO/creează/actualizează instalaţiile sanitare. LeadMarketService se prăbușește valoarea înapoi la NO MLOS ori de câte ori SaleType rezolvat nu este RESIDENTIAL MORTAGE; astfel încât numai piețele serviciilor/rezidențiale-Mortgage pot avea un LOS obligatoriu.
· kamo-internal
Console-background pref per membru în DB; eroare mai clară de încărcare
- utilizareaModul Background persistă acum alegerea simplu / slideshow în DB membru ui-preferences (urmează membrul pe dispozitive) în loc de per-dispozitiv Storaj local. Reetichetează comutația "Acest dispozitiv" -> "Consolă" și picătură "nu va urma ... la alte dispozitive" legendă. - Pe o respingere 4xx upload (server nu a putut procesa imaginea, de exemplu, un format nesuportat, cum ar fi HEIC), arată "Nu ar putea procesa această imagine. Încearcă un JPEG sau PNG. În loc de genericul "încercaţi din nou.".
· kamo-internal
Culoare 4-col aranjament (cădere carte de incasare pe fila ipotecare); gol What-If sandbox; butonul din spate lângă nume, picătură header redundant plumb-ID
· kamo-internal
Mută Calculatorul Affordability în partea de sus a coloanei de ieșire din stânga
· kamo-internal
What-If Studio as 3rd form sub-tab; Sandbox stivuite pentru a se potrivi coloana forma
· kamo-internal
Panou de ieșire 2-col (Eligibilitate stânga, meniuri scurte dreapta); picătură KPIs / cm acum în antet
· kamo-internal
Ipoteca KPI + LTV/DIT/Sumarul complet in antetul paginii (toate filele, numai ipotecare rezidentiala)
· kamo-internal
Acţiuni antete muta la file rând; adăugaţi KPI + metri sloturi la rândul principal
· kamo-internal
Împarte câmpurile în detalii ipotecare / Sub-tab-uri de adrese de proprietate; titlu carte picătură
· kamo-internal
Ce-Dacă suprascrie lângă tabelul de comparație live; elimina LeadScenarioWorkspace mort
· kamo-internal
Side-by-side fields
· kamo-internal
IpotecăOutputsPanel (coloană de ieșiri curate, fără gradient)
· kamo-internal
Câmpurile arată ca etichete în modul vizual, intrări în modul de editare; dropdown stare marcat
· kamo-internal
Detalii ipotecare file cabl cabl + Contact Info rename; eliminați blocul ipotecar inline
· kamo-internal
IpotecaDetaliiTab container (cabina de pilotaj vie)
· kamo-internal
Scenariu relevant
· kamo-internal
Ipoteca HeroBand cu KPI-uri & metri

Universul tău te așteaptă.
Începeți gratuit în câteva minute.Adăugați produse oricând sunteți pregătit — fără migrare, fără autentificări noi.
Gratuit pentru totdeauna — nu este necesar un card de credit