Changelog
Ce qui est nouveau.
Chaque amélioration apportée à la plateforme, à mesure qu'elle est livrée.
· kamo-internal
Médias de configuration par marché MeridianLink
Nouveau MeridianLinkConfigDialog, modélisé sur la plate-forme OAuth EditDialog, Lune avec une seule connexion du LeadMarket via losConnectionApi (phase 3 backend). Éditions plus un secret de client en écriture uniquement (le blanc conserve le chiffrement stocké), avec un Action de connexion d'essai et charge sur ouvert via losConnectionApi.get.
· kamo-shared-library
Dé découvreur de connexion MarketLosSyltré sur le marché à filtre actif
Ajout, c'est-à-dire des consommateurs peut traiter une connexion LOS à dilatée molletée (isActive-faux) comme étant absente, en miroir du modèle de lecture filtrée actif de SocialConnectionController. Il n'existe pas de changement de schéma.
· kamo-internal
Carte client-id du fournisseur MeridianLink sur le registre de la plate-forme OAuth
Ajout d'un fournisseur de services hypothécaires MeridianLink à la plateforme client OAuth2 Registre et vendeur client-id ("Vendor Client ID") - non-secret config.tokenUrl et Config.environnement. Pas de clientSecret au niveau de la plate-forme et par marché secret est la phase 3. Les cartes de fournisseur sont déclarées FE (réseau PROVIDERS), non dérivé de la liste GET du backend, de sorte que l'entrée est requise pour la carte à rendre même si... était déjà annexée côté serveur dans la phase 2.
· kamo-internal
Proxydation de la connexion LOS du marché et client
Phase 3 (à la demande 3.2) moitié kamo-interne: le proxy Next.js et client dactylographié pour un La connexion MeridianLink du marché, soutenue par SecurityService MarketLosConnectionContrôleur. - ET ENSEMBLE/PUT/DELETE un mandataire à .../los-connection; un mandataire de POST au backend dédié .../los-connection/critère d'essai (action de connexion d'essai, pas de séparation Prochaine.js. itinéraire). Utilise forwardToApi, le passage de X-z-Token. - app/lib/los/types.ts: LosConnectionView (a réservé aux secrets, jamais le texte chiffré), LosConnectionUpsert (secret uniquement; blanc/outé keeps le stocké), LosConnectionTestResult, MlosIntegrationValue. - app/lib/los/connectionApi.ts: modélisé sur npx tsc --noEmit passe.
· SecurityService
Service de connexion LOS/contrôleur du marché
Phase 3 (Tâches 3.1 à 32) de l'intégration de MeridianLink external-LOS : CRUD Connexion test pour la connexion MeridianLink du marché. - MarketLosConnectionService : MarketLosConnection, miroir de MortgageProviderConfig au repos convention (crypt-on-write via PlatformSecretCipher, blanc-en attente-existant secret, vue secrète, panier uniquement, éteinte, échoue CipherNotConfiguredException le chiffre n'a pas de clé). test Connexion aller-retour a MeridianLink auth ticket via l'adaptateur partage-lib (MarketLosConnectionResolver) MeridianLinkAuthService) et ne jette jamais. -Contrôleur de connexion de marché los-connection (GET/PUT/DELETE et POST /test), fermée sur MANAGE-CRM-SETTINGS - propriété du marché (via LeadMarketService, le même modèle que LeadMarketContoller). - SecurityServiceApplication: ajouté à «Atteindre les référentiels Jpa afin que MarketLosConnectionRepository injecte. Essais ciblés (tests unitaires hors ligne, pas d'appels SOAP/HTTP en direct) l'embarquement est toujours en attente): MarketLosConnectionServiceTest (10), (11).
· kamo-shared-library
Cartographe de champ LO-XML
LoXmlFieldMapper traduit Lead/LeadClaimMortgage LO-XML ids (sLAmtCalc, sPurchPrice, sApprVal, sLPurposeT, aBFirstNm, aBLastNm) avec un tableau de traduction de LoanPurposeType--sLPurposeT (0-Augchase,1-Refi, 2-Refi-Cashout), plus un contenu stable sans ordre Indépendant SHA-256Hash sur le champ suivi fixé pour la suppression d'écho. LeadFieldPatch est le taux de nullité partiel mise à jour du plomb consommée par LeadService.applyLosPatch (Phase 6). Ids restants - sont garés en une seule étiquette Bloc FIELD-MAP en tant que dépendances explicites de la phase-0 (LOXmlFormatDefinition.xml).
· kamo-shared-library
MeridianLink-prêts modifiés et liens profonds
Adds ListModifiedLoansByAppCode (parse ArrayOfString -, noms de prêt), et AppView.GetPmlLoanUrl (préfixer le partiel URL avec l'hôte d'origine dérivé de l'instance de connexion, par défaut à MeridianLinkSoapClient. Documenter le contrat de mise en file d'attente par code de drainage et de compensation dans la classe Javadoc (les prêts reconnus sont compensés; les prêts non reconnus sont laissés dans la file d'attente).
· kamo-shared-library
MeridianLink SOAP client création/sauvegarde/charge
MeridianLinkSoapClient enveloppe le Loan.asmx ops sur un modèle de webService de Spring-WS (espace de nom et par-op SOAPAction): Loan.Create -- Nom de prêt; Prêt.Save écrit seulement les champs LO-XML modifiés (trié pour une charge utile déterministe) et jette sur un statut d'erreur; Loan.Load les éléments de parses sont retournés en "field id"... en arrière dans une carte (tolément d'un élément imbriqué) ou enchaîné LO-XML). sTicket est fourni par l'appelant. Tous les tests se moquent de la transport via MockWebServiceServer; rien ne peut être servi en direct jusqu'à la phase 0.
· kamo-shared-library
M. MeridianLink cache des billets
MeridianLinkAuthService ment et cache le sTicket per (instanceBaseUrl sha256 (clientSecret)) avec une horloge du fournisseur-Instante injectée et une horloge configurable TTL est 20 min par défaut). mode oauth encadre le jeton échangé sous le titre "Bearer 'token'"; le mode d'héritage (meridianlink.auth.mode) retourne le billet GetPmlUserAuthTicket mot de mi-monnaie. L'échange de jetons est isolé derrière MeridianLinkTokenExchanger (par défaut, client OAuth-credents POST via Le contrat cache/TTL est testable avec un faux.
· kamo-shared-library
Résolveur de résolveurs MeridianLink
Ajout de l'emballage de l'adaptateur SOAP de la phase 2 avec MeridianLinkCreds (secret-redacting) et MarketLosConnectionResolver, qui déchiffre le secret per-marché via PlatformSecretCipher et lit le client de la plate-forme client-id via PlatformOAuthClientResolver. Retire la phase 5 - constante (append-only id 8) puisque le résolveur en dépend. Ajout - test de printemps (essai) pour le transport SOAP utilisé par des tâches ultérieures de la phase 2.
· kamo-shared-library
Entité LeadLosLink et référentiel
Suivre le lien d'une sonde dans un fichier de prêt LOS externe, une ligne par (chef, fournisseur). Porte la comptabilité de synchronisation (contentHash, lastPushedAt, lastPulledAt) cette phase 6 (poussée hors-auto) et la phase 8 (randonnée) utilise pour supprimer l'écho. Le plomb FK est épinglé à la colonneDéfinition. "INT8" (pas DEFAULT) pour la même raison unique de remblai de retour de randonnée que MarketLosConnection. Même substitution de harnais de base-tranches que (voir le Javadoc de cette classe) - kamo-shared-library n'a pas de harnais d'essai DB, donc Il s'agit plutôt d'un test de comptage/unité.
· kamo-shared-library
Entité MarketLosConnection et référentiel
Comparaison des titres de certification/config par rapport au marché à un LOS externe (MeridianLink / KamoMLS / Encompass), une ligne par (marché, fournisseur). Le secret ne vit qu'en tant que AES-256-GCM colonne de texte chiffré (JsonIgnore); les colonnes de FK org/market sont épinglées à la colonne INT8/UUID clairesDéfinitions afin qu'ils n'héritent pas de la référence Le DEFAULT de PK - et le remblablement orphelin rangées sur un futur KamoInitializer. Il n'existe pas encore de harnais de gisement de stockage à base de DB en coq-singre (non encore DataJpaTest/H2/Testtainers, vérifiés par recherche), de sorte que les substituts de test compiler des assertions de niveau/unité (comportement de l'entité - annotations - dépôt les signatures de la demande dérivée par réflexion) pour le DB persistent - test de rebordage le plan précise.
· kamo-shared-library
LeadMarket.mlosAcolegration et aller-grip DTO
Ajout de la colonne MLOS-INTÉGRATION (STRING-stored, defaults NO-MLOS, nulle-guardd getter) plus DTO/créate/update-demander de la plomberie. LeadMarketService s'effondre valeur à NO-MLOS chaque fois que le type de SaleType résolu n'est pas RESIDENTIEL-MORTGAGE, Seuls les marchés de services/résidentiels peuvent être porteurs d'une liaison LOS.
· kamo-internal
Préf. Préf de base de la console par membre dans DB; erreur de téléchargement plus claire
- useBackgroundMode maintient désormais le choix du goulot d'admission dans le DB du membre; ui-préférences (suivi du membre à travers les dispositifs) au lieu de par dispositif LocalStorage. Remarquer la bascule "Ce dispositif" - "Console" et laisser tomber le "Ne suivez pas ... à d'autres dispositifs" légende. - Sur un rejet de téléchargement 4xx (le serveur ne pouvait pas traiter l'image, par exemple un format non pris en charge comme HEIC), montrer "Couldn't traiter cette image. Essayez un JPEG ou PNG." au lieu du générique "essayer à nouveau".
· kamo-internal
Mise en page à 4 cols (carte d'encart de chute sur l'onglet hypothèque); bac à sable à l'exclusion du bac à sable à l'exclusion du nom, chuter le code d'identification du lecteur redondant
· kamo-internal
Déplacer le calculateur d'accessibilité vers la colonne de sortie gauche en haut de la colonne de sortie gauche
· kamo-internal
What-If Studio en tant que sous-onglet de forme 3ème; bac à sable empilé pour s'adapter à la colonne de forme
· kamo-internal
Sortie panneau 2-col (éligibilité gauche, menus courts à droite); chuter les KPI/mètres maintenant en tête
· kamo-internal
IPC hypothécaire et LTV/DTI/Résumé complet de la page (tous les onglets, hypothèques résidentielles uniquement)
· kamo-internal
Les actions d'en-tête passent à la rangée des onglets; ajouter les fentes KPI et compteurs à la ligne principale
· kamo-internal
Détunérer les champs dans les détails de l'hypothèque / Sous-onglets d'adresse de la propriété; titre de la carte d'abandon
· kamo-internal
What-If passe outre-passe à côté du tableau de comparaison en direct; supprimer le scénario mort
· kamo-internal
aires de répartition des champs - disposition des sorties; bande de héros de gradient de retraite
· kamo-internal
Panneaux de sortie (colonne de sorties propres, pas de gradient)
· kamo-internal
Les champs apparaissent sous forme d'étiquettes en mode d'écoute, entrées en mode édition;
· kamo-internal
Détails d'un câblage de l'onglet et contact Info renommer; supprimer le bloc hypothécaire en ligne
· kamo-internal
Conteneur de taxis (cockpit vivant)
· kamo-internal
ScénarioGrid de la pertinence
· kamo-internal
MortgageHeroBand avec indicateurs de performance de comptage et de compteurs
· kamo-internal
WhatIfStudio (boîte à sable pleine largeur)

Votre univers vous attend.
Commencez gratuitement en quelques minutes. Ajoutez des produits quand vous êtes prêt. Pas de migration, pas de nouvelles connexions.
Gratuit pour toujours — aucune carte de crédit requise