Changelog
Ada kabar baru.
Setiap perbaikan pada platform, sebagai kapal.
· KlusterServices
Perlu kunci API dan hanya mengakui RAGService
· EmailService
Mengirim surat membutuhkan kursi, untuk orang-orang dan anggota AI sama
Seorang anggota tanpa kursi lisensi ditolak dengan berbagi tubuh 403 SEAT _ REQUIRED sebelum apa pun dikirim: POST / api / email / kirim, pesan-surat shared-, dan empat pertemuan - rute undangan (kirim, update, batalkan, balas). Suatu kejadian kalender menyimpan menanyakan kursi hanya ketika mengundang tamunya melalui email (sendInvites true, notifyByEmail tidak salah): dialog kalender dan KamoMobile mengirim notifyByEmail benar pada setiap save, jadi entri kalender polos tetap terbuka untuk semua orang. Rute internal tidak pernah bertanya. Pemindahan juga mengambil log masuk NATS sendiri (nats- user- email), Redis login ACL (redis-auth) dan rahasia internal KamoAI.
· MediaService
Pertemuan, pembicaraan grup, lampiran dan panggilan membutuhkan kursi yang termasuk mereka
· kamo-internal
Daftar pemetik obrolan hanya model yang dapat dipilih oleh anggota
Picker membaca daftar model administrator (403 tanpa Manusire _ AI _ MODELS) dan menawarkan penyedia, yang tidak pernah memilih model. Sekarang membaca GET / api / ai / model / dipilih melalui rute BFF baru, menjatuhkan opsi penyedia, memindahkan suatu opsi provider-disematkan kembali ke Otomatis, dan menyimpan Perintah penyedia AIService mengirim (prioritas organisasi) daripada mengulangnya dengan nama.
· InitializerService
Migrasi untuk org _ alias _ domains, seeding platform org dua
Creates * * * * * * * * * * * * * * dan benih dari platform org (is _ top _ level) dengan kamouniverse.com (baku, membawa maju yang lama hardcode platform.mail.domain) dan kontak.kamocrm.com (tambahan, bukan baku). Terapan langsung ke produksi di depan komitmen ini - layanan ini dijalankan secara manual terhadap DB, tidak ditempatkan - sehingga tabel sudah ada; ini adalah sumber catatan untuk lingkungan segar berikutnya atau re- run. kamo- shared- perpustakaan menabrak 1.6,2 untuk * * * * * * * * * * * * * * * *
· EmailService
Baca alias- domain komposer dari org _ alias _ domains
* * * * * * * * * * * * * * digunakan satu domain hardkode (Platform.mail.domain, kamouniverse.com) sebagai end- sintetis sebagai baku, dan hanya untuk platform org * * * * * * * * * * * * * * * * * * * * * Baca Organ AliasDomainRepositori sebagai gantinya: org manapun dapat mendaftarkan sebarang jumlah alias domain sekarang, masing-masing ditawarkan sebagai send- sebagai identitas utama anggota kotak surat, dengan default org -ditandai baris masih sebelumnya sebagai komposer default persis seperti kamouniverse.com itu. kamo- shared- perpustakaan menabrak 1.6,2 untuk * * * * * * * * * * * * * * * *
· kamo-shared-library
Tambahkan org _ alias _ domains, bentuk per-org dari domain surat platform
Generalizes satu hardcode platform.mail.domain (kamouniverse.com, dan hanya untuk platform org) kedalam tabel org apapun dapat menyimpan jumlah baris Layanan Pengelola Layanan Surat Email membacanya untuk menawarkan setiap domain sebagai send-as identitas pada setiap anggota apos; s kotak surat primer, sama mekanisme seperti sebelumnya.
· SecurityService
Tombol pembunuh AI dapat dibaca oleh siapa pun yang memegang kanannya
· kamo-internal
AI Platform Services and AI Kill Switch platform rights
· kamo-internal
Aplikasi AI Workforce dan empat haknya; penjaga cermin membaca Java lagi
· AIService
Satu tabel rute memutuskan yang dapat memanggil setiap rute AIService
· kamo-shared-library
Prefiks inbox pribadi untuk layanan baru, dan pekerja webhook LOS adalah opt-in
· kamo-shared-library
Log layanan ke Redis dengan nama pengguna dan kata sandi ketika diberikan satu
· kamo-shared-library
Satu aturan kursi untuk konsol dan setiap layanan yang memaksakannya
Resolver membaca anggota dengan organisasinya diambil dan tidak dibuka transaksi sendiri, sehingga kursi diputuskan dengan benar pada benang dengan tidak konteks persistensi (Al WebSocket) dan gagal membaca benar-benar gagal terbuka daripada melemparkan tak terduga RollbackException masa lalu menangkap.
· KlusterServices
Log masuk ke Redis sebagai mail _ rspamd
rspamd membaca password dari Surat Rahasia / rspamd-redis-auth, termasuk kedalam local.d / redis.confé. Kapsul mendapat keuntungan dari fsGroup 11333: gambar berjalan sebagai 1133: 1133 dan akar: root 0440 Berkas Rahasia adalah izin fatal ditolak di config load.
· kamo-shared-library
Layanan platform AI dan hak switch membunuh, dan kolom switch
· KlusterServices
Pengguna ACL bagi platform, rspamd dan operator (baku masih terbuka)
· kamo-shared-library
Lihat, awasi, menyetujui dan mengelola tenaga kerja AI (329- 332)
· KlusterServices
Satu login per loading dalam akun KAMO, di samping Kamo _ svc
· kamo-shared-library
Aplikasi AI Workforce, di luar batas PHI dan tidak pernah otomatis
· kamo-internal
Pilih bagaimana aplikasi yang diterbitkan menanyakan pertanyaan
"Publikasikan aplikasi ini" (Pengaturan Pita) sekarang membawa tiga pilihan selain obrolan, masing-masing sepasang kartu yang mengatakan apa yang mereka mean: - Tipe: Normal (beberapa pertanyaan terkait setiap langkah) atau remas (satu pertanyaan per (Dan terang-terangan) dapat dibaca Shadaqa atau Shaddaqa (setiap orang yang melampaui batas) setiap salat dan setiap apa yang diperintahkan oleh Allah swt. - Info kontak: Awal (nama, email dan telepon pertama, disimpan saat mereka Masuk, sehingga aplikasi ditinggalkan masih memimpin) atau Terakhir (pinjaman pertama, rincian kontak sebelum mengirim; tidak disimpan sampai saat itu). - Fields: Penuh atau Dasar (hanya apa kebutuhan panggilan pertama). Pratinjau langsung di samping mereka menggambar ulang layar pertama, urutan bagian (kontak terlihat slide ke akhir) dan apa peminjam akan memenuhi - berapa banyak pertanyaan, dan ketika memimpin disimpan. Dialog ini 'md' sehingga keduanya cocok berdampingan. Pilihan perjalanan pada PUT yang ada... / aplikasi (keamanan d345869), round-trip melalui daftar vendor, dan prefill ketika dialog dibuka kembali. Membuka kembali halaman langsung sekarang mengatakan "Simpan perubahan" / "Pengaturan Aplikasi disimpan". daripada menerbitkannya lagi, dan ikon baris adalah sebuah konfigurasi slider bukan daripada gelembung obrolan, karena membuka lebih dari obrolan.
· kamo-apps
Pilihan tata letak lentur - meremas, kontak pertama atau terakhir, dasar
Aplikasi hipotek sekarang meletakkan sendiri keluar sebagai produk diterbitkan (Pengaturan Fitur £CRM Publikasikan aplikasi ini): NORMAL adalah lima langkah berkelompok seperti sebelumnya. SQUEEZE mengajukan satu pertanyaan per layar: sebuah alis mengatakan di mana Anda berada, pertanyaan dalam tampilan wajah, garis ucapan bahasa tentang apa artinya dan mengapa ditanya, maka satu Jawab. Fields berbagi layar hanya ketika mereka bagian dari satu jawaban (nama, alamat, agen dan perusahaan mereka). Tapping pilihan bergerak setelah beat; papan ketik memilih dengan panah dan bergerak dengan Enter. Rel mengisi Pertanyaan demi pertanyaan. - Kontak info. MULAI bertanya siapa peminjam pertama, dan menyimpan memimpin saat ada nama dan email - di belakang proof-of-bekerja, tombol kirim yang sama kebutuhan - kemudian menambahkan setiap jawaban kemudian untuk yang memimpin melalui Sebuah tanda, dan pengiriman terakhir menyelesaikannya daripada mengajukan kedua. Halaman Mengatakan begitu di samping pertanyaan kontak. Terakhir bergerak kontak hanya sebelum Setuju, dan tidak ada yang disimpan sampai formulir dikirim. - Fields. BASIC menyimpan nama, email, telepon, tujuan, bagaimana rumah akan digunakan, state dan ZIP, harga atau nilai, uang muka atau keseimbangan, dan kredit. Teks bantuan mengasumsikan pembaca tidak tahu apa-apa: uang muka, nilai kredit, HOA, pajak, asuransi, program pinjaman dan jenis properti masing-masing dijelaskan Bukankah ketika nyawa salah seorang di antara kalian telah sampai di kerongkongan, pada saat-saat sekarat, dan pada saat itu kalian sendiri menyaksikannya, sedang Kami lebih dekat dan lebih tahu tentang keadaanya, tetapi kaian tidak mengetahui dan merasakannya? Pertanyaan tidak terjawab ya / tidak tinggal null (dilewati atau belum belum Mencapai) bukannya tiba sebagai "tidak". Juga tetap, keduanya hidup hari ini: paragraf persetujuan tidak pernah bernama pemberi pinjaman ("Anda memberikan izin tertulis ekspres Anda untuk menghubungi Anda "- sebuah fungsi berlalu sebagai Argumen ICU tidak memberikan apa-apa, dan tanda terima itu "Sebuah salinan sedang dalam perjalanan ke". menjatuhkan alamat dengan cara yang sama. Petunjuk persetujuan - dalam tidak lagi dimulai dengan huruf kecil "seseorang". Proxy: * * * * * * * * * * * * * * * (POST) dan / progress / {token} (PUT), Berbagi X- ForwardedFor untuk menangani pengajuan. Perlu keamanan d345869 untuk tata letak dan titik akhir kemajuan; terhadap sebuah backend yang lebih tua bentuk adalah pengelompokan, penuh, kontakt- pertama bentuk dan pertama menyelamatkan 404s sekali dan berhenti.
· kamo-internal
Tab sesi berhenti memakai ikon Guacamole
Tab sesi adalah dokumen Guacamole, jadi sendiri < link rel = "icon" href = "image / logo- 64.png" > memiliki tab, dan anggota membuka komputer perusahaan mereka menonton ikon berubah menjadi pihak ketiga. Menjaga tab pada asal Kamo dan framing sesi akan terus ikon organisasi; gateway menjawab setiap komputer. * Rute dengan X- Frame- Pilihan: DENY, jadi itu tidak tersedia. Gateway jawaban untuk dua file sebagai gantinya. Seluruh ICON telah ditentukan dari penjara, dan terkadang jawabannya bukan dari siapapun. Permintaan ikon adalah gambar biasa yang dikeluarkan ketika peramban merender pihak ketiga dokumen. Ini tidak membawa sesi dan tidak ada tanda, sehingga host adalah satu-satunya sinyal ada. Pada komputer organisasi sendiri. < domain > yang merupakan jawaban lengkap. Pada host platform bersama bukan: menyelesaikan dengan host ada nama PLATFORM, sebagai tata letak. tsx sudah mengatakan - "yang Tidak ada penyewa ". Jadi pemilik platform sengaja menyelesaikan tanpa organisasi dan mendapat glyph yang tidak bermerek. Setiap organisasi yang domain belum hidup saham tuan rumah itu, dan lukisan tanda KamoCRM itu pada tab penyewa adalah hal yang tepat label putih ada untuk mencegah - sambil melihat, dari Di sini, tidak bisa dibedakan dari bekerja. Hal ini juga tidak dapat dibedakan dari jawaban yang benar untuk Anggota KamoCRM sendiri, itulah sebabnya tidak ada pengecualian yang diukir untuk mereka. Tidak ada yang harus perubahan untuk sebuah organisasi untuk mendapatkan ikon sendiri: saat komputer host hidup, host nama itu dan rute menyelesaikan itu. The gliph adalah garis depan monitor dalam daftar, tidak ada merek sama sekali, di dua ukuran Guacamole Menyatakan. Ikon organisasi sendiri telah diselesaikan alias - > config.json - > set favicon, sama dynamicMetaLoader menggunakan rantai, dan setiap kegagalan di dalamnya jatuh kembali ke glif: favion adalah tidak layak gagal halaman atas, dan merek yang salah lebih buruk daripada tidak ada merek. ROUTE HIDUP IN KAO, TIDAK DITIGA THE REST OF THE GATEWAY IN hosted- komputer. Traefik berjalan dengan semua CrossNamespace dan allowExternalNameServices keduanya pada default mereka palsu, jadi IngressRoute di sana tidak dapat mencapai layanan kamoweb-, dan menyalakan baik bendera adalah Perubahannya luas untuk mencapai satu favicon. Sertifikat telah dikeluarkan dalam ruang nama ini, sehingga rute duduk di samping layanan ke depan dan CI berlaku dengan kode. ThemePublicBase diekstraksi sehingga tata letak ember ditulis sekali: Theme.tsx "gunakan klien" dan server membutuhkan bentuk yang sama.
· kamo-internal
Arive di pasar CRM, pada halaman utama, dan pada profil anggota
- Market: "Arive" bergabung dengan MLOS dropdown, dan dialog konfigurasi memegang empat kait Zapier (ditulis -hanya, bertopeng), Arive Kamo alamat ke paste ke dalam Zaps, peta status Panggung, pembuatannya dan Stavel-push switch, panduan setup dan log aktivitas koneksi. Konfigurasi sekarang adalah allow- list: penyedia dengan apa-apa untuk mengkonfigurasi tidak lagi mendapat tombol aktif yang tidak melakukan apa-apa. - Halaman utama: LosHeader Actions menghasilkan setiap negara penyedia - MeridianLink unchanged; Arive create oeuf waiting for Arive (hautable after 15 min, with konfirmasi) memungkinkan terbuka di Arive dengan panggungnya, mengkonversi untuk memimpin Arive, dan chip sync-problem. Sebuah link tertunda re- membaca konfigurasi pasar setiap 10 s sehingga berubah menjadi "Buka di Arive" tanpa reload. - Profil: Kartu Kredensial Lender disimpan lagi (tidak bisa sejak Profile building, c20bac57). Setiap baris pasar diedit sendiri: MeridianLink mengambil nama pengguna + rahasia, Arive anggota Arive login e-mail. - MarketConfig.mlosProvider adalah serikat penyedia, bukan string kosong. Spec: * * * * * * * * * * * * * * *
· SecurityService
Tata letak pilihan, dan menyimpan rincian kontak saat mereka pergi
Dialog publikasi sekarang memilih bagaimana aplikasi hipotek publik meletakkan dirinya sendiri out (kamo- shared-library ac83be1): NORMAL atau SQUEEZE, kontak rincian di MULAI atau TERAKHIR, FILL atau BASIC pertanyaan. - PUT * * * * * * * * * * * * * * * butuh aplikasi Tata letak, applicationContacts Step dan applicationFieldSet; yang hilang menyimpan apa yang disimpan, sehingga pensiun halaman tidak pernah mengatur ulang tata letak nya. Respon bergema mereka. - GET / public / loan-aplikasi / {p} layout jawaban {type, contactstep, fieldSet}, selalu diselesaikan. - POST * * * * * * * * * * * * * - untuk produk START saja (404 jika tidak): * * * gagal-tertutup, pembagian anggaran IP, nama + email dibutuhkan. Membuat petunjuk dengan sumber "Aplikasi Pinjaman Daring (belum selesai)" dan jawaban a 256-bit token held in Redis for a day, written inside the trances so a Kegagalan Redis berputar ke belakang bukannya menjamin duplikat. - PUT * * * * * * * * * * * * * * * menambah jawaban untuk yang memimpin melalui updateLead (absen = tidak berubah). Token terikat dengan produk. - POST / public / loan-aplikasi / {p} dengan progressToken selesai yang memimpin (sumber "Aplikasi Pinjaman Daring", tanda terima seperti sebelumnya) daripada mengajukan sebuah kedua satu; sebuah berkas token tidak diketahui atau berakhir memimpin baru seperti sebelumnya. - Kepemilikan timbal diperiksa sebelum updateLead bukan dengan menangkap nya exception: itu adalah @ Transaksional dan akan menandai permintaan rollback -saja. Baseline Ratchet: starter Progress dan saveProgress ditambahkan dengan alasan mereka, dan byHost (ditambahkan pada main oleh 81e0756 tanpa garis, yang meninggalkan ratchet merah).
· kamo-shared-library
Tata letak pilihan bagi aplikasi pinjaman yang diterbitkan
Tiga kolom pada LEAD _ VENDOR _ PRODUCTS, dipilih pada dialog publikasi dan dibaca oleh kamo- aplikasi untuk meletakkan bentuk hipotek publik: - APPLIKASI _ LAYUT NORMAL (pengelompokan langkah) 126; SQUEEZE (satu pertanyaan per layar) - APPLICASI _ CONTACT _ STEP MULAI (kontak pertama, disimpan saat mereka pergi) 126; TERAKHIR - APPLIKASI _ FIELD _ SET FULL 124; BASIC Strip biasa, bukan @ Enumerated, jadi tidak ada batasan CE otomatis yang membekukan nilai siap. Nall dibaca sebagai NORMAL / START / FULL, bentuk seperti itu. DTO membawa nilai terselesaikan; setProductApplication memperoleh overload mengambil pilihan, dengan anggota kosong berarti "keep", dan tanda tangan lama delegasi untuk itu tidak berubah. DDL sudah diterapkan ke cluster sebagai pemilik: ALTER TABLE public.lead _ vendor _ product ADD COLUMN JIKA TIDAK EXISTS aplikasi _ layout varchar (16); ALTER TABLE public.lead _ vendor _ product ADD COLUMN JIKA TIDAK EXISTS aplikasi _ contact _ step varchar (16); ALTER TABLE public.lead _ vendor _ product ADD COLUMN JIKA TIDAK EXISTS aplikasi _ field _ set varchar (16);
· InitializerService
Kolom dan aktivitas log peta integrasi Arive
* * * * * * * * * * * * * * * (unik), bidang link Arive pada lead _ los _ links (jenis, GUID, link dalam, tahap, pending- sejak, kesalahan terakhir) dan los _ sync _ event. Semua dapat dibuang, tidak ada isi ulang; @ Order (0) karena entitas Peta mereka. Sudah diterapkan ke Yugabyte dengan tangan (sebagai pemilik, kamo) sebelum shared- pustaka push; ini menjaga lingkungan segar dalam langkah.
· APIService
Alamat publik Zapier posting Arive peristiwa untuk
POST * * * * * * * * * * * * * * * pemicu > forward ke SecurityService 's AriveInboundController, yang memiliki cek token. The senar query (the event) cross the hop, a form body the container already parsed dibangun kembali dari parameter, dan Status SecurityService ini dilewati melalui as- adalah: Zapier menunjukkan sebuah tugas bukan-2xx sebagai salah, yang mana orang memelihara Zap akan terlihat. Sebuah tanda yang salah bentuk tidak pernah meninggalkan tepi.
· SecurityService
Arive melalui Zapier - koneksi, inbound peristiwa, dan tindakan berbahaya memimpin
Sebuah pasar terikat ke Arive mendapat koneksi (empat Zapier Catch Hooks untuk create- pinjaman, update- pinjaman, update- lead dan konvert- lead, ditambah satu inbound URL yang disaksikan oleh tanda-tanda (kekuasaan Allah). Dengan catatan aktivitas, Token rotasi dan "mengirim sampel" sehingga Zapier dapat belajar setiap bidang hook. Pos pemicu Arive untuk * * * * * * * * * * * * * * * * * JSON atau tubuh formulir (default Zapier itu), diakui oleh crmReferenceId kami, Arive GUID, id tampilan, atau - untuk memimpin dikonversi dalam Arive - peminjam e-mail. Catatan dikenal menerapkan Arive- menang; tahap baru bergerak Kamo status melalui peta tahap koneksi; catatan tidak dikenal menjadi petunjuk ditugaskan untuk anggota nama Arive sebagai petugas, dan uid kami dikirim kembali. Setiap hasil dicatat, dan tidak ada jawaban diam 200. Halaman utama membuat / membuka pengiriman di pasar: Arive menjawab 202 Pending (itu menegaskan asynchronously) dan menambah / konversi. Peta anggota diri mereka ke Arive e-mail mereka (tidak ada rahasia, tidak ada NMLS, satu anggota per e-mail per pasar). Aplikasi ujung XML sekarang menolak bukan-MeridianLink Penyedia daripada menerapkan patch all- null.
· kamo-internal
Mulai sesi koder di awan, dan tampilkan di jendela
daftar checkout git pada mesin dev (yang paling baru-baru ini bekerja anggota model dan usaha. Mesin membangun perintah, dengan CCR _ FORCE _ BUNDLE = 1 sehingga checkout lokal diupload daripada kloning dari remote GitHub yang tidak kita miliki. Terminal yang dibuka membawa 'awan: true' dalam props, dan judulnya batang dan tab dimaksimalkan menggambar awan di atas ikon terminal (windowIcon). Sebuah prop daripada sebuah titik ikon, sehingga ia bertahan dari reload; membuka kembali dari daftar terminal membawa sendiri tanda mesin kembali ke jendela.

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