Resolve applied- model untuk opsional orgId query dengan pemeriksaan keanggotaan
Benar-model sumber dan menormalkan kepatuhan dalam API
Gunakan resolusi resolver untuk BRANCH _ TYPE vs MASTER daripada memasukkan dari BranchTypeID saja. Normalize FALSE / TRUE compliance literals dalam applied- mo...
Propagate master model compliance dan aturan usia ke branch-type model keamanan
Tulis globals.css sebelum membersihkan; jalankan pembersihan async
Urutkan ulang provisionUpdate sehingga writeConfigFiles (warna, config, manifest) dijalankan sebelum pembersihan berkas latar belakang. Muat ulang org dari DB u...
Terapkan warna org yang dikomit ke MinIO globals.css
Muat Ulang Organisasi dari DB pada awal penyediaan async sehingga writeConfigFiles melihat warna disimpan oleh PATCH / colors (pengontrol snapshot bisa basi). P...
Tandai domain kustom DNS-verified sebagai isdefault dalam domain API
Sebelumnya hanya * .kamocrm.com subdomains yang ditandai isBaku, jadi orgs dengan domain apex gubahan yang diverifikasi (mis. kamocrm.com) selalu diperoleh defa...
Ijinkan percabangan ketika pengguna adalah org pemilik TeamMber
Penyesuaian tema dan logo / latar belakang hanya diunggah oleh Organisasi. pemilik FK; aplikasi UI memperlakukan pemilik organisasi sebagai Pengelola Tim. yang ...
Bersihkan pengguna dan anggota FK sebelum menghapus baris avatar
Menghapus avatar gagal dengan batasan DB ketika itu masih avatar pengguna aktif atau penimpaan khusus anggota, yang cocok dengan blobs MinIO yang rusak dimana p...
Selesaikan host folder tema tanpa verifikasi DNS ketat
Sistem tema yang diperlukan adalah DnsVerified untuk setiap domain, jadi orgs hanya menggunakan subdomain kamocrm.com bawaan tidak pernah memulai pekerjaan asyn...
Terbitkan kemajuan penyediaan tema pada inti NATS
Stream CHAT _ MESSAGES stream dikonfigurasi untuk percakapan. > hanya, jadi publikasi ke * * * * * * * * * * * * * * * gagal stream validasi dan UI melihat Tida...
Set EmbRecdState.isActive on wizard create-org sehingga orgs.is _ active bukan null
Kembali JSON- safe create-org tubuh bukan serialisasi entitas Organisasi
Parse create- org dengan ObjectMapper polos dan kembali pesan Jackson pada 400
Deserialisasi penciptaan-org tubuh ke CreateOrganization Payload untuk menghindari entitas JsonIdency Info gagal
Parse create-org JSON dengan melucuti bidang domain wizard sebelum pemetaan Organisasi
Parse create--org JSON tanpa @ RequestBody untuk menghindari 415
Kembalinya musim semi Tipe Media Tak Didukung ketika Kontent- Tipe hilang atau tidak diterima untuk @ RequestBody. Baca bytes dan gunakan ObjectMapper sebagai g...
Lewati pembaharuan model keamanan ketika kunci peran menyunting keamanan
Baca hak sesi sebagai daftar atau CSV warisan untuk titik akhir anggota
KSesionService dan SecurityRoleController hak sebagai Daftar < String > dari Nama RoleRightType. Menmber SecurityController cast to String and split on koma, me...
Verify- dns memeriksa setiap KnownAliseses label; lewati aplikasi / media yang sudah ditinggalkan dalam opsional
Hindari transisi - keracunan DDL dan keraskan multi- pod ras
Diri sebelumnya-menyembuhkan menempatkan DDL dalam @ Transaksional syncAll (). Ketika ALTER TABEL ADD CONSTRAINT dipecat pada batasan yang ada (kasus normal set...
Hapus panggilan getType () dari Organisasi Kontroller setelah Organisasi Tipe penghapusan
Gunakan getOrganization ByIdWithFeatures dalam Appability Interceptor
Selesaikan Eksepsi LazyInitialization pada / api / security / lead dan semua jalan CRM / POS-gated lainnya. Pencegatan bernama org.getFeatures () setelah transa...
Resolve Anggota tab menunjukkan kosong karena masalah TIPE Hibernasi () base- class
Tipe filter JPQL menghasilkan 0 hasil ketika terikat parameter adalah kelas dasar Anggota (Warisan JOINED). Hal ini mempengaruhi Anggota - pelanggan titik akhir...
Allow god-mode users to provision ownerless orgs; prefer FQDNs in domain resolution
Add @Transactional to provision-theme for lazy domain loading; remove hardcoded domain from provision request
Add PATCH /org/{id}/colors endpoint to safely update only color palette fields
Use memberID session key and include creatorType in creatable branch-types response
Use correct session key 'memberID' instead of 'MID'
KSessionService stores member ID under key 'memberID' but both **************** and OrganizationController were reading session.get("MID") which always returned...
Exclude master model from models list; add debug log to child-org creation check
SecurityModelController now filters out the org's master model (identified by org.getMasterModelID()) from the /api/security/models response — it is managed exc...
Read session rights as List<String> names, not CSV of integer IDs
Session rights are stored as a JSON array of RoleRightType name strings. Both **************** and OrganizationController were casting them to String (causing C...
Add org-scoping, password length validation, and code quality improvements to PasswordChangeController
Add @Transactional to DataLoader.run to fix LazyInitializationException on startup
Use JPA entity traversal for grant-all detection (covers dept/job roles)
Filter null rights in buildAppliedRightsWithSources; upgrade shared-lib to 1.5.0
Use core NATS pub/sub for email-verified SSE fan-out
Replaces in-memory ConcurrentHashMap broadcast with NATS core pub/sub so all pods receive verification events regardless of which pod handled the token. Falls b...
Use avatarType field + JDBC for photo URL generation to handle Hibernate proxies
**************** previously used instanceof AvatarPhoto to determine avatar type and cast to read fileExtension. When Hibernate returns a base-class proxy (e.g....
Populate all EMAIL_VERIFICATION template variables
Was sending only {token, code} — template also needs orgName, firstName, verifyLink, and expiryMinutes. Load org and user to build the full vars map, and resolv...
Use subdomain-aware SQL to match findByDomain JPQL logic
Org domain lookup in resendVerification was doing an exact-match query that failed for subdomains stored as child records (e.g. 'api' with parent 'kamocrm.com')...
Correct EmailService URL port in configmap (4203 -> 80)
EmailService K8s service exposes port 80, not 4203. Verification emails were timing out on every registration attempt.
Bypass JPA org lookup to avoid Hibernate cascade flush error
**************** triggers **************** which causes a Hibernate auto-flush. That flush fails because Organization.features was previously replaced with a pl...
Use getReferenceById to avoid cascade orphanRemoval flush error on registration
Loading Organization via findById inside @Transactional caused Hibernate to detect the features collection was de-referenced during auto-flush, throwing JpaSyst...
Seperti apa yang Anda lihat pengiriman?
Semua pembaruan ini secara otomatis mendarat di ruang kerja Anda. Mulai bebas dan menontonnya tumbuh minggu demi minggu.