Jump to content
KAMOUniverse

Changelog

Ada kabar baru.

Setiap perbaikan pada platform, sebagai kapal.

  1. · kamo-shared-library

    Tambahkan bendera penyewa handlesPhi dan PhiTenantGuard

    Batu kunci dari batas kepatuhan HIPAA: bendera per- organisasi ditambah penjaga memutuskan modul mana yang dapat dicapai oleh organisasi. Semuanya hilir kunci dari itu - yang integrasinya tidak aktif, apakah MFA dipaksa, yang sesi mendapatkan timeout stricter, apa tulang belakang audit harus menutupi. Organisasi memperoleh HANDLES _ PHI (BOOL DEFAULT FALSE) dan PHI_ EFFECTIVE _ DATE, mengikuti pola yang ada. Default salah, jadi ini tidak berguna untuk hipotek yang ada dan buku CRM. Tiga properti desain dibangun di sekitar: - Gagal ditutup. Konstruktor PhiModule memerlukan sebuah PhiDisposition dan suatu alasan, sehingga modul ditambahkan kemudian tidak dapat mewarisi izin dengan omissi - itu tidak akan compile tanpa keputusan, dan apa pun selain PERMITTED menyangkal. Itu adalah mode kegagalan spesifik sebuah batas kepatuhan harus bertahan hidup: sebuah modul kapal, tidak ada yang berpikir tentang PHI, klinik mulai menggunakannya. - Tidak bisa dilewati. Keputusan adalah fungsi murni dari (organisasi, modul) dengan tidak ada penelepon, sesi, benar atau mode parameter, jadi tidak ada untuk Angkat. "Staf pendukung kami dapat mematikannya" adalah jawaban yang gagal ditutupi Ulasan entitas. - Denial membawa alasan, karena telanjang "ditolak" tidak dapat digunakan oleh dukungan insinyur atau pelanggan. Disposisi mengikuti analisa scoping dalam kamo- internal * * * * * * * * * * * * * * * Diijinkan hari ini: CRM, kontak, dokumen lemari besi, diri-diselenggarakan email, e- tanda, catatan, tugas, kalender, percakapan internal, in- cluster transkripsi / terjemahan stack, dan MLOS. Diblokir dengan tidak dapat dicapai BAA: pesan sosial, Canva, e-commerce sync, gerbang MCP. Diblokir tertunda bernama work: router AI, pencarian RAG, rekaman pertemuan, rekaman VOIP, pemasaran kampanye, ekspor analisis. Catatan skema: HANDLES _ PHI dan PHI _ EFFECTIVE _ DATE mewujudkan berikutnya KamoInitializer dijalankan, setelah CI mempublikasikan ini shared- perpustakaan membangun. Tidak ada yang membaca bendera belum, sehingga pemesanan aman.

  2. · kamo-signer-monorepo

    Locale- aware date formating and per- locale metadata

  3. · kamo-signer-monorepo

    Tambahkan switcher bahasa ke batang atas signer

    Endonym- labelled menu atas 22 locales yang didukung. Pertahankan permintaan string on switch -? t = adalah satu-satunya kredensial signer.

  4. · kamo-signer-monorepo

    Tata letak cermin untuk locales RTL melalui stylis- plugin- rtl

    Arah tema MUI saja membalik logika komponen tetapi daun fisik Properti CSS tidak tersentuh, sehingga Arab dirender dengan jarak LTR. Tukar Kunci cache emosi dan plugin pada arah. Juga menambahkan stylis sebagai ketergantungan langsung (sebelumnya hanya transitif via Emosi) dan @ types / stylis, karena ini repo 's terisolasi pnpm node- linker tidak menyelesaikan ketergantungan phantom dan stylis 4.2.0 kapal tidak bundled tipe deklarasi.

  5. · kamo-signer-monorepo

    Route the signer under / {locale} with next-intl middleware

    Tambahkan i18n / routing.ts (localePrefix selalu), i18n / navigation.ts, dan middleware.ts, dan bergerak pohon rute di bawah src / app / [lokal] /. request.ts sekarang memecahkan dari URL bukan kamo- lokal cookie, menjaga jauh - penggabungan Inggris fallback. Tautan penandatangan luar biasa terus bekerja: middleware 307- pengalihan URL dan simpan? t = token.

  6. · kamo-internal

    Blink ikon surat ketika indikator yang belum dibaca menampilkan

    Lencana yang belum dibaca saja mudah untuk dilewatkan di bar utama. NavItemButton memperoleh prop blinkIcon yang berdenyut ikon (dan lencananya) - tetap berbeda dari ada 'blink', yang hanya pulses lead- alert dot - dan turns mailbutton itu selama unreadcount > 0.

  7. · kamo-marketing

    Starter capped di 5 pengguna, Bisnis di 25

    Reposisi tutup kursi yang diterbitkan pada / harga (dan kalkulator, JSON- LD menawarkan, dan llms.txt ringkasan) untuk mencocokkan berlangganan katalog: Starter 25 - > 5 pengguna, Bisnis 100 - > 25 pengguna.

  8. · kamo-internal

    Clarify MeridianLink rahasia pasar adalah kredensial layanan inbound- sync (per- LO log masuk pada profil anggota)

  9. · kamo-internal

    Meridian Link loan-officer credential card on member profile + lead-button LO pre-warn

    Tahap L3 dari Meridian Link LOS pemetaan petugas (per 3.4-3.6 dari Spek desain): - Proksi baru anggota scoped LOS-credential * * * * * * * * * * * * * * * dan klien diketik * * * * * * * * * * * * * * * tipe dalam app / lib / los / types.ts) meneruskan GET / PUT / DELETE / POST ke SecurityService. - Baru "MeridianLink Loan Access" SectionCard pada * * * * * * * * * * * * * * * ditempatkan tepat setelah State- Berbasis Licensing. Terlihat hanya ketika anggota memiliki ID NMLS DAN setidaknya satu Pasar org memiliki koneksi MeridianLink aktif; gated pada yang ada Hak-hak. Satu baris per pasar (username / secret / enabled / status chip / Test); rahasianya ditulis -only dan tidak pernah diberikan kembali. - Lead-view Buat tombol Aplikasi sekarang sebelum-peringatan: ketika sebuah lead tidak memiliki LOS aplikasi belum dan yang ditugaskan petugas pinjaman tidak terkait dengan MeridianLink, tombol dinonaktifkan dengan nama tooltip LO sebagai gantinya hanya gagal klik. Alamat Konfigurasi MarketConfig dengan losLoName / losLoLinked (Default defensif untuk SecurityService lama membangun). Backend 422 tetap jaminan yang sebenarnya.

  10. · SecurityService

    LO- scoped create (block jika belum dipetakan) + anggota MeridianLink credential API + pasar- config LO link status

    Fase L2 dari loan MeridianLink-officer pemetaan desain (kamo- internal * * * * * * * * * * * * * * * 3-3-3-6, dibangun di atas Skema L1-lib / resolver (MarketLossuserdential, * * * * * * * * * * * * * * * Semua SOAP mengejek (vendor onboarding masih tertunda). Sekarang menciptakan pinjaman AS memimpin ditugaskan petugas pinjaman melalui resolveForAnggota bukan layanan berbagi koneksi identitas (keputusan terkunci B: blok, jangan mundur). Tidak ditempatkan LO - > 422; sebuah ditugaskan LO dengan tidak ada link pengguna MeridianLink - > 422 dengan sebuah ditindaklanjuti pesan. Pemeriksaan 409 sudah terhubung sekarang berjalan sebelum koneksi / LO pemeriksaan, setiap review sebelumnya, sehingga duplicate- create percobaan tidak dapat regress ke 403 / 422 depan 409. - Baru... * * * * * * * * * * * * * * * (GET / PUT / {pasar} / DELETE / {pasar} / POST / {pasar} / test), gated like Anggota StateLicensingController (STATE _ LICENSING _ VIEW / EDIT _ SENDIRI / _ ALL, god bypass). Enkripsi-on-write via PlatormSecretCipher, rahasia kosong terus teks ciphertext yang tersimpan, hasCredential- hanya tampilan, soft- delete, never-throw Test action. - Pasar LeadController - config memperoleh losLoName / losLoLinked sehingga lead- view tombol dapat pre- peringatan sebelum memukul 422. - Tambahkan Baseball LosController # unprocestable (422 helper). TDD: 54 tes di seluruh LeadLosControllerTest (diperpanjang), * * * * * * * * * * * * * * * (baru), dan LeadControllerMarketConfigTest (diperpanjang) - semua hijau. L3 (kamo- internal UI + proxy) adalah pekerjaan terpisah-up.

  11. · kamo-shared-library

    Anggota Meridian Link credential (MarketLosSuserCredential) + resolveForAnggota + LO- scoped outbound push

  12. · kamo-internal

    Surel besar mengkampanyekan UI - kisi, penyunting, tab penyedia, memimpin aksi

    Tambahkan permukaan pemasaran email tingkat-org- besar di bawah / marketing / email: - Tab Surel Bulk (setelah Media Sosial) + kampanye area kerja AG Grid dengan langsung jumlah status / sent--vs-total atas StoMP (/ topik / kampanye / {orgId}); perbaikan gerbang tab pemasaran / logika aktif untuk rute bersarang. - Editor kampanye (/ marketing / email / kampanye): Quill menulis ulang tanda tangan sistem header / footer + merge token, penerima dari file upload (email- kolom peta), ID lead / account / application (meresolf titik akhir), atau manual masukan, sebuah panel pre-flight (lewati / opt-out / bertopeng / kerusakan tidak valid + CAN- SPAM penjaga), dan kirim / draft / schedule + throttle (all-at-once / everly / naturalisasi + warm-up). Menerima surat perintah. - Bulk Email provider setting tab (pisahkan konfigurasi SMTP + real Kirim Email). - Leads: "Bulk email (N)" aksi pada penyunting kampanye multi- pilih lema. - Departemen: bidang email + phone / extension; perilaku - labeling: email perusahaan. - Klien APIs (e mailCampaigApi, bulkEmailProviderApi, penerima Resolve Api), using EmailCampagsWebSocket hook, and the security resolve proxy route.

  13. · SecurityService

    Book- email penerima resolusi + departemen daerah kontak

    - * * * * * * * * * * * * * * POST / api / keamanan / pasar-email / penerima / penyelesaian mengubah ID lead / account / aplikasi menjadi penerima email. Gated di Manity _ BULK _ EMAIL; menerapkan kontak utama di bawah pengirim Akun. acceptsMarketing opt-in gerbang, peminjam surel untuk aplikasi, validasi sintaksis, dedupe antar sumber + a penuh lewati / hitung kerusakan. - DepartmentController: thread baru email / telepon / ekstensi bagian permintaan ke Layanan departemen membuat / memperbarui.

  14. · kamo-shared-library

    Shared -lib dukungan untuk bulk-mail penerima resolusi + perusahaan kontak email

    - * * * * * * * * * * * * * * branch catatEmail (kontak perusahaan Email dapat diedit via PUT / api / Security / org, digunakan sebagai kampanye company- scope From) - Repositori Applicationary: Penemu batch polimorfik (FindByUidInAndOrganization _ Id) untuk menyelesaikan surel peminjam aplikasi bagi penerima kampanye - AccountBorrowerPartyRepositori: findByAccount _ UidIn batch finder (tidak ada N + 1) Addititif saja; paket sudah ditutupi oleh * * * * * * * * * * * * * * * *

  15. · EmailService

    Backend kampanye email besar - penyedia, operator, kepatuhan, realtime

    Backend untuk tingkat org- kampanye email massal, sepenuhnya terpisah dari sehari-hari penyedia email sehingga tidak dapat dijungkirbalikkan / diblok bersama surat bisnis: - penyedia Bulk SMTP (BulkEmailProviderService + BulkProviderController): dienkripsi org config reusing EmailProviderEncryptionService; real Send Test Email (membuka sesi SMTP hidup dan mengirimkan). - Kampanye CRUD + mesin status (CampaignService / Controller): draft, jadwal, send-now, pause, resume, cancel, duplikasi; receization materialisasi with dedupe, penekanan tagging, per- penerima unsubscribe token; CAN- SPAM gerbang (subject + physical address + > = 1 penerima dibutuhkan untuk meninggalkan draft). - Dispatcher Throttle (Campaignactcher @ Scheduled): all-at-once / bahkan melewati jendela / naturalized- secara acak mondar-mandir melalui penerima berikutnya Pelepasan (restart-safe), warm-up ramp pada maxPerHour, hard-bounce - > auto-pressure. - Compliance: Layanan tekanan, publik satu klik RFC 8058 UnsubscribeController (+ List-Unsubscription header), penekanan re-check di sent. - Real- waktu: dorongan STOMP langsung ke / topik / kampanye / {orgId} + pelanggan-waktu org ChannelInterceptor (tutup topik penyeberangan). - Email SmttpService: additive extraHeader send () overload (List.Unsubwriter).

  16. · kamo-shared-library

    ECOA / FCRA adverse- action notice scaffolds + satisfy-timer

    Mekanisme penerbitan ini berbagi -lib setengah. Keuntungan layanan gabungan * * * * * * * * * * * * * * * - flips hanya ARMED ECOA _ AA timers ke SATISFIED (daun COUNTEROFFER / INCOMPLETE _ NOA dan already-puas tidak tersentuh), sehingga sebuah DISTINK pemberitahuan aksi dapat menutup jam Reg B sementara satu un- dikirim tetap ARMED untuk menyapu pelanggaran. Dua contoh email kanonikal - ADVERSE _ ACTION _ NOTICE (ECOA / Reg B + FCRA 615 (a)) dan RISK _ BASED _ PRICING _ NOTIICE (FCRA 615 (h) / Reg V) - terdaftar di CanonicalTemplateLoader. Keduanya adalah scaffolds stRUCTURAL saja: sebuah berlari [PERUSAHAAN lu TERTUTUP...]]] tempat yang memegang penasihat kreditur mengisi dalam, plus struktured- data variabel (pelamar, tanggal, alasan utama / pemicu). Kamo persediaan tidak ada operasi pemberitahuan hukum prosa.

  17. · kamo-internal

    Tambahkan Peluncur Desktop Master Engine

    Ketiga, klik desktop di sebelah Linux / Windows: entri navRegistry (ComcuterIcon), target 'master' melalui openKamoDesktop + rute proksi SSO, dan kirimkan ke ketiga penanganan aksi.

  18. · SecurityService

    Tambah "master" target untuk Master Machine SSO deep- link

    buildAutoConektur Url sekarang menanamkan koneksi Master Machine (KAMO _ GUAC _ MASTER _ HOSTNAME, baku 192.168.4.46); termasuk dalam setiap token sesi untuk penggunaan ulang. Tetap sinkron dengan Bootstrap KlusterServices SQL.

  19. · KlusterServices

    Tambahkan "Master Machine" (kamo-dev-1) perangkat RDP ke Guacamole

    Local Kubuntu workstation share nya live Plasma / Wayland session over RDP via KRdp. Tambahkan sambungan bootstrap SQL idempoten (192.168.4.46: 3389, sage / shared pw, keamanan = any, ignore-cert, warna-kedalaman 24) dan hibah READ. Termasuk spesifikasi desain.

  20. · kamo-shared-library

    Kolom kontak aplikasi kampanye Bulk-email

    Tambahkan fondasi pustaka shared- untuk kampanye email tingkat-besar: - Organisme BulkEmailProviderEntity (terpisah dari penyedia harian; UNIQUE org _ id) - EmailCampaignity / EmailCampaignity Recipientity (+ status / scope / throttle / source enums) pemodelan antrian kirim penerima per- dapat bertahan - EmailSupressionEntity (CAN- SPAM daftar penekanan) - Departemen: daerah kontak email + phone / ekstensi (EmbPhoneNumber) - Organisasi: transfer Email (companyscope kampanye Dari baku) - RoleRightType: VIEW _ BULK _ EMAIL (175), Manity _ BULK _ EMAIL (176) under MARKETING Semua paket baru duduk di bawah com.kamo.z.shared.email. * (sudah ditutupi oleh KamoInitializer * * * * * * * * * * * * * * * Rumit bersih.

  21. · kamo-shared-library

    Templat kanonikal STARD _ TASK _ ROUTED

    Pemberitahuan pengurus keputusan routed- membutuhkan template email kanonikal. Register STEWARD _ TASK _ ROUTED dalam CANONICAL _ KEYS dengan pasangan json / html nya; tubuh membawa pinjaman / keputusan / eksepsi konteks dan sebuah link pramugari antrian. Content is org- writeable through sistem template yang ada.

  22. · SecurityService

    Gateway relay ke mint MERS MIN untuk paket penutupan

    POST * * * * * * * * * * * * * * * * ownershick- diperiksa (receirePackageOrg) sehingga seorang pelayan mints hanya untuk penyewa mereka sendiri. The upstream membaca 7- digit Mens ID org dari MERS penyewa koneksi dalam tab integration; 400 berarti MERS tidak dikonfigurasi atau pinjaman tidak memiliki nomor pinjaman.

  23. · kamo-internal

    Tanggal -of -birth pada tilikan lead + buat bentuk

    Tambahkan ruas "Tanggal Kelahiran" di bawah Kontak Utama pada / lead / view / [id] menggunakan MUI DatePicker yang dibuka untuk grid tahun pertama (OpenTo = tahun, disableFuture, min 1900) - aliran intuitif untuk tanggal lahir - ditambah pemetik yang sama pada bentuk baru. Tanggal round-tricks melalui date- fns parseISO / format (lokal, tidak ada UTC off-oleh-satu). Tampilan adalah primvalygated pada canViewContact; field adalah opsional. Wires dateOf Birth melalui tipe, LeadsApi membuat / update penjaga, dan Daftar lapangan wizard penting.

  24. · SecurityService

    Menerima dan gerbang kontak date- of -birth (DOB)

    Peta 'dateOf Kelahiran' dalam manual-impor dan vendor-masukan field switch dengan a placeent multi- format parse (ISO plus common US M / d / yyyy formulir; unparseable nilai meninggalkan DOB unset daripada melempar). Menghitung DOB sebagai kontak PII di Memerlukan TouchesContactInfo sehingga mengeditnya pada urutan anggota lain EDIT _ LEAD _ CONTACT _ INFO _ OTHERS. Dibacked oleh yang baru shared-lib Lead.dateOf.

  25. · kamo-shared-library

    Tambahkan nulable kontak date- of -birth ke Lead

    Tambahkan tingkat-konteks 'dateOf Birth' (Java.time.time. LocalDate, kolom DATE) ke base lead: entitas + Create / Update / LeadDTO (from Lead), disalin dalam LeadService buat / update dan kedua hipotek-subclass pengubah pembantu sehingga bertahan Tombol pasar. Dilacak dalam daftar lead- sejarah (Kontak) dan bertopeng sebagai PII di MaskContactInfoFromLainnya. Numble, tidak ada default - aman ALTER ADD COLUMN.

  26. · kamo-internal

    Dokumen penulis - persyaratan overlay aturan dari konsol steward

    The "apa dokumen tidak kebutuhan pinjaman ini" aturan matriks tidak memiliki permukaan penulis. Ini menambahkan Dokumenter-complication daerah aturan ke dokumen & kondisi layar (dilipat ke dalam memiliki layar, bukan tab baru) di mana daftar pelayan, penulis, dan pensiun penyewa mereka overlay aturan. Salinan bantuan jujur tentang lingkup: sebuah overlay di atas platform baseline dan AUS / agency temuan (DU / LP / GUS), yang tetap sumber kebenaran; sebuah aturan tidak dapat menyetujui Pinjaman atau membersihkan kondisi, dan tidak ada di sini adalah mandat hukum. Formulir menawarkan 23 Memerlukan nilai DriverType dan sebuah kode tipe teks bebas (backend memvalidasikannya terhadap katalog pencitraan org dan mengembalikan inline yang jelas 400 jika org tidak dapat mengumpulkan tidak ada daftar doc hardcode). Lencana dinding legall dan kemajuan blocks vs penasihat lencana render pada setiap aturan; pensiun menegaskan pertama.

  27. · SecurityService

    Relay documents -commantions overlay- rule recoding

    Relays POST / GET / pensiun di * * * * * * * * * * * * * * ke MLOSDocService, dengan server- organisasi Id dicap dari sesi operator sehingga sebuah penulis steward dan daftar saja peraturan penyewa mereka sendiri.

  28. · kamo-internal

    Penulis bersyarat LLPA dari panel katalog

    Penyesuaian tidak dapat bervariasi oleh peminjam: Kondisi MlosAdjust yang tidak memiliki penulis, dan mesin harga memperlakukan penyesuaian dengan tidak ada kondisi sebagai selalu-berlaku, sehingga setiap LLPA dipecat untuk setiap peminjam dan 780- FICO peminjam mengambil hit yang sama sebagai 620. Bentuk ini penulis penyesuaian bersama dengan kondisi yang gerbang itu. Terprogram pada bentuk kebijakan kunci dalam panel yang sama: sebuah nilai-sheet- id versi, harga delta dan label, dan daftar baris kondisi yang berulang (atribut + operator + numlow, dengan numHigh ditampilkan hanya untuk BEBEEN). Klien mencerminkan penjaga server - setidaknya satu kondisi, terikat pada setiap kondisi, kedua batas untuk BETWEEN dengan rendah < = tinggi - jadi buruk aturan tertangkap inline daripada pada bundaran-perjalanan.

  29. · kamo-internal

    Konfirmasi surel ketika mengubah petunjuk dari leader-view

    Kartu Penugasan sekarang kembali melalui leadsApi.reassignlead, yang permukaan bendera server membutuhkan Notifikasi. Pada penugasan kembali untuk anggota baru roti panggang baca "Penugasan disimpan - {nama} telah diberitahu melalui email"; pada no- op atau Tugas-diri (di mana server mengirim apa-apa) itu tetap konfirmasi polos.

  30. · SecurityService

    Surel pemilik baru ketika suatu lead tunggal dipindahkan

    Mirror jalur besar untuk lead- view Kartu Penugasan. Ketika PUT / lead / {id} moves a lead to a different member, that member now gets the same LEDS _ ASSIGNED email (menghitung 1) arus besar mengirimkan. Usaha terbaik - pengiriman berjalan setelah Pemutakhiran dilakukan dan tidak pernah gagal itu. Kebakaran hanya pada penugasan nyata: melewati no- op menyimpan di mana assignee adalah tidak berubah (jadi informasi kontak penyuntingan tidak mengirim apa-apa), dan melewati tugas-sendiri - seorang petugas mengklaim memimpin dengan menugaskan untuk diri mereka sendiri tidak memiliki alasan untuk email sendiri. Respon membawa assignneeNotified sehingga UI dapat mengkonfirmasi yang baru pemilik email. Sebelumnya memimpin update sekarang diambil sekali dan digunakan kembali untuk kedua writz dan previous- assignee menangkap, bukan hanya di dalam non-dewa escorz cabang.

Alam semestamu menunggu.

Mulai gratis dalam beberapa menit. Tambahkan produk kapanpun Anda siap — tidak ada migrasi, tidak ada login baru.

Gratis selamanya — tidak diperlukan kartu kredit