Mergi la conținut
KAMOUniverse

Jurnal de schimbări

Ce e nou.

Fiecare îmbunătățire a platformei, pe măsură ce se livrează.

  1. · kamo-signer-monorepo

    Formatare dată locală și metadate perlocale

  2. · kamo-signer-monorepo

    Adaugă comutator de limbă la bara de sus a semnatorului

    Meniul marcat cu endonim peste 22 de localităţi sprijinite. Păstrează interogarea șir de pe comutator .

  3. · kamo-signer-monorepo

    Layout oglindă pentru localuri RTL via stylis-plugin-rtl

    Direcţia tematică MUI singur răstoarnă logica componentei, dar lasă fizic Proprietăţi CSS neatinse, atât de arabe redate cu spaţiu LTR. Schimbă Tasta cache emoție și plugin-uri pe direcție. De asemenea, adaugă stylis ca o dependență directă (în trecut numai tranzitiv prin Emoție) și @types/stylis, deoarece acest repo izolat pnpm nod-linker nu rezolvă dependențele fantomă și stylis 4.2.0 nave nici un pachet declarații de tip.

  4. · kamo-signer-monorepo

    Traseul sub / {local} cu middleware nou-intl

    Adds i18n/routing.ts (localePrefix always), i18n/navigation.ts și middleware.ts, și mută arborele de traseu sub src/app/[locale]. cereri.ts acum se rezolvă de la URL în loc de kamo-locale cookie, Păstrarea declinului englezesc. Linkuri remarcabile de signer continua sa lucreze: Middleware 307-redirects URL-uri neprefixe şi păstrează jetonul ?t= token.

  5. · kamo-internal

    Clipește pictograma de mail în timp ce un indicator necitit este afișat

    Numai insigna necitita era usor de ratat in barul de sus. NavItemButton câștigă un blinkIcon prop care pulsează pictograma (și insigna sa) existente pe ea atâta timp cât necititCount > Onorurile preferă mişcarea redusă.

  6. · kamo-marketing

    Starter plafonat la 5 utilizatori, Afaceri la 25

    Repoziționează capacele de scaune publicate pe /preturi (și calculatorul, JSON-LD oferte, și rezumate llms.txt) pentru a se potrivi cu abonamentul catalog: Starter 25 -> 5 utilizatori, Business 100 -> 25 utilizatori.

  7. · kamo-internal

    Clarify MeridianLink secret de piață este inbound-sinc service credibil (per-LO login-uri pe profilul membrilor)

  8. · kamo-internal

    MeridianLink card de credit-funcționar credibil pe profil membru + plumb-buton LO pre-avertizare

    Faza L3 a cartografierii credit-funcționarului MeridianLink LOS (per §3.4-3.6) Spectacol de proiectare: - Noul proxy LOS-credential cu caracter de membru Nu-ţi face griji. și client tastat Nu-ţi face griji. tipuri în app/lib/los/types.ts) forwarding GET/PUT/DELETE/POST to SecurityService. - Noul "MeridianLink Loan Officer Access" SectionCard on - Nu. plasat imediat după Baza de Stat Licenţă. Vizibil numai atunci când membrul are un ID NMLS ȘI cel puțin unul Piata de org are o conexiune MeridianLink activa; poarta pe existenta Am avut dreptate. Un rând pe piață (nume de utilizator/secret/enabled/status cip/test); secretul este numai scris și nu s-a întors niciodată. - Lead-view Creați butonul Aplicație acum pre-warns: atunci când un plumb nu are LOS cererea încă și ofițerul său de împrumut atribuit nu este legat de MeridianLink, butonul este dezactivat cu un sfat instrument de numire LO în schimb de a da doar click. Extinde MarketConfig cu losLoName/losLoLinked (implicite defensive pentru mai vechi SecurityService builds). Platforma 422 rămâne garanția reală.

  9. · SecurityService

    Creare LO-scoped (blocare dacă nu este cartografiată) + membru MeridianLink credibil API + statut de legătură LO config pe piață

    Faza L2 a proiectului de cartografiere a împrumut-funcționar MeridianLink (kamo-intern) Nu-ţi face griji. §3.3-3.6), construit pe schema L1 comună/rezolvator (MarketLosUserCredential, - Nu. Toate SOP râs (vendor la bord încă în curs de desfășurare). - ************* acum creează împrumutul AS plumbului atribuit ofiţer de credit prin soluţiePentru membri în loc de serviciul comun al conexiunii identitatea (decizia blocată B: bloc, nu cad înapoi). Nr. LO -> 422; un LO atribuit fără utilizator MeridianLink conectat -> 422 cu un activabil Mesaj. Verificarea 409 deja conectată rulează acum înainte de conexiune/ LO controale, pe o revizuire prealabilă, astfel încât o încercare duplicat-creat nu poate regresa la 403/422 înainte de 409. - Nou *************** - Nu. (GET/ PUT/ {marketId} / DELETE/ {marketId}/ POST / {marketId}/ test), poartă ca Controlor de licenţe al statelor membre (STATE LICENSING VIEW/EDIT OWN/ ALL, Dumnezeu bypass). Cript-on-write via PlatformSecretCipher, gol secret păstrează cifrul stocat, are vedere doar-Credențial, moale-ștergere, nu aruncă Test de acţiune. - LeadController piață-config câștiguri losLoName/losLoLoLinked astfel încât lead-view butonul poate pre-avertiza înainte de a lovi 422. - Adds BaseLosController#neprocesabil (422 ajutor). TDD: 54 teste pe LeadLosControllerTest (extins), Nu-ţi face griji. (nou) și LeadControllerMarketConfigTest (extras) L3 (kamo-internă UI + proxy) este o activitate separată de urmărire.

  10. · kamo-shared-library

    Pe membru MeridianLink credibil (MarketLosUserCredential) + resolutionForMember + LO-scoped outbound impinge

  11. · kamo-internal

    Bulk Email campanii UI grilă, editor, fila furnizor, conduce acțiunea

    Adaugă suprafața de marketing en-gros org sub /marketing/email: - Bulk Email tab (după Social Media) + campanii AG Grid spaţiu de lucru cu live număr total de status/sent-vs faţă de STOMP (/topic/campaigne/{orgId}); marketing tab gate / logica activa pentru trasee cu cuiburi. - editor de campanie (/marketing/email/campaign): Quill compune refolosind sistem de antet semnătură/de jos + jetoane combinate, destinatari de la încărcarea fișierului (hartă e-mail-coloană), ID-uri de plumb/cont/cerere (obiectiv de soluționare) sau manual intrare, un panou de prezbatere (skip/opt-out/masked/invalid department + CAN-SPAM paznici), și trimite / draft / programa + accelerație (tot-o dată / uniform / naturalizat + încălzire). Acceptă pistele în vrac-email. - Bulk Email Setări furnizor fila (separat SMTP configura + real Send Test Email). - Leads: "Bulk e-mail (N) " acțiune pe multi-select → editor de campanie. - Departamente: e-mail + campuri de telefon/extensie; etichetare comportament: e-mail de companie. - API client (emailCampaignApi, vrackEmailProviderApi, destinatarRezolvareApi), UtilizațiEmailCampaniagsWebSocket cârlig, și ruta proxy rezolva de securitate.

  12. · SecurityService

    Rezoluţia destinatarului în vrac + câmpurile de contact ale departamentului

    - *************** Post/api/securitate/marketing-email/ destinatari/rezolvați transformă plumb/cont/ ID-uri de cerere în destinatari de e-mail. Gated on MANAGE BULK EMAIL; aplicați mascarea contactului cu plumb sub expeditor Contul. acceptă intrarea pe piață, împrumutat e-mail pentru aplicații, validare sintactică, dedupe cross-source + a full Cădere/numărare. - DepartmentController: fir de e-mail nou / telefon / câmpii de cerere extensia DepartmentService create/actualizează.

  13. · kamo-shared-library

    Suport partajat-lib pentru rezoluție destinatar în vrac-email + e-mail contact companie

    - *************** contactEmail ramura (contact companie e-mail editable via PUT /api/security/org, used as company-scope campanie From) - AplicationRepository: polimorf lot finder (findByUidInAndOrganization) Id) pentru a rezolva e-mailul împrumutatului unei aplicații pentru destinatarii campaniei - ContBorrownerPartyRepository: findbyAccount UidIn lot finder (no N+1) Numai aditivi; pachete deja acoperite cu *****************

  14. · EmailService

    Bulk e-mail campanie backend

    Suport pentru campanii de e-mail en gros de nivel org, complet separate de zi cu zi furnizorul de e-mail astfel încât acesta nu poate fi accelerat / blocate alături de e-mail de afaceri: - Furnizor SMTP vrac (BulkEmailProviderService + BulkProviderController): criptat org config reusing EmailProviderEcriptionService; real Send Test E-mail (deschide o sesiune SMTP live și trimite). - Maşina CRUD + status (Campanieservice/Controller): proiect, program, trimite-acum, pauză, reluare, anulare, duplicat; materializare destinatar cu dedupe, suprimare etichetare, per-recipient unsubscribe tokens; CAN-SPAM poarta (sub rezerva adresei fizice + >1 destinatar necesar pentru a părăsi proiectul). - Dispecerat cu reacţie (CampaniaDispatcher @Scheduled): all-at-once / uniform-peste-fereastra / naturalizat-random pacing prin per-recipient următorReleaseAt (restart-safe), rampă de încălzire pe maxPerHour, hard-bounce -> auto-suppress. - Compliance: SuppressionService, public one-click RFC 8058 UnsubscribeController (+ List-Dezabonați antetele), suprimarea reverificat la trimitere. - În timp real: împingere directă STOMP către /topic/campanii/{orgId} + timpul de subscriere org Interceptor Channel (închide expunerea tematică transversală). - EmailSmtpService: aditiv extraHeathers send() suprasarcină (List-Unsubscribe).

  15. · kamo-shared-library

    ECOA/SFFA schele de avertizare privind acțiunea adversă + satisfăcător

    Mecanismul de emisiune e jumătatea comună. Câştiguri de la serviciul de conformitate ********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************* SASTIFIED (frunze de COUNTEROFFER/INCOMPLETE NOA și deja satisfăcute) neatins), astfel încât o notificare SENT de acțiune adversă poate închide ceasul Reg B în timp ce Una netrimisă rămâne înarmată pentru verificare. 2 e-mailuri canonice [%] Articolul 615 alineatul (a) și CRR BASED PRICING NOTICE (NBBA §615(h)/reg V) Template canonic Loader. Ambele sunt doar schele STRUCTURALE: o dărâmătură Deţinătorul locului pe care avocatul creditorului îl completează în plus variabile de date structurate (solicitant, data, principalele motive / declanşator). Kamo nu furnizează nici o notificare legală operativă.

  16. · kamo-internal

    Adaugă lansator de la distanță Master Machine (God-gated)

    Al treilea desktop cu un singur click lângă Linux/Windows: intrare navRegistry (ComputerIcon), țintă "master" prin OpenKamoDesktop + ruta proxy SSO, și expediere în toate cele trei responsabili de acțiune.

  17. · SecurityService

    Adaugă țintă "master" pentru Master Machine SSO

    buildAutoConnectUrl acum menteaza o conexiune Master Machine (KAMO GUAC MAster HOSTNAME, implicit 192.168.4.46); inclus in fiecare jeton pentru reutilizare sesiune. S-a sincronizat cu SQL.

  18. · KlusterServices

    Adăugați "Master Machine" (kamo-dev-1) dispozitiv RDP la Guacamole

    Staţia de lucru locală Kubuntu îşi împărtăşeşte sesiunea live Plasma/Wayland peste RDP prin KRdp. Adăugați un idemppotent bootstrap SQL conexiune (192.168.4.46:3389, salvie/împărțit pw, securitate=orice, ignora-cert, color-aprofundat 24) și READ grant. Include specificaţii de proiectare.

  19. · kamo-shared-library

    Bulk-email campanie fundație entități + departament/org domenii de contact

    Adăuga fundația comună-librar pentru campanii de e-mail en gros de nivel org: - OrgBulkEmailProviderEntity (separat de furnizorul zilnic; UNIQUE org id) - EmailCampaignEntity / EmailCampaignRecipientEntity (+ status/scop/throttle/ sursă enums) modelarea coadă de trimitere per beneficiar durabil - EmailSupresionEntity (lista de suprimare CAN-SPAM) - Departamentul: e-mail + telefon/extensie (EmbPhoneNumber) campuri de contact - Organizare: contactEmail (company-scope campanie From implicit) - RoleRightType: view BULK EMAIL (175), MANAGE BULK EMAIL (176) under Marketing Toate pachetele noi stau sub com.kamo.z.shared.email.* (deja acoperite de KamoInitializer Nu-ţi face griji. Compilează curat.

  20. · kamo-shared-library

    Șablon canonic

    Notificarea de administrare a deciziei rutate are nevoie de un șablon de e-mail canonic. Regiștri STEWARD TASK ROUTED in CANONIC KEYS with his json/html pair; body cars the loan / Contextul deciziei/excepției și o legătură între administrator și administrator. Conținutul este org-autorizabil prin sistemul de șablon existent.

  21. · SecurityService

    Releu Gateway pentru a menta un MERS MIN pentru un pachet de închidere

    POST *************** controlat de proprietate (necesitatePackageOrg), astfel încât un administrator mentosane numai pentru chiriaș lor. ă în amonte citește ID-ul MERS ORG 7 cifre din conexiunea furnizorului MERS chiriașului în integrarea fila; un 400 înseamnă MERS este neconfigurat sau împrumutul nu are număr de împrumut.

  22. · kamo-internal

    Data nașterii la vedere cu plumb + crearea formei

    Adaugă un câmp "Date of Birth" sub contact primar pe /lides/view/[id] folosind MUI DatePicker care se deschide la grila de an primul (deschis=an, dezactivat Future, min 1900) O nouă formă de conducere. Date rotunde prin intermediul data-fns parseISO/format (local, fără UTC) off-by-one). Display-ul este confidenţial pe canViewContact; câmpul este opţional. Wires dateOfBirth through types, leadsApi create/update guards, and the Lista de domenii import-wizard.

  23. · SecurityService

    Acceptare și data de contact a porții (DOB)

    Hărți Naștere în switch-uri de câmp de import manual și vânzător cu un pars multiformat indulgent (ISO plus formele comune US M/d/aaaa; neparsabile valorile lăsate nesetate mai degrabă decât aruncate). Counts Data nașterii: cerereTouchsContactInfo astfel încât editarea pe plumb unui alt membru necesită Edit LEAD CONTACT INFO Others. Susţinut de noul Lead.dateOfBirth.

  24. · kamo-shared-library

    Adaugă data de contact nulabilă la plumb

    Adaugă un nivel de contact-dateOfBirth (java.time. Data locală, coloana de date) la Lead de bază: entitate + Creare/actualizare/LeadDTO (fromLead), copiată în LeadService creează/actualizează și ambele ipoteca-subclasă converti ajutoare astfel încât să supraviețuiască a Schimbăm piaţa. Urmarite in registrul istoric de plumb (Contact) si mascate ca PII în mascăContactInfoFrothers. Nulable, no default .

  25. · kamo-internal

    Autor documente-cerință reguli suprapusă din consola administrator

    "Ce documente are acest împrumut nevoie" matricea regulii a avut nici o suprafață de autor. Acest lucru adaugă o Sectiunea de reguli privind cerintele documentelor din ecranul documentelor si conditiilor (impliata in detine ecran, nu o noua fila) în cazul în care un administrator liste, autori, și retrage chiriașului lor Regulile suprapuse. Copia de ajutor este sinceră cu privire la domeniul de aplicare: o suprapunere pe partea de sus a platformei de referință și Rezultatele AUS/agenții (DU/LP/GUS), care rămân sursa adevărului; o regulă nu poate aproba o împrumut sau clar o condiție, și nimic aici este un mandat legal. Formularul oferă 23 CerințăDriverType și un cod de tip doc cu text liber (backend validează împotriva catalogului de imagistică al org și returnează o linie clară 400 dacă orga nu poate colecta nu este o listă hardcoded doc). O insignă de perete legal și blocuri-avansare vs insigna de consiliere Îndeplineşte fiecare regulă; retragerea confirmă mai întâi.

  26. · SecurityService

    Refacere document-necesitate overlay-regulă autor

    Relays Post/GET/retire on ***************** to MLOSDocService, with organizationId server-timbru din sesiunea operatorului astfel încât un administrator autori și liste numai propriile reguli ale chiriaşului.

  27. · kamo-internal

    Autor condiţionat LLPA din panoul de catalog

    Ajustările nu pot varia în funcție de debitor: MlosAdjustmentCondition nu a avut nici un scriitor, și motorul de tarifare tratează o ajustare fără condiții ca întotdeauna-se aplică, astfel încât fiecare LLPA concediat pentru fiecare împrumutat și un împrumutat 780-FICO a luat aceeași lovitură ca un 620. Acest formular autori o ajustare împreună cu condițiile care o poartă. Modelat pe formularul de politică de blocare în același panou: un ID de versiune a foii de calcul, prețul delta și eticheta și o listă repetabilă a rândurilor de condiții (atribute + operator + numLow, numHigh este indicat numai pentru între ele). Clientul oglindeşte paznicii serverului. Cu toate acestea, în cazul în care nu sunt îndeplinite condițiile prevăzute la articolul 2 alineatul (1) litera (a) punctul (ii) din Directiva 2009/138/CE, se aplică următoarele condiții: Regula este prins mai degrabă în linie decât într-o excursie rotundă.

  28. · kamo-internal

    Confirmați e-mailul atunci când retrimiteți o pistă din vedere

    Cardul de atribuire reassigns acum prin leadsApi.reassignLead, care suprafeţe Steagul atribuit serverului. Pe o reatribuire la un nou membru toast se citeste "Atribuirea salvata" {name} a fost notificata prin e-mail; pe un no-op sau auto-atribuirea (unde serverul nu trimite nimic) rămâne confirmarea simplă.

  29. · SecurityService

    Email noul proprietar atunci când un singur plumb este realocat

    Oglindește calea în vrac pentru cardul de atribuire Lead-view. Când put / leads/ {id} Mută un plumb către un alt membru, acel membru devine acum același LEADS ASsigned e-mail (număr 1) fluxul vrac trimite. Cel mai bun-efort Actualizarea se angajează şi nu o dă niciodată greş. Incendii numai pe o reala reasignment: sare nu-op salveaza în cazul în care cesionarul este neschimbat (aşadar editarea informaţiilor de contact nu trimite nimic) şi sare peste auto-atribuire un ofiţer care pretinde că are o pistă prin atribuirea ei înşişi nu are nici un motiv să-şi trimită e-mail-ul. ei înşişi. Răspunsul poartă atribuireaNotificat astfel încât UI poate confirma noul Proprietarul a fost trimis prin e-mail. Plumbul pre-actualizat este acum preluat o dată și reutilizat atât pentru autz cât și pentru Capturare anterior-semnat, în loc de numai în interiorul ramurii non-zeu authz.

  30. · SecurityService

    Releu de autor condițional-LLPA

    Relee Post *************** prin intermediul org-tipărire scriere ajutor, așa un autor administrator condiţionează ajustări doar pentru chiriaşul lor.

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