Changelog
Co nowego.
Każde ulepszenie platformy, jak to wysyła.
· kamo-signer-monorepo
Formatowanie dat lokalnych i metadane per-locale
· kamo-signer-monorepo
Dodaj przełącznik języka do sygnatariusza górnego paska
Endonym-znakowane menu na 22 obsługiwanych lokalizacjach. Zachowanie zapytania Ciąg na przełączniku - ?t jest jedynym powiertem sygnatariusza.
· kamo-signer-monorepo
Układ lustrzany dla lokalizacji RTL przez stylis-plugin-rtl
Sam kierunek tematyczny MUI odwraca logikę komponentów, ale pozostawia fizyczną Właściwości CSS nietknięte, więc arabski renderował z odstępami LTR. Swaps the (ang.) Emotion cache key i wtyczki na kierunku. Dodaje również stylis jako bezpośrednia zależność (wcześniej tylko tranzytowa przez Emocje) i typy/stylis, ponieważ ten odizolowany węzeł pnpm pnpm Nie rozwiązuje zależności fantomowych i stylis 4.2.0 statki nie dołączone Deklaracje typu.
· kamo-signer-monorepo
Trasę sygnatariusza pod /locale z next-intl middleware
Dodaje i18n/routing.ts (localePrefix zawsze), i18n/nawigacja.ts, oraz middleware.ts, i przenosi drzewo trasy pod src/app/[locale]/. request.ts teraz rozwiązuje się z adresu URL zamiast pliku kamolocale, Utrzymanie głęboko żwirowego angielskiego owtorości. Znakomtowane łącza sygnatariusze nadal działają: middleware 307-redirects Nieprefikowane adresy URL i zachowuje token ?t.
· kamo-internal
Mruga ikona poczty, podczas gdy wyświetlany jest nieczytany wskaźnik
Samo odczytanej odznaki było łatwe do przeodzenia w górnym barze. NavItemButton zyskuje a BlinkIcon rekwizyt, który pulsuje ikoną (i jej odznaką) – odrębną od Istniejący „bruga”, który tylko pulsuje dot do lead-alert – i MailButton się obraca Jest on na nim tak długo, jak niereadunt > 0. Honory preferują redukowane ruchy.
· kamo-marketing
Starter ograniczony do 5 użytkowników, Biznes w wieku 25 lat
Powstawa opublikowane czapki fotelowe na / cen (i kalkulator, Oferty JSON-LD i llms.txt podsumowuje) w celu dopasowania do subskrypcji Katalog: Starter 25 -> 5 użytkowników, Business 100 -> 25 użytkowników.
· kamo-internal
Clarify MeridianLink jest poświadczeniami usług inbound-sync (logowanie na LO na profilu członkowskim)
· kamo-internal
Karta uwierzytelnieniowa MeridianLink na profilu członka + przyciski prowadzącej LO przed ostrzeżonym
Faza L3 z mapowania pożyczkowego MeridianLink LOS (po 3,4-3,6 EUR Specyfikacja projektu): - Nowy serwer-koercz LOS-credential proxy - " Wpisowany klient - typy Aplikacja/lib/los/types.ts) Przesłanie GET/PUT/DELETE/POST do SecurityService. - Nowy "MeridianLink Loan Officer Access" SekcjaCard on - umieszczone zaraz po oparciu o stan Licencjonowanie. Widolność tylko wtedy, gdy członek ma NMLS i przynajmniej jeden Rynek org ma aktywne połączenie MeridianLink; zamknięte na istniejącym - prawa. Jeden rząd na rynek (nazwa użytkownika/tajna/umożliwiona/trewasta/Test); sekret jest tylko pisanie i Nigdy nie oddał się z powrotem. - Przycisk Lead-view Create Application teraz przed ostrzeżeniami: gdy prowadzenie nie ma LOS Wniosek i przydzielony mu urzędnik ds. pożyczek nie są powiązane z MeridianLink, przycisk jest wyłączony z narzędziem nazwiskającym LO Tylko zawiodą na kliknięciu. Rozszerza MarketConfig z losLoName/losLoLinked (defensywne ustawienia dla starszych SecurityService builds). Zaplecze 422 Pozostaje rzeczywista gwarancja.
· SecurityService
LO-scoped create (blokuj jeśli jest zdemapped) + członek MeridianLink poświadczenia API + status łącza rynkowego LO
Faza L2 projektu mapowania pożyczkowego MeridianLink (kamo-internal "W 3,3-3,6), zbudowany na schemacie/resolver L1 (MarketLosUserCredential, All SOAP wyśmiewane (sprzedawca onboarding Nadal w oczekiwaniu). - Teraz tworzy pożyczkę AS, przypisanego czołowiu Urzędnik ds. pożyczek za pośrednictwem determinuFormer zamiast wspólnej usługi połączenia Tożsamość (zamknięta decyzja B: blok, nie cofaj się). Nie przydzielono LO -> 422; Przypisany LO bez połączonego użytkownika MeridianLink -> 422 z akcyjną Wiadomość. Już połączona 409 kontrola trwa teraz przed połączeniem/LO Sprawdza, według wcześniejszego przeglądu, więc próba zduplikowania tworzenia nie może się cofnąć 403/422 przed 409. - Nowy ;) (GET/PUT/marketId/) DELETE/?marketId/POST /marketId/test), ogrodzone jak MemberStateLicensingController (STATE_LICENSING_VIEW/EDIT _OWN/_ALL, Obwodnica Boga). Encrypt-on-write via PlatformSecretCipher, puste w tajemnicy Przechowywany szyfrogram, mawylny widok tylko dla elementów, soft-delete, nigdy-drobny Testuj. - LeadController market-config zyskuje losLoName/losLoLinked, więc widok z lead-view Przycisk może być wstępnie ostrzeżony przed naciśnięciem 422. - Dodaje BaseLosController-unprocessable (422 helper). TDD: 54 testy w ramach LeadLosControllerTest (rozszerzone), (nowy), i LeadControllerMarketConketConfigTest (rozszerzony) — wszystkie zielone. L3 (kamo-internal UI + proxy) jest oddzielnym działaniem następczym.
· kamo-shared-library
Polity uwierzytelnianie MeridianLink (MarketLosserCredential) + rozwiązanieForMember + LO-scoped outbound push
· kamo-internal
Kampanie e-mailowe UI — grid, editor, zakładka dostawcy, lead action
Dodaje masową powierzchnię e-mailową do obrotu w formacie /marketing/email: - Bulk Email tab (po mediach społecznościowych) + kampanie AG Grid workspace with live Status/s-vs-total counts over STOMP (/topowy/kamania/orgId); ustala Obrota marketingowa / logika aktywnej dla zagnieżdżonych tras. - Redaktor kampanii (/marketing/email/campa): Quill compose ponownie Nagłówek/stopowy system + scalanie tokenów, odbiorcy z przesyłania plików (mapa e-kolumnowa), lead/konto/identyfikacje (rozstrzygnięty punkt końcowy) lub instrukcja wpisu, panel preflight (skip/opt-out/maskowy/inwalidalny podział + CAN-SPAM Ostrzeżenia) i wysyłają/draft/schedule + przepustnica (all-at-once / równomiernie / naturalizowane + rozgrzewka). Akceptuje leady masowe wiadomości. - Zakładka Ustawienia dostawcy wiadomości zbiorczych (oddzielna konfig SMTP + prawdziwy Wyślij e-mail). - Leads: "Bulk e-mail (N)" akcji na edytor kampanii "wysłanie". - Działy: e-mail + pola telefoniczne / rozciągliwe; etykietowanie zachowań: e-mail firmy. - API klientów (emailCampaignApi, bulkEmailProviderApi, odbiorcaResolveApi), Używaj emailCampaignsWebSocket hak i trasa proxy determinacja zabezpieczeń.
· SecurityService
Rozdzielczość odbiorcy zbiorczego zbiorczego zbiorczego zbiorczego + dział kontaktowy
- POST /api/security/marketing-email/ Odbiorcy/resolve zamieniają identyfikatory lead/konta/aplikacji w odbiorców wiadomości e-mail. Gated on MANAGE_BULK_EMAIL; stosuje maskowanie kontaktu z ołowiem pod nadawcą (zamaskowane leady cicho pomijane), Account.acceptsMarketing opt-in gate, pożyczkobiorca e-mail dla aplikacji, walidacja składni, cross-source dedupe + pełny Pomiń / podział liczenia. - Kontroler Departamentu: wątknij nowe pola zapytania o e-mail / telefon / rozciągnięcie w DepartmentService create/aktualizacja.
· kamo-shared-library
Shared-lib wsparcie dla rozwiązania odbiorcy masów + kontakt firmowy e-mail
- contactEmail oddział (kontakt służbowy Emisja emisyfikowalna przez PUT /api/security/org, używana jako kampania firmowo-korzystna -Powierzchnia aplikacji: polimorficzny znaleziskowiec wsadowy (findByUidInAndOrganization_Id) Aby rozwiązać e-mail pożyczkobiorcy aplikacji dla odbiorców kampanii - AccountBorrowerPartyRepository: findByAccount_UidIn znalezisko wsadowe (nie N+1) Tylko addytywne; pakiety już objęte . .
· EmailService
Masowe zaplecze kampanii e-mail — dostawca, dyspozytor, zgodność, w czasie rzeczywistym
Backend dla masowych kampanii e-mail na poziomie org, całkowicie oddzielonych od codziennych Dostawca poczty e-mail, więc nie można go przechwytować / list blokowy wraz z pocztą biznesową: - Bulk SMTP dostawca (BulkEmailProviderService + BulkProviderController): Zaszyfrowany lub concomplg ponownie za pomocą EmailProviderEncryptionService; prawdziwy Wyślij Test E-mail (otwiera sesję SMTP na żywo i wysyła). - Kampania CRUD + maszyna statusowa (CampaignService/Controller): projekt, harmonogram, Wyślij teraz, pauza, CV, anuluj, duplikuj; materializacja odbiorcy z dedupe, tagowanie tłumienia, żetony bezsubskrypcji; brama CAN-SPAM (przedstawiciel + adres fizyczny + >1 odbiorcy wymaganego do opuszczenia projektu). - Dyspozytor do przepustnic (CampaignpatWyszukiwarka-Scheduled): all-at-once / równomiernie-over-window / naturalized-random-random pacing przez per-recipient nextReleaseAt (bezpieczny dla sporej sztuki), ramp rozgrzewkowy na maxPerHour, hard-bounce -> automatyczne tłumienie. - Zgodność: SuppressionService, publiczny jednoklindrowy RFC 8058 UnsubscribeController (+ Nagłówki subskrybuj listę), tłumienie ponownie sprawdzone w przesłaniu. - Rzeczywisty: bezpośrednie naciski STOMP do /topic/campaigns/orgId + czas subskrypcji org ChannelInterceptor (zamknie ekspozycję na temat między przylegaczem). - EmailSmtpSService: dodatek extraHeaders send() przeciążenie (List-Unsubscribe).
· kamo-shared-library
Rusztowania powiadomień niepożądanych ECOA/FCRA + satysfakcjonujący-timer
Mechanizm emisji jest dzielną połową lib. Zyski ComplianceTimerService — przewraca tylko zegarki ARMED ECOA_AA na SATISFIED (wyjście COUNTEROFFER/INCOMPLETE_NOA i już zaspokojone Nietknięte), więc powiadomienie o wyczyścionym niekorzystnym akcenium może zamknąć zegar Reg B, podczas gdy Niewysłana jedna zostaje ARMED za zamiatanie wykrojnika. Dwa kanoniczne szablony wiadomości e-mail — ADVERSE_ACTION_NOTICE (ECOA/Reg B + FCRA 615 lit. a)) i RISK_BASED_PRICING_NOTICE (FCRA nr 615(h)/Reg V) — zarejestrowane w CanonicalTemplateLoader. Oba są tylko rusztowaniami strukturalnymi: miażdżone [[Twój kompetentny-ulepszony ...]] Zastępcy, którego zastępca wypełnia doradca wierzyciela plus zmienne zbiorcze danych strukturalne (wnioskodawca, data, główne powody / A spust). Kamo nie dostarcza legalnej prozy.
· kamo-internal
Dodaj wyrzutnię remote-desktop Master Machine (ggated)
Trzeci pulpit jednym kliknięciem obok Linux/Windows: navNagicie (ComputerIcon), celownik "master" przez otwartą trasę KamoDesktop + SSO proxy i wysyłaj we wszystkich trzech łachowo obsługującymi działania.
· SecurityService
Dodaj "master" cel dla Master Machine SSO deep-link
Zbuduj AutoConnectUrl teraz mieli połączenie Master Machine (KAMO_GUAC_MASTER_HOSTNAME, domyślne 192.168.4.46); włączone do każdego tokena do ponownego wykorzystania sesji. Zachowany w synchronizacji z KlusterServices bootstrap SQL.
· KlusterServices
Dodaj urządzenie "Master Machine" (kamo-dev-1) RDP do Guacamole
Lokalne stacja prac Kubuntu dzieli się sesją na żywo Plasma/Wayland nad RDP za pośrednictwem KRdp. Dodaje idempotent bootstrap połączenia SQL (192.168.4.46:3389, szałwię/podzieloną pw, bezpieczeństwo, zignoruj certyfikat, dogłębną kolorystykę 24) i CZYTAJ. Zawiera specyfikacja projektu.
· kamo-shared-library
Podmioty fundacji kampanii masowych + pola kontaktu dział/org
Dodaje fundament współdzielonego biblioteki dla masowych kampanii e-mail na poziomie org: - OrgBulkEmailProviderEntity (oddzielny od codziennego dostawcy; UNIQUE org_id) - EmailCampaignEntity / EmailCampaignRecipientEntity (+ status/scope/throttle/ Source enums) modelowanie trwałej kolejki wysyłania na podatnika - EmailSuppressionEntity (lista tłumienia CAN-SPAM) - Dział: e-mail + telefon/wydobs się (EmbPhoneNumber) pola kontaktowe - Organizacja: contactEmail (kampania szyjko-kanalizacyjna Odmyślenia) - RoleRightType: VIEW_BULK_EMAIL(175), MANAGE_BULK_EMAIL(176) pod MARKETING Wszystkie nowe pakiety znajdują się pod com.kamo.z.shared.email. (już objęte KamoInitializer - Komplikuje się czysto.
· kamo-shared-library
Szablon kanoniczny STEWARD_TASK_ROUTED
Powiadomienie stewarda w drodze do decyzji wymaga kanonicznego szablonu wiadomości e-mail. Rejestry rejestrów STEWARD_TASK_ROUTED w CANONALA_KEYS z jego parą json/html; ciało przenosi pożyczkę / Kontekst decyzji / wyjątków i link do kolejki stewarda. Treść jest org-authorable poprzez Istniejący system szablonów.
· SecurityService
Gateway przekaźnik do miętowania MERS MIN dla pakietu zamykającego
POST : ) Sprawdzony własność (requirePackageOrg), więc steward miętuje tylko dla własnego najemcy. W tym, że w tym w, powt. w tym, że w tym, w tym, w tym, w tym, a w tym, z ws., w pot wt. w tym, że w tym, w tym, że w tym W góręstream odczytuje 7-cyfrowy identyfikator MERS Org ID od dostawcy MERS najemcy w Zakładka integracji; 400 oznacza, że MERS jest nieskonfigurowany lub pożyczka nie ma numeru pożyczki.
· kamo-internal
Data-dzien z porodu na widoku lead + create form
Dodaje pole "Data urodzenia" w obszarze Podstawowe kontaktowe na /leads/view/[id] za pomocą MUI DatePicker, który otwiera się na pierwszą siatkę roku (otwarty to-to-rok, wyłącznośćFuture, min 1900) — intuicyjny przepływ dla dat urodzenia — plus ten sam picker na Forma nowej-ołowiowej. Data w obie strony za pośrednictwem Date-fns parseISO/format (lokalny, bez UTC Poza jednym). Wyświetlacz jest liżowany w języku canViewContact; pole jest opcjonalne. Data drutówOfPoród przez typy, leadyApi create/updates ochraniacze i Lista pól importowych i widzardowych.
· SecurityService
Zaakceptuj i przyjmij datę kontaktu z datą urodzenia (DOB)
Mapy "Dane"OfBirth w przełącznikach pola ręcznego importu i dostawcy łagodny wieloformatowy parsa (ISO plus wspólne formy M/d/yyy; nieodłączne Wartości pozostawiają niesprawdzone DOB, a nie rzucanie). Liczy DOB jako kontakt PII w requestTouchesConactInfo więc edytowanie go na czołówce innego członka wymaga EDIT_LEAD_CONTACT_INFO_OTHERS. Wspierany przez nowy wspólny-lib LeaddateOfBirth.
· kamo-shared-library
Dodaj zniwalną datę kontaktu z datą urodzenia do Lead
Dodaje poziom kontaktu „dateOfBirth” (java.time.LocalDate, DATE) do kolumny Lead bazowy: podmiot + Utwórz/Aktualizacja/LeadDTO (odLead), skopiowany w LeadService Tworzą / aktualuj i oba podklasa hipotecznej przekształcają pomocników, aby przetrwać Przełączanie na rynek. Śledzenie w rejestrze historii ołowiu (Kontakt) i zamaskowane jako PII w masceKontaktInfoFromOthers. Znikalne, bez domyślne — bezpieczny ALTER ADD COLUMN.
· kamo-internal
Autorowi zasady nakładka na dokumenty z konsoli stewarda
Matryca reguł "jakie dokumenty potrzebują tej pożyczki" nie miała powierzchni autora. To dodaje a Sekcja zasad wymagań dotyczących dokumentów do ekranu Dokumenty i Warunki (zwinięty w Własny ekran, a nie nowa zakładka), w którym steward wymienia, autor i przechodzi na emeryturę swojego najemcę Zasady nakładkowe. Kopia pomocy jest szczera w zakresie: nakładka na wierzchołku platformy bazowej i Ustalenia amerykańsko-agencyj (DU/LP/GUS), które pozostają źródłem prawdy; reguła nie może zatwierdzić Pożyczka lub wyczyszczony warunek, a nic tutaj nie jest prawnym mandatem. Formularz oferuje 23 WymaganeCerunkyType wartości i kod typu doc free-text (odveend go poprawcza Na obrazowanie org i zwraca wyraźny inline 400, jeśli org nie może zebrać To nie jest list z kodem twardym). Odznaka za ściany prawne i bloki-odznaka a doradcza Wycofaj każdą regułę; Emeryci potwierdzają jako pierwsze.
· SecurityService
Relay document-requirement overlay-zasady autora
Przekaźniki POST/GET/retire on-MLOSDocService, z OrganizacjaId server-spopiewazowany z sesji operatora, więc twórcy i listy tylko Zasady nakładów ich własnego najemcy.
· kamo-internal
Autor warunkowy LLPA z panelu katalogowego
Dostosowania nie mogły się różnić w zależności od kredytobiorcy: MlosAdjustmentWSWEK nie miał pisarza, a Silnik cenowy traktuje korektę bez żadnych warunków, tak jak zawsze. Wystrzelony dla każdego pożyczkobiorcy i pożyczkobiorca 780-FICO przyjął to samo uderzenie co 620. Ta forma Autorzy dostosowują się wraz z warunkami, które go obnoszą. Wzorowany na formularzu polityki blokady w tym samym panelu: wersja arkusza stawek, cena delta i etykieta oraz powtarzalna lista wierszy warunków (przypis i operator + operator + numLow, Z numHigh pokazany tylko dla BETWEEN). Klient odzwierciedla osłony serwera - co najmniej jeden Stan, związany z każdym warunkiem, oba granice dla BETWEEN z niskimi wysokościami - więc złe Reguła jest przyłapana inline, a nie w obie strony.
· kamo-internal
Potwierdź e-mail podczas zmiany przydzielenia lead-view
Karta Przydziału teraz zmienia się za pośrednictwem leadApi.reassignLead, która wypuszcza Flaga cesjonariusza serwera. Po przeredakcjaniu do nowego członka toast tuje "Zapisane zapisanie - "nazwa" została powiadomiona przez e-mail"; na no-op lub Samoprzypisywanie (gdzie serwer nic nie wysyła) pozostaje oczywistym potwierdzeniem.
· SecurityService
Wyślij e-mail do nowego właściciela, gdy pojedynczy trop zostanie przeniesiony
Odzwierciedla ścieżkę zbiorczą dla karty przydziału widoku ołowiu. Kiedy PUT / ołowia / "-'id' Przesuń prowadzi do innego członka, ten członek otrzymuje teraz ten sam LEADS_ASSIGNED e-mail (licz 1) przepływ masowy wysyła. Najlepszy wysiłek — wysyłaj biegi po Aktualizuj commity i nigdy jej nie zawiedzie. Pożary tylko przy prawdziwej zmianie: pomija brak runów zapisuje, gdzie jest cesjonariusz Niezmienione (więc edycja informacji o kontakcie nic nie wysyła) i pomija samoprzypisanie — Funkcjonariusz twierdzący, że prowadzi, przypisując go sobie, nie ma powodu, aby wysłać e-maile U samych siebie. Odpowiedź przenosi cesjonariuszaNotified, aby interfejs użytkownika mógł potwierdzić nowy Właściciel został wysłany do wiadomości e-mail. Prowadnica przed aktualizacją jest teraz pobierana raz i ponownie używana zarówno dla authz, jak i dla Poprzednie sygnatowanie, zamiast tylko wewnątrz gałęzi nie-boskiej.
· SecurityService
Przekaźnik warunkowo-LLPA Autor
Przekaźniki POST - przez helper do pisania org-stamping, więc Autorzy stewarda warunkowo korekty tylko dla własnego najemcy.

Twój wszechświat czeka.
Rozpocznij bezpłatnie w kilka minut.Dodaj produkty, kiedy tylko będziesz gotowy — bez migracji, bez nowych logowań.
Bezpłatne na zawsze — nie wymaga karty kredytowej