Salta al contenuto
KAMOUniverse

Changelog

Cosa c'è di nuovo.

Ogni miglioramento alla piattaforma, come si spedisce.

  1. · kamo-signer-monorepo

    Formattazione data locale e metadati per-locale

  2. · kamo-signer-monorepo

    Aggiungi il commutatore di lingua alla barra superiore del segnale

    Menu endonimo-labelled su 22 locali supportati. Conserva la query string on switch — ?t= è l'unica credenziali del firmatario.

  3. · kamo-signer-monorepo

    Specchio per RTL locales tramite stylis-plugin-rtl

    La direzione del tema MUI capovolge la logica dei componenti, ma lascia il fisico CSS proprietà intoccato, così arabo reso con LTR spacing. Smaschera il Emotion chiave cache e plugin in direzione. Aggiunge anche stylis come dipendenza diretta (precedentemente solo transitoria tramite Emozione) e @types/stylis, dal momento che questo repo è isolato pnpm node-linker non risolve le dipendenze fantasma e stylis 4.2.0 navi no bundle dichiarazioni di tipo.

  4. · kamo-signer-monorepo

    Percorrere il segnalatore sotto /{locale} con middleware successivo

    Aggiunge i18n/routing.ts (localePrefix sempre), i18n/navigation.ts, e middleware.ts, e sposta l'albero del percorso sotto src/app/[locale]/. request.ts ora si risolve dall'URL invece del cookie kamo-locale, mantenere la profonda caduta inglese. Eccezionale segnaletica continua a funzionare: il middleware 307-redirects URLs non prefissati e conserva il token ?t=.

  5. · kamo-internal

    Collegare l'icona della posta mentre un indicatore non letto mostra

    Il distintivo non letto da solo è stato facile da perdere nella barra superiore. NavItemButton guadagna un blinkIcon prop che pulsa l'icona (e il suo distintivo) — tenuto distinto dal esistente `blink`, che solo pulsa il punto di piombo-alert — e MailButton gira per tutto il tempo che il paese non letto 0. Gli onori preferiscono-riduzione-mozione.

  6. · kamo-marketing

    Starter bloccato a 5 utenti, Business a 25

    Riposiziona i coprisedili pubblicati su /pricing (e il calcolatore, JSON-LD offre, e llms.txt riassunti) per abbinare l'abbonamento catalogo: Starter 25 -> 5 utenti, Business 100 -> 25 utenti.

  7. · kamo-internal

    Il segreto del mercato di Clarify MeridianLink è le credenziali di servizio inbound-sync (per-LO login sul profilo dei membri)

  8. · kamo-internal

    MeridianLink carta di credito-ufficiale credenziali sul profilo membro + pulsante LO pre-warn

    Fase L3 della mappatura del prestito-ufficiale MeridianLink LOS (per §3.4-3.6 del design spec): - Nuovo proxy LOS-Credential E' il momento giusto. e client digitato E' il momento giusto. tipi in app/lib/los/types.ts) invio di GET/PUT/DELETE/POST a SecurityService. - Nuovo "MeridianLink Loan Officer Access" E' il momento giusto. posto subito dopo StateBased Licensing. Visibile solo quando il membro ha un NMLS id E almeno uno mercato org ha una connessione MeridianLink attiva; gated sul esistente I diritti. Una fila per mercato (username/secret/enabled/status chip/Test); il segreto è solo di scrittura e Non e' mai tornato. - Lead-view Creare applicazione pulsante ora pre-guerra: quando un piombo non ha LOS domanda ancora e il suo ufficiale di prestito assegnato non è collegato MeridianLink, il pulsante è disabilitato con un tooltip che nomina LO di solo fallire su clic. Estende MarketConfig con losLoName/losLoLinked (defensive defaults for old SecurityService builds). Il backend 422 rimane la garanzia reale.

  9. · SecurityService

    LO-scoped creare (blocco se non mappato) + membro MeridianLinkal API + market-config LO status link

    Fase L2 del progetto di mappatura del prestito-ufficiale MeridianLink (kamo-internal E' il momento giusto. §3.3-3.6), costruito sullo schema/risolvere condiviso L1 (MarketLosUserCredential, Non e' vero. Tutti i SOAP mocked (vendor onboarding ancora in sospeso). Ora crea il prestito, dato che il piombo e' assegnato. ufficiale di prestito tramite risolutezzaForMember invece del servizio condiviso della connessione identità (decisione bloccata B: blocco, non cadere indietro). Non assegnato LO -> 422; un LO assegnato senza utente MeridianLink collegato -> 422 con un actionable messaggio. Il controllo 409 già collegato viene eseguito prima della connessione/ LO controlli, per una recensione precedente, quindi un tentativo di creazione duplicata non può regredire 403/422 davanti al 409. - Novità. Non e' vero. (GET/PUT/{marketId}/ DELETE/{marketId}/POST /{marketId}/test), gated like Controllore licenze degli Stati membri (STATE LICENSING VIEW/EDIT OWN/ ALL, dio bypass). Crittografia su scrittura tramite PlatformSecretCipher, segreto vuoto mantiene il testo cifrato, ha solo una vista riservata, soft-delete, mai-throws Azione di prova. - LeadController market-config acquisisce losLoName/losLoLinked in modo che il lead-view pulsante può pre-riscaldare prima di colpire il 422. - Aggiunge BaseLosController#unprocessable (422 helper). TDD: 54 test su LeadLosControllerTest (extended), E' il momento giusto. (nuovo), e LeadControllerMarketConfigTest (extended) — tutto verde. L3 (Kamo-Internal UI + proxy) è un lavoro di follow-up separato.

  10. · kamo-shared-library

    Per-member MeridianLink credenzialial (MarketLosUserCredential) + risolvereForMember + LO-scoped outbound push

  11. · kamo-internal

    Bulk Email campagne UI — griglia, editor, scheda fornitore, conduce azione

    Aggiunge la superficie di marketing di email di livello org sotto /marketing/email: - Bulk Email scheda (dopo Social Media) + campagne AG Grid workspace con live stato/sent-vs-total conta su STOMP (/topic/campaigns/{orgId}); corregge il scheda di marketing cancello / logica attiva per percorsi nidificati. - Editor di campagne (/marketing/email/campaign): Quill comporre riutilizzando header/footer system + unisci i token, destinatari dal file upload (email-column map), ID piombo/account/applicazione (resolve endpoint), o manuale entrata, un pannello di preflight (skip/opt-out/masked/invalid guasto + CAN-SPAM guardie), e inviare/disegnare/schedule + throttle (all-at-once / uniformemente / naturalizzato + riscaldamento). Accetta la consegna della posta elettronica. - Impostazioni Bulk Email Provider scheda (separare SMTP config + reale Invia Test Email). - Leads: "Bulk email (N)" azione su multi-select → editor di campagna. - Dipartimenti: email + telefono / campi di estensione; comportamento-labeling: email aziendale. - API client (emailCampaignApi, bulkEmailProviderApi, destinatariResolveApi), utilizzareEmailCampaignsWebSocket gancio, e la sicurezza risolvere il percorso proxy.

  12. · SecurityService

    Risoluzione del destinatario di Bulk-email + campi di contatto di reparto

    - No, no. POST /api/security/marketing-email/ destinatari/risolvere trasforma lead/account/ID dell'applicazione in destinatari e-mail. Gated su MANAGE BULK EMAIL; applica il contatto di piombo mascheramento sotto il mittente (mascherato conduce silenziosamente saltato), Account. accettaMarketing cancello opt-in, mutuatario e-mail per applicazioni, validazione sintattica, dedupe cross-source + un full skip/count. - DepartmentController: filettare i nuovi campi di richiesta email/phone/estensione DepartmentService crea/aggiornamento.

  13. · kamo-shared-library

    Supporto Shared-lib per la risoluzione del destinatario di bulk-email + email di contatto dell'azienda

    - No, no. contactEmail branch (contatto aziendale e-mail modificabile tramite PUT /api/security/org, utilizzato come campagna aziendale-scope - ApplicationRepository: ricercatore di lotti polimorfico (findByUidInAndOrganization Non lo so. Id) per risolvere l'e-mail del mutuatario di un'applicazione per i destinatari della campagna - AccountBorrowerPartyRepository: findByAccount UidIn batch finder (no N+1) Solo aggiuntivi; pacchetti già coperti da ****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************

  14. · EmailService

    Bulk e-mail campagna backend — fornitore, speditore, conformità, in tempo reale

    Backend per org-level bulk e-mail campagne, completamente separato dal quotidiano e-mail provider in modo che non può essere throttled/blocklist al fianco di business mail: - Bulk SMTP provider (BulkEmailProviderService + BulkProviderController): crittografato org config reusing EmailProviderEncryptionService; reale Invia test Email (apre una sessione SMTP dal vivo e invia). - Campagna CRUD + macchina di stato (CampaignService/Controller): progetto, programma, send-now, pausa, riprendere, cancellare, duplicare; materializzazione del destinatario con dedupe, soppressione tagging, per-recipiente cancella token; cancello CAN-SPAM (soggetto + indirizzo fisico + >=1 destinatario richiesto di lasciare il progetto). - Speditore a trazione (CampaignDispatcher @Scheduled): all-at-once / pacing uniformemente-over-finestra / naturalized-random via per-recipient successivoReleaseAt (retro-safe), rampa di riscaldamento su maxPerHour, hard-bounce -> auto-suppress. - Compliance: SuppressionService, public one-click RFC 8058 UnsubscribeController (+ List-Unsubscribe headers), soppressione ricontrollata al momento dell'invio. - In tempo reale: spingere STOMP a /topic/campaigns/{orgId} + tempo di iscrizione org ChannelInterceptor (chiude l'esposizione dell'argomento cross-tenant). - EmailSmtpService: additive extraHeaders send() overload (List-Unsubscribe).

  15. · kamo-shared-library

    ECOA/FCRA impalcature avverse di avviso + soddisfacente-timer

    Il meccanismo di emissione è condiviso-lib metà. ComplianceTimerServizio guadagni ****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************** SATISFIED (lettere COUNTEROFFER/INCOMPLETE NOA e già soddisfatto intatto), così un avviso di azione avversa SENT può chiudere l'orologio Reg B mentre un non-sent rimane ARMED per la spazzata di violazione. Due modelli di email canoniche — ADVERSE ACTION NOTICE (ECOA/Reg B + FCRA §615(a) e RISK BASED PRICING NOTICE (FCRA §615(h)/Reg V) CanonicalTemplateLoader. Entrambi sono solo impalcature STRUTTURALI: un [[ LA TUA CONCORRENZA... ]] titolare del consiglio del creditore riempie in, più variabili strutturate-dati (applicante, data, motivi principali / trigger). Kamo non fornisce alcuna prova legale.

  16. · kamo-internal

    Aggiungi Master Machine launcher remote-desktop (god-gated)

    Terzo desktop con un clic accanto a Linux/Windows: ingresso navRegistry (ComputerIcon), obiettivo 'master' tramite openKamoDesktop + percorso proxy SSO, e invio in tutti e tre i gestori di azione.

  17. · SecurityService

    Aggiungi il target "master" per Master Machine SSO deep-link

    buildAutoConnectUrl ora mints a Master Machine Connection (KAMO GUAC MASTER HOSTNAME, default 192.168.4.46); incluso in ogni token per il riutilizzo della sessione. Tenuto in sincronizzazione con il KlusterServices bootstrap SQL.

  18. · KlusterServices

    Aggiungi "Master Machine" (kamo-dev-1) RDP dispositivo a Guacamole

    La workstation locale Kubuntu condivide la sua sessione live Plasma/Wayland su RDP tramite KRdp. Aggiunge una connessione idempotent bootstrap SQL (192.168.4.46:3389, sage/shared pw, security=any, ignora-cert, colore-profondità 24) e READ Grant. Include spec design.

  19. · kamo-shared-library

    Bulk-email campagna di fondazione enti + dipartimento / campi di contatto

    Aggiunge le basi condivise-librarie per le campagne e-mail di livello org: - OrgBulkEmailProviderEntity (separato dal fornitore di tutti i giorni; UNIQUE org id) - EmailCampaignEntity / EmailCampaignRecipientEntity (+ status/scope/throttle/ sorgente enums) modellare la duratura per-recipiente inviare la coda - EmailSuppressionEntity (CAN-SPAM lista di soppressione) - Dipartimento: email + telefono / estensione (EmbPhoneNumber) campi di contatto - Organizzazione: contactEmail (campagna dell'azienda Da default) - RoleRightType: VIEW BULK EMAIL(175), MANAGE BULK EMAIL(176) sotto MERCATO Tutti i nuovi pacchetti siedono sotto com.kamo.z.shared.email.* (già coperto) KamoInitializzatore E' il momento giusto. Compili puliti.

  20. · kamo-shared-library

    STEWARD TASK ROUTED modello canonico

    La notifica dello steward per via orale ha bisogno di un modello di e-mail canonico. Registri STEWARD TASK ROUTED in CANONICAL KEYS con la sua coppia json/html; corpo porta il prestito / decisione / contesto di eccezione e un link steward-queue. Il contenuto è org-autorizzato tramite il sistema di template esistente.

  21. · SecurityService

    Gateway relè per mentare un MERS MIN per un pacchetto di chiusura

    # POST # proprietà-controllato (requirePackageOrg) in modo da una steward mints solo per il loro inquilino. The upstream legge il 7 cifre MERS Org ID dalla connessione del fornitore dell'inquilino MERS nella scheda integrazioni; un 400 significa che MERS è non configurato o il prestito non ha alcun numero di prestito.

  22. · kamo-internal

    Data di nascita sulla vista di piombo + creare il modulo

    Aggiunge un campo "Date of Birth" sotto Primary Contatto su /leads/view/[id] utilizzando un MUI DatePicker che si apre alla griglia anno prima (openTo=year, disabilitaFuture, min 1900) — il flusso intuitivo per le date di nascita — più lo stesso raccoglitore sul forma nuova. Date round-trips via date-fns parseISO/format (locale, no UTC off-by-one). L'esposizione è riservata alla privacy su canViewContact; il campo è facoltativo. Fili dataOfBirth attraverso i tipi, conduceApi creare / aggiornare le guardie, e elenco di campo import-wizard.

  23. · SecurityService

    Accettare e contattare la data di nascita (DOB)

    Mappe `dateOf Nascita` nel campo manuale-importazione e immissione del fornitore con una leniente parsa multi-format (ISO plus common US M/d/yyyyy form; non separabile i valori lasciano il DOB non impostato piuttosto che lanciare). Conta DOB come contatto PII in richiestaTouchesContactInfo quindi modificarlo su un altro membro richiede EDIT LEAD CONTACT INFO Altri. Supportato dal nuovo comune-lib Lead.dateOfBirth.

  24. · kamo-shared-library

    Aggiungi la data del contatto nullable di nascita a Lead

    Aggiunge un livello di contatto `dateOfBirth` (java.time. LocalDate, colonna DATE) al base Piombo: entità + Crea/Aggiorna/LeadDTO (daLead), copiato in LeadService creare/aggiornamento e entrambi i convertitori ipoteca-subclass in modo da sopravvivere a interruttore di mercato. Tracciato nel registro di piombo-storia (Contatto) e mascherato come PII in mascheraContactInfoDagli altri. Nullable, nessun default — sicuro ALTER ADD COLUMN.

  25. · kamo-internal

    Regole di sovrapposizione del documento dell'autore dalla console steward

    Il "che documenti fa questo prestito bisogno" regola matrice non aveva alcuna superficie di autore. Questo aggiunge un Regole di richiesta del documento sezione alla schermata Documenti e Condizioni (carattere nella possedere lo schermo, non una nuova scheda) dove uno steward elenca, gli autori e ritira il loro inquilino regole di sovrapposizione. La copia dell'aiuto è onesta circa la portata: un sovrapposizione sulla base della piattaforma e la I risultati di AUS/Agency (DU/LP/GUS), che rimangono la fonte della verità; una regola non può approvare una prestito o cancellare una condizione, e niente qui è un mandato legale. La forma offre il 23 RequirementDriverType valori e un codice di tipo doc gratuito (il backend lo convalida contro il catalogo di immagini di org e restituisce una chiara inline 400 se l'org non può raccogliere — nessun elenco di documenti codificati. Un distintivo della parete legale e block-advancement vs badge consultivo render su ogni regola; Retire conferma prima.

  26. · SecurityService

    Relè document-requirement overlay-rule che autorizza

    Relays POST/GET/retire on****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************** organizzazioneId server-stamped dalla sessione dell'operatore in modo da uno steward autori e elenchi solo le regole del loro inquilino.

  27. · kamo-internal

    Autore condizionale LLPAs dal pannello di catalogo

    Gli aggiustamenti non potevano variare a seconda del mutuatario: MlosAdjustmentCondition non aveva scritto, e il motore prezzi tratta una regolazione senza condizioni come sempre-applica, quindi ogni LLPA licenziato per ogni mutuatario e un mutuatario 780-FICO ha preso lo stesso colpo di un 620. Questo modulo autori un adattamento insieme alle condizioni che lo portano. Modellato sul modulo lock-policy nello stesso pannello: un id tasso-versione, il prezzo delta ed etichetta, e un elenco ripetibile di righe di condizione (attributo + operatore + numLow, con numHigh mostrato solo per BETWEEN). Il client rispecchia le guardie del server — almeno una condizione, un limite ad ogni condizione, entrambi i limiti per BETWEEN con basso <= alto — quindi un male la regola è presa in linea piuttosto che su un giro-trip.

  28. · kamo-internal

    Confermare l'email quando si riassegna un vantaggio dalla vista principale

    La carta Assignment ora si riassegna tramite leadApi.reassignLead, che supera il AssegnateeNotified flag del server. Su una riassegnazione a un nuovo membro il brindisi legge "Assegnazione salvata - {nome} è stato notificato via e-mail"; su un no-op o auto-assegnazione (dove il server non invia nulla) rimane la conferma normale.

  29. · SecurityService

    E-mail il nuovo proprietario quando un singolo lead viene riassegnato

    Specchi il percorso di rinfusa per la carta di assegnazione. Quando PUT /leads/{id} muove un vantaggio a un membro diverso, che il membro ora ottiene lo stesso LEADS ASSIGNED email (conto 1) il flusso di massa invia. Miglior sforzo — la corsa di invio dopo il aggiorna commit e non fallisce mai. Incendi solo su un vero riassegnamento: salta no-op salva dove l'assegno è invariato (così la modifica delle informazioni di contatto non invia nulla), e skips auto-assegnamento — un ufficiale che rivendica un vantaggio assegnandolo a se stesso non ha motivo di e-mail loro stessi. La risposta porta l'assegnaeNotified in modo che l'interfaccia utente possa confermare il nuovo Il proprietario è stato mandato via email. Il piombo pre-aggiornamento è ora preso una volta e riutilizzato sia per authz che per il cattura precedente-assignee, invece di solo all'interno del ramo non-god authz.

  30. · SecurityService

    Relè condizionale-LLPA autore

    Relè POST E' un aiuto per scrivere, quindi... un steward autori regolazioni condizionali solo per il proprio inquilino.

Il tuo universo ti sta aspettando.

Aggiungi i prodotti quando sei pronto: nessuna migrazione, nessun nuovo login, nessuna richiesta di pagamento.

Gratis per sempre — nessuna carta di credito richiesta