Changelog
Ce qui est nouveau.
Chaque amélioration apportée à la plateforme, à mesure qu'elle est livrée.
· kamo-signer-monorepo
Formatage de la date au niveau local et métadonnées par localité
· kamo-signer-monorepo
Ajouter un commutateur de langue à la barre supérieure du signataire
Menu endoymisé sur les 22 lieux pris en charge. Préserve la requête La chaîne de l'interrupteur est le seul justificatif de signature.
· kamo-signer-monorepo
Mise en page du miroir pour les sites RTL via stylis-plugin-rtl
La direction du thème MUI seul retourne la logique de la composante mais laisse physique Propriétés CSS intactes, donc l'arabe rendu avec espacement LTR. Efface le Clés de cache émotionnel et plugins sur la direction. En outre, ajoute le stylisme en tant que dépendance directe (précédemment, seuls transitants par le biais Emotion) et 'types/stylis, depuis le locuteur de pnpm isolé de ce repo ne résout pas les dépendances fantômes et les stylismes 4.2.0 navires des déclarations de type.
· kamo-signer-monorepo
Router le signataire sous /-locale avec l'intergiciel next-intl
Adds i18n/routing.ts (localePrefix toujours), i18n/navigation.ts, et middleware.t, et déplace l'arbre de la route sous src/app/[locale-/. request.ts se résout maintenant à partir de l'URL au lieu du cookie kamo-locale, en maintenant la profonde rupture de l'anglais. Les liens des signataires sont en place pour continuer à fonctionner: l'intergiciel 307-redirects URL non préfixée et conserve le jeton "t".
· kamo-internal
Clignotement de l'icône de courrier pendant qu'un indicateur non lu s'affiche
Le badge non lu seul était facile à manquer dans la barre supérieure. NavItemButton gagne a blinkIcon prop qui pulse l'icône (et son badge) - maintenu distinct du cliché existant, qui ne fait qu'allumer le point d'alerte de plomb et MailButton tourne jusqu'à long terme que l'onireadCount est égal à 0. Les honneurs préfèrent-réduction des mouvements.
· kamo-marketing
Démarreur plafonné à 5 utilisateurs, Business à 25 ans
Repositionne les chapeaux de siège publiés sur/prix (et la calculatrice, Offres JSON-LD, et résumés llms.txt) en correspondance avec l'abonnement Catalogue: Démarreur 25 - plus de 5 utilisateurs, Business 100 - 25 utilisateurs.
· kamo-internal
Clarify MeridianLink secret du marché est l'identifiant de service de synchronisation (identifiant de connexion au profil des membres)
· kamo-internal
Carte d'accréditation de l'officier de crédit MeridianLink sur le profil des membres et le bouton principal LO avant la guerre
Phase L3 de la cartographie de l'agent de prêt MeridianLink LOS (par 3,4 à 3,6 dollars) la spécification de conception): - Nouveau mandataire à cristage LOS à cristalon - et les types de client et de type type dans app/lib/los/types.ts) transmission GET/PUT/DELETE/POST vers SecurityService. - Nouvelle section "Accès à l'accès des auxiliaires de MeridianLink" - placés juste après État Octroi de licences. Visible uniquement lorsque le membre a un id NMLS ET au moins un le marché de l'org est assuré par une connexion MeridianLink active; à l'aune de l'entreprise - les droits. Une ligne par marché (nom d'utilisateur/secret/activé/puce de statut/Test); le secret est en écriture uniquement et Jamais restitué. - Lead-view Create Leleton d'application pré-réactive: lorsqu'une sonde n'a pas de LOS demande encore et l'agent de prêt qui lui a été affecté n'est pas lié à MeridianLink, le bouton est désactivé avec une infobulle insérant le LO à la place de ne pas faire défaut en cliquant. Étend MarketConfig avec losLoName/losLoLoninked (par défaut de défaillance pour les anciennes constructions de SecurityService). Le backend 422 reste la garantie réelle.
· SecurityService
LO-scoped créer (bloc s'il n'est pas démonté) - membre MeridianLink justificatif API et marché-config LOstat de lien LO
Phase L2 de la cartographie de l'agent de prêt MeridianLink (kamo-internale) - 3,3-36, construit sur le schéma/résol de l'album L1 (MarketLosUserCredential, Tous les saillies de savon (embarquement des fournisseurs) toujours en suspens). - Créence maintenant du prêt AS le chef de file attribué Agent de prêt via la résolutionForMember au lieu du service partagé de la connexion identité (décision bloquée B: bloc, ne retomber pas). Aucune LO attribuée n'est attribuée à 422; un LO attribué sans utilisateur MeridianLink lié - 422 avec un actionnable message. La vérification de 409 déjà liée fonctionne maintenant avant la connexion/LO contrôles, par examen préalable, donc une tentative de création de duplicate ne peut pas régresser à 403/422 avant 409. - Nouveau (GET/PUT/marketId) DELETE/-marketId/POST /-marketId/test), gated as Member StateLicensingController (STATE-LICENSING-VIEW/EDIT 'OWN/-ALL, Dieu contourner). Cryptage-on-write via PlatformSecretCipher, cache secret keeps la text chiffrée stockée, la vue uniquement par correspondance, la suppression douce, les netraduits jamais Action d'essai. - Le leadProuvergeeur de marchés gagne losLoName/losLoLinked, la vision en tête le bouton peut pré-avertir avant de frapper le 422. - Ajout de BaseLosController-nonprocessable (422 assistants). TDD: 54 tests à travers LeadLosCludisme (extension), (nouveaux), et LeadControllerMarketConfigTest (prolongé) - tout vert. L3 (UI kémo-interne) supplétateur) est un travail de suivi distinct.
· kamo-shared-library
Peranet MeridianLink Cidential (MarketLosUserCredential) et résolutionPrêt-à-luner
· kamo-internal
Campagnes de messagerie en vrac UI et grille, éditeur, onglet fournisseur, action en tête
Ajoute la surface de marketing par courrier électronique en vrac au niveau de l'orgge sous /commercialisation/courrier électronique: - Onglet Courrier électronique en vrac (après les médias sociaux) et campagnes AG Espace de travail de grille avec en direct état/sent-vs-total count sur STOMP (/topic/campaigns/-orgId); fixe le la ligne de contact/la logique active pour les voies imbriquées. - Éditeur de campagne (/marketing/email/campagn) : Quill composer la réutilisation Système d'en-tête de signature/système de pied et de fusion des jetons, destinataires à partir du téléchargement de fichiers (carte e-mail-colonne), ID de plomb/compte/application (point d'arrêt de résolution) ou manuel entrée, un panneau de prévol (skip/opt-out/masqué/invalide de panne - CAN-SPAM gardes), et envoi/fuite/démangeage et étrangleur (all-at-once / uniformément / naturalisé) - l'échauffement). Accepte le transfert de l'envoi de messages en bloc. - Onglet des paramètres des fournisseurs de messagerie en bloc (congestion SMTP séparée et messagerie électronique de test d'envoi réel). - Chefs de file: "Bulk email (N)" action sur l'éditeur de campagne multi-select. - Départements : courrier électronique et champs de téléphonie/extension; étiquetage des comportements : courrier électronique de l'entreprise. - API client (emailCampaignApi, bulkEmailProviderApi, destinataireResolveApi), utiliser e-mailCampaignsWebSocket crochet, et la route proxy de résolution de sécurité.
· SecurityService
Résolution du destinataire en bloc et des champs de contact des départements
POST /api/sécurité/commercialisation-courrier/ les destinataires/résidents transforment les identifiants de compte/d'application en destinataires de courrier électronique. Gated on MANAGE-BULK-EMAIL; applique un masque en contact de sonde sous l'émetteur (marques masquées silencieusement sautées), Account.acceptsMarketing opt-in gate, emprunteur e-mail pour applications, validation syntaxique, dédeu de lancipe inter-sources la ventilation par saut/comptage. - DépartementContrôleur: enfiler les nouveaux champs e-mail/téléphone/prorogation de vulgarisation Création/mise à jour du service du Département.
· kamo-shared-library
Support partagé pour la résolution du destinataire en gros et adresse électronique de contact de l'entreprise
- Service de messagerie contact (contact de l'entreprise) e-mail modifiable via PUT /api/security/org, utilisé comme campagne de banto-entreprise À partir de) - Demande Référentiel : recherche de lots polymorphes (trouvéeByUidInAnd Organisation-Id) de résoudre le courrier électronique de l'emprunteur d'une demande pour les destinataires de la campagne; - AccountBorrowerPartyRepository: findByAccount-UidIn batch finder (pas N-1) Additifs uniquement; colis déjà couverts par
· EmailService
En backend de campagne de courrier électronique en vrac - fournisseur, expéditeur, conformité, temps réel
Backend for org-level (campagnes d'e-mails en général) pour les campagnes d'information générale, entièrement séparées du quotidien Un fournisseur de courrier électronique pour qu'il ne puisse pas être étranglé/bloc listé à côté du courrier d'affaires: - Fournisseur de SMTP en vrac (BulkEmailProviderService et BulkProviderController): re-confusion d'org crypté EmailProviderEncryptionService; test réel d'envoi Courrier électronique (ouvre une session SMTP en direct et envoie). - Campagne CRUD - machine d'état d'avancement (CampaignService/Ctroteur): projet, calendrier, send-now, pause, reprise, annulation, dupliquée; matérialisation du destinataire avec dedupe, marquage de suppression, per-bénéficiaire de désabonnement jetons; porte CAN-SPAM (Adresse physique en matière d'objet et de 1 dollar requis pour laisser le projet de projet). - Équilibreur d'accélération (CampaignDispatcher) : all-at-once / sur la fenêtre régulière / accélération au son aléatoire par destinataire (redémarrage sûr), rampe d'échauffement sur maxPerHour, hard-bounce--suppress auto-suppress. - Conformité : SuppressionService, public en un clic RFC 8058 UnsubscribeContrôleur (Liste-Seigneur-Aucildiction en-têtes), suppression re-vérification à l'envoi. - En temps réel: push direct STOMP vers /topic/campaigns/-orgId- et abonné-temps org ChannelInterceptor (fermet l'exposition à un sujet de traducteur). - EmailSmtpService: additif extraHeaders send() surcharge (Liste-Soubons de désabonnement).
· kamo-shared-library
Efchafales de notification d'effets indésirables ECOA/FCRA et satisfaire-timer
Le mécanisme de délivrance est le moitié partagé. ConformitéTimerService gains - - - ne bascule que les temporisateurs ARMED ECOA-AA à SATISFI (retourne COUNTEROFFER/INCOMPLETE-NOA et déjà satisfaites) intouché), de sorte qu'un avis d'action adverse SENT peut fermer l'horloge du Règ B. un non-envoyé reste ARMED pour le balayage de la brèche. Deux modèles d'e-mail canoniques - ADVERSE-ACTION-NOTICE (ECOA/Reg B et FCRA 615 a) et RISQUE-BASÉS-PRICATION-NOTICE (FCRA 615(h)/Reg V) et enregistré en CanonicalTemplateLoader. Les deux sont des échafaudages STRUCTURAL uniquement: une effusion de moussée [[VOUS RESPECT-APPROUVÉ ... - l'obligation de séjourner le conseil du créancier remplit les services en variables de données structurées, plus (demandeur, date, raisons principales / trigger). Kamo n'a pas de prose légale.
· kamo-internal
Ajouter Master Machine lanceur de bureau à distance (d'origine)
Troisième bureau en un clic à côté de Linux/Windows: navRegistry entry (ComputerIcon), cible 'master' via openKamoDesktop et la route proxy SSO, et expédition dans les trois gestionnaires d'action.
· SecurityService
Ajouter une cible "maître" pour la machine maître SSO en liaison profonde
buildAutoConnectUrl plie maintenant une connexion Master Machine (KAMO-GUAC-MASTER-HOSTNAME, par défaut 192.168.4.46); incluse dans chaque jeton pour la réutilisation de session. Conservé en synchronisme avec le bootstrap KlusterServices SQL.
· KlusterServices
Ajouter "Master Machine" (kamo-dev-1) dispositif RDP au Guacamole
La station de travail locale Kubuntu partage sa session en direct sur le RDP via KRdp. Ajoute une connexion idempotent bootstrap SQL (192.168.4.46:3389, sage/shared pw, sécurité-any, ignore-cert, profondeur de couleur 24) et LIRE. Inclut les spécifications de conception.
· kamo-shared-library
Entités de la fondation de campagne de courrier électronique en vrac - champs de contact département/org
Ajout la base de la bibliothèque partagée pour les campagnes d'e-mails en général de niveau g: - OrgBulkEmailProviderEntity (séparée par rapport au fournisseur quotidien; UNIQUE org-id) - EmailCampaignEntity / EmailCampaignRecipientEntity (état/champignon/poussière/ source enums) modélisant la file d'attente d'envoi durable par destinataire - EmailSuppressionEntity (liste de suppression CAN-SPAM) - Département : courrier électronique et services téléphoniques/extension (EmbPhoneNumber) - Organisation: contactEmail (campagne d'entreprise À partir de par défaut) - RoleRightType: VEW-BULK-EMAIL(175), MANAGE-BULK-EMAIL(176) sous MARK Tous les nouveaux colis se trouvent sous la rubrique com.kamo.z.shared.email. KamoInitializer et Compile proprement.
· kamo-shared-library
Modèle canonique STEWARD-TASK-ROUTED
La notification par stewardd-decision a besoin d'un modèle d'e-mail canonique. Registres STEWARD-TASK-ROUTED in CANONICAL-KEYS avec sa paire json/html; l'organisme porte le prêt / le contexte de décision/d'exception et un lien de support d'intendance. Le contenu est autorisé par le biais le système de modèle existant.
· SecurityService
Relais de passerelle à la menthe un MERS MIN pour un colis de fermeture
POST la propriété contrôlée (requirePackageOrg) donc un gardien de l'intendance ne s'applique que pour son propre locataire. Le en amont indique l'identifiant MERS à 7 chiffres provenant de la connexion du fournisseur MERS du locataire dans le un onglet d'intégrations; un 400 signifie que MERS est non configuré ou que le prêt n'a pas de numéro de prêt.
· kamo-internal
Date de naissance sur le point de vue du plomb et créer un formulaire
Ajoute un champ "Date de naissance" sous Contact primaire sur /leads/view/[id) en utilisant un MUI DatePicker qui s'ouvre d'abord à la grille de l'année (open To-year, disableFuture, min 1900) - le flux intuitif pour les dates de naissance - plus le même cueilleur sur le Forme de nouvelle main. Votes-décès de la date parseISO/format (local, no UTC) hors par un). L'affichage est protégé par la confidentialité sur canViewContact; le champ est facultatif. Fils DateOfBirth à travers les types, les leadsApi créent/démarrage les gardes, et la liste de champs import-wizard.
· SecurityService
Date de naissance de l'acceptation et de la date de contact (DOB)
Carte des commutateurs manuels-importations et de prise en charge par les fournisseurs avec a l'analyse multiformat légère (ISO plus formes communes US M/j/yyyyy); inéventable les valeurs laissent le DOB en décalage au lieu de lancer). Comptuit DOB en tant que PII de contact requestTouchesContactInfo pour l'éditer sur le rôle principal d'un autre membre nécessite EDIT-LEAD-CONTACT-INFO-OTHERS. Soutenu par le nouveau shared-lib Lead.dateOfBirth.
· kamo-shared-library
Ajouter nul la date de naissance du contact nul à la tête
Ajoute un niveau de contact "dateOfBirth" (java.time.LocalDate, colonne DATE) à la base Lead: entité - Create/Update/LeadDTO (du plomb), copié dans LeadService créer/mettre à jour et à la fois les assistants de conversion de sous-classes hypothécaires afin qu'il survive à une changement de marché. Plein dans le registre du lead-history (Contact) et masqué en PII en maskContactInfoDatre Autres. Nullable, pas de défaut - sécurité ALTER ADD COLUMN.
· kamo-internal
Règles de recouvrement de l'exigence de l'auteur à partir de la console steward
La matrice de la règle "quels documents ce prêt a-t-elle besoin" n'avait pas de surface de création. Cela ajoute un Section des règles relatives aux besoins en documents et à l'écran «Documents» (plié dans le document propriétaires d'un écran, pas d'un nouvel onglet) où un intendant liste, des auteurs et prend sa retraite de leur locataire les règles de recouvrement. La copie d'aide est honnête au sujet de la portée: une superposition sur le dessus de la base de la plate-forme et AUS/Découvreurs de l'organisme (DU/LP/GUS), qui demeurent la source de la vérité; une règle ne peut approuver une prêt ou effacer une condition, et rien ici n'est un mandat légal. Le formulaire propose les 23 Valeurs de type conducteur et un code de type doc en texte libre (le backend le valide contre le catalogue d'imagerie de l'organisation et retourne un 400 en ligne clair si l'orge ne peut pas collecter il n'y a pas de liste de doc codée en dur). Un badge de mur juridique et une demande de blocage contre un badge consultatif rendre sur chaque règle; Retirer confirme d'abord.
· SecurityService
Récunissement de la règle de recouvrement des règles de recouvrement
Relais POST/GET/retire sur et vers MLOSDocService, avec organisationId server-sampillé de la session d'opérateur donc un steward auteurs et liste uniquement les règles de la superposition de leur propre locataire.
· kamo-internal
LLPA conditionnelles d'auteur du panneau de catalogue
Les ajustements ne pouvaient pas varier selon les emprunteurs : MlosAdjustmentCondition n'avait pas d'écrivain, et la le moteur de tarification traite un ajustement sans conditions comme toujours s'applique, de sorte que chaque LLPA L'emprunteur a tiré pour chaque emprunteur et un emprunteur de 780-FICO a été le même succès qu'un 620. Ce formulaire auteur d'un ajustement ainsi que les conditions qui le font. Modélisé sur le formulaire de sécurité de verrouillage dans le même panneau: un id de la feuille de vitesse, le prix delta et étiquette, et une liste répétable de lignes d'état (attribut - opérateur - numLow, avec numHigh montré uniquement pour BETWEEN). Le client reflète les gardes du serveur - au moins un état, une limite à chaque condition, les deux bornes pour ENTRE ENTRE avec un faible et un niveau élevé - donc un mauvais Le règne est pris en ligne plutôt que lors d'un aller-retour.
· kamo-internal
Confirmer les courriels lors de la réaffectation d'une avance à partir de la vue d'exécution
La carte d'affectation réaffectée par l'intermédiaire de leadsApi.reassignLead, qui fait surface L'avis de flagat notifié du serveur. Sur une réaffectation à un nouveau membre du toast lire "L'affectation sauvegardée a été notifiée par courrier électronique" ; sur un no-op ou l'auto-cession (où le serveur n'envoie rien) il reste la confirmation simple.
· SecurityService
Envoyer un courriel au nouveau propriétaire lorsqu'un seul chef de file est réaffecté
Répercupère le chemin de base pour la carte d'attribution de vue de plomb. Quand PUT/leads/-id déplace un lead vers un membre différent, ce membre obtient maintenant le même LEADS-ASSIGNED e-mail (compte 1) le flux en vrac envoie. Meilleur effort - l'envoi s'exécute après le la mise à jour s'engage et ne l'échoue jamais. Tire uniquement sur une réaffectation réelle: saute sans passe-op sauf là où le cessionnaire est inchangé (ainsi, l'édition des coordonnées n'envoie rien), et saute l'auto-assignation un officier qui revendique une avance en l'assignant à lui-même n'a aucune raison d'envoyer un courriel eux-mêmes. La réponse est retenue par le cessionnaire Notification afin que l'UTI puisse confirmer la nouvelle le propriétaire a été envoyé par courrier électronique. Le plomb avant mise à jour est maintenant récupéré une fois et réutilisé à la fois pour l'authz et le la capture des expéditeurs précédents, au lieu de seulement à l'intérieur de la branche non-god authz.
· SecurityService
L'élaboration de la RESPA conditionnelle-LPA
Relaise POST - par l'intermédiaire de l'assistant d'écriture d'orge, donc les auteurs de stewards ne subordonnent les ajustements conditionnels que pour leur propre locataire.

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