Changelog
Ada kabar baru.
Setiap perbaikan pada platform, sebagai kapal.
· SecurityService
Terjemahkan modifikasi-modifikasi IlegallaException ke 409 dengan kode
Pairs with the shared -lib optimic-lock change: ketika LoanPipelineService Melempar "modifikasi Concurt: segar dan coba lagi", permukaan terstruktur {error, kode: "CONCURRENT _ MODIFIKASI"} tubuh sehingga UI dapat bereaksi dengan menyegarkan bukan sebuah kesalahan panggang.
· kamo-shared-library
Optimistik - kunci LoanFile.status untuk mencegah transisi balap
Klik "Advance" bisa keduanya menulis tonggak. Tambahkan @ Versi ke LoanFile dan sebuah flush eksplisit dalam LoanPipineService.transtion sehingga Kegagalan OptimiskLock muncul sebagai... modifikasi: refresh dan retry ") bagi pengendali untuk diterjemahkan ke 409.
· kamo-internal
Tampilan nama, penyunting REO lien, admin webhook, pembersihan string
Pass Polandia menyelaraskan antarmuka dengan perubahan backend yang sesuai: - Komponen sekarang membuat bidang diselesaikan * Anggota Nama dari backend (PipelineSection milestone aktor, kondisi dibersihkan / dilepaskan atclair). - ReoSection: liens sekarang sepenuhnya dapat disunting (sudah baca-saja dengan TODO). LienRow baru dengan tipe / kreditur otomatis / akun terakhir 4 / urutan pembuktian / pembayaran bulanan / batas kredit / tampilan field, plus a To-Paid- Off toggle dan per- row delete. - Pajak AppsApi memperoleh keuntungan dari ReoLien / patchReoLien / deleteReoLien dan terpisah webhookSubscription Api permukaan untuk outbound admin webhook. - New / settings / integrations / webhook page: daftar berlangganan dengan tambahkan / sunting modal, putar-aksi rahasia yang muncul pada aksi baru tanda tangan -rahasia sekali -waktu -reveal modal, per- subscription pengiriman dialog sejarah. - tipe / hipotek App.ts memperoleh * Daerah Anggota, esignTeplateUid on E signs EnvelopeDTO, and the WebhookSubscription DTO / Bentuk WebhookDeliveryDTO. - Hardcode Inggris string dibersihkan di PipelineSection, PipelineBoardClient, DisclosuresSection, PrichingSection, HmdaLarClient, ApplicationsClient - setiap label sekarang mengalir melalui useTranslation ().
· SecurityService
Pengontrol berlangganan REO lien endpoints + webhook
- MortgageAppController: POST / {uid} / reos / {reoId} / liens, PATCH / {uid} / reo-liens / {id}, DELETE / {uid} / reo-liens / {id} - Delegasi ke baru BorrowerSectionService lien CRUD metode. - WebhookSubscription Controller dibawah * * * * * * * * * * * * * untuk pengelolaan webhook per-org outbound. Bacakan LOS _ VIEW _ PIPELINE; tulis / putar-rahasia / hapus gated di LOS _ UNDERWRITE _ LOAN. Mengembalikan rahasia penandatanganan persis sekali pada buat / putar rahasia.
· kamo-shared-library
Resolusi nama, daftar REO, liburan TRID, pengiriman webhook, link Ejigtemplate
Cross-cutting polish pass across all LOS sub-projects: Member display name resolution (MemberNameResolver): - Single shared resolver service that follows the standard Kamo precedence User.name → Member.usernameAlias → User.alias → User.username and a batch resolveAll() for snapshot endpoints - DTOs grew sibling *MemberName fields next to every *MemberId: LoanPipelineMilestoneDTO, LoanConditionDTO, LoanPricingSnapshotDTO, RateLockDTO, AusFindingDTO, DisclosureSetDTO, TridTimerDTO - LoanPipelineService, LoanConditionService, LoanPricingService and DisclosureService now enrich all returned DTOs REO lien CRUD: - **************** via the ReoLien → RealEstateOwned → Borrower → BorrowerPair → AppMortgage → Organization join path - **************** / updateReoLien / deleteReoLien with the existing org-scoping pattern (requireBorrower) - MortgageAppController exposes POST /{uid}/reos/{reoId}/liens, PATCH and DELETE on /{uid}/reo-liens/{id} TRID federal holiday calendar: - **************** now skips US federal holidays per CFPB §1026.2(a)(6) plus weekends. Covers NYE, MLK, Presidents', Memorial, Juneteenth (2021+), Independence, Labor, Columbus, Veterans, Thanksgiving, Christmas with OPM weekend observance for the fixed-date holidays Outbound webhook delivery: - WebhookSubscription + WebhookDelivery entities with per-org config (target URL, event-type filter, NATS subject filter, signing secret, max attempts, last success/failure tracking) - WebhookSubscriptionService for CRUD with auto-generated whsec_ signing secrets, rotate-secret action - WebhookDeliveryWorker subscribes to los.pipeline.> on NATS, matches subscriptions, POSTs with HMAC-SHA-256 signature in the X-Kamo-Signature header, retries with exponential backoff, writes one WebhookDelivery row per attempt - WebhookSubscriptionController under **************** for subscription CRUD, secret rotation, and delivery audit listing. LOS_VIEW_PIPELINE for read, LOS_UNDERWRITE_LOAN for write E-sign — link to existing ESignTemplate (no new provider abstraction): - EsignEnvelope grew esignTemplateUid FK to the existing **************** so the disclosure envelope reuses the per-org signer roster and field placement design owned by ESigService. The send-to-provider flow continues to live in ESigService — no duplicate provider code in the disclosures package.
· kamo-internal
Harga, pengungkapan, Humas HMDA
Tiga proyek sub- lebih dikirim end-to-end: Sub-proyek 5 - Harga bagian & AUS pada halaman detail: - Harga daftar snapshots dengan dialog tambahan (program, investor, rate, APR, poin, kunci-hari, istilah, sumber, catatan) - Daftar kunci rate dengan dialog tambahan (status, tanggal / kadaluarsa, hari, tingkat, poin) - Daftar penemuan AUS dengan dialog tambahan (DU / LP / GUS mesin, keputusan, berkas kasus, kelas resiko, muatan temuan mentah) Sub-proyek 6 - Disclounce & bagian TRID: - Disclosure set dengan tipe / pengiriman dropdowns dan diasumsikan-diterima tampilan tanggal - Per- set dokumen upload (multipart) dengan MinIO- didukung download melalui URL pra-sign - E- sign amplop (provider-agnostic stub) per set - TRID daftar timer dengan terlambat / due- dalam penandaan dan tanda " aksi "puas Sub-proyek 7 - HMDA LAR halaman di / application / hmda-lar: - Tahun filter, refresh, CSV download (Blob fetch + anchor click) - 13- kolom baca-saja tabel mencerminkan spesifikasi FIG - Tombol HMDA LAR baru pada header daftar aplikasi
· SecurityService
Kontrol untuk harga, pengungkapan, HMDA LAR
Tiga pengendali REST baru dibawah / api / keamanan / hipotek-aplikasi: - MortgagePricingController: harga snapshot, tingkat kunci, temuan AUS CRUD ({uid} / pricing, {uid} / rate-locks, {uid} / aus-temuan). - MortgageDisclocuureController: set pengungkapan dan dokumen (multipart upload + presigned URL MinIO), e- sign amplop, TRID daftar timer + satisfy. - MortgageHmdaController: HMDA LAR JSON list dan CSV export ({hmda / lar} dan {hmda / lar.csv}, filter tahun opsional). Semua controller menggunakan kembali standar sesi-Rights + God-eligibility pola dari seluruh codebase.
· kamo-shared-library
Harga snapshot, kunci rate, temuan AUS, pengungkapan, timers TRID, HMDA LAR
Sub proyek 5, 6, dan 7 backend dikirim bersama: Proyek Sub- 5 (nilai & kunci): - LoanPricingSnapshot - Ada - hanya kutipan (program, investor, tingkat, APR, poin, hari kunci) - RateLock - kunci-tingkat catatan dengan status, kedaluwarsa, pecah alasan - AusFinding - DU / LP / GUS jalankan catatan dengan muatan mentah keputusan + - New enums: RateLockStatus, AusKind, AusDecision - Loan PricingService for CRUD across all three Sub-proyek 6 (pengungkapan + TRID + e-sign stub): - DisclosureSet (LE / CD / etc.) dengan metode pengiriman, diduga diterima tanggal dihitung melalui aturan kotak surat (matematika-bisnis) - DisclosureDocument didukung oleh MinIO melalui MinIOStorageService yang ada - EsignEnvelope - Provider- agnostic stub untuk integrasi masa depan - TridTimer - lengan otomatis ketika masalah LE / CD; pembantu untuk intent--to -melanjutkan, CD-receipt -dibutuhkan, post-consummation CD due - Layanan DisclocuureService mengatur penerbitan, upload MinIO, presigned unduh URL, pelacakan amplop, dan kepuasan timer Sub-proyek 7 (HMDA LAR): - HmdaLarRecordDTO mencerminkan 2018 + HMDA FIG layout - HmdaLarService membangun baris dari entitas URLA yang ada dan memancarkan CSV dengan field- mengutip; Aksi HMDA diambil kode yang diturunkan dari LoanFileStatus
· kamo-internal
LOS pipeline UI - kanban, daerah detail, template admin
Sub-proyek 4 antarmuka, end-to-end: - / aplikasi / pipelineBoardClient): kanban dikelompokkan oleh LoanFileStatus dengan jalur off-ramp di bawah kolom happy- path. Setiap kartu muncul dari peminjam, pinjaman, status siang, terbuka dan menghalangi jumlah kondisi. Menu menawarkan Advance / Off-ramp / Buka rincian; baik Advance dan Off-ramp membuka transisi yang sama dialog dengan radio status-legal yang diambil dari snapshot. Underwrite override checkbox muncul ketika panah maju yang dipilih akan melewatkan kondisi pemblokiran. - / aplikasi (daftar): baru tombol header "Pipeline" routing ke kanban; mempertahankan daftar + penyaring yang ada. - / aplikasi / [uid]: bagian baru "Pipeline & Kondisi" di nav (antara Ringkasan dan Properti & Pinjaman). Daerah mengkombinasikan saat ini status, kondisi daftar (open / cleared / waried dengan add / clear / waive / hapus), timeline pinjaman, dan dialog transisi yang sama. - * * * * * * * * * * * * * * per-org template admin dengan Daftar CRUD, tambahkan / edit modal (judul, deskripsi, kategori, tipikal karena ofset hari, bloksdestments Default, displaOrder). - tipe / hipotek App.ts: tipe baris pipa / kondisi / template DTO, LOAN _ FILE _ STATUS peta, off- ramp helper. - app / lib / hipotek AppsAppsApp.ts: metode klien untuk setiap titik akhir baru.
· SecurityService
FortgagePipelineController + LOS _ PIPELINE konfigurasi entri
Expose the LOS pipeline backend under / api / secure / hipotek -apps: - GET / pipeline - ringkasan kanban - GET / {uid} / pipeline - snapshot penuh - POST / {uid} / transisi - lakukan transisi - GET / {uid} / conditions - list - POST / {uid} / conditions - add - PATCH / {uid} / conditions / {id} - edit - POST / {uid} / conditions / {id} / clear - mark dibersihkan - POST / {uid} / conditions / {id} / waive - mark waised (LOS _ UNDERWRITE _ LOAN) - DELETE / {uid} / conditions / {id} - delete (hanya terbuka) - GET / condition-templates - list - POST / condition- templates - buat - PATCH / condition- templat / {id} - update - DELETE / condition -templates / {id} - soft- delete Cek kanan memakai pola standar sesi-hak dengan yang baru LOS _ * entri RoleRightType; god- eligibility menghormati sama sessionData. GD bypass sebagai sisa controller. Peta konfigurasi memperoleh baris pipa yang hilang. * kunci sehingga ops dapat menyetel NATS yang berdedikasi nama stream dan subjek filter via env vars.
· kamo-shared-library
Mesin negara pipa, kondisi, templat, peristiwa NATS
Backend sub-proyek 4 (LOS pipeline & workflow): - New enum LoanConditionStatus (OPEN / CLEARED / WAIVED) - Entinitas baru: LoanPipelineMilestone (appent- hanya audit transisi), Loanetion (daftar cek per- pinjaman baris dengan keadaan sendiri), dan LoanConditionTemplate (per-org menggunakan ulang sumber checklist) - Repos baru untuk masing-masing, ditambah satu tembakan pencarian kondisi blok-kondisi - LoanPipelineStateMachine mendeklarasikan pipa URLA (NAFT through FUNDED) dan universal SUSPENDED / WITHDRAWN / DENIED off-ramps, dengan RoleRightType untuk setiap panah - LoanPipelineService mendalangi transisi secara atom: validate legalitas + kanan + kondisi blocking (override gated by LOS _ UNDERWRITE _ LOAN), cap kolom tanggal LoanFile yang sesuai, write a milestone, write an ApplicationSubmission for legally - transisi signifikan (pengungkapan awal, mengirimkan kembali pemrosesan / underwriting) dengan SHA-256 snapshot, menerbitkan suatu event NATS - LoanConditionService dan LoanConditionTemplateService meliputi sisa permukaan CRUD - LosPipelinePublisher menerbitkan kepada subyek JetStream < orgId > dan los.pipeline.condition. < org Id > - NatsConfig ketentuan yang didedikasikan aliran LOS _ PIPELINE bersama aliran obrolan yang ada sehingga retensi dapat disetel secara independen - Enam masukan RoleRightType baru di bawah ServiceType.LOS (berganti nama ke "Commerce: Loan Original System"): LOS _ VIEW _ PIPELINE, LOS _ TAKE _ APPLIKASI, LOS _ PROSES _ LOAN, LOS _ UNDERWRITE _ LOAN, LOS _ CLOSE _ AND _ FUND, LOS _ SUSPEND _ OR _ WITHDRAW
· kamo-internal
Pembuatan bagian & Submission UI
Menutup Sub- proyek 3: rute awal mendapat dua blok penyunting (individu NMLS + organisasi NMLS + org alamat) terhubung ke patchpreacher dengan standar 800ms otomatis simpan, dan rute pengiriman menghasilkan reverse- kronologis baca-hanya timeline dari Appotage. array pengiriman (entri terbaru pulses hijau; catatan dan snapshot hashes tampilan ketika ada). The Coming- Segera fallback tidak lagi terjangkau sehingga catch-semua cabang dihapus.
· kamo-internal
Bagian Demografi HMDA UI
Ganti posisi - Segera tempat untuk rute hmda. Ethnicity menggunakan pencarian keadaan tri- dengan sebuah subline sub- checkbox blok ketika Hispanik dipilih (Meksiko / PR / Kuba / Lainnya + deskripsi). Race dibuat sebagai lima blok toggle (Amerika India, Asia, Hitam, NHPI, Putih) dengan kondisional Asia dan Pacific Islander sub- checkbox Jaringan di bawahnya. Seks, metode koleksi, dan tiga tanda pengamatan visual tergantung di bawah kaki verifikasi.
· kamo-internal
Bagian Layanan Militer UI
Ganti posisi. Segera tempat untuk rute militer. The everServed switch upserts melalui hipotek AppsAppsApp.putMiliter; toggling off juga membersihkan status layanan dan diproyeksikan kedaluwarsa ke menghindari data VA basi yang tertinggal dalam catatan.
· kamo-internal
Real Estate Owned bagian UI
Ganti posisi - Segera tempat untuk rute REO. Setiap properti kartu mengedit alamat, pendudukan / status / intended- gunakan, nilai pasar, Asuransi bulanan + pajak + HOA, dan pendapatan sewa bersih / kotor dengan pola simpan otomatis sama dengan bagian lain. Sedang dirender dalam tabel baca-saja; sebuah catatan TODO dalam komponen plus sebuah petunjuk footer expIain hilang / reos / {id} / liens titik akhir.
· kamo-internal
Kewajiban & Keluar bagian UI
Ganti posisi - Segera placeholder untuk rute kewajiban. Bagian 2c kewajiban melacak saldo yang belum dibayar, pembayaran bulanan, bulan tersisa, dan tiga bendera disposisi URLA (dibayar saat penutupan, dibayar sebelumnya, diabaikan) sebagai toggles terpisah; diabaikan baris dim sendiri. Bagian 2d lainnya biaya bulanan berbagi sama Pinjam dan jumlah strip (utang luar biasa, utang bulanan layanan, biaya bulanan, gabungan keluar bulanan).
· kamo-internal
Aset & Kredit bagian UI
Ganti posisi - Segera placeholder untuk rute aset. Splits Daftar aset peminjam ke Bagian 2a (rekening bank / pensiun / lainnya, tipe id < 50) dan Bagian 2b (aset lain & kredit, id > = 50) melalui tipe ID publik berkisar, dengan isjoint dan digunakan untuk CashToClose Toggles pada setiap baris. Strip Totals menampilkan subtotal akun, kredit subtotal, dan nilai dikombinasikan ketika baris manapun membawa nilai.
· kamo-internal
Pekerjaan & Bagian UI Masuk
Ganti posisi - Segera tempat untuk rute pekerjaan dengan full URLA Section 1d-1g editor. Per- peminjam pilihan chip cermin deklarasi pola; setiap baris pekerjaan otomatis melalui hipotek AppsAppsApp.patchWorkness dengan yang sama 800ms debounce. Kartu tajuk menaikkan total bulanan (base + lembur + bonus + komisi + militer + lainnya + diri bekerja bersih). Bagian 1g lain- baris pendapatan hidup dalam daftar mereka sendiri di bawah ini.
· kamo-internal
URLA 2021 aplikasi hipotek UI
Tambahkan grup rute aplikasi baru, klien hipotek AppsApi yang berbicara kepada Layanan SecurityService / api / keamanan / hipotek-aplikasi, tipe TS penuh mencerminkan DTOs backend, dan entri batang sisi bersama Leads. UI: / tampilan pipa aplikasi dengan penyaring spam status (Semua / Draft / Dalam proses / Ditutup), cari, kartu animasi (Framer Motion), empty- state CTA, loading skeleton. / aplikasi / [uid] Tata letak detail: gradien hero dengan primer Lencana status peminjam +, bagian lengket rel dengan animasi indikator aktif, animasi bagian transisi, otomatis simpan indikator (Menyimpan... Bagian dikirim ke kualitas produksi: - Loan & Properti (Bagian 4a / 4b / 4c) full editor, autossave 800ms - Peminjam (1003) manajemen pasangan, menikah-bersama ubah, tambah / hapus pair + co- Peminjam, mutasi animasi - Deklarasi (Bagian 5) kuesioner pinjaman, Ya / Tidak / N / A chip kontrol, chapter-7 / 11 / 12 / 13 sub- flow Bagian dengan dukungan backend tetapi UI menunda untuk mengikuti-up: Pekerjaan & Income, Aset, Liabilitas, REO, Militer, HMDA, Penemu Pinjaman, Pengiriman. Masing-masing membuat kartu "Datang berikutnya" jadi navigasi selesai dan skema dapat ditemukan. Semua salinan melalui hipotek Next-intl Apps. * namespace; tidak ada hardcode. MoneyInput / PercentInput / SelectInput / Switch primitif dapat digunakan kembali di seluruh daerah masa depan.
· SecurityService
MortgageAppController for URLA 2021 REST permukaan
Pengontrol REST baru mengekspos lifecycle aplikasi URLA penuh: GET / api / keamanan / hipotek -apps daftar (ringkasan) GET * * * * * * * * * * * * * * * * POST * * * * * * * * * * * * * * * * * * * kosong atau dari -lead DELETE * * * * * * * * * * * * * * hapus Berkas PATCH / {uid} / loan-file = 124; / pinjaman 124; / properti = 124; / bagian atas orisinator POST / {uid} / pair tambahkan BorrowerPair Pasangan edit PATCH / {uid} / pair / {pairId} DELETE / {uid} / pair / {pairId} hapus pasangan POST / {uid} / pair / {pairId} / peminjam tambahkan Peminjam PATCH / {uid} / peminjam / {peminjam Uid} sunting Peminjam DELETE / {uid} / peminjam / {peminjam Uid} hapus Peminjam POST / PATCH / DELETE * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + / {section} / {id} PUT * * * * * * * * * * * * * POST / PATCH / DELETE / {uid} / gift dan / {uid} / other-hipotek GET / {uid} / loogups masukan dump Sistem-scoped via sesi OTKPreOtorisasi; uniform {error: msg} amplop pada 400 / 401 / 404 / 500; menggunakan layanan yang ada-layer @ Aturan Transaksional.
· kamo-shared-library
Lapisan layanan URLA (repos, DTOs, layanan, pencarian)
Tambahkan seluruh lapisan layanan backend untuk paket URLA yang diperkenalkan dalam commit sebelumnya: repos / aplikasi / 20 JpaRepositories scoped per entitas dtos / applications / response DTOs (Long- > String) + lookup payload layanan / aplikasi / AppMortgageService (konversi root + lead + daerah menyimpan) dan BorrowerSectionService (Pasangan, peminjam, pekerjaan, pendapatan, aset, Kewajiban, REO, deklarasi, militer, HMDA) Konvensi mengikuti pola LeadService yang ada: - Field- disuntikkan @ Autowired deps - @ Transaksional (readOnly = true) untuk query - Static .from (entitas) map pabrik, ID panjang serialisasi sebagai String - IllegalArgumen Exception untuk kegagalan tidak ditemukan / validasi - Semua operasi org- scoped melalui id organisasi aplikasi The MortgageLookepsDTO kembali setiap URLA enum dalam satu tembakan sehingga UI tidak pernah hardcode opsi dropdown.
· kamo-shared-library
URLA 2021 Skema yayasan untuk hipotek perumahan
Refactor AppMortgage menjadi akar paket URLA penuh mendukung multiple 1003s per pinjaman dengan hingga dua peminjam per pasangan (menikah / bersama atau Belum menikah). Mengganti placeholder Apportage kosong dengan terstruktur entitas graph mencerminkan setiap 2021 bagian URLA: core / LoanFile, Loan, Property, Loanpress, Aplikasi Submission pihak / BorrowerPair ("1003"), Peminjam pekerjaan / Pekerjaan (Bagian 1d / 1e / Sec.7), OtherIncome (1g) aset / Aset (2a / 2b), Gift (4e) kewajiban / Kewajiban (2c), OtherExpense (2d) reo / realm EstateOwned (Sec.3) + ReoLien deklarasi / Deklarasi (Sec.5), MilitaryService (Sec.7) hmda / HmdaDemografi (Sec.8) otherpinjaman / OtherNewMortgage (4d) Aset / Kewajiban / REO menggunakan kepemilikan "per- peminjam dengan bendera Isjoint" Model sehingga URLA "Akun dimiliki oleh Peminjam / Co- Peminjam / Kedua" radio runtuh ke satu baris dengan daftar kepemilikan pasangan implisit. Semua bidang moneter menggunakan EmbMoney (BigDecimal + mata uang) dan semua laju gunakan EmbPercent (4dp BigDecimal) - tidak ada double, tidak ada JSON. Strategi ID mengikuti konvensi yang ada: unik _ rowid () untuk sumber-menghadap entities, gen _ random _ uuid () untuk tabel detail internal. JSONB hanya muncul di Audit ApplicationSubmission snapshot (disengaja - bukan untuk data hidup). Skema adalah auto- diciptakan oleh KamoInitializerService via hibernate.ddl-auto tidak ada skrip DDL yang diperlukan. Layanan cadangan, UI, dan proyek LOS lainnya (alur kerja pipeline, harga / kunci, pengungkapan, HMDA pelaporan) ditunda ke selanjutnya sesi per 7-bagian dekomposisi.
· KlusterServices
Kelola mail.kamocrm.com TLS end-to-end
Otomatis-cert sekarang ketentuan dan mempertahankan Let 's Encrypt cert untuk mail.kamocrm.com (HTTP-01 melalui Traefik di port 80) dan menyimpan konsumen postfix sinkronisasi di namespace. Auto- cert berubah: - Tambahkan mail.kamocrm.com ke STATIC _ DOMAINS. - New CROSS _ NS _ CERT _ MIRRORS pemetaan tabel FQDN - > (target namespace, Penyebaran untuk dijalankan ulang). Entri baku: mail.kamocrm.com - > ("mail", ["postfix"]). - mirror _ secret _ to _ namespace () salinan tole-< batang > dari kamo ke target Apakah idompotently (hanya mengulang konsumen ketika tlss.crt sebenarnya perubahan - setiap menit sync tetap murah). - restart _ penyebaran () jalankan gubectl rollout pada konsumen ketika Perbaharui tanah. - Hooked ke wait _ for _ host _ cert _ ready and the main loop so both penerbit yang didorong otomatis dan manajer cert- menyebarkan pembaharuan otomatis. - Peran Baru / RoleBinding (ruang nama surat) memberikan rahasia buat / update dan Penyebaran patch ke Akun ServiceOtomatis Cert. Perubahan sesudah perbaikan: - Mount tls- mail -kamocrm-com (opsional rahasia) at / etc / letsencrypt. - Pada boot, salin cert LE ke / etc / postfix / tls / jika ada; sebaliknya buat minyak ular yang hidup pendek jadi postfix dapat dimulai sebelum cert dikeluarkan. - Gunakan cert sebenarnya untuk smtpd _ tls _ cert _ file / key _ file dengan TLSv1.2 + dan sandi tinggi. Submission (587) kini menawarkan cert terpercaya yang valid setelah auto- cert selesai penerbitan pertama dan gulungan penyebaran.
· kamo-shared-library
untuk promosi peran idempoten
Menambahkan publik, transkasional memastikan RoleAssigned (memberId, roleId) yang: - No- ops jika peran sudah pada anggota. - Cari di Orolole dan selamatkan anggota baru. - Rekomendasi anggota _ hak _ diterapkan sehingga snapshot bertahan mengambil peran hak segera. Digunakan oleh anak-org- arus penciptaan dalam Layanan Securityuntuk menyebarkan Status admin pencipta dari anak baru sampai ke parent-org mereka keanggotaan - menjaga jangkauan admin pengguna konsisten di seluruh anak domain (dimana CreateOrganization Owner- minted * * * already gives pemilik + admin) dan domain induk (dimana mereka ada registrasi- waktu Sesi Anggota Tim akan dinyatakan kurang KONFIGURE _ SISTEM dan bouncing mereka off / setting / account).
· KlusterServices
Reverse-proxy priceturbo.com apex + wildcard via k1m1 with TLS
k1m1 Traefik sekarang mengakhiri HTTPS untuk priceturbo.com dan * .priceturbo.com subdomain, meneruskan plain HTTP ke hulu Traefik pada 192.168.4.36: 80 dengan header Host diawetkan (reuses layanan ratestack-upstream). Otomatis-cert benih puncak melalui STATIC _ DOMAINS; subdomains dijemput Secara dinamis pada hit pertama melalui akses Traefik yang ada - log scan path - per-FQDN HTTP-01 sertifikat memerlukan setiap hostname untuk sudah menyelesaikan ke k1m1.
· SecurityService
Templat kabel -simpan recalc + session segarkan + efektive-rights diagnosis
* * * * * * * * * * * * * * * / updateModel / deleteModel dan * * * * * * * * * * * * * sekarang memanggil semua Anggota UsingModel setelah mempertahankan perubahan - setiap org menunjuk pada model (master sendiri atau melalui tipe cabang) mendapat anggota _ hak _ diterapkan segar dalam panggilan yang sama. The branch -type hapus path juga recalcs orgs anak yatim sebelum baris ini menjatuhkan sehingga resolusi terserap-model mereka benar ketika pencarian model jatuh kembali. * * * * * * * * * * * * * * menulis baru - komputer array hak kedalam entri * * * Redis yang ada, memelihara TTL + setiap field lain, jadi tab hidup dapat mengambil perubahan admin-driven tanpa siklus logout / login. SesionRefreshController mengekspos POST / api / keamanan / sesi / refresh - yang pemanggil sendiri * * * yang diselesaikan dari cookie atau X-OTK, air terjun hidup Berjalan, dan hasilnya tertulis kembali. Cross- anggota spoofing tidak mungkin dengan konstruksi: tidak ada parameter anggota-id. Kanan DiagnosticsController mengekspos GET * * * * * * * * * * * * * * * - mengembalikan air terjun penuh: cascade sumber (org peran, departemen + peran, judul pekerjaan + jt peran, overrides langsung), model yang diterapkan + bukan -NOT _ SPECIFIED masukan template oleh tipe role, hak resolve langsung dibagi ke * * * * * * * * * * * * * dan sebuah inSyncWithLive bendera bahwa permukaan display antara anggota _ rights _ diterapkan snapshot dan apa hidup Air terjun menghasilkan sekarang. Auth: harus berada di target org dan baik menjadi target, memegang * * * * * * * * * * * * * * * * * * * * * * atau memiliki mode dewa aktif.
· kamo-shared-library
Kipas recalc + cross-model-out + typeTemplates non-force fallback
Tambahkan tiga hal yang diperlukan untuk edits template untuk mencapai anggota yang sudah ada tanpa memaksa sebuah siklus logout / login: 1. * * * * * * * * * * * * *. - berjalan setiap org menunjuk pada model (via MasterModelID atau branch-type) dan chunked- recalcs masing-masing anggota member _ rights _ diterapkan. Perusahaan recalcAllMembersUsingBranchType menangani kasus tunggal-percabangan-tipe. 2. Dibuang * * * * * * * * * * * * * * - bulk- delete + saveAll per 500- anggota chunk sehingga 50 k-anggota org tidak lagi kebakaran pernyataan per baris. 3. applyTemplateRule presedence fix - typeTemplate non-force GRANTED / NUKE sekarang mengisi TIDAK _ SPECIFIED sebelum DEFAULT non-force fallback. Cocok Label UI ("Baku diaktifkan; anak dapat menonaktifkan") dan mencegah module-access rights on TEAM _ MEMBER from being silently diabaikan. Juga mengekspos komputasi Anggota Hak Asasi sebagai bacaan publik untuk yang baru session- segarkan dan diagnosa titik akhir dalam SecurityService.
· kamo-internal
Unified DNS Setup Studio dengan bantuan inline per record
Mengganti trio panduan DnsProgressView + AliasStatusTable + ManualDnsGuide dengan satu pengalaman yang dipandu: masing-masing TXT / CNAME catatan sekarang tinggal di satu kartu di samping bantuan inline, menghapus duplikasi dimana sama catatan yang diberikan sebagai kedua tabel status dan panduan set terpisah. - New DnsSetupStudio mengatur aliran 3 tahap animasi (verify kepemilikan > menghubungkan subdomains > mengeluarkan SSL) dengan tahap gated, sebuah jaringan kartu terhuyung-huyung, dan sebuah cincin kemajuan hidup dikendarai oleh SVG. - Per- kartu rekaman beradaptasi label nama lapangan mereka ke pengguna yang dipilih registrar * * * * * * * * dan permukaan link lebih dalam ke portal DNS penyedia itu. - Setiap kartu subdomain membawa deskripsi bahasa- bahasa (mis. "internal adalah ruang kerja tim Anda ") jadi non-teknis pengguna memahami apa Mereka sedang mengatur. - Ruang kerja - entri, change- domain dialog, polling, countdown, tema Pengadaan, dan DNS otomatis panel provisioning semua diawetkan.
· KlusterServices
Host reverse- proxy rate.lenses / stack.lentenes via k1m1 with TLS
k1m1 Traefik sekarang mengakhiri HTTPS untuk api.rate.lense, www.rate.lents, dan www.stack.lense, meneruskan plain HTTP ke hulu Traefik di 192.168.4,36: 80. Auto- cert biji per- host Mari kita Encrypt certs untuk ketiga.
· EmailService
Wire DomainManager dan MailboxProvisioner untuk semua penyedia awan
Ganti stubs Exception Operation Tak Terduga di setiap penyedia awan dengan real HTTP panggilan terhadap setiap backend 's admin API: - Microsoft 365 Microsoft Graph (/ pengguna, / domain, / verify,...) menggunakan per-org OAuth access token. - Google Workspace....... Admin SDK Direktori + Site Verifikasi menggunakan per-org Tanda akses OAuth. - Zoho Mail Zhoho Mail Admin API * * * * * * * * * * * * * menggunakan token akses per-org OAuth. - IceWarp ÁIceWarp REST API ({serverUrl} / api / v1 /...) menggunakan apKey tersimpan dalam providerConfig. - Exchange (Online) Microsoft Graph melalui tanda kredensial klien. dari TenantId / clientId / clientSecret disimpan dalam providerConfig. Juga memperluas lingkup OAuth diminta oleh Microsoft, Google, dan Zoho arus sehingga per-org tanda admin sebenarnya memiliki hak akses kode baru perlu (User.ReadWrite. All / Domain. ReadWrite. Semua untuk Grafik, admin.directory.user / admin.directory.domain / siteverification untuk Google, * * * * * * * * * * * * * * * untuk Zoho). Koneksi yang ada perlu otorisasi ulang dengan persetujuan admin untuk mengambil scopes baru. Pipa HTTP bersama tinggal di ProviderHttpClient - Pembawa / Dasar / API- auth, JSON encoding, and error- message extraction across the variety Kesalahan penyedia amplop. Apa yang masih mematikan (dan mengapa): - RealtimeNotifieron Microsoft 365, Google Workspace, IceWarp, and Pertukaran - setiap operator push-notification API membutuhkan sebuah webhook publik Penerima disediakan oleh EmailService, plus (untuk Gmail) topik Cloud Pub / Sub. Memakainya adalah tugas infra sendiri. - On-prem Exchange (Imagmethod! = OAUTH) - membutuhkan API EWS SOAP; ExchangeProvider melemparkan kesalahan yang jelas pada jalur itu sampai EWS ditambahkan.

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